From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E2935C33CB7 for ; Mon, 27 Jan 2020 11:16:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 9AAED214AF for ; Mon, 27 Jan 2020 11:16:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726548AbgA0LQ3 (ORCPT ); Mon, 27 Jan 2020 06:16:29 -0500 Received: from shards.monkeyblade.net ([23.128.96.9]:37442 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726771AbgA0LQZ (ORCPT ); Mon, 27 Jan 2020 06:16:25 -0500 Received: from localhost (unknown [213.175.37.12]) (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 94D1C151AE75B for ; Mon, 27 Jan 2020 03:16:20 -0800 (PST) Date: Mon, 27 Jan 2020 12:16:17 +0100 (CET) Message-Id: <20200127.121617.552910234324463565.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.3 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Mon_Jan_27_12_16_17_2020_514)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Mon, 27 Jan 2020 03:16:22 -0800 (PST) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Mon_Jan_27_12_16_17_2020_514)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.19 and v5.4 -stable, respectively. Thank you. ----Next_Part(Mon_Jan_27_12_16_17_2020_514)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_419.mbox" RnJvbSAwZGIyZWE3ZDRjY2IwMWFiZjFkNDQyN2M1NWQxZGZjYWE3MzEyNDIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIFBhbGV0aG9ycGUgPHJwYWxldGhvcnBlQHN1c2Uu Y29tPgpEYXRlOiBUdWUsIDIxIEphbiAyMDIwIDE0OjQyOjU4ICswMTAwClN1YmplY3Q6IFtQQVRD SCAwMS8xN10gY2FuLCBzbGlwOiBQcm90ZWN0IHR0eS0+ZGlzY19kYXRhIGluIHdyaXRlX3dha2V1 cCBhbmQKIGNsb3NlIHdpdGggUkNVCgpbIFVwc3RyZWFtIGNvbW1pdCAwYWNlMTdkNTY4MjQxNjVj N2Y0YzY4Nzg1ZDZiNTg5NzFkYjk1NGRkIF0KCndyaXRlX3dha2V1cCBjYW4gaGFwcGVuIGluIHBh cmFsbGVsIHdpdGggY2xvc2UvaGFuZ3VwIHdoZXJlIHR0eS0+ZGlzY19kYXRhCmlzIHNldCB0byBO VUxMIGFuZCB0aGUgbmV0ZGV2aWNlIGlzIGZyZWVkIHRodXMgYWxzbyBmcmVlaW5nCmRpc2NfZGF0 YS4gd3JpdGVfd2FrZXVwIGFjY2Vzc2VzIGRpc2NfZGF0YSBzbyB3ZSBtdXN0IHByZXZlbnQgY2xv c2UgZnJvbQpmcmVlaW5nIHRoZSBuZXRkZXYgd2hpbGUgd3JpdGVfd2FrZXVwIGhhcyBhIG5vbi1O VUxMIHZpZXcgb2YKdHR5LT5kaXNjX2RhdGEuCgpXZSBhbHNvIG5lZWQgdG8gbWFrZSBzdXJlIHRo YXQgYWNjZXNzZXMgdG8gZGlzY19kYXRhIGFyZSBhdG9taWMuIFdoaWNoIGNhbgphbGwgYmUgZG9u ZSB3aXRoIFJDVS4KClRoaXMgcHJvYmxlbSB3YXMgZm91bmQgYnkgU3l6a2FsbGVyIG9uIFNMQ0FO LCBidXQgdGhlIHNhbWUgaXNzdWUgaXMKcmVwcm9kdWNpYmxlIHdpdGggdGhlIFNMSVAgbGluZSBk aXNjaXBsaW5lIHVzaW5nIGFuIExUUCB0ZXN0IGJhc2VkIG9uIHRoZQpTeXprYWxsZXIgcmVwcm9k dWNlci4KCkEgZml4IHdoaWNoIGRpZG4ndCB1c2UgUkNVIHdhcyBwb3N0ZWQgYnkgSGlsbGYgRGFu dG9uLgoKRml4ZXM6IDY2MWY3ZmRhMjFiMSAoInNsaXA6IEZpeCBkZWFkbG9jayBpbiB3cml0ZV93 YWtldXAiKQpGaXhlczogYThlODNiMTc1MzZhICgic2xjYW46IFBvcnQgd3JpdGVfd2FrZXVwIGRl YWRsb2NrIGZpeCBmcm9tIHNsaXAiKQpSZXBvcnRlZC1ieTogc3l6Ym90KzAxN2U0OTFhZTEzYzAw Njg1OThhQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KU2lnbmVkLW9mZi1ieTogUmljaGFyZCBQ YWxldGhvcnBlIDxycGFsZXRob3JwZUBzdXNlLmNvbT4KQ2M6IFdvbGZnYW5nIEdyYW5kZWdnZXIg PHdnQGdyYW5kZWdnZXIuY29tPgpDYzogTWFyYyBLbGVpbmUtQnVkZGUgPG1rbEBwZW5ndXRyb25p eC5kZT4KQ2M6ICJEYXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBkYXZlbWxvZnQubmV0PgpDYzogVHls ZXIgSGFsbCA8dHlsZXJ3aGFsbEBnbWFpbC5jb20+CkNjOiBsaW51eC1jYW5Admdlci5rZXJuZWwu b3JnCkNjOiBuZXRkZXZAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJu ZWwub3JnCkNjOiBzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbQpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvY2FuL3Ns Y2FuLmMgfCAxMiArKysrKysrKysrLS0KIGRyaXZlcnMvbmV0L3NsaXAvc2xpcC5jIHwgMTIgKysr KysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL3NsY2FuLmMgYi9kcml2ZXJzL25ldC9j YW4vc2xjYW4uYwppbmRleCBjZjA3NjlhZDM5Y2QuLmIyZTViY2FlN2ZiZSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvY2FuL3NsY2FuLmMKKysrIGIvZHJpdmVycy9uZXQvY2FuL3NsY2FuLmMKQEAg LTM0Myw5ICszNDMsMTYgQEAgc3RhdGljIHZvaWQgc2xjYW5fdHJhbnNtaXQoc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKQogICovCiBzdGF0aWMgdm9pZCBzbGNhbl93cml0ZV93YWtldXAoc3RydWN0 IHR0eV9zdHJ1Y3QgKnR0eSkKIHsKLQlzdHJ1Y3Qgc2xjYW4gKnNsID0gdHR5LT5kaXNjX2RhdGE7 CisJc3RydWN0IHNsY2FuICpzbDsKKworCXJjdV9yZWFkX2xvY2soKTsKKwlzbCA9IHJjdV9kZXJl ZmVyZW5jZSh0dHktPmRpc2NfZGF0YSk7CisJaWYgKCFzbCkKKwkJZ290byBvdXQ7CiAKIAlzY2hl ZHVsZV93b3JrKCZzbC0+dHhfd29yayk7CitvdXQ6CisJcmN1X3JlYWRfdW5sb2NrKCk7CiB9CiAK IC8qIFNlbmQgYSBjYW5fZnJhbWUgdG8gYSBUVFkgcXVldWUuICovCkBAIC02NDAsMTAgKzY0Nywx MSBAQCBzdGF0aWMgdm9pZCBzbGNhbl9jbG9zZShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KQogCQly ZXR1cm47CiAKIAlzcGluX2xvY2tfYmgoJnNsLT5sb2NrKTsKLQl0dHktPmRpc2NfZGF0YSA9IE5V TEw7CisJcmN1X2Fzc2lnbl9wb2ludGVyKHR0eS0+ZGlzY19kYXRhLCBOVUxMKTsKIAlzbC0+dHR5 ID0gTlVMTDsKIAlzcGluX3VubG9ja19iaCgmc2wtPmxvY2spOwogCisJc3luY2hyb25pemVfcmN1 KCk7CiAJZmx1c2hfd29yaygmc2wtPnR4X3dvcmspOwogCiAJLyogRmx1c2ggbmV0d29yayBzaWRl ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zbGlwL3NsaXAuYyBiL2RyaXZlcnMvbmV0L3Ns aXAvc2xpcC5jCmluZGV4IDc3MjA3ZjkzNjg3MS4uOTNmMzAzZWMxN2UyIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9zbGlwL3NsaXAuYworKysgYi9kcml2ZXJzL25ldC9zbGlwL3NsaXAuYwpAQCAt NDUyLDkgKzQ1MiwxNiBAQCBzdGF0aWMgdm9pZCBzbGlwX3RyYW5zbWl0KHN0cnVjdCB3b3JrX3N0 cnVjdCAqd29yaykKICAqLwogc3RhdGljIHZvaWQgc2xpcF93cml0ZV93YWtldXAoc3RydWN0IHR0 eV9zdHJ1Y3QgKnR0eSkKIHsKLQlzdHJ1Y3Qgc2xpcCAqc2wgPSB0dHktPmRpc2NfZGF0YTsKKwlz dHJ1Y3Qgc2xpcCAqc2w7CisKKwlyY3VfcmVhZF9sb2NrKCk7CisJc2wgPSByY3VfZGVyZWZlcmVu Y2UodHR5LT5kaXNjX2RhdGEpOworCWlmICghc2wpCisJCWdvdG8gb3V0OwogCiAJc2NoZWR1bGVf d29yaygmc2wtPnR4X3dvcmspOworb3V0OgorCXJjdV9yZWFkX3VubG9jaygpOwogfQogCiBzdGF0 aWMgdm9pZCBzbF90eF90aW1lb3V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCkBAIC04ODIsMTAg Kzg4OSwxMSBAQCBzdGF0aWMgdm9pZCBzbGlwX2Nsb3NlKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkp CiAJCXJldHVybjsKIAogCXNwaW5fbG9ja19iaCgmc2wtPmxvY2spOwotCXR0eS0+ZGlzY19kYXRh ID0gTlVMTDsKKwlyY3VfYXNzaWduX3BvaW50ZXIodHR5LT5kaXNjX2RhdGEsIE5VTEwpOwogCXNs LT50dHkgPSBOVUxMOwogCXNwaW5fdW5sb2NrX2JoKCZzbC0+bG9jayk7CiAKKwlzeW5jaHJvbml6 ZV9yY3UoKTsKIAlmbHVzaF93b3JrKCZzbC0+dHhfd29yayk7CiAKIAkvKiBWU1YgPSB2ZXJ5IGlt cG9ydGFudCB0byByZW1vdmUgdGltZXJzICovCi0tIAoyLjIxLjEKCgpGcm9tIGM3ZDc2YmRlZWE5 NDBjN2QxMzRlMjBkZWI1ZGU3YjMxYzg3YWYxNjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFdlbndlbiBXYW5nIDx3ZW53ZW5AY3MudWdhLmVkdT4KRGF0ZTogU2F0LCAyNSBKYW4gMjAy MCAxNDozMzoyOSArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMTddIGZpcmVzdHJlYW06IGZpeCBt ZW1vcnkgbGVha3MKClsgVXBzdHJlYW0gY29tbWl0IGZhODY1YmExODNkNjFjMWVjOGNiY2FiODU3 MzE1OWMzYjcyYjg5YTQgXQoKSW4gZnNfb3BlbigpLCAndmNjJyBpcyBhbGxvY2F0ZWQgdGhyb3Vn aCBrbWFsbG9jKCkgYW5kIGFzc2lnbmVkIHRvCidhdG1fdmNjLT5kZXZfZGF0YS4nIEluIHRoZSBm b2xsb3dpbmcgZXhlY3V0aW9uLCBpZiBhbiBlcnJvciBvY2N1cnMsIGUuZy4sCnRoZXJlIGlzIG5v IG1vcmUgZnJlZSBjaGFubmVsLCBhbiBlcnJvciBjb2RlIEVCVVNZIG9yIEVOT01FTSB3aWxsIGJl CnJldHVybmVkLiBIb3dldmVyLCAndmNjJyBpcyBub3QgZGVhbGxvY2F0ZWQsIGxlYWRpbmcgdG8g bWVtb3J5IGxlYWtzLiBOb3RlCnRoYXQsIGluIG5vcm1hbCBjYXNlcyB3aGVyZSBmc19vcGVuKCkg cmV0dXJucyAwLCAndmNjJyB3aWxsIGJlIGRlYWxsb2NhdGVkCmluIGZzX2Nsb3NlKCkuIEJ1dCwg aWYgZnNfb3BlbigpIGZhaWxzLCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdApmc19jbG9zZSgp IHdpbGwgYmUgaW52b2tlZC4KClRvIGZpeCB0aGlzIGlzc3VlLCBkZWFsbG9jYXRlICd2Y2MnIGJl Zm9yZSB0aGUgZXJyb3IgY29kZSBpcyByZXR1cm5lZC4KClNpZ25lZC1vZmYtYnk6IFdlbndlbiBX YW5nIDx3ZW53ZW5AY3MudWdhLmVkdT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvYXRtL2ZpcmVzdHJlYW0uYyB8IDMgKysr CiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9h dG0vZmlyZXN0cmVhbS5jIGIvZHJpdmVycy9hdG0vZmlyZXN0cmVhbS5jCmluZGV4IDRlNDZkYzll NDFhZC4uMTEyYjEwMDFjMjY5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0bS9maXJlc3RyZWFtLmMK KysrIGIvZHJpdmVycy9hdG0vZmlyZXN0cmVhbS5jCkBAIC05MjcsNiArOTI3LDcgQEAgc3RhdGlj IGludCBmc19vcGVuKHN0cnVjdCBhdG1fdmNjICphdG1fdmNjKQogCQkJfQogCQkJaWYgKCF0bykg ewogCQkJCXByaW50ayAoIk5vIG1vcmUgZnJlZSBjaGFubmVscyBmb3IgRlM1MC4uXG4iKTsKKwkJ CQlrZnJlZSh2Y2MpOwogCQkJCXJldHVybiAtRUJVU1k7CiAJCQl9CiAJCQl2Y2MtPmNoYW5ubyA9 IGRldi0+Y2hhbm5vOwpAQCAtOTM3LDYgKzkzOCw3IEBAIHN0YXRpYyBpbnQgZnNfb3BlbihzdHJ1 Y3QgYXRtX3ZjYyAqYXRtX3ZjYykKIAkJCWlmICgoKERPX0RJUkVDVElPTihyeHRwKSAmJiBkZXYt PmF0bV92Y2NzW3ZjYy0+Y2hhbm5vXSkpIHx8CiAJCQkgICAgKCBET19ESVJFQ1RJT04odHh0cCkg JiYgdGVzdF9iaXQgKHZjYy0+Y2hhbm5vLCBkZXYtPnR4X2ludXNlKSkpIHsKIAkJCQlwcmludGsg KCJDaGFubmVsIGlzIGluIHVzZSBmb3IgRlMxNTUuXG4iKTsKKwkJCQlrZnJlZSh2Y2MpOwogCQkJ CXJldHVybiAtRUJVU1k7CiAJCQl9CiAJCX0KQEAgLTk1MCw2ICs5NTIsNyBAQCBzdGF0aWMgaW50 IGZzX29wZW4oc3RydWN0IGF0bV92Y2MgKmF0bV92Y2MpCiAJCQkgICAgdGMsIHNpemVvZiAoc3Ry dWN0IGZzX3RyYW5zbWl0X2NvbmZpZykpOwogCQlpZiAoIXRjKSB7CiAJCQlmc19kcHJpbnRrIChG U19ERUJVR19PUEVOLCAiZnM6IGNhbid0IGFsbG9jIHRyYW5zbWl0X2NvbmZpZy5cbiIpOworCQkJ a2ZyZWUodmNjKTsKIAkJCXJldHVybiAtRU5PTUVNOwogCQl9CiAKLS0gCjIuMjEuMQoKCkZyb20g YjkwNWI2Y2ZjOGM5NTIzNmE2MGE2YmY1MjY2ZGNjMzQ3YjIwNDZjOSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBU dWUsIDIxIEphbiAyMDIwIDIzOjE3OjE0IC0wODAwClN1YmplY3Q6IFtQQVRDSCAwMy8xN10gZ3Rw OiBtYWtlIHN1cmUgb25seSBTT0NLX0RHUkFNIFVEUCBzb2NrZXRzIGFyZSBhY2NlcHRlZAoKWyBV cHN0cmVhbSBjb21taXQgOTQwYmExNDk4NjY1N2E1MGMxNWY2OTRlZmNhMWJlYmEzMWZhNTY4ZiBd CgpBIG1hbGljaW91cyB1c2VyIGNvdWxkIHVzZSBSQVcgc29ja2V0cyBhbmQgZm9vbApHVFAgdXNp bmcgdGhlbSBhcyBzdGFuZGFyZCBTT0NLX0RHUkFNIFVEUCBzb2NrZXRzLgoKQlVHOiBLTVNBTjog dW5pbml0LXZhbHVlIGluIHVkcF90dW5uZWxfZW5jYXBfZW5hYmxlIGluY2x1ZGUvbmV0L3VkcF90 dW5uZWwuaDoxNzQgW2lubGluZV0KQlVHOiBLTVNBTjogdW5pbml0LXZhbHVlIGluIHNldHVwX3Vk cF90dW5uZWxfc29jaysweDQ1ZS8weDZmMCBuZXQvaXB2NC91ZHBfdHVubmVsLmM6ODUKQ1BVOiAw IFBJRDogMTEyNjIgQ29tbTogc3l6LWV4ZWN1dG9yNjEzIE5vdCB0YWludGVkIDUuNS4wLXJjNS1z eXprYWxsZXIgIzAKSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9H b29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToK IF9fZHVtcF9zdGFjayBsaWIvZHVtcF9zdGFjay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4 MWM5LzB4MjIwIGxpYi9kdW1wX3N0YWNrLmM6MTE4CiBrbXNhbl9yZXBvcnQrMHhmNy8weDFlMCBt bS9rbXNhbi9rbXNhbl9yZXBvcnQuYzoxMTgKIF9fbXNhbl93YXJuaW5nKzB4NTgvMHhhMCBtbS9r bXNhbi9rbXNhbl9pbnN0ci5jOjIxNQogdWRwX3R1bm5lbF9lbmNhcF9lbmFibGUgaW5jbHVkZS9u ZXQvdWRwX3R1bm5lbC5oOjE3NCBbaW5saW5lXQogc2V0dXBfdWRwX3R1bm5lbF9zb2NrKzB4NDVl LzB4NmYwIG5ldC9pcHY0L3VkcF90dW5uZWwuYzo4NQogZ3RwX2VuY2FwX2VuYWJsZV9zb2NrZXQr MHgzN2YvMHg1YTAgZHJpdmVycy9uZXQvZ3RwLmM6ODI3CiBndHBfZW5jYXBfZW5hYmxlIGRyaXZl cnMvbmV0L2d0cC5jOjg0NCBbaW5saW5lXQogZ3RwX25ld2xpbmsrMHhmYi8weDFlNTAgZHJpdmVy cy9uZXQvZ3RwLmM6NjY2CiBfX3J0bmxfbmV3bGluayBuZXQvY29yZS9ydG5ldGxpbmsuYzozMzA1 IFtpbmxpbmVdCiBydG5sX25ld2xpbmsrMHgyOTczLzB4MzkyMCBuZXQvY29yZS9ydG5ldGxpbmsu YzozMzYzCiBydG5ldGxpbmtfcmN2X21zZysweDExNTMvMHgxNTcwIG5ldC9jb3JlL3J0bmV0bGlu ay5jOjU0MjQKIG5ldGxpbmtfcmN2X3NrYisweDQ1MS8weDY1MCBuZXQvbmV0bGluay9hZl9uZXRs aW5rLmM6MjQ3NwogcnRuZXRsaW5rX3JjdisweDUwLzB4NjAgbmV0L2NvcmUvcnRuZXRsaW5rLmM6 NTQ0MgogbmV0bGlua191bmljYXN0X2tlcm5lbCBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmM6MTMw MiBbaW5saW5lXQogbmV0bGlua191bmljYXN0KzB4ZjllLzB4MTEwMCBuZXQvbmV0bGluay9hZl9u ZXRsaW5rLmM6MTMyOAogbmV0bGlua19zZW5kbXNnKzB4MTI0OC8weDE0ZDAgbmV0L25ldGxpbmsv YWZfbmV0bGluay5jOjE5MTcKIHNvY2tfc2VuZG1zZ19ub3NlYyBuZXQvc29ja2V0LmM6NjM5IFtp bmxpbmVdCiBzb2NrX3NlbmRtc2cgbmV0L3NvY2tldC5jOjY1OSBbaW5saW5lXQogX19fX3N5c19z ZW5kbXNnKzB4MTJiNi8weDEzNTAgbmV0L3NvY2tldC5jOjIzMzAKIF9fX3N5c19zZW5kbXNnIG5l dC9zb2NrZXQuYzoyMzg0IFtpbmxpbmVdCiBfX3N5c19zZW5kbXNnKzB4NDUxLzB4NWYwIG5ldC9z b2NrZXQuYzoyNDE3CiBfX2RvX3N5c19zZW5kbXNnIG5ldC9zb2NrZXQuYzoyNDI2IFtpbmxpbmVd CiBfX3NlX3N5c19zZW5kbXNnKzB4OTcvMHhiMCBuZXQvc29ja2V0LmM6MjQyNAogX194NjRfc3lz X3NlbmRtc2crMHg0YS8weDcwIG5ldC9zb2NrZXQuYzoyNDI0CiBkb19zeXNjYWxsXzY0KzB4Yjgv MHgxNjAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjk2CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVy X2h3ZnJhbWUrMHg0NC8weGE5ClJJUDogMDAzMzoweDQ0MTM1OQpDb2RlOiBlOCBhYyBlOCBmZiBm ZiA0OCA4MyBjNCAxOCBjMyAwZiAxZiA4MCAwMCAwMCAwMCAwMCA0OCA4OSBmOCA0OCA4OSBmNyA0 OCA4OSBkNiA0OCA4OSBjYSA0ZCA4OSBjMiA0ZCA4OSBjOCA0YyA4YiA0YyAyNCAwOCAwZiAwNSA8 NDg+IDNkIDAxIGYwIGZmIGZmIDBmIDgzIGViIDA4IGZjIGZmIGMzIDY2IDJlIDBmIDFmIDg0IDAw IDAwIDAwIDAwClJTUDogMDAyYjowMDAwN2ZmZjFjZDBhYzI4IEVGTEFHUzogMDAwMDAyNDYgT1JJ R19SQVg6IDAwMDAwMDAwMDAwMDAwMmUKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAw MDAwMDAwMDAwMCBSQ1g6IDAwMDAwMDAwMDA0NDEzNTkKUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJT STogMDAwMDAwMDAyMDAwMDEwMCBSREk6IDAwMDAwMDAwMDAwMDAwMDMKUkJQOiAwMDAwMDAwMDAw NmNiMDE4IFIwODogMDAwMDAwMDAwMDQwMDJjOCBSMDk6IDAwMDAwMDAwMDA0MDAyYzgKUjEwOiAw MDAwMDAwMDAwNDAwMmM4IFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDAwMDAwMDA0MDIw ZDAKUjEzOiAwMDAwMDAwMDAwNDAyMTYwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAw MDAwMDAwMDAwMDAKClVuaW5pdCB3YXMgY3JlYXRlZCBhdDoKIGttc2FuX3NhdmVfc3RhY2tfd2l0 aF9mbGFncysweDNjLzB4OTAgbW0va21zYW4va21zYW4uYzoxNDQKIGttc2FuX2ludGVybmFsX2Fs bG9jX21ldGFfZm9yX3BhZ2VzIG1tL2ttc2FuL2ttc2FuX3NoYWRvdy5jOjMwNyBbaW5saW5lXQog a21zYW5fYWxsb2NfcGFnZSsweDEyYS8weDMxMCBtbS9rbXNhbi9rbXNhbl9zaGFkb3cuYzozMzYK IF9fYWxsb2NfcGFnZXNfbm9kZW1hc2srMHg1N2YyLzB4NWY2MCBtbS9wYWdlX2FsbG9jLmM6NDgw MAogYWxsb2NfcGFnZXNfY3VycmVudCsweDY3ZC8weDk5MCBtbS9tZW1wb2xpY3kuYzoyMjA3CiBh bGxvY19wYWdlcyBpbmNsdWRlL2xpbnV4L2dmcC5oOjUzNCBbaW5saW5lXQogYWxsb2Nfc2xhYl9w YWdlKzB4MTExLzB4MTJmMCBtbS9zbHViLmM6MTUxMQogYWxsb2NhdGVfc2xhYiBtbS9zbHViLmM6 MTY1NiBbaW5saW5lXQogbmV3X3NsYWIrMHgyYmMvMHgxMTMwIG1tL3NsdWIuYzoxNzIyCiBuZXdf c2xhYl9vYmplY3RzIG1tL3NsdWIuYzoyNDczIFtpbmxpbmVdCiBfX19zbGFiX2FsbG9jKzB4MTUz My8weDFmMzAgbW0vc2x1Yi5jOjI2MjQKIF9fc2xhYl9hbGxvYyBtbS9zbHViLmM6MjY2NCBbaW5s aW5lXQogc2xhYl9hbGxvY19ub2RlIG1tL3NsdWIuYzoyNzM4IFtpbmxpbmVdCiBzbGFiX2FsbG9j IG1tL3NsdWIuYzoyNzgzIFtpbmxpbmVdCiBrbWVtX2NhY2hlX2FsbG9jKzB4YjIzLzB4ZDcwIG1t L3NsdWIuYzoyNzg4CiBza19wcm90X2FsbG9jKzB4ZjIvMHg2MjAgbmV0L2NvcmUvc29jay5jOjE1 OTcKIHNrX2FsbG9jKzB4ZjAvMHhiZTAgbmV0L2NvcmUvc29jay5jOjE2NTcKIGluZXRfY3JlYXRl KzB4N2M3LzB4MTM3MCBuZXQvaXB2NC9hZl9pbmV0LmM6MzIxCiBfX3NvY2tfY3JlYXRlKzB4OGVi LzB4ZjAwIG5ldC9zb2NrZXQuYzoxNDIwCiBzb2NrX2NyZWF0ZSBuZXQvc29ja2V0LmM6MTQ3MSBb aW5saW5lXQogX19zeXNfc29ja2V0KzB4MWExLzB4NjAwIG5ldC9zb2NrZXQuYzoxNTEzCiBfX2Rv X3N5c19zb2NrZXQgbmV0L3NvY2tldC5jOjE1MjIgW2lubGluZV0KIF9fc2Vfc3lzX3NvY2tldCsw eDhkLzB4YjAgbmV0L3NvY2tldC5jOjE1MjAKIF9feDY0X3N5c19zb2NrZXQrMHg0YS8weDcwIG5l dC9zb2NrZXQuYzoxNTIwCiBkb19zeXNjYWxsXzY0KzB4YjgvMHgxNjAgYXJjaC94ODYvZW50cnkv Y29tbW9uLmM6Mjk2CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5CgpG aXhlczogNDU5YWE2NjBlYjFkICgiZ3RwOiBhZGQgaW5pdGlhbCBkcml2ZXIgZm9yIGRhdGFwYXRo IG9mIEdQUlMgVHVubmVsaW5nIFByb3RvY29sIChHVFAtVSkiKQpTaWduZWQtb2ZmLWJ5OiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBQYWJsbyBOZWlyYSA8cGFibG9AbmV0 ZmlsdGVyLm9yZz4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC9ndHAuYyB8IDEwICsrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv Z3RwLmMgYi9kcml2ZXJzL25ldC9ndHAuYwppbmRleCA2NTcxY2FjNmU3ODYuLmVlMDg2NDQxZGNi ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZ3RwLmMKKysrIGIvZHJpdmVycy9uZXQvZ3RwLmMK QEAgLTgwOSwxOSArODA5LDIxIEBAIHN0YXRpYyBzdHJ1Y3Qgc29jayAqZ3RwX2VuY2FwX2VuYWJs ZV9zb2NrZXQoaW50IGZkLCBpbnQgdHlwZSwKIAkJcmV0dXJuIE5VTEw7CiAJfQogCi0JaWYgKHNv Y2stPnNrLT5za19wcm90b2NvbCAhPSBJUFBST1RPX1VEUCkgeworCXNrID0gc29jay0+c2s7CisJ aWYgKHNrLT5za19wcm90b2NvbCAhPSBJUFBST1RPX1VEUCB8fAorCSAgICBzay0+c2tfdHlwZSAh PSBTT0NLX0RHUkFNIHx8CisJICAgIChzay0+c2tfZmFtaWx5ICE9IEFGX0lORVQgJiYgc2stPnNr X2ZhbWlseSAhPSBBRl9JTkVUNikpIHsKIAkJcHJfZGVidWcoInNvY2tldCBmZD0lZCBub3QgVURQ XG4iLCBmZCk7CiAJCXNrID0gRVJSX1BUUigtRUlOVkFMKTsKIAkJZ290byBvdXRfc29jazsKIAl9 CiAKLQlsb2NrX3NvY2soc29jay0+c2spOwotCWlmIChzb2NrLT5zay0+c2tfdXNlcl9kYXRhKSB7 CisJbG9ja19zb2NrKHNrKTsKKwlpZiAoc2stPnNrX3VzZXJfZGF0YSkgewogCQlzayA9IEVSUl9Q VFIoLUVCVVNZKTsKIAkJZ290byBvdXRfcmVsX3NvY2s7CiAJfQogCi0Jc2sgPSBzb2NrLT5zazsK IAlzb2NrX2hvbGQoc2spOwogCiAJdHVuY2ZnLnNrX3VzZXJfZGF0YSA9IGd0cDsKLS0gCjIuMjEu MQoKCkZyb20gZTZkMTFmMWRkZTI5NzQ4ZTYyZDY1YTdiN2NiNzY1YWQ5ZTRkNjU1OCBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWXVraSBUYWd1Y2hpIDx0YWd5b3VuaXRAZ21haWwuY29t PgpEYXRlOiBNb24sIDIwIEphbiAyMDIwIDEzOjQ4OjM3ICswOTAwClN1YmplY3Q6IFtQQVRDSCAw NC8xN10gaXB2Njogc3I6IHJlbW92ZSBTS0JfR1NPX0lQWElQNiBvbiBFbmQuRCogYWN0aW9ucwoK WyBVcHN0cmVhbSBjb21taXQgNjJlYmFlYWVkZWU3NTkxYzI1NzU0M2QwNDA2NzdhNjBlMzVjN2Fl YyBdCgpBZnRlciBMUk8vR1JPIGlzIGFwcGxpZWQsIFNSdjYgZW5jYXBzdWxhdGVkIHBhY2tldHMg aGF2ZQpTS0JfR1NPX0lQWElQNiBmZWF0dXJlIGZsYWcsIGFuZCB0aGlzIGZsYWcgbXVzdCBiZSBy ZW1vdmVkIHJpZ2h0IGFmdGVyCmRlY2FwdWxhdGlvbiBwcm9jZWR1cmUuCgpDdXJyZW50bHksIFNL Ql9HU09fSVBYSVA2IGZsYWcgaXMgbm90IHJlbW92ZWQgb24gRW5kLkQqIGFjdGlvbnMsIHdoaWNo CmNyZWF0ZXMgaW5jb25zaXN0ZW50IHBhY2tldCBzdGF0ZSwgdGhhdCBpcywgYSBub3JtYWwgVENQ L0lQIHBhY2tldHMKaGF2ZSB0aGUgU0tCX0dTT19JUFhJUDYgZmxhZy4gVGhpcyBiZWhhdmlvciBj YW4gY2F1c2UgdW5leHBlY3RlZApmYWxsYmFjayB0byBHU08gb24gcm91dGluZyB0byBuZXRkZXZp Y2VzIHRoYXQgZG8gbm90IHN1cHBvcnQKU0tCX0dTT19JUFhJUDYuIEZvciBleGFtcGxlLCBvbiBp bnRlci1WUkYgZm9yd2FyZGluZywgZGVjYXBzdWxhdGVkCnBhY2tldHMgc2VwYXJhdGVkIGludG8g c21hbGwgcGFja2V0cyBieSBHU08gYmVjYXVzZSBWUkYgZGV2aWNlcyBkbyBub3QKc3VwcG9ydCBU U08gZm9yIHBhY2tldHMgd2l0aCBTS0JfR1NPX0lQWElQNiBmbGFnLCBhbmQgdGhpcyBkZWdyYWRl cwpmb3J3YXJkaW5nIHBlcmZvcm1hbmNlLgoKVGhpcyBwYXRjaCByZW1vdmVzIGVuY2Fwc3VsYXRp b24gcmVsYXRlZCBHU08gZmxhZ3MgZnJvbSB0aGUgc2tiIHJpZ2h0CmFmdGVyIHRoZSBFbmQuRCog YWN0aW9uIGlzIGFwcGxpZWQuCgpGaXhlczogZDdhNjY5ZGQyZjhiICgiaXB2Njogc3I6IGFkZCBo ZWxwZXIgZnVuY3Rpb25zIGZvciBzZWc2bG9jYWwiKQpTaWduZWQtb2ZmLWJ5OiBZdWtpIFRhZ3Vj aGkgPHRhZ3lvdW5pdEBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9zZWc2X2xvY2FsLmMgfCA0ICsrKy0K IDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9uZXQvaXB2Ni9zZWc2X2xvY2FsLmMgYi9uZXQvaXB2Ni9zZWc2X2xvY2FsLmMKaW5kZXgg NjAzMjVkYmZlODhiLi42MDc3MDlhODg0N2MgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3NlZzZfbG9j YWwuYworKysgYi9uZXQvaXB2Ni9zZWc2X2xvY2FsLmMKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNs dWRlIDxuZXQvYWRkcmNvbmYuaD4KICNpbmNsdWRlIDxuZXQvaXA2X3JvdXRlLmg+CiAjaW5jbHVk ZSA8bmV0L2RzdF9jYWNoZS5oPgorI2luY2x1ZGUgPG5ldC9pcF90dW5uZWxzLmg+CiAjaWZkZWYg Q09ORklHX0lQVjZfU0VHNl9ITUFDCiAjaW5jbHVkZSA8bmV0L3NlZzZfaG1hYy5oPgogI2VuZGlm CkBAIC0xMzUsNyArMTM2LDggQEAgc3RhdGljIGJvb2wgZGVjYXBfYW5kX3ZhbGlkYXRlKHN0cnVj dCBza19idWZmICpza2IsIGludCBwcm90bykKIAogCXNrYl9yZXNldF9uZXR3b3JrX2hlYWRlcihz a2IpOwogCXNrYl9yZXNldF90cmFuc3BvcnRfaGVhZGVyKHNrYik7Ci0Jc2tiLT5lbmNhcHN1bGF0 aW9uID0gMDsKKwlpZiAoaXB0dW5uZWxfcHVsbF9vZmZsb2Fkcyhza2IpKQorCQlyZXR1cm4gZmFs c2U7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KLS0gCjIuMjEuMQoKCkZyb20gOGFjNTllOGNlYTlkZDJk NWYxMDYzMTYzZTZlYzQ5OGM0NDQ2MGM4NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+CkRhdGU6IFRodSwgMjMgSmFu IDIwMjAgMDk6NDk6MzQgLTA4MDAKU3ViamVjdDogW1BBVENIIDA1LzE3XSBuZXQ6IGJjbWdlbmV0 OiBVc2UgbmV0aWZfdHhfbmFwaV9hZGQoKSBmb3IgVFggTkFQSQoKWyBVcHN0cmVhbSBjb21taXQg MTQ4OTY1ZGYxYTk5MGFmOThiMmM4NDA5MmMyYTIyNzRjNzQ4OTI4NCBdCgpCZWZvcmUgY29tbWl0 IDc1ODc5MzVjZmExMSAoIm5ldDogYmNtZ2VuZXQ6IG1vdmUgTkFQSSBpbml0aWFsaXphdGlvbiB0 bwpyaW5nIGluaXRpYWxpemF0aW9uIikgbW92ZWQgdGhlIGNvZGUsIHRoaXMgdXNlZCB0byBiZQpu ZXRpZl90eF9uYXBpX2FkZCgpLCBidXQgd2UgbG9zdCB0aGF0IHNtYWxsIHNlbWFudGljIGNoYW5n ZSBpbiB0aGUKcHJvY2VzcywgcmVzdG9yZSB0aGF0LgoKRml4ZXM6IDc1ODc5MzVjZmExMSAoIm5l dDogYmNtZ2VuZXQ6IG1vdmUgTkFQSSBpbml0aWFsaXphdGlvbiB0byByaW5nIGluaXRpYWxpemF0 aW9uIikKU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5j b20+CkFja2VkLWJ5OiBEb3VnIEJlcmdlciA8b3BlbmRtYkBnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5jIHwgNCArKy0tCiAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5jCmluZGV4IGI3ZDc1MDExY2VkZS4uNzM2 YTZhNWZiZDk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5l dC9iY21nZW5ldC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2Jj bWdlbmV0LmMKQEAgLTIxNjYsOCArMjE2Niw4IEBAIHN0YXRpYyB2b2lkIGJjbWdlbmV0X2luaXRf dHhfcmluZyhzdHJ1Y3QgYmNtZ2VuZXRfcHJpdiAqcHJpdiwKIAkJCQkgIERNQV9FTkRfQUREUik7 CiAKIAkvKiBJbml0aWFsaXplIFR4IE5BUEkgKi8KLQluZXRpZl9uYXBpX2FkZChwcml2LT5kZXYs ICZyaW5nLT5uYXBpLCBiY21nZW5ldF90eF9wb2xsLAotCQkgICAgICAgTkFQSV9QT0xMX1dFSUdI VCk7CisJbmV0aWZfdHhfbmFwaV9hZGQocHJpdi0+ZGV2LCAmcmluZy0+bmFwaSwgYmNtZ2VuZXRf dHhfcG9sbCwKKwkJCSAgTkFQSV9QT0xMX1dFSUdIVCk7CiB9CiAKIC8qIEluaXRpYWxpemUgYSBS RE1BIHJpbmcgKi8KLS0gCjIuMjEuMQoKCkZyb20gNzhhNmIwNzk5MWE0MWUwZDBiNDliZGRkNzgz ZWE5M2E0Mjk4M2NjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWljaGFlbCBFbGxl cm1hbiA8bXBlQGVsbGVybWFuLmlkLmF1PgpEYXRlOiBGcmksIDI0IEphbiAyMDIwIDIwOjQxOjQ0 ICsxMTAwClN1YmplY3Q6IFtQQVRDSCAwNi8xN10gbmV0OiBjeGdiM19tYWluOiBBZGQgQ0FQX05F VF9BRE1JTiBjaGVjayB0bwogQ0hFTFNJT19HRVRfTUVNCgpbIFVwc3RyZWFtIGNvbW1pdCAzNTQ2 ZDhmMWJiZTk5MjQ4OGVkOTE1OTJjZjZiZjc2ZTcxMTQ3OTFhID0KClRoZSBjeGdiMyBkcml2ZXIg Zm9yICJDaGVsc2lvIFQzLWJhc2VkIGdpZ2FiaXQgYW5kIDEwR2IgRXRoZXJuZXQKYWRhcHRlcnMi IGltcGxlbWVudHMgYSBjdXN0b20gaW9jdGwgYXMgU0lPQ0NISU9DVEwvU0lPQ0RFVlBSSVZBVEUg aW4KY3hnYl9leHRlbnNpb25faW9jdGwoKS4KCk9uZSBvZiB0aGUgc3ViY29tbWFuZHMgb2YgdGhl IGlvY3RsIGlzIENIRUxTSU9fR0VUX01FTSwgd2hpY2ggYXBwZWFycwp0byByZWFkIG1lbW9yeSBk aXJlY3RseSBvdXQgb2YgdGhlIGFkYXB0ZXIgYW5kIHJldHVybiBpdCB0byB1c2Vyc3BhY2UuCkl0 J3Mgbm90IGVudGlyZWx5IGNsZWFyIHdoYXQgdGhlIGNvbnRlbnRzIG9mIHRoZSBhZGFwdGVyIG1l bW9yeQpjb250YWlucywgYnV0IHRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgaXQgc2hvdWxkbid0IGJl IGFjY2Vzc2libGUgdG8gYWxsCnVzZXJzLgoKU28gYWRkIGEgQ0FQX05FVF9BRE1JTiBjaGVjayB0 byB0aGUgQ0hFTFNJT19HRVRfTUVNIGNhc2UuIFB1dCBpdCBhZnRlcgp0aGUgaXNfb2ZmbG9hZCgp IGNoZWNrLCB3aGljaCBtYXRjaGVzIHR3byBvZiB0aGUgb3RoZXIgc3ViY29tbWFuZHMgaW4KdGhl IHNhbWUgZnVuY3Rpb24gd2hpY2ggYWxzbyBjaGVjayBmb3IgaXNfb2ZmbG9hZCgpIGFuZCBDQVBf TkVUX0FETUlOLgoKRm91bmQgYnkgSWxqYSBieSBjb2RlIGluc3BlY3Rpb24sIG5vdCB0ZXN0ZWQg YXMgSSBkb24ndCBoYXZlIHRoZQpyZXF1aXJlZCBoYXJkd2FyZS4KClJlcG9ydGVkLWJ5OiBJbGph IFZhbiBTcHJ1bmRlbCA8aXZhbnNwcnVuZGVsQGlvYWN0aXZlLmNvbT4KU2lnbmVkLW9mZi1ieTog TWljaGFlbCBFbGxlcm1hbiA8bXBlQGVsbGVybWFuLmlkLmF1PgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvY2hlbHNpby9jeGdiMy9jeGdiM19tYWluLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9j eGdiMy9jeGdiM19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2IzL2N4 Z2IzX21haW4uYwppbmRleCA2YmU2ZGUwNzc0YjYuLmM4MjQ2OWFiN2FiYSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiMy9jeGdiM19tYWluLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiMy9jeGdiM19tYWluLmMKQEAgLTI0NDksNiAr MjQ0OSw4IEBAIHN0YXRpYyBpbnQgY3hnYl9leHRlbnNpb25faW9jdGwoc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwgdm9pZCBfX3VzZXIgKnVzZXJhZGRyKQogCiAJCWlmICghaXNfb2ZmbG9hZChhZGFw dGVyKSkKIAkJCXJldHVybiAtRU9QTk9UU1VQUDsKKwkJaWYgKCFjYXBhYmxlKENBUF9ORVRfQURN SU4pKQorCQkJcmV0dXJuIC1FUEVSTTsKIAkJaWYgKCEoYWRhcHRlci0+ZmxhZ3MgJiBGVUxMX0lO SVRfRE9ORSkpCiAJCQlyZXR1cm4gLUVJTzsJLyogbmVlZCB0aGUgbWVtb3J5IGNvbnRyb2xsZXJz ICovCiAJCWlmIChjb3B5X2Zyb21fdXNlcigmdCwgdXNlcmFkZHIsIHNpemVvZih0KSkpCi0tIAoy LjIxLjEKCgpGcm9tIDA0NjRmNmJmNjdhNTJmMzEyZTkyNDRlNWQzODc2M2I2ODc1ZWE2MzcgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa28gS29ydHN0cm9tIDxuaWtvLmtvcnRzdHJv bUBub2tpYS5jb20+CkRhdGU6IFRodSwgMTYgSmFuIDIwMjAgMTE6NDM6MjcgKzAyMDAKU3ViamVj dDogW1BBVENIIDA3LzE3XSBuZXQ6IGlwNl9ncmU6IGZpeCBtb3ZpbmcgaXA2Z3JlIGJldHdlZW4g bmFtZXNwYWNlcwoKWyBVcHN0cmVhbSBjb21taXQgNjkwYWZjMTY1YmIzMTQzNTQ2NjdmNjcxNTdj MWExYWVhN2RjNzk3YSBdCgpTdXBwb3J0IGZvciBtb3ZpbmcgSVB2NCBHUkUgdHVubmVscyBiZXR3 ZWVuIG5hbWVzcGFjZXMgd2FzIGFkZGVkIGluCmNvbW1pdCBiNTc3MDhhZGQzMTQgKCJncmU6IGFk ZCB4LW5ldG5zIHN1cHBvcnQiKS4gVGhlIHJlc3BlY3RpdmUgY2hhbmdlCmZvciBJUHY2IHR1bm5l bHMsIGNvbW1pdCAyMmYwODA2OWU4YjQgKCJpcDZncmU6IGFkZCB4LW5ldG5zIHN1cHBvcnQiKQpk aWQgbm90IGRyb3AgTkVUSUZfRl9ORVROU19MT0NBTCBmbGFnIHNvIG1vdmluZyB0aGVtIGZyb20g b25lIG5ldG5zIHRvCmFub3RoZXIgaXMgc3RpbGwgZGVuaWVkIGluIElQdjYgY2FzZS4gRHJvcCBO RVRJRl9GX05FVE5TX0xPQ0FMIGZsYWcgZnJvbQppcDZncmUgdHVubmVscyB0byBhbGxvdyBtb3Zp bmcgaXA2Z3JlIHR1bm5lbCBlbmRwb2ludHMgYmV0d2VlbiBuZXR3b3JrCm5hbWVzcGFjZXMuCgpT aWduZWQtb2ZmLWJ5OiBOaWtvIEtvcnRzdHJvbSA8bmlrby5rb3J0c3Ryb21Abm9raWEuY29tPgpB Y2tlZC1ieTogTmljb2xhcyBEaWNodGVsIDxuaWNvbGFzLmRpY2h0ZWxANndpbmQuY29tPgpBY2tl ZC1ieTogV2lsbGlhbSBUdSA8dTkwMTIwNjNAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X2dyZS5j IHwgMyAtLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC9pcHY2L2lwNl9ncmUuYyBiL25ldC9pcHY2L2lwNl9ncmUuYwppbmRleCBiMzUxNWE0ZjEzMDMu LmZiYzQ3OGI2ZGFmMSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9p cHY2L2lwNl9ncmUuYwpAQCAtMTQ4Niw3ICsxNDg2LDYgQEAgc3RhdGljIGludCBpcDZncmVfdHVu bmVsX2luaXRfY29tbW9uKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCWRldi0+bXR1IC09IDg7 CiAKIAlpZiAodHVubmVsLT5wYXJtcy5jb2xsZWN0X21kKSB7Ci0JCWRldi0+ZmVhdHVyZXMgfD0g TkVUSUZfRl9ORVROU19MT0NBTDsKIAkJbmV0aWZfa2VlcF9kc3QoZGV2KTsKIAl9CiAJaXA2Z3Jl X3RubF9pbml0X2ZlYXR1cmVzKGRldik7CkBAIC0xOTE0LDcgKzE5MTMsNiBAQCBzdGF0aWMgdm9p ZCBpcDZncmVfdGFwX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJZGV2LT5uZWVkc19m cmVlX25ldGRldiA9IHRydWU7CiAJZGV2LT5wcml2X2Rlc3RydWN0b3IgPSBpcDZncmVfZGV2X2Zy ZWU7CiAKLQlkZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfTkVUTlNfTE9DQUw7CiAJZGV2LT5wcml2 X2ZsYWdzICY9IH5JRkZfVFhfU0tCX1NIQVJJTkc7CiAJZGV2LT5wcml2X2ZsYWdzIHw9IElGRl9M SVZFX0FERFJfQ0hBTkdFOwogCW5ldGlmX2tlZXBfZHN0KGRldik7CkBAIC0yMjIyLDcgKzIyMjAs NiBAQCBzdGF0aWMgdm9pZCBpcDZlcnNwYW5fdGFwX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYpCiAJZGV2LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7CiAJZGV2LT5wcml2X2Rlc3RydWN0 b3IgPSBpcDZncmVfZGV2X2ZyZWU7CiAKLQlkZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfTkVUTlNf TE9DQUw7CiAJZGV2LT5wcml2X2ZsYWdzICY9IH5JRkZfVFhfU0tCX1NIQVJJTkc7CiAJZGV2LT5w cml2X2ZsYWdzIHw9IElGRl9MSVZFX0FERFJfQ0hBTkdFOwogCW5ldGlmX2tlZXBfZHN0KGRldik7 Ci0tIAoyLjIxLjEKCgpGcm9tIGM3ZWMxMDU0NTZhZTFmNzM3MWU0ZDdlODY1MDQ1MjY1ZGEzMGYx YTggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdpbGxpYW0gRGF1Y2h5IDx3LmRhdWNo eUBjcml0ZW8uY29tPgpEYXRlOiBUdWUsIDIxIEphbiAyMDIwIDIxOjQ5OjU0ICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAwOC8xN10gbmV0LCBpcDZfdHVubmVsOiBmaXggbmFtZXNwYWNlcyBtb3ZlCgpb IFVwc3RyZWFtIGNvbW1pdCA1MzExYTY5YWFjYTMwZmE4NDljM2NjNDZmYjI1Zjc1NzI3ZmI3MmQw IF0KCmluIHRoZSBzYW1lIG1hbm5lciBhcyBjb21taXQgZDBmNDE4NTE2MDIyICgibmV0LCBpcF90 dW5uZWw6IGZpeApuYW1lc3BhY2VzIG1vdmUiKSwgZml4IG5hbWVzcGFjZSBtb3ZpbmcgYXMgaXQg d2FzIGJyb2tlbiBzaW5jZSBjb21taXQKOGQ3OTI2NmJjNDhjICgiaXA2X3R1bm5lbDogYWRkIGNv bGxlY3RfbWQgbW9kZSB0byBJUHY2IHR1bm5lbCIpLCBidXQgZm9yCmlwdjYgdGhpcyB0aW1lOyB0 aGVyZSBpcyBubyByZWFzb24gdG8ga2VlcCBpdCBmb3IgaXA2X3R1bm5lbC4KCkZpeGVzOiA4ZDc5 MjY2YmM0OGMgKCJpcDZfdHVubmVsOiBhZGQgY29sbGVjdF9tZCBtb2RlIHRvIElQdjYgdHVubmVs IikKU2lnbmVkLW9mZi1ieTogV2lsbGlhbSBEYXVjaHkgPHcuZGF1Y2h5QGNyaXRlby5jb20+CkFj a2VkLWJ5OiBOaWNvbGFzIERpY2h0ZWwgPG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv aXB2Ni9pcDZfdHVubmVsLmMgfCA0ICstLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfdHVubmVsLmMgYi9u ZXQvaXB2Ni9pcDZfdHVubmVsLmMKaW5kZXggZTNiNDIzN2IyODMyLi44ZTcwYTAxNWM3OTIgMTAw NjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl90dW5uZWwuYworKysgYi9uZXQvaXB2Ni9pcDZfdHVubmVs LmMKQEAgLTE4ODIsMTAgKzE4ODIsOCBAQCBzdGF0aWMgaW50IGlwNl90bmxfZGV2X2luaXQoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldikKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCWlwNl90bmxf bGlua19jb25maWcodCk7Ci0JaWYgKHQtPnBhcm1zLmNvbGxlY3RfbWQpIHsKLQkJZGV2LT5mZWF0 dXJlcyB8PSBORVRJRl9GX05FVE5TX0xPQ0FMOworCWlmICh0LT5wYXJtcy5jb2xsZWN0X21kKQog CQluZXRpZl9rZWVwX2RzdChkZXYpOwotCX0KIAlyZXR1cm4gMDsKIH0KIAotLSAKMi4yMS4xCgoK RnJvbSA5NTE0ZmQ0MDM2NmIyMjg4NTRhYWYyN2Q2NTcwYTVlN2Q5N2E1NTVmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBXaWxsaWFtIERhdWNoeSA8dy5kYXVjaHlAY3JpdGVvLmNvbT4K RGF0ZTogVHVlLCAyMSBKYW4gMjAyMCAxNToyNjoyNCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDkv MTddIG5ldCwgaXBfdHVubmVsOiBmaXggbmFtZXNwYWNlcyBtb3ZlCgpbIFVwc3RyZWFtIGNvbW1p dCBkMGY0MTg1MTYwMjJjMzJlY2NlYWY0Mjc1NDIzZTViZDNmODc0M2E5IF0KCmluIHRoZSBzYW1l IG1hbm5lciBhcyBjb21taXQgNjkwYWZjMTY1YmIzICgibmV0OiBpcDZfZ3JlOiBmaXggbW92aW5n CmlwNmdyZSBiZXR3ZWVuIG5hbWVzcGFjZXMiKSwgZml4IG5hbWVzcGFjZSBtb3ZpbmcgYXMgaXQg d2FzIGJyb2tlbiBzaW5jZQpjb21taXQgMmUxNWVhMzkwZTZmICgiaXBfZ3JlOiBBZGQgc3VwcG9y dCB0byBjb2xsZWN0IHR1bm5lbCBtZXRhZGF0YS4iKS4KSW5kZWVkLCB0aGUgaXA2X2dyZSBjb21t aXQgcmVtb3ZlZCB0aGUgbG9jYWwgZmxhZyBmb3IgY29sbGVjdF9tZApjb25kaXRpb24sIHNvIHRo ZXJlIGlzIG5vIHJlYXNvbiB0byBrZWVwIGl0IGZvciBpcF9ncmUvaXBfdHVubmVsLgoKdGhpcyBw YXRjaCB3aWxsIGZpeCBib3RoIGlwX3R1bm5lbCBhbmQgaXBfZ3JlIG1vZHVsZXMuCgpGaXhlczog MmUxNWVhMzkwZTZmICgiaXBfZ3JlOiBBZGQgc3VwcG9ydCB0byBjb2xsZWN0IHR1bm5lbCBtZXRh ZGF0YS4iKQpTaWduZWQtb2ZmLWJ5OiBXaWxsaWFtIERhdWNoeSA8dy5kYXVjaHlAY3JpdGVvLmNv bT4KQWNrZWQtYnk6IE5pY29sYXMgRGljaHRlbCA8bmljb2xhcy5kaWNodGVsQDZ3aW5kLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9pcHY0L2lwX3R1bm5lbC5jIHwgNCArLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfdHVubmVsLmMg Yi9uZXQvaXB2NC9pcF90dW5uZWwuYwppbmRleCA0MjBlODkxYWM1OWQuLjNlMDM0OTMwN2U0OCAx MDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfdHVubmVsLmMKKysrIGIvbmV0L2lwdjQvaXBfdHVubmVs LmMKQEAgLTEyMDIsMTAgKzEyMDIsOCBAQCBpbnQgaXBfdHVubmVsX2luaXQoc3RydWN0IG5ldF9k ZXZpY2UgKmRldikKIAlpcGgtPnZlcnNpb24JCT0gNDsKIAlpcGgtPmlobAkJPSA1OwogCi0JaWYg KHR1bm5lbC0+Y29sbGVjdF9tZCkgewotCQlkZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfTkVUTlNf TE9DQUw7CisJaWYgKHR1bm5lbC0+Y29sbGVjdF9tZCkKIAkJbmV0aWZfa2VlcF9kc3QoZGV2KTsK LQl9CiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChpcF90dW5uZWxfaW5pdCk7Ci0t IAoyLjIxLjEKCgpGcm9tIDkxYzNlMmM4YTNmNmExMTQ5NWRhMDgzMWFkYmNmNzMzNzQ5NDMzOTgg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KRGF0ZTogVHVlLCAyMSBKYW4gMjAyMCAyMjo0NzoyOSAtMDgwMApTdWJqZWN0OiBb UEFUQ0ggMTAvMTddIG5ldDogcnRuZXRsaW5rOiB2YWxpZGF0ZSBJRkxBX01UVSBhdHRyaWJ1dGUg aW4KIHJ0bmxfY3JlYXRlX2xpbmsoKQoKWyBVcHN0cmVhbSBjb21taXQgZDgzNmY1YzY5ZDg3NDcz ZmY2NWMwNmE2MTIzZTViMmNmNWU1NmY1YiBdCgpydG5sX2NyZWF0ZV9saW5rKCkgbmVlZHMgdG8g YXBwbHkgZGV2LT5taW5fbXR1IGFuZCBkZXYtPm1heF9tdHUKY2hlY2tzIHRoYXQgd2UgYXBwbHkg aW4gZG9fc2V0bGluaygpCgpPdGhlcndpc2UgbWFsaWNpb3VzIHVzZXJzIGNhbiBjcmFzaCB0aGUg a2VybmVsLCBmb3IgZXhhbXBsZSBhZnRlcgphbiBpbnRlZ2VyIG92ZXJmbG93IDoKCkJVRzogS0FT QU46IHVzZS1hZnRlci1mcmVlIGluIG1lbXNldCBpbmNsdWRlL2xpbnV4L3N0cmluZy5oOjM2NSBb aW5saW5lXQpCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBpbiBfX2FsbG9jX3NrYisweDM3Yi8w eDVlMCBuZXQvY29yZS9za2J1ZmYuYzoyMzgKV3JpdGUgb2Ygc2l6ZSAzMiBhdCBhZGRyIGZmZmY4 ODgxOWYyMGI5YzAgYnkgdGFzayBzd2FwcGVyLzAvMAoKQ1BVOiAwIFBJRDogMCBDb21tOiBzd2Fw cGVyLzAgTm90IHRhaW50ZWQgNS41LjAtcmMxLXN5emthbGxlciAjMApIYXJkd2FyZSBuYW1lOiBH b29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBH b29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogPElSUT4KIF9fZHVtcF9zdGFjayBsaWIvZHVt cF9zdGFjay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MTk3LzB4MjEwIGxpYi9kdW1wX3N0 YWNrLmM6MTE4CiBwcmludF9hZGRyZXNzX2Rlc2NyaXB0aW9uLmNvbnN0cHJvcC4wLmNvbGQrMHhk NC8weDMwYiBtbS9rYXNhbi9yZXBvcnQuYzozNzQKIF9fa2FzYW5fcmVwb3J0LmNvbGQrMHgxYi8w eDQxIG1tL2thc2FuL3JlcG9ydC5jOjUwNgoga2FzYW5fcmVwb3J0KzB4MTIvMHgyMCBtbS9rYXNh bi9jb21tb24uYzo2MzkKIGNoZWNrX21lbW9yeV9yZWdpb25faW5saW5lIG1tL2thc2FuL2dlbmVy aWMuYzoxODUgW2lubGluZV0KIGNoZWNrX21lbW9yeV9yZWdpb24rMHgxMzQvMHgxYTAgbW0va2Fz YW4vZ2VuZXJpYy5jOjE5MgogbWVtc2V0KzB4MjQvMHg0MCBtbS9rYXNhbi9jb21tb24uYzoxMDgK IG1lbXNldCBpbmNsdWRlL2xpbnV4L3N0cmluZy5oOjM2NSBbaW5saW5lXQogX19hbGxvY19za2Ir MHgzN2IvMHg1ZTAgbmV0L2NvcmUvc2tidWZmLmM6MjM4CiBhbGxvY19za2IgaW5jbHVkZS9saW51 eC9za2J1ZmYuaDoxMDQ5IFtpbmxpbmVdCiBhbGxvY19za2Jfd2l0aF9mcmFncysweDkzLzB4NTkw IG5ldC9jb3JlL3NrYnVmZi5jOjU2NjQKIHNvY2tfYWxsb2Nfc2VuZF9wc2tiKzB4N2FkLzB4OTIw IG5ldC9jb3JlL3NvY2suYzoyMjQyCiBzb2NrX2FsbG9jX3NlbmRfc2tiKzB4MzIvMHg0MCBuZXQv Y29yZS9zb2NrLmM6MjI1OQogbWxkX25ld3BhY2srMHgxZDcvMHg3ZjAgbmV0L2lwdjYvbWNhc3Qu YzoxNjA5CiBhZGRfZ3JoZWFkLmlzcmEuMCsweDI5OS8weDM3MCBuZXQvaXB2Ni9tY2FzdC5jOjE3 MTMKIGFkZF9ncmVjKzB4N2RiLzB4MTBiMCBuZXQvaXB2Ni9tY2FzdC5jOjE4NDQKIG1sZF9zZW5k X2NyIG5ldC9pcHY2L21jYXN0LmM6MTk3MCBbaW5saW5lXQogbWxkX2lmY190aW1lcl9leHBpcmUr MHgzZDMvMHg5NTAgbmV0L2lwdjYvbWNhc3QuYzoyNDc3CiBjYWxsX3RpbWVyX2ZuKzB4MWFjLzB4 NzgwIGtlcm5lbC90aW1lL3RpbWVyLmM6MTQwNAogZXhwaXJlX3RpbWVycyBrZXJuZWwvdGltZS90 aW1lci5jOjE0NDkgW2lubGluZV0KIF9fcnVuX3RpbWVycyBrZXJuZWwvdGltZS90aW1lci5jOjE3 NzMgW2lubGluZV0KIF9fcnVuX3RpbWVycyBrZXJuZWwvdGltZS90aW1lci5jOjE3NDAgW2lubGlu ZV0KIHJ1bl90aW1lcl9zb2Z0aXJxKzB4NmMzLzB4MTc5MCBrZXJuZWwvdGltZS90aW1lci5jOjE3 ODYKIF9fZG9fc29mdGlycSsweDI2Mi8weDk4YyBrZXJuZWwvc29mdGlycS5jOjI5MgogaW52b2tl X3NvZnRpcnEga2VybmVsL3NvZnRpcnEuYzozNzMgW2lubGluZV0KIGlycV9leGl0KzB4MTliLzB4 MWUwIGtlcm5lbC9zb2Z0aXJxLmM6NDEzCiBleGl0aW5nX2lycSBhcmNoL3g4Ni9pbmNsdWRlL2Fz bS9hcGljLmg6NTM2IFtpbmxpbmVdCiBzbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQrMHgxYTMvMHg2 MTAgYXJjaC94ODYva2VybmVsL2FwaWMvYXBpYy5jOjExMzcKIGFwaWNfdGltZXJfaW50ZXJydXB0 KzB4Zi8weDIwIGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlM6ODI5CiA8L0lSUT4KUklQOiAwMDEw Om5hdGl2ZV9zYWZlX2hhbHQrMHhlLzB4MTAgYXJjaC94ODYvaW5jbHVkZS9hc20vaXJxZmxhZ3Mu aDo2MQpDb2RlOiA5OCA2YiBlYSBmOSBlYiA4YSBjYyBjYyBjYyBjYyBjYyBjYyBlOSAwNyAwMCAw MCAwMCAwZiAwMCAyZCA0NCAxYyA2MCAwMCBmNCBjMyA2NiA5MCBlOSAwNyAwMCAwMCAwMCAwZiAw MCAyZCAzNCAxYyA2MCAwMCBmYiBmNCA8YzM+IGNjIDU1IDQ4IDg5IGU1IDQxIDU3IDQxIDU2IDQx IDU1IDQxIDU0IDUzIGU4IDRlIDVkIDlhIGY5IGU4IDc5ClJTUDogMDAxODpmZmZmZmZmZjg5ODA3 Y2U4IEVGTEFHUzogMDAwMDAyODYgT1JJR19SQVg6IGZmZmZmZmZmZmZmZmZmMTMKUkFYOiAxZmZm ZmZmZmYxMzI2NmFlIFJCWDogZmZmZmZmZmY4OTg3YTFjMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDAK UkRYOiBkZmZmZmMwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAwMDAwMDAwNiBSREk6IGZmZmZmZmZm ODk4N2FhNTQKUkJQOiBmZmZmZmZmZjg5ODA3ZDE4IFIwODogZmZmZmZmZmY4OTg3YTFjMCBSMDk6 IDAwMDAwMDAwMDAwMDAwMDAKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAw MDAwMCBSMTI6IGRmZmZmYzAwMDAwMDAwMDAKUjEzOiBmZmZmZmZmZjhhNzk5OTgwIFIxNDogMDAw MDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKIGFyY2hfY3B1X2lkbGUrMHhhLzB4 MTAgYXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYzo2OTAKIGRlZmF1bHRfaWRsZV9jYWxsKzB4ODQv MHhiMCBrZXJuZWwvc2NoZWQvaWRsZS5jOjk0CiBjcHVpZGxlX2lkbGVfY2FsbCBrZXJuZWwvc2No ZWQvaWRsZS5jOjE1NCBbaW5saW5lXQogZG9faWRsZSsweDNjOC8weDZlMCBrZXJuZWwvc2NoZWQv aWRsZS5jOjI2OQogY3B1X3N0YXJ0dXBfZW50cnkrMHgxYi8weDIwIGtlcm5lbC9zY2hlZC9pZGxl LmM6MzYxCiByZXN0X2luaXQrMHgyM2IvMHgzNzEgaW5pdC9tYWluLmM6NDUxCiBhcmNoX2NhbGxf cmVzdF9pbml0KzB4ZS8weDFiCiBzdGFydF9rZXJuZWwrMHg5MDQvMHg5NDMgaW5pdC9tYWluLmM6 Nzg0CiB4ODZfNjRfc3RhcnRfcmVzZXJ2YXRpb25zKzB4MjkvMHgyYiBhcmNoL3g4Ni9rZXJuZWwv aGVhZDY0LmM6NDkwCiB4ODZfNjRfc3RhcnRfa2VybmVsKzB4NzcvMHg3YiBhcmNoL3g4Ni9rZXJu ZWwvaGVhZDY0LmM6NDcxCiBzZWNvbmRhcnlfc3RhcnR1cF82NCsweGE0LzB4YjAgYXJjaC94ODYv a2VybmVsL2hlYWRfNjQuUzoyNDIKClRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIHBh Z2U6CnBhZ2U6ZmZmZmVhMDAwNjdjODJjMCByZWZjb3VudDowIG1hcGNvdW50OjAgbWFwcGluZzow MDAwMDAwMDAwMDAwMDAwIGluZGV4OjB4MApyYXc6IDA1N2ZmZTAwMDAwMDAwMDAgZmZmZmVhMDAw NjdjODJjOCBmZmZmZWEwMDA2N2M4MmM4IDAwMDAwMDAwMDAwMDAwMDAKcmF3OiAwMDAwMDAwMDAw MDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDBmZmZmZmZmZiAwMDAwMDAwMDAwMDAwMDAw CnBhZ2UgZHVtcGVkIGJlY2F1c2U6IGthc2FuOiBiYWQgYWNjZXNzIGRldGVjdGVkCgpNZW1vcnkg c3RhdGUgYXJvdW5kIHRoZSBidWdneSBhZGRyZXNzOgogZmZmZjg4ODE5ZjIwYjg4MDogZmYgZmYg ZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYKIGZmZmY4ODgxOWYyMGI5 MDA6IGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmCj5mZmZm ODg4MTlmMjBiOTgwOiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBm ZiBmZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogZmZmZjg4 ODE5ZjIwYmEwMDogZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYg ZmYKIGZmZmY4ODgxOWYyMGJhODA6IGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZm IGZmIGZmIGZmIGZmCgpGaXhlczogNjFlODQ2MjNhY2UzICgibmV0OiBjZW50cmFsaXplIG5ldF9k ZXZpY2UgbWluL21heCBNVFUgY2hlY2tpbmciKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29n bGVncm91cHMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaCB8ICAyICsrCiBuZXQvY29y ZS9kZXYuYyAgICAgICAgICAgIHwgMjkgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIG5l dC9jb3JlL3J0bmV0bGluay5jICAgICAgfCAxMyArKysrKysrKysrKy0tCiAzIGZpbGVzIGNoYW5n ZWQsIDMyIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvbmV0ZGV2aWNlLmggYi9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCmluZGV4IGQ1 NTI3ZTM4MjhkMS4uODRiYmRjYmIxOTlhIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L25ldGRl dmljZS5oCisrKyBiL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKQEAgLTM1NzksNiArMzU3OSw4 IEBAIGludCBkZXZfc2V0X2FsaWFzKHN0cnVjdCBuZXRfZGV2aWNlICosIGNvbnN0IGNoYXIgKiwg c2l6ZV90KTsKIGludCBkZXZfZ2V0X2FsaWFzKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICosIGNo YXIgKiwgc2l6ZV90KTsKIGludCBkZXZfY2hhbmdlX25ldF9uYW1lc3BhY2Uoc3RydWN0IG5ldF9k ZXZpY2UgKiwgc3RydWN0IG5ldCAqLCBjb25zdCBjaGFyICopOwogaW50IF9fZGV2X3NldF9tdHUo c3RydWN0IG5ldF9kZXZpY2UgKiwgaW50KTsKK2ludCBkZXZfdmFsaWRhdGVfbXR1KHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIGludCBtdHUsCisJCSAgICAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAq ZXh0YWNrKTsKIGludCBkZXZfc2V0X210dV9leHQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50 IG10dSwKIAkJICAgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjayk7CiBpbnQgZGV2X3Nl dF9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKiwgaW50KTsKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rl di5jIGIvbmV0L2NvcmUvZGV2LmMKaW5kZXggYTI2ZDg3MDczZjcxLi4zYTI4NTA0ZmJlM2IgMTAw NjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC03NzgxLDYg Kzc3ODEsMjIgQEAgaW50IF9fZGV2X3NldF9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50 IG5ld19tdHUpCiB9CiBFWFBPUlRfU1lNQk9MKF9fZGV2X3NldF9tdHUpOwogCitpbnQgZGV2X3Zh bGlkYXRlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgbmV3X210dSwKKwkJICAgICBz dHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spCit7CisJLyogTVRVIG11c3QgYmUgcG9zaXRp dmUsIGFuZCBpbiByYW5nZSAqLworCWlmIChuZXdfbXR1IDwgMCB8fCBuZXdfbXR1IDwgZGV2LT5t aW5fbXR1KSB7CisJCU5MX1NFVF9FUlJfTVNHKGV4dGFjaywgIm10dSBsZXNzIHRoYW4gZGV2aWNl IG1pbmltdW0iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKGRldi0+bWF4X210dSA+ IDAgJiYgbmV3X210dSA+IGRldi0+bWF4X210dSkgeworCQlOTF9TRVRfRVJSX01TRyhleHRhY2ss ICJtdHUgZ3JlYXRlciB0aGFuIGRldmljZSBtYXhpbXVtIik7CisJCXJldHVybiAtRUlOVkFMOwor CX0KKwlyZXR1cm4gMDsKK30KKwogLyoqCiAgKglkZXZfc2V0X210dV9leHQgLSBDaGFuZ2UgbWF4 aW11bSB0cmFuc2ZlciB1bml0CiAgKglAZGV2OiBkZXZpY2UKQEAgLTc3OTcsMTYgKzc4MTMsOSBA QCBpbnQgZGV2X3NldF9tdHVfZXh0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBuZXdfbXR1 LAogCWlmIChuZXdfbXR1ID09IGRldi0+bXR1KQogCQlyZXR1cm4gMDsKIAotCS8qIE1UVSBtdXN0 IGJlIHBvc2l0aXZlLCBhbmQgaW4gcmFuZ2UgKi8KLQlpZiAobmV3X210dSA8IDAgfHwgbmV3X210 dSA8IGRldi0+bWluX210dSkgewotCQlOTF9TRVRfRVJSX01TRyhleHRhY2ssICJtdHUgbGVzcyB0 aGFuIGRldmljZSBtaW5pbXVtIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChkZXYt Pm1heF9tdHUgPiAwICYmIG5ld19tdHUgPiBkZXYtPm1heF9tdHUpIHsKLQkJTkxfU0VUX0VSUl9N U0coZXh0YWNrLCAibXR1IGdyZWF0ZXIgdGhhbiBkZXZpY2UgbWF4aW11bSIpOwotCQlyZXR1cm4g LUVJTlZBTDsKLQl9CisJZXJyID0gZGV2X3ZhbGlkYXRlX210dShkZXYsIG5ld19tdHUsIGV4dGFj ayk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKIAogCWlmICghbmV0aWZfZGV2aWNlX3ByZXNl bnQoZGV2KSkKIAkJcmV0dXJuIC1FTk9ERVY7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9ydG5ldGxp bmsuYyBiL25ldC9jb3JlL3J0bmV0bGluay5jCmluZGV4IGRiYjNjMGM3YzEzMi4uZjUxOTczZjQ1 OGU0IDEwMDY0NAotLS0gYS9uZXQvY29yZS9ydG5ldGxpbmsuYworKysgYi9uZXQvY29yZS9ydG5l dGxpbmsuYwpAQCAtMjg3NSw4ICsyODc1LDE3IEBAIHN0cnVjdCBuZXRfZGV2aWNlICpydG5sX2Ny ZWF0ZV9saW5rKHN0cnVjdCBuZXQgKm5ldCwKIAlkZXYtPnJ0bmxfbGlua19vcHMgPSBvcHM7CiAJ ZGV2LT5ydG5sX2xpbmtfc3RhdGUgPSBSVE5MX0xJTktfSU5JVElBTElaSU5HOwogCi0JaWYgKHRi W0lGTEFfTVRVXSkKLQkJZGV2LT5tdHUgPSBubGFfZ2V0X3UzMih0YltJRkxBX01UVV0pOworCWlm ICh0YltJRkxBX01UVV0pIHsKKwkJdTMyIG10dSA9IG5sYV9nZXRfdTMyKHRiW0lGTEFfTVRVXSk7 CisJCWludCBlcnI7CisKKwkJZXJyID0gZGV2X3ZhbGlkYXRlX210dShkZXYsIG10dSwgTlVMTCk7 CisJCWlmIChlcnIpIHsKKwkJCWZyZWVfbmV0ZGV2KGRldik7CisJCQlyZXR1cm4gRVJSX1BUUihl cnIpOworCQl9CisJCWRldi0+bXR1ID0gbXR1OworCX0KIAlpZiAodGJbSUZMQV9BRERSRVNTXSkg ewogCQltZW1jcHkoZGV2LT5kZXZfYWRkciwgbmxhX2RhdGEodGJbSUZMQV9BRERSRVNTXSksCiAJ CQkJbmxhX2xlbih0YltJRkxBX0FERFJFU1NdKSk7Ci0tIAoyLjIxLjEKCgpGcm9tIGY1MGUyMzll YWEzMmJlNDE1YWMxZTNlMzEyN2U0OWM4ZjBmOGRmZTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwuY29tPgpEYXRlOiBXZWQsIDIy IEphbiAyMDIwIDE1OjQyOjAyIC0wODAwClN1YmplY3Q6IFtQQVRDSCAxMS8xN10gbmV0X3NjaGVk OiBmaXggZGF0YWxlbiBmb3IgZW1hdGNoCgpbIFVwc3RyZWFtIGNvbW1pdCA2MTY3OGQyOGQ0YTQ1 ZWYzNzZmNWQwMmE4MzljYzM3NTA5YWU5MjgxIF0KCnN5emJvdCByZXBvcnRlZCBhbiBvdXQtb2Yt Ym91bmQgYWNjZXNzIGluIGVtX25ieXRlLiBBcyBpbml0aWFsbHkKYW5hbHl6ZWQgYnkgRXJpYywg dGhpcyBpcyBiZWNhdXNlIGVtX25ieXRlIHNldHMgaXRzIG93biBlbS0+ZGF0YWxlbgppbiBlbV9u Ynl0ZV9jaGFuZ2UoKSBvdGhlciB0aGFuIHRoZSBvbmUgc3BlY2lmaWVkIGJ5IHVzZXIsIGJ1dCB0 aGlzCnZhbHVlIGdldHMgb3ZlcndyaXR0ZW4gbGF0ZXIgYnkgaXRzIGNhbGxlciB0Y2ZfZW1fdmFs aWRhdGUoKS4KV2Ugc2hvdWxkIGxlYXZlIGVtLT5kYXRhbGVuIHVudG91Y2hlZCB0byByZXNwZWN0 IHRoZWlyIGNob2ljZXMuCgpJIGF1ZGl0IGFsbCB0aGUgaW4tdHJlZSBlbWF0Y2ggdXNlcnMsIGFs bCBvZiB0aG9zZSBpbXBsZW1lbnQKLT5jaGFuZ2UoKSBzZXQgZW0tPmRhdGFsZW4sIHNvIHdlIGNh biBqdXN0IGF2b2lkIHNldHRpbmcgaXQgdHdpY2UKaW4gdGhpcyBjYXNlLgoKUmVwb3J0ZWQtYW5k LXRlc3RlZC1ieTogc3l6Ym90KzVhZjlhOTBkYWQ1NjhhYTlmNjExQHN5emthbGxlci5hcHBzcG90 bWFpbC5jb20KUmVwb3J0ZWQtYnk6IHN5emJvdCsyZjA3OTAzYTViMDVlN2YzNjQxMEBzeXprYWxs ZXIuYXBwc3BvdG1haWwuY29tCkZpeGVzOiAxZGExNzdlNGMzZjQgKCJMaW51eC0yLjYuMTItcmMy IikKQ2M6IEVyaWMgRHVtYXpldCA8ZXJpYy5kdW1hemV0QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc2NoZWQvZW1hdGNoLmMgfCAyICst CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9uZXQvc2NoZWQvZW1hdGNoLmMgYi9uZXQvc2NoZWQvZW1hdGNoLmMKaW5kZXggMTMzMWE0 YzJkOGZmLi43NTBkODhkMGNmZDkgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9lbWF0Y2guYworKysg Yi9uZXQvc2NoZWQvZW1hdGNoLmMKQEAgLTI2NywxMiArMjY3LDEyIEBAIHN0YXRpYyBpbnQgdGNm X2VtX3ZhbGlkYXRlKHN0cnVjdCB0Y2ZfcHJvdG8gKnRwLAogCQkJCX0KIAkJCQllbS0+ZGF0YSA9 ICh1bnNpZ25lZCBsb25nKSB2OwogCQkJfQorCQkJZW0tPmRhdGFsZW4gPSBkYXRhX2xlbjsKIAkJ fQogCX0KIAogCWVtLT5tYXRjaGlkID0gZW1faGRyLT5tYXRjaGlkOwogCWVtLT5mbGFncyA9IGVt X2hkci0+ZmxhZ3M7Ci0JZW0tPmRhdGFsZW4gPSBkYXRhX2xlbjsKIAllbS0+bmV0ID0gbmV0Owog CiAJZXJyID0gMDsKLS0gCjIuMjEuMQoKCkZyb20gODMwNGRmZmIzNTE5MzcxYzQ5NmU0YWNiOWE2 YzgyMTYwZTllMmFmMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm91bmkgSG9nYW5k ZXIgPGpvdW5pLmhvZ2FuZGVyQHVuaWtpZS5jb20+CkRhdGU6IE1vbiwgMjAgSmFuIDIwMjAgMDk6 NTE6MDMgKzAyMDAKU3ViamVjdDogW1BBVENIIDEyLzE3XSBuZXQtc3lzZnM6IEZpeCByZWZlcmVu Y2UgY291bnQgbGVhawoKWyBVcHN0cmVhbSBjb21taXQgY2I2MjZiZjU2NmViNDQzMzMxOGQzNTY4 MTI4NmM0OTRmMDRmZWRjYyBdCgpOZXRkZXZfcmVnaXN0ZXJfa29iamVjdCBpcyBjYWxsaW5nIGRl dmljZV9pbml0aWFsaXplLiBJbiBjYXNlIG9mIGVycm9yCnJlZmVyZW5jZSB0YWtlbiBieSBkZXZp Y2VfaW5pdGlhbGl6ZSBpcyBub3QgZ2l2ZW4gdXAuCgpEcml2ZXJzIGFyZSBzdXBwb3NlZCB0byBj YWxsIGZyZWVfbmV0ZGV2IGluIGNhc2Ugb2YgZXJyb3IuIEluIG5vbi1lcnJvcgpjYXNlIHRoZSBs YXN0IHJlZmVyZW5jZSBpcyBnaXZlbiB1cCB0aGVyZSBhbmQgZGV2aWNlIHJlbGVhc2Ugc2VxdWVu Y2UKaXMgdHJpZ2dlcmVkLiBJbiBlcnJvciBjYXNlIHRoaXMgcmVmZXJlbmNlIGlzIGtlcHQgYW5k IHRoZSByZWxlYXNlCnNlcXVlbmNlIGlzIG5ldmVyIHN0YXJ0ZWQuCgpGaXggdGhpcyBieSBzZXR0 aW5nIHJlZ19zdGF0ZSBhcyBORVRSRUdfVU5SRUdJU1RFUkVEIGlmIHJlZ2lzdGVyaW5nCmZhaWxz LgoKVGhpcyBpcyB0aGUgcm9vdGNhdXNlIGZvciBjb3VwbGUgb2YgbWVtb3J5IGxlYWtzIHJlcG9y dGVkIGJ5IFN5emthbGxlcjoKCkJVRzogbWVtb3J5IGxlYWsgdW5yZWZlcmVuY2VkIG9iamVjdCAw eGZmZmY4ODgwNjc1Y2EwMDggKHNpemUgMjU2KToKICBjb21tICJuZXRkZXZfcmVnaXN0ZXIiLCBw aWQgMjgxLCBqaWZmaWVzIDQyOTQ2OTY2NjMgKGFnZSA2LjgwOHMpCiAgaGV4IGR1bXAgKGZpcnN0 IDMyIGJ5dGVzKToKICAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIC4uLi4uLi4uLi4uLi4uLi4KICAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIC4uLi4uLi4uLi4uLi4uLi4KICBiYWNrdHJhY2U6CiAgICBbPDAw MDAwMDAwNThjYTQ3MTE+XSBrbWVtX2NhY2hlX2FsbG9jX3RyYWNlKzB4MTY3LzB4MjgwCiAgICBb PDAwMDAwMDAwMjM0MDAxOWI+XSBkZXZpY2VfYWRkKzB4ODgyLzB4MTc1MAogICAgWzwwMDAwMDAw MDFkNTg4YzNhPl0gbmV0ZGV2X3JlZ2lzdGVyX2tvYmplY3QrMHgxMjgvMHgzODAKICAgIFs8MDAw MDAwMDAxMWVmNTUzNT5dIHJlZ2lzdGVyX25ldGRldmljZSsweGExYi8weGYwMAogICAgWzwwMDAw MDAwMDdmY2YxYzk5Pl0gX190dW5fY2hyX2lvY3RsKzB4MjBkNS8weDNkZDAKICAgIFs8MDAwMDAw MDA2YTViN2IyYj5dIHR1bl9jaHJfaW9jdGwrMHgyZi8weDQwCiAgICBbPDAwMDAwMDAwZjMwZjgz NGE+XSBkb192ZnNfaW9jdGwrMHgxYzcvMHgxNTEwCiAgICBbPDAwMDAwMDAwZmJhMDYyZWE+XSBr c3lzX2lvY3RsKzB4OTkvMHhiMAogICAgWzwwMDAwMDAwMGIxYzFiOGQyPl0gX194NjRfc3lzX2lv Y3RsKzB4NzgvMHhiMAogICAgWzwwMDAwMDAwMDk4NGNhYmI5Pl0gZG9fc3lzY2FsbF82NCsweDE2 Zi8weDU4MAogICAgWzwwMDAwMDAwMDBiZGUwMzNkPl0gZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9o d2ZyYW1lKzB4NDQvMHhhOQogICAgWzwwMDAwMDAwMGU2Y2EyZDlmPl0gMHhmZmZmZmZmZmZmZmZm ZmZmCgpCVUc6IG1lbW9yeSBsZWFrCnVucmVmZXJlbmNlZCBvYmplY3QgMHhmZmZmODg4MDY2OGJh NTg4IChzaXplIDgpOgogIGNvbW0gImtvYmplY3Rfc2V0X25hbSIsIHBpZCAyODYsIGppZmZpZXMg NDI5NDcyNTI5NyAoYWdlIDkuODcxcykKICBoZXggZHVtcCAoZmlyc3QgOCBieXRlcyk6CiAgICA2 ZSA3MiAzMCAwMCBjYyBiZSBkZiAyYiAgICAgICAgICAgICAgICAgICAgICAgICAgbnIwLi4uLisK ICBiYWNrdHJhY2U6CiAgICBbPDAwMDAwMDAwYTMyMjMzMmE+XSBfX2ttYWxsb2NfdHJhY2tfY2Fs bGVyKzB4MTZlLzB4MjkwCiAgICBbPDAwMDAwMDAwMjM2ZmQyNmI+XSBrc3RyZHVwKzB4M2UvMHg3 MAogICAgWzwwMDAwMDAwMGRkNGEyODE1Pl0ga3N0cmR1cF9jb25zdCsweDNlLzB4NTAKICAgIFs8 MDAwMDAwMDA0OWEzNzdmYz5dIGt2YXNwcmludGZfY29uc3QrMHgxMGUvMHgxNjAKICAgIFs8MDAw MDAwMDA2MjdmYzcxMT5dIGtvYmplY3Rfc2V0X25hbWVfdmFyZ3MrMHg1Yi8weDE0MAogICAgWzww MDAwMDAwMDE5ZWVhYjA2Pl0gZGV2X3NldF9uYW1lKzB4YzAvMHhmMAogICAgWzwwMDAwMDAwMDY5 Y2IxMmJjPl0gbmV0ZGV2X3JlZ2lzdGVyX2tvYmplY3QrMHhjOC8weDMyMAogICAgWzwwMDAwMDAw MGYyZTgzNzMyPl0gcmVnaXN0ZXJfbmV0ZGV2aWNlKzB4YTFiLzB4ZjAwCiAgICBbPDAwMDAwMDAw OWUxZjU3Y2M+XSBfX3R1bl9jaHJfaW9jdGwrMHgyMGQ1LzB4M2RkMAogICAgWzwwMDAwMDAwMDlj NTYwNzg0Pl0gdHVuX2Nocl9pb2N0bCsweDJmLzB4NDAKICAgIFs8MDAwMDAwMDAwZDc1OWUwMj5d IGRvX3Zmc19pb2N0bCsweDFjNy8weDE1MTAKICAgIFs8MDAwMDAwMDAzNTFkN2MzMT5dIGtzeXNf aW9jdGwrMHg5OS8weGIwCiAgICBbPDAwMDAwMDAwODM5MDA0MGE+XSBfX3g2NF9zeXNfaW9jdGwr MHg3OC8weGIwCiAgICBbPDAwMDAwMDAwNTJkMTk2Yjc+XSBkb19zeXNjYWxsXzY0KzB4MTZmLzB4 NTgwCiAgICBbPDAwMDAwMDAwMTlhZjkyMzY+XSBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJh bWUrMHg0NC8weGE5CiAgICBbPDAwMDAwMDAwYmMzODQ1MzE+XSAweGZmZmZmZmZmZmZmZmZmZmYK CnYzIC0+IHY0OgogIFNldCByZWdfc3RhdGUgdG8gTkVUUkVHX1VOUkVHSVNURVJFRCBpZiByZWdp c3RlcmluZyBmYWlscwoKdjIgLT4gdjM6CiogUmVwbGFjZWQgQlVHX09OIHdpdGggV0FSTl9PTiBp biBmcmVlX25ldGRldiBhbmQgbmV0ZGV2X3JlbGVhc2UKCnYxIC0+IHYyOgoqIFJlbHlpbmcgb24g ZHJpdmVyIGNhbGxpbmcgZnJlZV9uZXRkZXYgcmF0aGVyIHRoYW4gY2FsbGluZwogIHB1dF9kZXZp Y2UgZGlyZWN0bHkgaW4gZXJyb3IgcGF0aAoKUmVwb3J0ZWQtYnk6IHN5emJvdCthZDhjYTQwZWNk Nzc4OTZkNTFlMkBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tCkNjOiBEYXZpZCBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+CkNjOiBHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBsaW51eGZv dW5kYXRpb24ub3JnPgpDYzogTHVrYXMgQnVsd2FobiA8bHVrYXMuYnVsd2FobkBnbWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IEpvdW5pIEhvZ2FuZGVyIDxqb3VuaS5ob2dhbmRlckB1bmlraWUuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2NvcmUvZGV2LmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYuYyBiL25ldC9jb3Jl L2Rldi5jCmluZGV4IDNhMjg1MDRmYmUzYi4uMWE0OGJkZmMzODEwIDEwMDY0NAotLS0gYS9uZXQv Y29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpAQCAtODczNCw4ICs4NzM0LDEwIEBAIGlu dCByZWdpc3Rlcl9uZXRkZXZpY2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJZ290byBlcnJf dW5pbml0OwogCiAJcmV0ID0gbmV0ZGV2X3JlZ2lzdGVyX2tvYmplY3QoZGV2KTsKLQlpZiAocmV0 KQorCWlmIChyZXQpIHsKKwkJZGV2LT5yZWdfc3RhdGUgPSBORVRSRUdfVU5SRUdJU1RFUkVEOwog CQlnb3RvIGVycl91bmluaXQ7CisJfQogCWRldi0+cmVnX3N0YXRlID0gTkVUUkVHX1JFR0lTVEVS RUQ7CiAKIAlfX25ldGRldl91cGRhdGVfZmVhdHVyZXMoZGV2KTsKLS0gCjIuMjEuMQoKCkZyb20g ZjI5OTg4M2IyNWMxNTEzYTY4OGVjZDhkNGVkZTI5MjJkOWEwOGZhZCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSmFtZXMgSHVnaGVzIDxqYW1lcy5odWdoZXNAcmFzcGJlcnJ5cGkub3Jn PgpEYXRlOiBNb24sIDIwIEphbiAyMDIwIDExOjEyOjQwICswMDAwClN1YmplY3Q6IFtQQVRDSCAx My8xN10gbmV0OiB1c2I6IGxhbjc4eHg6IEFkZCAubmRvX2ZlYXR1cmVzX2NoZWNrCgpbIFVwc3Ry ZWFtIGNvbW1pdCBjZTg5NjQ3NmM2NWQ3MmI0Yjk5ZmEwOWMyZjMzNDM2YjQxOThmMDM0IF0KCkFz IHJlcG9ydGVkIGJ5IEVyaWMgRHVtYXpldCwgdGhlcmUgYXJlIHN0aWxsIHNvbWUgb3V0c3RhbmRp bmcKY2FzZXMgd2hlcmUgdGhlIGRyaXZlciBkb2VzIG5vdCBoYW5kbGUgVFNPIGNvcnJlY3RseSB3 aGVuIHNrYidzCmFyZSBvdmVyIGEgY2VydGFpbiBzaXplLiBNb3N0IGNhc2VzIGhhdmUgYmVlbiBm aXhlZCwgdGhpcyBwYXRjaApzaG91bGQgZW5zdXJlIHRoYXQgZm9yd2FyZGVkIFNLQidzIHRoYXQg YXJlIGdyZWF0ZXIgdGhhbgpNQVhfU0lOR0xFX1BBQ0tFVF9TSVpFIC0gVFhfT1ZFUkhFQUQgYXJl IHNvZnR3YXJlIHNlZ21lbnRlZAphbmQgaGFuZGxlZCBjb3JyZWN0bHkuCgpTaWduZWQtb2ZmLWJ5 OiBKYW1lcyBIdWdoZXMgPGphbWVzLmh1Z2hlc0ByYXNwYmVycnlwaS5vcmc+ClJldmlld2VkLWJ5 OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC91c2IvbGFu Nzh4eC5jIHwgMTUgKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9u cygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMgYi9kcml2ZXJzL25l dC91c2IvbGFuNzh4eC5jCmluZGV4IDdkNzA4YWViNDU3Ni4uOTI1NDg4ODdkZjJmIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9sYW43 OHh4LmMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tZGlvLmg+CiAjaW5jbHVk ZSA8bGludXgvcGh5Lmg+CiAjaW5jbHVkZSA8bmV0L2lwNl9jaGVja3N1bS5oPgorI2luY2x1ZGUg PG5ldC92eGxhbi5oPgogI2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxp bnV4L2lycWRvbWFpbi5oPgogI2luY2x1ZGUgPGxpbnV4L2lycS5oPgpAQCAtMzY4Niw2ICszNjg3 LDE5IEBAIHN0YXRpYyB2b2lkIGxhbjc4eHhfdHhfdGltZW91dChzdHJ1Y3QgbmV0X2RldmljZSAq bmV0KQogCXRhc2tsZXRfc2NoZWR1bGUoJmRldi0+YmgpOwogfQogCitzdGF0aWMgbmV0ZGV2X2Zl YXR1cmVzX3QgbGFuNzh4eF9mZWF0dXJlc19jaGVjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJ CQkJc3RydWN0IG5ldF9kZXZpY2UgKm5ldGRldiwKKwkJCQkJCW5ldGRldl9mZWF0dXJlc190IGZl YXR1cmVzKQoreworCWlmIChza2ItPmxlbiArIFRYX09WRVJIRUFEID4gTUFYX1NJTkdMRV9QQUNL RVRfU0laRSkKKwkJZmVhdHVyZXMgJj0gfk5FVElGX0ZfR1NPX01BU0s7CisKKwlmZWF0dXJlcyA9 IHZsYW5fZmVhdHVyZXNfY2hlY2soc2tiLCBmZWF0dXJlcyk7CisJZmVhdHVyZXMgPSB2eGxhbl9m ZWF0dXJlc19jaGVjayhza2IsIGZlYXR1cmVzKTsKKworCXJldHVybiBmZWF0dXJlczsKK30KKwog c3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBsYW43OHh4X25ldGRldl9vcHMgPSB7 CiAJLm5kb19vcGVuCQk9IGxhbjc4eHhfb3BlbiwKIAkubmRvX3N0b3AJCT0gbGFuNzh4eF9zdG9w LApAQCAtMzY5OSw2ICszNzEzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29w cyBsYW43OHh4X25ldGRldl9vcHMgPSB7CiAJLm5kb19zZXRfZmVhdHVyZXMJPSBsYW43OHh4X3Nl dF9mZWF0dXJlcywKIAkubmRvX3ZsYW5fcnhfYWRkX3ZpZAk9IGxhbjc4eHhfdmxhbl9yeF9hZGRf dmlkLAogCS5uZG9fdmxhbl9yeF9raWxsX3ZpZAk9IGxhbjc4eHhfdmxhbl9yeF9raWxsX3ZpZCwK KwkubmRvX2ZlYXR1cmVzX2NoZWNrCT0gbGFuNzh4eF9mZWF0dXJlc19jaGVjaywKIH07CiAKIHN0 YXRpYyB2b2lkIGxhbjc4eHhfc3RhdF9tb25pdG9yKHN0cnVjdCB0aW1lcl9saXN0ICp0KQotLSAK Mi4yMS4xCgoKRnJvbSA2ZDUyOTAxMGUwNDc0ZjA1ZGJiZDMxMGQ5ODNjY2JmY2I5OGZhM2Y2IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5j b20+CkRhdGU6IFR1ZSwgMjEgSmFuIDIwMjAgMTY6NTA6NDkgKzAxMDAKU3ViamVjdDogW1BBVENI IDE0LzE3XSBSZXZlcnQgInVkcDogZG8gcm1lbSBidWxrIGZyZWUgZXZlbiBpZiB0aGUgcnggc2sg cXVldWUKIGlzIGVtcHR5IgoKWyBVcHN0cmVhbSBjb21taXQgZDM5Y2EyNTkwZDEwNzEyZjQxMmFk ZDdhODhlMWRkNDY3YTcyNDZmNCBdCgpUaGlzIHJldmVydHMgY29tbWl0IDBkNGE2NjA4ZjY4Yzc1 MzJkY2JmZWMyZWExMTUwYzk3NjE3NjdkMDMuCgpXaWxsZW0gcmVwb3J0ZWQgdGhhdCBhZnRlciBj b21taXQgMGQ0YTY2MDhmNjhjICgidWRwOiBkbyBybWVtIGJ1bGsKZnJlZSBldmVuIGlmIHRoZSBy eCBzayBxdWV1ZSBpcyBlbXB0eSIpIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGJ5CmFuIGFsbW9zdCBp ZGxlIHN5c3RlbSB3aXRoIG1hbnkgVURQIHNvY2tldHMgY2FuIGdyb3cgYSBsb3QuCgpGb3Igc3Rh YmxlIGtlcm5lbCBrZWVwIHRoZSBzb2x1dGlvbiBhcyBzaW1wbGUgYXMgcG9zc2libGUgYW5kIHJl dmVydAp0aGUgb2ZmZW5kaW5nIGNvbW1pdC4KClJlcG9ydGVkLWJ5OiBXaWxsZW0gZGUgQnJ1aWpu IDx3aWxsZW1kZWJydWlqbi5rZXJuZWxAZ21haWwuY29tPgpEaWFnbm9zZWQtYnk6IEVyaWMgRHVt YXpldCA8ZXJpYy5kdW1hemV0QGdtYWlsLmNvbT4KRml4ZXM6IDBkNGE2NjA4ZjY4YyAoInVkcDog ZG8gcm1lbSBidWxrIGZyZWUgZXZlbiBpZiB0aGUgcnggc2sgcXVldWUgaXMgZW1wdHkiKQpTaWdu ZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBXaWxs ZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC91ZHAuYyB8IDMgKyst CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L2lwdjQvdWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCAyZWVhZTA0NTViMTQu LjBlZjA0Y2RhMWIyNyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysrIGIvbmV0L2lwdjQv dWRwLmMKQEAgLTEzMDUsNyArMTMwNSw4IEBAIHN0YXRpYyB2b2lkIHVkcF9ybWVtX3JlbGVhc2Uo c3RydWN0IHNvY2sgKnNrLCBpbnQgc2l6ZSwgaW50IHBhcnRpYWwsCiAJaWYgKGxpa2VseShwYXJ0 aWFsKSkgewogCQl1cC0+Zm9yd2FyZF9kZWZpY2l0ICs9IHNpemU7CiAJCXNpemUgPSB1cC0+Zm9y d2FyZF9kZWZpY2l0OwotCQlpZiAoc2l6ZSA8IChzay0+c2tfcmN2YnVmID4+IDIpKQorCQlpZiAo c2l6ZSA8IChzay0+c2tfcmN2YnVmID4+IDIpICYmCisJCSAgICAhc2tiX3F1ZXVlX2VtcHR5KCZ1 cC0+cmVhZGVyX3F1ZXVlKSkKIAkJCXJldHVybjsKIAl9IGVsc2UgewogCQlzaXplICs9IHVwLT5m b3J3YXJkX2RlZmljaXQ7Ci0tIAoyLjIxLjEKCgpGcm9tIDk1ZDQwMDMwODkxNmQwOWFhNjkxMzg5 NTQ2Nzk2Yjk1NTEzYTg0ZTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdlbiBZYW5n IDx3ZW55YW5nQGxpbnV4LmFsaWJhYmEuY29tPgpEYXRlOiBNb24sIDIwIEphbiAyMDIwIDE4OjA0 OjU2ICswODAwClN1YmplY3Q6IFtQQVRDSCAxNS8xN10gdGNwX2JicjogaW1wcm92ZSBhcml0aG1l dGljIGRpdmlzaW9uIGluIGJicl91cGRhdGVfYncoKQoKWyBVcHN0cmVhbSBjb21taXQgNWIyZjFm MzA3MGI2NDQ3Yjc2MTc0ZWE4YmZiNzM5MGRjNjI1M2ViZCBdCgpkb19kaXYoKSBkb2VzIGEgNjQt YnktMzIgZGl2aXNpb24uIFVzZSBkaXY2NF9sb25nKCkgaW5zdGVhZCBvZiBpdAppZiB0aGUgZGl2 aXNvciBpcyBsb25nLCB0byBhdm9pZCB0cnVuY2F0aW9uIHRvIDMyLWJpdC4KQW5kIGFzIGEgbmlj ZSBzaWRlIGVmZmVjdCBhbHNvIGNsZWFucyB1cCB0aGUgZnVuY3Rpb24gYSBiaXQuCgpTaWduZWQt b2ZmLWJ5OiBXZW4gWWFuZyA8d2VueWFuZ0BsaW51eC5hbGliYWJhLmNvbT4KQ2M6IEVyaWMgRHVt YXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6ICJEYXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBk YXZlbWxvZnQubmV0PgpDYzogQWxleGV5IEt1em5ldHNvdiA8a3V6bmV0QG1zMi5pbnIuYWMucnU+ CkNjOiBIaWRlYWtpIFlPU0hJRlVKSSA8eW9zaGZ1amlAbGludXgtaXB2Ni5vcmc+CkNjOiBuZXRk ZXZAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnClNpZ25l ZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3Rj cF9iYnIuYyB8IDMgKy0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX2Jici5jIGIvbmV0L2lwdjQvdGNwX2Ji ci5jCmluZGV4IDAyZmYyZGRlOTYwOS4uYjM3MWU2NjUwMmMzIDEwMDY0NAotLS0gYS9uZXQvaXB2 NC90Y3BfYmJyLmMKKysrIGIvbmV0L2lwdjQvdGNwX2Jici5jCkBAIC02ODAsOCArNjgwLDcgQEAg c3RhdGljIHZvaWQgYmJyX3VwZGF0ZV9idyhzdHJ1Y3Qgc29jayAqc2ssIGNvbnN0IHN0cnVjdCBy YXRlX3NhbXBsZSAqcnMpCiAJICogYmFuZHdpZHRoIHNhbXBsZS4gRGVsaXZlcmVkIGlzIGluIHBh Y2tldHMgYW5kIGludGVydmFsX3VzIGluIHVTIGFuZAogCSAqIHJhdGlvIHdpbGwgYmUgPDwxIGZv ciBtb3N0IGNvbm5lY3Rpb25zLiBTbyBkZWxpdmVyZWQgaXMgZmlyc3Qgc2NhbGVkLgogCSAqLwot CWJ3ID0gKHU2NClycy0+ZGVsaXZlcmVkICogQldfVU5JVDsKLQlkb19kaXYoYncsIHJzLT5pbnRl cnZhbF91cyk7CisJYncgPSBkaXY2NF9sb25nKCh1NjQpcnMtPmRlbGl2ZXJlZCAqIEJXX1VOSVQs IHJzLT5pbnRlcnZhbF91cyk7CiAKIAkvKiBJZiB0aGlzIHNhbXBsZSBpcyBhcHBsaWNhdGlvbi1s aW1pdGVkLCBpdCBpcyBsaWtlbHkgdG8gaGF2ZSBhIHZlcnkKIAkgKiBsb3cgZGVsaXZlcmVkIGNv dW50IHRoYXQgcmVwcmVzZW50cyBhcHBsaWNhdGlvbiBiZWhhdmlvciByYXRoZXIgdGhhbgotLSAK Mi4yMS4xCgoKRnJvbSBjZjIyYmViZmZkNDhhZmVlNjJkZDM5MGE2ZTI5NGQzMmRiNDJiM2IyIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2ds ZS5jb20+CkRhdGU6IFdlZCwgMjIgSmFuIDIwMjAgMjE6MDM6MDAgLTA4MDAKU3ViamVjdDogW1BB VENIIDE2LzE3XSB0Y3A6IGRvIG5vdCBsZWF2ZSBkYW5nbGluZyBwb2ludGVycyBpbiB0cC0+aGln aGVzdF9zYWNrCgpbIFVwc3RyZWFtIGNvbW1pdCAyYmVjNDQ1ZjliZjM1ZTUyZTM5NWI5NzFkZjQ4 ZDNlMWU1ZGM3MDRhIF0KCkxhdGVzdCBjb21taXQgODUzNjk3NTA0ZGUwICgidGNwOiBGaXggaGln aGVzdF9zYWNrIGFuZCBoaWdoZXN0X3NhY2tfc2VxIikKYXBwYXJlbnRseSBhbGxvd2VkIHN5emJv dCB0byB0cmlnZ2VyIHZhcmlvdXMgY3Jhc2hlcyBpbiBUQ1Agc3RhY2sgWzFdCgpJIGJlbGlldmUg dGhpcyBjb21taXQgb25seSBtYWRlIHRoaW5ncyBlYXNpZXIgZm9yIHN5emJvdCB0byBmaW5kCml0 cyB3YXkgaW50byB0cmlnZ2VyaW5nIHVzZS1hZnRlci1mcmVlcy4gQnV0IHJlYWxseSB0aGUgYnVn cwpjb3VsZCBsZWFkIHRvIGJhZCBUQ1AgYmVoYXZpb3Igb3IgZXZlbiBwbGFpbiBjcmFzaGVzIGV2 ZW4gZm9yCm5vbiBtYWxpY2lvdXMgcGVlcnMuCgpJIGhhdmUgYXVkaXRlZCBhbGwgY2FsbHMgdG8g dGNwX3J0eF9xdWV1ZV91bmxpbmsoKSBhbmQKdGNwX3J0eF9xdWV1ZV91bmxpbmtfYW5kX2ZyZWUo KSBhbmQgbWFkZSBzdXJlIHRwLT5oaWdoZXN0X3NhY2sgd291bGQgYmUgdXBkYXRlZAppZiB3ZSBh cmUgcmVtb3ZpbmcgZnJvbSBydHggcXVldWUgdGhlIHNrYiB0aGF0IHRwLT5oaWdoZXN0X3NhY2sg cG9pbnRzIHRvLgoKVGhlc2UgdXBkYXRlcyB3ZXJlIG1pc3NpbmcgaW4gdGhyZWUgbG9jYXRpb25z IDoKCjEpIHRjcF9jbGVhbl9ydHhfcXVldWUoKSBbVGhpcyBvbmUgc2VlbXMgcXVpdGUgc2VyaW91 cywKICAgICAgICAgICAgICAgICAgICAgICAgICBJIGhhdmUgbm8gaWRlYSB3aHkgdGhpcyB3YXMg bm90IGNhdWdodCBlYXJsaWVyXQoKMikgdGNwX3J0eF9xdWV1ZV9wdXJnZSgpIFtQcm9iYWJseSBu b3QgYSBiaWcgZGVhbCBmb3Igbm9ybWFsIG9wZXJhdGlvbnNdCgozKSB0Y3Bfc2VuZF9zeW5hY2so KSAgICAgW1Byb2JhYmx5IG5vdCBhIGJpZyBkZWFsIGZvciBub3JtYWwgb3BlcmF0aW9uc10KClsx XQpCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBpbiB0Y3BfaGlnaGVzdF9zYWNrX3NlcSBpbmNs dWRlL25ldC90Y3AuaDoxODY0IFtpbmxpbmVdCkJVRzogS0FTQU46IHVzZS1hZnRlci1mcmVlIGlu IHRjcF9oaWdoZXN0X3NhY2tfc2VxIGluY2x1ZGUvbmV0L3RjcC5oOjE4NTYgW2lubGluZV0KQlVH OiBLQVNBTjogdXNlLWFmdGVyLWZyZWUgaW4gdGNwX2NoZWNrX3NhY2tfcmVvcmRlcmluZysweDMz Yy8weDNhMCBuZXQvaXB2NC90Y3BfaW5wdXQuYzo4OTEKUmVhZCBvZiBzaXplIDQgYXQgYWRkciBm ZmZmODg4MGE0ODhkMDY4IGJ5IHRhc2sga3NvZnRpcnFkLzEvMTYKCkNQVTogMSBQSUQ6IDE2IENv bW06IGtzb2Z0aXJxZC8xIE5vdCB0YWludGVkIDUuNS4wLXJjNS1zeXprYWxsZXIgIzAKSGFyZHdh cmUgbmFtZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdp bmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKIF9fZHVtcF9zdGFjayBsaWIv ZHVtcF9zdGFjay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MTk3LzB4MjEwIGxpYi9kdW1w X3N0YWNrLmM6MTE4CiBwcmludF9hZGRyZXNzX2Rlc2NyaXB0aW9uLmNvbnN0cHJvcC4wLmNvbGQr MHhkNC8weDMwYiBtbS9rYXNhbi9yZXBvcnQuYzozNzQKIF9fa2FzYW5fcmVwb3J0LmNvbGQrMHgx Yi8weDQxIG1tL2thc2FuL3JlcG9ydC5jOjUwNgoga2FzYW5fcmVwb3J0KzB4MTIvMHgyMCBtbS9r YXNhbi9jb21tb24uYzo2MzkKIF9fYXNhbl9yZXBvcnRfbG9hZDRfbm9hYm9ydCsweDE0LzB4MjAg bW0va2FzYW4vZ2VuZXJpY19yZXBvcnQuYzoxMzQKIHRjcF9oaWdoZXN0X3NhY2tfc2VxIGluY2x1 ZGUvbmV0L3RjcC5oOjE4NjQgW2lubGluZV0KIHRjcF9oaWdoZXN0X3NhY2tfc2VxIGluY2x1ZGUv bmV0L3RjcC5oOjE4NTYgW2lubGluZV0KIHRjcF9jaGVja19zYWNrX3Jlb3JkZXJpbmcrMHgzM2Mv MHgzYTAgbmV0L2lwdjQvdGNwX2lucHV0LmM6ODkxCiB0Y3BfdHJ5X3VuZG9fcGFydGlhbCBuZXQv aXB2NC90Y3BfaW5wdXQuYzoyNzMwIFtpbmxpbmVdCiB0Y3BfZmFzdHJldHJhbnNfYWxlcnQrMHhm NzQvMHgyM2YwIG5ldC9pcHY0L3RjcF9pbnB1dC5jOjI4NDcKIHRjcF9hY2srMHgyNTc3LzB4NWJm MCBuZXQvaXB2NC90Y3BfaW5wdXQuYzozNzEwCiB0Y3BfcmN2X2VzdGFibGlzaGVkKzB4NmRkLzB4 MWU5MCBuZXQvaXB2NC90Y3BfaW5wdXQuYzo1NzA2CiB0Y3BfdjRfZG9fcmN2KzB4NjE5LzB4OGQw IG5ldC9pcHY0L3RjcF9pcHY0LmM6MTYxOQogdGNwX3Y0X3JjdisweDMwN2YvMHgzYjQwIG5ldC9p cHY0L3RjcF9pcHY0LmM6MjAwMQogaXBfcHJvdG9jb2xfZGVsaXZlcl9yY3UrMHg1YS8weDg4MCBu ZXQvaXB2NC9pcF9pbnB1dC5jOjIwNAogaXBfbG9jYWxfZGVsaXZlcl9maW5pc2grMHgyM2IvMHgz ODAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyMzEKIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0 ZXIuaDozMDcgW2lubGluZV0KIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDozMDEg W2lubGluZV0KIGlwX2xvY2FsX2RlbGl2ZXIrMHgxZTkvMHg1MjAgbmV0L2lwdjQvaXBfaW5wdXQu YzoyNTIKIGRzdF9pbnB1dCBpbmNsdWRlL25ldC9kc3QuaDo0NDIgW2lubGluZV0KIGlwX3Jjdl9m aW5pc2grMHgxZGIvMHgyZjAgbmV0L2lwdjQvaXBfaW5wdXQuYzo0MjgKIE5GX0hPT0sgaW5jbHVk ZS9saW51eC9uZXRmaWx0ZXIuaDozMDcgW2lubGluZV0KIE5GX0hPT0sgaW5jbHVkZS9saW51eC9u ZXRmaWx0ZXIuaDozMDEgW2lubGluZV0KIGlwX3JjdisweGU4LzB4M2YwIG5ldC9pcHY0L2lwX2lu cHV0LmM6NTM4CiBfX25ldGlmX3JlY2VpdmVfc2tiX29uZV9jb3JlKzB4MTEzLzB4MWEwIG5ldC9j b3JlL2Rldi5jOjUxNDgKIF9fbmV0aWZfcmVjZWl2ZV9za2IrMHgyYy8weDFkMCBuZXQvY29yZS9k ZXYuYzo1MjYyCiBwcm9jZXNzX2JhY2tsb2crMHgyMDYvMHg3NTAgbmV0L2NvcmUvZGV2LmM6NjA5 MwogbmFwaV9wb2xsIG5ldC9jb3JlL2Rldi5jOjY1MzAgW2lubGluZV0KIG5ldF9yeF9hY3Rpb24r MHg1MDgvMHgxMTIwIG5ldC9jb3JlL2Rldi5jOjY1OTgKIF9fZG9fc29mdGlycSsweDI2Mi8weDk4 YyBrZXJuZWwvc29mdGlycS5jOjI5MgogcnVuX2tzb2Z0aXJxZCBrZXJuZWwvc29mdGlycS5jOjYw MyBbaW5saW5lXQogcnVuX2tzb2Z0aXJxZCsweDhlLzB4MTEwIGtlcm5lbC9zb2Z0aXJxLmM6NTk1 CiBzbXBib290X3RocmVhZF9mbisweDZhMy8weGE0MCBrZXJuZWwvc21wYm9vdC5jOjE2NQoga3Ro cmVhZCsweDM2MS8weDQzMCBrZXJuZWwva3RocmVhZC5jOjI1NQogcmV0X2Zyb21fZm9yaysweDI0 LzB4MzAgYXJjaC94ODYvZW50cnkvZW50cnlfNjQuUzozNTIKCkFsbG9jYXRlZCBieSB0YXNrIDEw MDkxOgogc2F2ZV9zdGFjaysweDIzLzB4OTAgbW0va2FzYW4vY29tbW9uLmM6NzIKIHNldF90cmFj ayBtbS9rYXNhbi9jb21tb24uYzo4MCBbaW5saW5lXQogX19rYXNhbl9rbWFsbG9jIG1tL2thc2Fu L2NvbW1vbi5jOjUxMyBbaW5saW5lXQogX19rYXNhbl9rbWFsbG9jLmNvbnN0cHJvcC4wKzB4Y2Yv MHhlMCBtbS9rYXNhbi9jb21tb24uYzo0ODYKIGthc2FuX3NsYWJfYWxsb2MrMHhmLzB4MjAgbW0v a2FzYW4vY29tbW9uLmM6NTIxCiBzbGFiX3Bvc3RfYWxsb2NfaG9vayBtbS9zbGFiLmg6NTg0IFtp bmxpbmVdCiBzbGFiX2FsbG9jX25vZGUgbW0vc2xhYi5jOjMyNjMgW2lubGluZV0KIGttZW1fY2Fj aGVfYWxsb2Nfbm9kZSsweDEzOC8weDc0MCBtbS9zbGFiLmM6MzU3NQogX19hbGxvY19za2IrMHhk NS8weDVlMCBuZXQvY29yZS9za2J1ZmYuYzoxOTgKIGFsbG9jX3NrYl9mY2xvbmUgaW5jbHVkZS9s aW51eC9za2J1ZmYuaDoxMDk5IFtpbmxpbmVdCiBza19zdHJlYW1fYWxsb2Nfc2tiIG5ldC9pcHY0 L3RjcC5jOjg3NSBbaW5saW5lXQogc2tfc3RyZWFtX2FsbG9jX3NrYisweDExMy8weGM5MCBuZXQv aXB2NC90Y3AuYzo4NTIKIHRjcF9zZW5kbXNnX2xvY2tlZCsweGNmOS8weDM0NzAgbmV0L2lwdjQv dGNwLmM6MTI4MgogdGNwX3NlbmRtc2crMHgzMC8weDUwIG5ldC9pcHY0L3RjcC5jOjE0MzIKIGlu ZXRfc2VuZG1zZysweDllLzB4ZTAgbmV0L2lwdjQvYWZfaW5ldC5jOjgwNwogc29ja19zZW5kbXNn X25vc2VjIG5ldC9zb2NrZXQuYzo2NTIgW2lubGluZV0KIHNvY2tfc2VuZG1zZysweGQ3LzB4MTMw IG5ldC9zb2NrZXQuYzo2NzIKIF9fc3lzX3NlbmR0bysweDI2Mi8weDM4MCBuZXQvc29ja2V0LmM6 MTk5OAogX19kb19zeXNfc2VuZHRvIG5ldC9zb2NrZXQuYzoyMDEwIFtpbmxpbmVdCiBfX3NlX3N5 c19zZW5kdG8gbmV0L3NvY2tldC5jOjIwMDYgW2lubGluZV0KIF9feDY0X3N5c19zZW5kdG8rMHhl MS8weDFhMCBuZXQvc29ja2V0LmM6MjAwNgogZG9fc3lzY2FsbF82NCsweGZhLzB4NzkwIGFyY2gv eDg2L2VudHJ5L2NvbW1vbi5jOjI5NAogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4 NDkvMHhiZQoKRnJlZWQgYnkgdGFzayAxMDA5NToKIHNhdmVfc3RhY2srMHgyMy8weDkwIG1tL2th c2FuL2NvbW1vbi5jOjcyCiBzZXRfdHJhY2sgbW0va2FzYW4vY29tbW9uLmM6ODAgW2lubGluZV0K IGthc2FuX3NldF9mcmVlX2luZm8gbW0va2FzYW4vY29tbW9uLmM6MzM1IFtpbmxpbmVdCiBfX2th c2FuX3NsYWJfZnJlZSsweDEwMi8weDE1MCBtbS9rYXNhbi9jb21tb24uYzo0NzQKIGthc2FuX3Ns YWJfZnJlZSsweGUvMHgxMCBtbS9rYXNhbi9jb21tb24uYzo0ODMKIF9fY2FjaGVfZnJlZSBtbS9z bGFiLmM6MzQyNiBbaW5saW5lXQoga21lbV9jYWNoZV9mcmVlKzB4ODYvMHgzMjAgbW0vc2xhYi5j OjM2OTQKIGtmcmVlX3NrYm1lbSsweDE3OC8weDFjMCBuZXQvY29yZS9za2J1ZmYuYzo2NDUKIF9f a2ZyZWVfc2tiKzB4MWUvMHgzMCBuZXQvY29yZS9za2J1ZmYuYzo2ODEKIHNrX2VhdF9za2IgaW5j bHVkZS9uZXQvc29jay5oOjI0NTMgW2lubGluZV0KIHRjcF9yZWN2bXNnKzB4MTI1Mi8weDI5MzAg bmV0L2lwdjQvdGNwLmM6MjE2NgogaW5ldF9yZWN2bXNnKzB4MTM2LzB4NjEwIG5ldC9pcHY0L2Fm X2luZXQuYzo4MzgKIHNvY2tfcmVjdm1zZ19ub3NlYyBuZXQvc29ja2V0LmM6ODg2IFtpbmxpbmVd CiBzb2NrX3JlY3Ztc2cgbmV0L3NvY2tldC5jOjkwNCBbaW5saW5lXQogc29ja19yZWN2bXNnKzB4 Y2UvMHgxMTAgbmV0L3NvY2tldC5jOjkwMAogX19zeXNfcmVjdmZyb20rMHgxZmYvMHgzNTAgbmV0 L3NvY2tldC5jOjIwNTUKIF9fZG9fc3lzX3JlY3Zmcm9tIG5ldC9zb2NrZXQuYzoyMDczIFtpbmxp bmVdCiBfX3NlX3N5c19yZWN2ZnJvbSBuZXQvc29ja2V0LmM6MjA2OSBbaW5saW5lXQogX194NjRf c3lzX3JlY3Zmcm9tKzB4ZTEvMHgxYTAgbmV0L3NvY2tldC5jOjIwNjkKIGRvX3N5c2NhbGxfNjQr MHhmYS8weDc5MCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyOTQKIGVudHJ5X1NZU0NBTExfNjRf YWZ0ZXJfaHdmcmFtZSsweDQ5LzB4YmUKClRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhl IG9iamVjdCBhdCBmZmZmODg4MGE0ODhkMDQwCiB3aGljaCBiZWxvbmdzIHRvIHRoZSBjYWNoZSBz a2J1ZmZfZmNsb25lX2NhY2hlIG9mIHNpemUgNDU2ClRoZSBidWdneSBhZGRyZXNzIGlzIGxvY2F0 ZWQgNDAgYnl0ZXMgaW5zaWRlIG9mCiA0NTYtYnl0ZSByZWdpb24gW2ZmZmY4ODgwYTQ4OGQwNDAs IGZmZmY4ODgwYTQ4OGQyMDgpClRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIHBhZ2U6 CnBhZ2U6ZmZmZmVhMDAwMjkyMjM0MCByZWZjb3VudDoxIG1hcGNvdW50OjAgbWFwcGluZzpmZmZm ODg4MjFiMDU3MDAwIGluZGV4OjB4MApyYXc6IDAwZmZmZTAwMDAwMDAyMDAgZmZmZmVhMDAwMjJh NTc4OCBmZmZmZWEwMDAyNjI0YTQ4IGZmZmY4ODgyMWIwNTcwMDAKcmF3OiAwMDAwMDAwMDAwMDAw MDAwIGZmZmY4ODgwYTQ4OGQwNDAgMDAwMDAwMDEwMDAwMDAwNiAwMDAwMDAwMDAwMDAwMDAwCnBh Z2UgZHVtcGVkIGJlY2F1c2U6IGthc2FuOiBiYWQgYWNjZXNzIGRldGVjdGVkCgpNZW1vcnkgc3Rh dGUgYXJvdW5kIHRoZSBidWdneSBhZGRyZXNzOgogZmZmZjg4ODBhNDg4Y2YwMDogZmMgZmMgZmMg ZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMKIGZmZmY4ODgwYTQ4OGNmODA6 IGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjCj5mZmZmODg4 MGE0ODhkMDAwOiBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYyBmYiBmYiBmYiBmYiBmYiBmYiBmYiBm YgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgogZmZmZjg4ODBhNDg4ZDA4MDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIg ZmIgZmIgZmIgZmIgZmIKIGZmZmY4ODgwYTQ4OGQxMDA6IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZi IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiCgpGaXhlczogODUzNjk3NTA0ZGUwICgidGNwOiBGaXgg aGlnaGVzdF9zYWNrIGFuZCBoaWdoZXN0X3NhY2tfc2VxIikKRml4ZXM6IDUwODk1YjlkZTFkMyAo InRjcDogaGlnaGVzdF9zYWNrIGZpeCIpCkZpeGVzOiA3MzdmZjMxNDU2M2MgKCJ0Y3A6IHVzZSBz ZXF1ZW5jZSBkaXN0YW5jZSB0byBkZXRlY3QgcmVvcmRlcmluZyIpClNpZ25lZC1vZmYtYnk6IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IENhbWJkYSBaaHUgPGNhbWJkYUBs aW51eC5hbGliYWJhLmNvbT4KQ2M6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpD YzogTmVhbCBDYXJkd2VsbCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBOZWFsIENh cmR3ZWxsIDxuY2FyZHdlbGxAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IFl1Y2h1bmcgQ2hlbmcgPHlj aGVuZ0Bnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvdGNwLmMgICAgICAgIHwgMSArCiBuZXQvaXB2NC90 Y3BfaW5wdXQuYyAgfCAxICsKIG5ldC9pcHY0L3RjcF9vdXRwdXQuYyB8IDEgKwogMyBmaWxlcyBj aGFuZ2VkLCAzIGluc2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3AuYyBiL25l dC9pcHY0L3RjcC5jCmluZGV4IGNkOGE5MmU3YTM5ZS4uNWQ1OGE4NDk3OGQ3IDEwMDY0NAotLS0g YS9uZXQvaXB2NC90Y3AuYworKysgYi9uZXQvaXB2NC90Y3AuYwpAQCAtMjUwNyw2ICsyNTA3LDcg QEAgc3RhdGljIHZvaWQgdGNwX3J0eF9xdWV1ZV9wdXJnZShzdHJ1Y3Qgc29jayAqc2spCiB7CiAJ c3RydWN0IHJiX25vZGUgKnAgPSByYl9maXJzdCgmc2stPnRjcF9ydHhfcXVldWUpOwogCisJdGNw X3NrKHNrKS0+aGlnaGVzdF9zYWNrID0gTlVMTDsKIAl3aGlsZSAocCkgewogCQlzdHJ1Y3Qgc2tf YnVmZiAqc2tiID0gcmJfdG9fc2tiKHApOwogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaW5w dXQuYyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCmluZGV4IGUyODZhOTY0N2E3My4uMzhiNmQ4Zjkw YTQ0IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfaW5wdXQuYworKysgYi9uZXQvaXB2NC90Y3Bf aW5wdXQuYwpAQCAtMzE0OSw2ICszMTQ5LDcgQEAgc3RhdGljIGludCB0Y3BfY2xlYW5fcnR4X3F1 ZXVlKHN0cnVjdCBzb2NrICpzaywgdTMyIHByaW9yX2ZhY2ssCiAJCQl0cC0+cmV0cmFuc21pdF9z a2JfaGludCA9IE5VTEw7CiAJCWlmICh1bmxpa2VseShza2IgPT0gdHAtPmxvc3Rfc2tiX2hpbnQp KQogCQkJdHAtPmxvc3Rfc2tiX2hpbnQgPSBOVUxMOworCQl0Y3BfaGlnaGVzdF9zYWNrX3JlcGxh Y2Uoc2ssIHNrYiwgbmV4dCk7CiAJCXRjcF9ydHhfcXVldWVfdW5saW5rX2FuZF9mcmVlKHNrYiwg c2spOwogCX0KIApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwX291dHB1dC5jIGIvbmV0L2lwdjQv dGNwX291dHB1dC5jCmluZGV4IDFjYzIwZWRmNDc2Mi4uY2M0YmE0MjA1MmMyIDEwMDY0NAotLS0g YS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKKysrIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jCkBAIC0z MTY1LDYgKzMxNjUsNyBAQCBpbnQgdGNwX3NlbmRfc3luYWNrKHN0cnVjdCBzb2NrICpzaykKIAkJ CWlmICghbnNrYikKIAkJCQlyZXR1cm4gLUVOT01FTTsKIAkJCUlOSVRfTElTVF9IRUFEKCZuc2ti LT50Y3BfdHNvcnRlZF9hbmNob3IpOworCQkJdGNwX2hpZ2hlc3Rfc2Fja19yZXBsYWNlKHNrLCBz a2IsIG5za2IpOwogCQkJdGNwX3J0eF9xdWV1ZV91bmxpbmtfYW5kX2ZyZWUoc2tiLCBzayk7CiAJ CQlfX3NrYl9oZWFkZXJfcmVsZWFzZShuc2tiKTsKIAkJCXRjcF9yYnRyZWVfaW5zZXJ0KCZzay0+ dGNwX3J0eF9xdWV1ZSwgbnNrYik7Ci0tIAoyLjIxLjEKCgpGcm9tIGVkZjUyOGY4NGM0MjE4Yzcy ODAzNWVjN2FiNzNiMDJlNmFkMGMxZjYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAyMiBKYW4gMjAyMCAw OTowNzozNSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTcvMTddIHR1bjogYWRkIG11dGV4X3VubG9j aygpIGNhbGwgYW5kIG5hcGkuc2tiIGNsZWFyaW5nIGluCiB0dW5fZ2V0X3VzZXIoKQoKWyBVcHN0 cmVhbSBjb21taXQgMWVmYmE5ODdjNDg2MjljMGM2NDcwM2JiNGVhNzZjYTFhMzc3MWQxNyBdCgpJ ZiBib3RoIElGRl9OQVBJX0ZSQUdTIG1vZGUgYW5kIFhEUCBhcmUgZW5hYmxlZCwgYW5kIHRoZSBY RFAgcHJvZ3JhbQpjb25zdW1lcyB0aGUgc2tiLCB3ZSBuZWVkIHRvIGNsZWFyIHRoZSBuYXBpLnNr YiAob3IgcmlzawphIHVzZS1hZnRlci1mcmVlKSBhbmQgcmVsZWFzZSB0aGUgbXV0ZXggKG9yIHJp c2sgYSBkZWFkbG9jaykKCldBUk5JTkc6IGxvY2sgaGVsZCB3aGVuIHJldHVybmluZyB0byB1c2Vy IHNwYWNlIQo1LjUuMC1yYzYtc3l6a2FsbGVyICMwIE5vdCB0YWludGVkCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpzeXotZXhlY3V0b3IuMC80NTUgaXMg bGVhdmluZyB0aGUga2VybmVsIHdpdGggbG9ja3Mgc3RpbGwgaGVsZCEKMSBsb2NrIGhlbGQgYnkg c3l6LWV4ZWN1dG9yLjAvNDU1OgogIzA6IGZmZmY4ODgwOThmNmU3NDggKCZ0ZmlsZS0+bmFwaV9t dXRleCl7Ky4rLn0sIGF0OiB0dW5fZ2V0X3VzZXIrMHgxNjA0LzB4M2ZjMCBkcml2ZXJzL25ldC90 dW4uYzoxODM1CgpGaXhlczogOTBlMzNkNDU5NDA3ICgidHVuOiBlbmFibGUgbmFwaV9ncm9fZnJh Z3MoKSBmb3IgVFVOL1RBUCBkcml2ZXIiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVk dW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVn cm91cHMuY29tPgpDYzogUGV0YXIgUGVua292IDxwcGVua292QGdvb2dsZS5jb20+CkNjOiBXaWxs ZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90dW4uYyB8IDQg KysrKwogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3R1bi5jIGIvZHJpdmVycy9uZXQvdHVuLmMKaW5kZXggYmJkOTIyMjFjNmNhLi4wOWM0 NDRkM2I0OTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3R1bi5jCisrKyBiL2RyaXZlcnMvbmV0 L3R1bi5jCkBAIC0xOTAwLDYgKzE5MDAsMTAgQEAgc3RhdGljIHNzaXplX3QgdHVuX2dldF91c2Vy KHN0cnVjdCB0dW5fc3RydWN0ICp0dW4sIHN0cnVjdCB0dW5fZmlsZSAqdGZpbGUsCiAJCQlpZiAo cmV0ICE9IFhEUF9QQVNTKSB7CiAJCQkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJCQkJbG9jYWxfYmhf ZW5hYmxlKCk7CisJCQkJaWYgKGZyYWdzKSB7CisJCQkJCXRmaWxlLT5uYXBpLnNrYiA9IE5VTEw7 CisJCQkJCW11dGV4X3VubG9jaygmdGZpbGUtPm5hcGlfbXV0ZXgpOworCQkJCX0KIAkJCQlyZXR1 cm4gdG90YWxfbGVuOwogCQkJfQogCQl9Ci0tIAoyLjIxLjEKCg== ----Next_Part(Mon_Jan_27_12_16_17_2020_514)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_54.mbox" RnJvbSAzNzU4MDdjY2E3YTQyM2Q1MzVjODNjM2JjYjFjNzM4MWNjNTg5N2U3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSaWNoYXJkIFBhbGV0aG9ycGUgPHJwYWxldGhvcnBlQHN1c2Uu Y29tPgpEYXRlOiBUdWUsIDIxIEphbiAyMDIwIDE0OjQyOjU4ICswMTAwClN1YmplY3Q6IFtQQVRD SCAwMS8zMl0gY2FuLCBzbGlwOiBQcm90ZWN0IHR0eS0+ZGlzY19kYXRhIGluIHdyaXRlX3dha2V1 cCBhbmQKIGNsb3NlIHdpdGggUkNVCgpbIFVwc3RyZWFtIGNvbW1pdCAwYWNlMTdkNTY4MjQxNjVj N2Y0YzY4Nzg1ZDZiNTg5NzFkYjk1NGRkIF0KCndyaXRlX3dha2V1cCBjYW4gaGFwcGVuIGluIHBh cmFsbGVsIHdpdGggY2xvc2UvaGFuZ3VwIHdoZXJlIHR0eS0+ZGlzY19kYXRhCmlzIHNldCB0byBO VUxMIGFuZCB0aGUgbmV0ZGV2aWNlIGlzIGZyZWVkIHRodXMgYWxzbyBmcmVlaW5nCmRpc2NfZGF0 YS4gd3JpdGVfd2FrZXVwIGFjY2Vzc2VzIGRpc2NfZGF0YSBzbyB3ZSBtdXN0IHByZXZlbnQgY2xv c2UgZnJvbQpmcmVlaW5nIHRoZSBuZXRkZXYgd2hpbGUgd3JpdGVfd2FrZXVwIGhhcyBhIG5vbi1O VUxMIHZpZXcgb2YKdHR5LT5kaXNjX2RhdGEuCgpXZSBhbHNvIG5lZWQgdG8gbWFrZSBzdXJlIHRo YXQgYWNjZXNzZXMgdG8gZGlzY19kYXRhIGFyZSBhdG9taWMuIFdoaWNoIGNhbgphbGwgYmUgZG9u ZSB3aXRoIFJDVS4KClRoaXMgcHJvYmxlbSB3YXMgZm91bmQgYnkgU3l6a2FsbGVyIG9uIFNMQ0FO LCBidXQgdGhlIHNhbWUgaXNzdWUgaXMKcmVwcm9kdWNpYmxlIHdpdGggdGhlIFNMSVAgbGluZSBk aXNjaXBsaW5lIHVzaW5nIGFuIExUUCB0ZXN0IGJhc2VkIG9uIHRoZQpTeXprYWxsZXIgcmVwcm9k dWNlci4KCkEgZml4IHdoaWNoIGRpZG4ndCB1c2UgUkNVIHdhcyBwb3N0ZWQgYnkgSGlsbGYgRGFu dG9uLgoKRml4ZXM6IDY2MWY3ZmRhMjFiMSAoInNsaXA6IEZpeCBkZWFkbG9jayBpbiB3cml0ZV93 YWtldXAiKQpGaXhlczogYThlODNiMTc1MzZhICgic2xjYW46IFBvcnQgd3JpdGVfd2FrZXVwIGRl YWRsb2NrIGZpeCBmcm9tIHNsaXAiKQpSZXBvcnRlZC1ieTogc3l6Ym90KzAxN2U0OTFhZTEzYzAw Njg1OThhQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KU2lnbmVkLW9mZi1ieTogUmljaGFyZCBQ YWxldGhvcnBlIDxycGFsZXRob3JwZUBzdXNlLmNvbT4KQ2M6IFdvbGZnYW5nIEdyYW5kZWdnZXIg PHdnQGdyYW5kZWdnZXIuY29tPgpDYzogTWFyYyBLbGVpbmUtQnVkZGUgPG1rbEBwZW5ndXRyb25p eC5kZT4KQ2M6ICJEYXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBkYXZlbWxvZnQubmV0PgpDYzogVHls ZXIgSGFsbCA8dHlsZXJ3aGFsbEBnbWFpbC5jb20+CkNjOiBsaW51eC1jYW5Admdlci5rZXJuZWwu b3JnCkNjOiBuZXRkZXZAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJu ZWwub3JnCkNjOiBzeXprYWxsZXJAZ29vZ2xlZ3JvdXBzLmNvbQpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvY2FuL3Ns Y2FuLmMgfCAxMiArKysrKysrKysrLS0KIGRyaXZlcnMvbmV0L3NsaXAvc2xpcC5jIHwgMTIgKysr KysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvY2FuL3NsY2FuLmMgYi9kcml2ZXJzL25ldC9j YW4vc2xjYW4uYwppbmRleCAyZTU3MTIyZjAyZmIuLjJmNWMyODdlYWM5NSAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvY2FuL3NsY2FuLmMKKysrIGIvZHJpdmVycy9uZXQvY2FuL3NsY2FuLmMKQEAg LTM0NCw5ICszNDQsMTYgQEAgc3RhdGljIHZvaWQgc2xjYW5fdHJhbnNtaXQoc3RydWN0IHdvcmtf c3RydWN0ICp3b3JrKQogICovCiBzdGF0aWMgdm9pZCBzbGNhbl93cml0ZV93YWtldXAoc3RydWN0 IHR0eV9zdHJ1Y3QgKnR0eSkKIHsKLQlzdHJ1Y3Qgc2xjYW4gKnNsID0gdHR5LT5kaXNjX2RhdGE7 CisJc3RydWN0IHNsY2FuICpzbDsKKworCXJjdV9yZWFkX2xvY2soKTsKKwlzbCA9IHJjdV9kZXJl ZmVyZW5jZSh0dHktPmRpc2NfZGF0YSk7CisJaWYgKCFzbCkKKwkJZ290byBvdXQ7CiAKIAlzY2hl ZHVsZV93b3JrKCZzbC0+dHhfd29yayk7CitvdXQ6CisJcmN1X3JlYWRfdW5sb2NrKCk7CiB9CiAK IC8qIFNlbmQgYSBjYW5fZnJhbWUgdG8gYSBUVFkgcXVldWUuICovCkBAIC02NDQsMTAgKzY1MSwx MSBAQCBzdGF0aWMgdm9pZCBzbGNhbl9jbG9zZShzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KQogCQly ZXR1cm47CiAKIAlzcGluX2xvY2tfYmgoJnNsLT5sb2NrKTsKLQl0dHktPmRpc2NfZGF0YSA9IE5V TEw7CisJcmN1X2Fzc2lnbl9wb2ludGVyKHR0eS0+ZGlzY19kYXRhLCBOVUxMKTsKIAlzbC0+dHR5 ID0gTlVMTDsKIAlzcGluX3VubG9ja19iaCgmc2wtPmxvY2spOwogCisJc3luY2hyb25pemVfcmN1 KCk7CiAJZmx1c2hfd29yaygmc2wtPnR4X3dvcmspOwogCiAJLyogRmx1c2ggbmV0d29yayBzaWRl ICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9zbGlwL3NsaXAuYyBiL2RyaXZlcnMvbmV0L3Ns aXAvc2xpcC5jCmluZGV4IDJhOTFjMTkyNjU5Zi4uNjFkN2UwZDFkNzdkIDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9zbGlwL3NsaXAuYworKysgYi9kcml2ZXJzL25ldC9zbGlwL3NsaXAuYwpAQCAt NDUyLDkgKzQ1MiwxNiBAQCBzdGF0aWMgdm9pZCBzbGlwX3RyYW5zbWl0KHN0cnVjdCB3b3JrX3N0 cnVjdCAqd29yaykKICAqLwogc3RhdGljIHZvaWQgc2xpcF93cml0ZV93YWtldXAoc3RydWN0IHR0 eV9zdHJ1Y3QgKnR0eSkKIHsKLQlzdHJ1Y3Qgc2xpcCAqc2wgPSB0dHktPmRpc2NfZGF0YTsKKwlz dHJ1Y3Qgc2xpcCAqc2w7CisKKwlyY3VfcmVhZF9sb2NrKCk7CisJc2wgPSByY3VfZGVyZWZlcmVu Y2UodHR5LT5kaXNjX2RhdGEpOworCWlmICghc2wpCisJCWdvdG8gb3V0OwogCiAJc2NoZWR1bGVf d29yaygmc2wtPnR4X3dvcmspOworb3V0OgorCXJjdV9yZWFkX3VubG9jaygpOwogfQogCiBzdGF0 aWMgdm9pZCBzbF90eF90aW1lb3V0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCkBAIC04ODIsMTAg Kzg4OSwxMSBAQCBzdGF0aWMgdm9pZCBzbGlwX2Nsb3NlKHN0cnVjdCB0dHlfc3RydWN0ICp0dHkp CiAJCXJldHVybjsKIAogCXNwaW5fbG9ja19iaCgmc2wtPmxvY2spOwotCXR0eS0+ZGlzY19kYXRh ID0gTlVMTDsKKwlyY3VfYXNzaWduX3BvaW50ZXIodHR5LT5kaXNjX2RhdGEsIE5VTEwpOwogCXNs LT50dHkgPSBOVUxMOwogCXNwaW5fdW5sb2NrX2JoKCZzbC0+bG9jayk7CiAKKwlzeW5jaHJvbml6 ZV9yY3UoKTsKIAlmbHVzaF93b3JrKCZzbC0+dHhfd29yayk7CiAKIAkvKiBWU1YgPSB2ZXJ5IGlt cG9ydGFudCB0byByZW1vdmUgdGltZXJzICovCi0tIAoyLjIxLjEKCgpGcm9tIDA2M2FiNDUyMmZj MmQwNGM0ZmFkNzgxYTk2MjNmZDZkYTlkYzg5NDAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFdlbndlbiBXYW5nIDx3ZW53ZW5AY3MudWdhLmVkdT4KRGF0ZTogU2F0LCAyNSBKYW4gMjAy MCAxNDozMzoyOSArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMzJdIGZpcmVzdHJlYW06IGZpeCBt ZW1vcnkgbGVha3MKClsgVXBzdHJlYW0gY29tbWl0IGZhODY1YmExODNkNjFjMWVjOGNiY2FiODU3 MzE1OWMzYjcyYjg5YTQgXQoKSW4gZnNfb3BlbigpLCAndmNjJyBpcyBhbGxvY2F0ZWQgdGhyb3Vn aCBrbWFsbG9jKCkgYW5kIGFzc2lnbmVkIHRvCidhdG1fdmNjLT5kZXZfZGF0YS4nIEluIHRoZSBm b2xsb3dpbmcgZXhlY3V0aW9uLCBpZiBhbiBlcnJvciBvY2N1cnMsIGUuZy4sCnRoZXJlIGlzIG5v IG1vcmUgZnJlZSBjaGFubmVsLCBhbiBlcnJvciBjb2RlIEVCVVNZIG9yIEVOT01FTSB3aWxsIGJl CnJldHVybmVkLiBIb3dldmVyLCAndmNjJyBpcyBub3QgZGVhbGxvY2F0ZWQsIGxlYWRpbmcgdG8g bWVtb3J5IGxlYWtzLiBOb3RlCnRoYXQsIGluIG5vcm1hbCBjYXNlcyB3aGVyZSBmc19vcGVuKCkg cmV0dXJucyAwLCAndmNjJyB3aWxsIGJlIGRlYWxsb2NhdGVkCmluIGZzX2Nsb3NlKCkuIEJ1dCwg aWYgZnNfb3BlbigpIGZhaWxzLCB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhhdApmc19jbG9zZSgp IHdpbGwgYmUgaW52b2tlZC4KClRvIGZpeCB0aGlzIGlzc3VlLCBkZWFsbG9jYXRlICd2Y2MnIGJl Zm9yZSB0aGUgZXJyb3IgY29kZSBpcyByZXR1cm5lZC4KClNpZ25lZC1vZmYtYnk6IFdlbndlbiBX YW5nIDx3ZW53ZW5AY3MudWdhLmVkdT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvYXRtL2ZpcmVzdHJlYW0uYyB8IDMgKysr CiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9h dG0vZmlyZXN0cmVhbS5jIGIvZHJpdmVycy9hdG0vZmlyZXN0cmVhbS5jCmluZGV4IDJiYmFiMDIz MGFlYi4uZDI4NzgzN2VkNzU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0bS9maXJlc3RyZWFtLmMK KysrIGIvZHJpdmVycy9hdG0vZmlyZXN0cmVhbS5jCkBAIC05MTIsNiArOTEyLDcgQEAgc3RhdGlj IGludCBmc19vcGVuKHN0cnVjdCBhdG1fdmNjICphdG1fdmNjKQogCQkJfQogCQkJaWYgKCF0bykg ewogCQkJCXByaW50ayAoIk5vIG1vcmUgZnJlZSBjaGFubmVscyBmb3IgRlM1MC4uXG4iKTsKKwkJ CQlrZnJlZSh2Y2MpOwogCQkJCXJldHVybiAtRUJVU1k7CiAJCQl9CiAJCQl2Y2MtPmNoYW5ubyA9 IGRldi0+Y2hhbm5vOwpAQCAtOTIyLDYgKzkyMyw3IEBAIHN0YXRpYyBpbnQgZnNfb3BlbihzdHJ1 Y3QgYXRtX3ZjYyAqYXRtX3ZjYykKIAkJCWlmICgoKERPX0RJUkVDVElPTihyeHRwKSAmJiBkZXYt PmF0bV92Y2NzW3ZjYy0+Y2hhbm5vXSkpIHx8CiAJCQkgICAgKCBET19ESVJFQ1RJT04odHh0cCkg JiYgdGVzdF9iaXQgKHZjYy0+Y2hhbm5vLCBkZXYtPnR4X2ludXNlKSkpIHsKIAkJCQlwcmludGsg KCJDaGFubmVsIGlzIGluIHVzZSBmb3IgRlMxNTUuXG4iKTsKKwkJCQlrZnJlZSh2Y2MpOwogCQkJ CXJldHVybiAtRUJVU1k7CiAJCQl9CiAJCX0KQEAgLTkzNSw2ICs5MzcsNyBAQCBzdGF0aWMgaW50 IGZzX29wZW4oc3RydWN0IGF0bV92Y2MgKmF0bV92Y2MpCiAJCQkgICAgdGMsIHNpemVvZiAoc3Ry dWN0IGZzX3RyYW5zbWl0X2NvbmZpZykpOwogCQlpZiAoIXRjKSB7CiAJCQlmc19kcHJpbnRrIChG U19ERUJVR19PUEVOLCAiZnM6IGNhbid0IGFsbG9jIHRyYW5zbWl0X2NvbmZpZy5cbiIpOworCQkJ a2ZyZWUodmNjKTsKIAkJCXJldHVybiAtRU5PTUVNOwogCQl9CiAKLS0gCjIuMjEuMQoKCkZyb20g OTMyZTdkOGY0YmU4NTM1MDllOGVlZTI3OWZjZTBmYmQ5ZDkzZmQ1YSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBU dWUsIDIxIEphbiAyMDIwIDIzOjE3OjE0IC0wODAwClN1YmplY3Q6IFtQQVRDSCAwMy8zMl0gZ3Rw OiBtYWtlIHN1cmUgb25seSBTT0NLX0RHUkFNIFVEUCBzb2NrZXRzIGFyZSBhY2NlcHRlZAoKWyBV cHN0cmVhbSBjb21taXQgOTQwYmExNDk4NjY1N2E1MGMxNWY2OTRlZmNhMWJlYmEzMWZhNTY4ZiBd CgpBIG1hbGljaW91cyB1c2VyIGNvdWxkIHVzZSBSQVcgc29ja2V0cyBhbmQgZm9vbApHVFAgdXNp bmcgdGhlbSBhcyBzdGFuZGFyZCBTT0NLX0RHUkFNIFVEUCBzb2NrZXRzLgoKQlVHOiBLTVNBTjog dW5pbml0LXZhbHVlIGluIHVkcF90dW5uZWxfZW5jYXBfZW5hYmxlIGluY2x1ZGUvbmV0L3VkcF90 dW5uZWwuaDoxNzQgW2lubGluZV0KQlVHOiBLTVNBTjogdW5pbml0LXZhbHVlIGluIHNldHVwX3Vk cF90dW5uZWxfc29jaysweDQ1ZS8weDZmMCBuZXQvaXB2NC91ZHBfdHVubmVsLmM6ODUKQ1BVOiAw IFBJRDogMTEyNjIgQ29tbTogc3l6LWV4ZWN1dG9yNjEzIE5vdCB0YWludGVkIDUuNS4wLXJjNS1z eXprYWxsZXIgIzAKSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9H b29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToK IF9fZHVtcF9zdGFjayBsaWIvZHVtcF9zdGFjay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4 MWM5LzB4MjIwIGxpYi9kdW1wX3N0YWNrLmM6MTE4CiBrbXNhbl9yZXBvcnQrMHhmNy8weDFlMCBt bS9rbXNhbi9rbXNhbl9yZXBvcnQuYzoxMTgKIF9fbXNhbl93YXJuaW5nKzB4NTgvMHhhMCBtbS9r bXNhbi9rbXNhbl9pbnN0ci5jOjIxNQogdWRwX3R1bm5lbF9lbmNhcF9lbmFibGUgaW5jbHVkZS9u ZXQvdWRwX3R1bm5lbC5oOjE3NCBbaW5saW5lXQogc2V0dXBfdWRwX3R1bm5lbF9zb2NrKzB4NDVl LzB4NmYwIG5ldC9pcHY0L3VkcF90dW5uZWwuYzo4NQogZ3RwX2VuY2FwX2VuYWJsZV9zb2NrZXQr MHgzN2YvMHg1YTAgZHJpdmVycy9uZXQvZ3RwLmM6ODI3CiBndHBfZW5jYXBfZW5hYmxlIGRyaXZl cnMvbmV0L2d0cC5jOjg0NCBbaW5saW5lXQogZ3RwX25ld2xpbmsrMHhmYi8weDFlNTAgZHJpdmVy cy9uZXQvZ3RwLmM6NjY2CiBfX3J0bmxfbmV3bGluayBuZXQvY29yZS9ydG5ldGxpbmsuYzozMzA1 IFtpbmxpbmVdCiBydG5sX25ld2xpbmsrMHgyOTczLzB4MzkyMCBuZXQvY29yZS9ydG5ldGxpbmsu YzozMzYzCiBydG5ldGxpbmtfcmN2X21zZysweDExNTMvMHgxNTcwIG5ldC9jb3JlL3J0bmV0bGlu ay5jOjU0MjQKIG5ldGxpbmtfcmN2X3NrYisweDQ1MS8weDY1MCBuZXQvbmV0bGluay9hZl9uZXRs aW5rLmM6MjQ3NwogcnRuZXRsaW5rX3JjdisweDUwLzB4NjAgbmV0L2NvcmUvcnRuZXRsaW5rLmM6 NTQ0MgogbmV0bGlua191bmljYXN0X2tlcm5lbCBuZXQvbmV0bGluay9hZl9uZXRsaW5rLmM6MTMw MiBbaW5saW5lXQogbmV0bGlua191bmljYXN0KzB4ZjllLzB4MTEwMCBuZXQvbmV0bGluay9hZl9u ZXRsaW5rLmM6MTMyOAogbmV0bGlua19zZW5kbXNnKzB4MTI0OC8weDE0ZDAgbmV0L25ldGxpbmsv YWZfbmV0bGluay5jOjE5MTcKIHNvY2tfc2VuZG1zZ19ub3NlYyBuZXQvc29ja2V0LmM6NjM5IFtp bmxpbmVdCiBzb2NrX3NlbmRtc2cgbmV0L3NvY2tldC5jOjY1OSBbaW5saW5lXQogX19fX3N5c19z ZW5kbXNnKzB4MTJiNi8weDEzNTAgbmV0L3NvY2tldC5jOjIzMzAKIF9fX3N5c19zZW5kbXNnIG5l dC9zb2NrZXQuYzoyMzg0IFtpbmxpbmVdCiBfX3N5c19zZW5kbXNnKzB4NDUxLzB4NWYwIG5ldC9z b2NrZXQuYzoyNDE3CiBfX2RvX3N5c19zZW5kbXNnIG5ldC9zb2NrZXQuYzoyNDI2IFtpbmxpbmVd CiBfX3NlX3N5c19zZW5kbXNnKzB4OTcvMHhiMCBuZXQvc29ja2V0LmM6MjQyNAogX194NjRfc3lz X3NlbmRtc2crMHg0YS8weDcwIG5ldC9zb2NrZXQuYzoyNDI0CiBkb19zeXNjYWxsXzY0KzB4Yjgv MHgxNjAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjk2CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVy X2h3ZnJhbWUrMHg0NC8weGE5ClJJUDogMDAzMzoweDQ0MTM1OQpDb2RlOiBlOCBhYyBlOCBmZiBm ZiA0OCA4MyBjNCAxOCBjMyAwZiAxZiA4MCAwMCAwMCAwMCAwMCA0OCA4OSBmOCA0OCA4OSBmNyA0 OCA4OSBkNiA0OCA4OSBjYSA0ZCA4OSBjMiA0ZCA4OSBjOCA0YyA4YiA0YyAyNCAwOCAwZiAwNSA8 NDg+IDNkIDAxIGYwIGZmIGZmIDBmIDgzIGViIDA4IGZjIGZmIGMzIDY2IDJlIDBmIDFmIDg0IDAw IDAwIDAwIDAwClJTUDogMDAyYjowMDAwN2ZmZjFjZDBhYzI4IEVGTEFHUzogMDAwMDAyNDYgT1JJ R19SQVg6IDAwMDAwMDAwMDAwMDAwMmUKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAw MDAwMDAwMDAwMCBSQ1g6IDAwMDAwMDAwMDA0NDEzNTkKUkRYOiAwMDAwMDAwMDAwMDAwMDAwIFJT STogMDAwMDAwMDAyMDAwMDEwMCBSREk6IDAwMDAwMDAwMDAwMDAwMDMKUkJQOiAwMDAwMDAwMDAw NmNiMDE4IFIwODogMDAwMDAwMDAwMDQwMDJjOCBSMDk6IDAwMDAwMDAwMDA0MDAyYzgKUjEwOiAw MDAwMDAwMDAwNDAwMmM4IFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6IDAwMDAwMDAwMDA0MDIw ZDAKUjEzOiAwMDAwMDAwMDAwNDAyMTYwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAw MDAwMDAwMDAwMDAKClVuaW5pdCB3YXMgY3JlYXRlZCBhdDoKIGttc2FuX3NhdmVfc3RhY2tfd2l0 aF9mbGFncysweDNjLzB4OTAgbW0va21zYW4va21zYW4uYzoxNDQKIGttc2FuX2ludGVybmFsX2Fs bG9jX21ldGFfZm9yX3BhZ2VzIG1tL2ttc2FuL2ttc2FuX3NoYWRvdy5jOjMwNyBbaW5saW5lXQog a21zYW5fYWxsb2NfcGFnZSsweDEyYS8weDMxMCBtbS9rbXNhbi9rbXNhbl9zaGFkb3cuYzozMzYK IF9fYWxsb2NfcGFnZXNfbm9kZW1hc2srMHg1N2YyLzB4NWY2MCBtbS9wYWdlX2FsbG9jLmM6NDgw MAogYWxsb2NfcGFnZXNfY3VycmVudCsweDY3ZC8weDk5MCBtbS9tZW1wb2xpY3kuYzoyMjA3CiBh bGxvY19wYWdlcyBpbmNsdWRlL2xpbnV4L2dmcC5oOjUzNCBbaW5saW5lXQogYWxsb2Nfc2xhYl9w YWdlKzB4MTExLzB4MTJmMCBtbS9zbHViLmM6MTUxMQogYWxsb2NhdGVfc2xhYiBtbS9zbHViLmM6 MTY1NiBbaW5saW5lXQogbmV3X3NsYWIrMHgyYmMvMHgxMTMwIG1tL3NsdWIuYzoxNzIyCiBuZXdf c2xhYl9vYmplY3RzIG1tL3NsdWIuYzoyNDczIFtpbmxpbmVdCiBfX19zbGFiX2FsbG9jKzB4MTUz My8weDFmMzAgbW0vc2x1Yi5jOjI2MjQKIF9fc2xhYl9hbGxvYyBtbS9zbHViLmM6MjY2NCBbaW5s aW5lXQogc2xhYl9hbGxvY19ub2RlIG1tL3NsdWIuYzoyNzM4IFtpbmxpbmVdCiBzbGFiX2FsbG9j IG1tL3NsdWIuYzoyNzgzIFtpbmxpbmVdCiBrbWVtX2NhY2hlX2FsbG9jKzB4YjIzLzB4ZDcwIG1t L3NsdWIuYzoyNzg4CiBza19wcm90X2FsbG9jKzB4ZjIvMHg2MjAgbmV0L2NvcmUvc29jay5jOjE1 OTcKIHNrX2FsbG9jKzB4ZjAvMHhiZTAgbmV0L2NvcmUvc29jay5jOjE2NTcKIGluZXRfY3JlYXRl KzB4N2M3LzB4MTM3MCBuZXQvaXB2NC9hZl9pbmV0LmM6MzIxCiBfX3NvY2tfY3JlYXRlKzB4OGVi LzB4ZjAwIG5ldC9zb2NrZXQuYzoxNDIwCiBzb2NrX2NyZWF0ZSBuZXQvc29ja2V0LmM6MTQ3MSBb aW5saW5lXQogX19zeXNfc29ja2V0KzB4MWExLzB4NjAwIG5ldC9zb2NrZXQuYzoxNTEzCiBfX2Rv X3N5c19zb2NrZXQgbmV0L3NvY2tldC5jOjE1MjIgW2lubGluZV0KIF9fc2Vfc3lzX3NvY2tldCsw eDhkLzB4YjAgbmV0L3NvY2tldC5jOjE1MjAKIF9feDY0X3N5c19zb2NrZXQrMHg0YS8weDcwIG5l dC9zb2NrZXQuYzoxNTIwCiBkb19zeXNjYWxsXzY0KzB4YjgvMHgxNjAgYXJjaC94ODYvZW50cnkv Y29tbW9uLmM6Mjk2CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5CgpG aXhlczogNDU5YWE2NjBlYjFkICgiZ3RwOiBhZGQgaW5pdGlhbCBkcml2ZXIgZm9yIGRhdGFwYXRo IG9mIEdQUlMgVHVubmVsaW5nIFByb3RvY29sIChHVFAtVSkiKQpTaWduZWQtb2ZmLWJ5OiBFcmlj IER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBQYWJsbyBOZWlyYSA8cGFibG9AbmV0 ZmlsdGVyLm9yZz4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5j b20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K LS0tCiBkcml2ZXJzL25ldC9ndHAuYyB8IDEwICsrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv Z3RwLmMgYi9kcml2ZXJzL25ldC9ndHAuYwppbmRleCBmNjIyMmFkYTY4MTguLjliM2JhOTg3MjZk NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZ3RwLmMKKysrIGIvZHJpdmVycy9uZXQvZ3RwLmMK QEAgLTgwNCwxOSArODA0LDIxIEBAIHN0YXRpYyBzdHJ1Y3Qgc29jayAqZ3RwX2VuY2FwX2VuYWJs ZV9zb2NrZXQoaW50IGZkLCBpbnQgdHlwZSwKIAkJcmV0dXJuIE5VTEw7CiAJfQogCi0JaWYgKHNv Y2stPnNrLT5za19wcm90b2NvbCAhPSBJUFBST1RPX1VEUCkgeworCXNrID0gc29jay0+c2s7CisJ aWYgKHNrLT5za19wcm90b2NvbCAhPSBJUFBST1RPX1VEUCB8fAorCSAgICBzay0+c2tfdHlwZSAh PSBTT0NLX0RHUkFNIHx8CisJICAgIChzay0+c2tfZmFtaWx5ICE9IEFGX0lORVQgJiYgc2stPnNr X2ZhbWlseSAhPSBBRl9JTkVUNikpIHsKIAkJcHJfZGVidWcoInNvY2tldCBmZD0lZCBub3QgVURQ XG4iLCBmZCk7CiAJCXNrID0gRVJSX1BUUigtRUlOVkFMKTsKIAkJZ290byBvdXRfc29jazsKIAl9 CiAKLQlsb2NrX3NvY2soc29jay0+c2spOwotCWlmIChzb2NrLT5zay0+c2tfdXNlcl9kYXRhKSB7 CisJbG9ja19zb2NrKHNrKTsKKwlpZiAoc2stPnNrX3VzZXJfZGF0YSkgewogCQlzayA9IEVSUl9Q VFIoLUVCVVNZKTsKIAkJZ290byBvdXRfcmVsX3NvY2s7CiAJfQogCi0Jc2sgPSBzb2NrLT5zazsK IAlzb2NrX2hvbGQoc2spOwogCiAJdHVuY2ZnLnNrX3VzZXJfZGF0YSA9IGd0cDsKLS0gCjIuMjEu MQoKCkZyb20gMDUzOWY4ZDI1MDllMjI4MDYwNDE0NWYzMWZmMjRkOTUxZDc1ODQwZSBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogWXVraSBUYWd1Y2hpIDx0YWd5b3VuaXRAZ21haWwuY29t PgpEYXRlOiBNb24sIDIwIEphbiAyMDIwIDEzOjQ4OjM3ICswOTAwClN1YmplY3Q6IFtQQVRDSCAw NC8zMl0gaXB2Njogc3I6IHJlbW92ZSBTS0JfR1NPX0lQWElQNiBvbiBFbmQuRCogYWN0aW9ucwoK WyBVcHN0cmVhbSBjb21taXQgNjJlYmFlYWVkZWU3NTkxYzI1NzU0M2QwNDA2NzdhNjBlMzVjN2Fl YyBdCgpBZnRlciBMUk8vR1JPIGlzIGFwcGxpZWQsIFNSdjYgZW5jYXBzdWxhdGVkIHBhY2tldHMg aGF2ZQpTS0JfR1NPX0lQWElQNiBmZWF0dXJlIGZsYWcsIGFuZCB0aGlzIGZsYWcgbXVzdCBiZSBy ZW1vdmVkIHJpZ2h0IGFmdGVyCmRlY2FwdWxhdGlvbiBwcm9jZWR1cmUuCgpDdXJyZW50bHksIFNL Ql9HU09fSVBYSVA2IGZsYWcgaXMgbm90IHJlbW92ZWQgb24gRW5kLkQqIGFjdGlvbnMsIHdoaWNo CmNyZWF0ZXMgaW5jb25zaXN0ZW50IHBhY2tldCBzdGF0ZSwgdGhhdCBpcywgYSBub3JtYWwgVENQ L0lQIHBhY2tldHMKaGF2ZSB0aGUgU0tCX0dTT19JUFhJUDYgZmxhZy4gVGhpcyBiZWhhdmlvciBj YW4gY2F1c2UgdW5leHBlY3RlZApmYWxsYmFjayB0byBHU08gb24gcm91dGluZyB0byBuZXRkZXZp Y2VzIHRoYXQgZG8gbm90IHN1cHBvcnQKU0tCX0dTT19JUFhJUDYuIEZvciBleGFtcGxlLCBvbiBp bnRlci1WUkYgZm9yd2FyZGluZywgZGVjYXBzdWxhdGVkCnBhY2tldHMgc2VwYXJhdGVkIGludG8g c21hbGwgcGFja2V0cyBieSBHU08gYmVjYXVzZSBWUkYgZGV2aWNlcyBkbyBub3QKc3VwcG9ydCBU U08gZm9yIHBhY2tldHMgd2l0aCBTS0JfR1NPX0lQWElQNiBmbGFnLCBhbmQgdGhpcyBkZWdyYWRl cwpmb3J3YXJkaW5nIHBlcmZvcm1hbmNlLgoKVGhpcyBwYXRjaCByZW1vdmVzIGVuY2Fwc3VsYXRp b24gcmVsYXRlZCBHU08gZmxhZ3MgZnJvbSB0aGUgc2tiIHJpZ2h0CmFmdGVyIHRoZSBFbmQuRCog YWN0aW9uIGlzIGFwcGxpZWQuCgpGaXhlczogZDdhNjY5ZGQyZjhiICgiaXB2Njogc3I6IGFkZCBo ZWxwZXIgZnVuY3Rpb25zIGZvciBzZWc2bG9jYWwiKQpTaWduZWQtb2ZmLWJ5OiBZdWtpIFRhZ3Vj aGkgPHRhZ3lvdW5pdEBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9zZWc2X2xvY2FsLmMgfCA0ICsrKy0K IDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1n aXQgYS9uZXQvaXB2Ni9zZWc2X2xvY2FsLmMgYi9uZXQvaXB2Ni9zZWc2X2xvY2FsLmMKaW5kZXgg ZTcwNTY3NDQ2ZjI4Li44MDJlZWJmOGFjNGIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3NlZzZfbG9j YWwuYworKysgYi9uZXQvaXB2Ni9zZWc2X2xvY2FsLmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNs dWRlIDxuZXQvYWRkcmNvbmYuaD4KICNpbmNsdWRlIDxuZXQvaXA2X3JvdXRlLmg+CiAjaW5jbHVk ZSA8bmV0L2RzdF9jYWNoZS5oPgorI2luY2x1ZGUgPG5ldC9pcF90dW5uZWxzLmg+CiAjaWZkZWYg Q09ORklHX0lQVjZfU0VHNl9ITUFDCiAjaW5jbHVkZSA8bmV0L3NlZzZfaG1hYy5oPgogI2VuZGlm CkBAIC0xMzUsNyArMTM2LDggQEAgc3RhdGljIGJvb2wgZGVjYXBfYW5kX3ZhbGlkYXRlKHN0cnVj dCBza19idWZmICpza2IsIGludCBwcm90bykKIAogCXNrYl9yZXNldF9uZXR3b3JrX2hlYWRlcihz a2IpOwogCXNrYl9yZXNldF90cmFuc3BvcnRfaGVhZGVyKHNrYik7Ci0Jc2tiLT5lbmNhcHN1bGF0 aW9uID0gMDsKKwlpZiAoaXB0dW5uZWxfcHVsbF9vZmZsb2Fkcyhza2IpKQorCQlyZXR1cm4gZmFs c2U7CiAKIAlyZXR1cm4gdHJ1ZTsKIH0KLS0gCjIuMjEuMQoKCkZyb20gZGQxM2QwZDlmZmViMjFm YjljYTg2MWQ1NTkyZDkzMGI5OTk4YmZkNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog RmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5jb20+CkRhdGU6IFRodSwgMjMgSmFu IDIwMjAgMDk6NDk6MzQgLTA4MDAKU3ViamVjdDogW1BBVENIIDA1LzMyXSBuZXQ6IGJjbWdlbmV0 OiBVc2UgbmV0aWZfdHhfbmFwaV9hZGQoKSBmb3IgVFggTkFQSQoKWyBVcHN0cmVhbSBjb21taXQg MTQ4OTY1ZGYxYTk5MGFmOThiMmM4NDA5MmMyYTIyNzRjNzQ4OTI4NCBdCgpCZWZvcmUgY29tbWl0 IDc1ODc5MzVjZmExMSAoIm5ldDogYmNtZ2VuZXQ6IG1vdmUgTkFQSSBpbml0aWFsaXphdGlvbiB0 bwpyaW5nIGluaXRpYWxpemF0aW9uIikgbW92ZWQgdGhlIGNvZGUsIHRoaXMgdXNlZCB0byBiZQpu ZXRpZl90eF9uYXBpX2FkZCgpLCBidXQgd2UgbG9zdCB0aGF0IHNtYWxsIHNlbWFudGljIGNoYW5n ZSBpbiB0aGUKcHJvY2VzcywgcmVzdG9yZSB0aGF0LgoKRml4ZXM6IDc1ODc5MzVjZmExMSAoIm5l dDogYmNtZ2VuZXQ6IG1vdmUgTkFQSSBpbml0aWFsaXphdGlvbiB0byByaW5nIGluaXRpYWxpemF0 aW9uIikKU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBGYWluZWxsaSA8Zi5mYWluZWxsaUBnbWFpbC5j b20+CkFja2VkLWJ5OiBEb3VnIEJlcmdlciA8b3BlbmRtYkBnbWFpbC5jb20+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5jIHwgNCArKy0tCiAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2JjbWdlbmV0LmMgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9nZW5ldC9iY21nZW5ldC5jCmluZGV4IDFkZTUxODExZmNiNC4uOGY5 MDlkNTc1MDFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9nZW5l dC9iY21nZW5ldC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2dlbmV0L2Jj bWdlbmV0LmMKQEAgLTIxNjQsOCArMjE2NCw4IEBAIHN0YXRpYyB2b2lkIGJjbWdlbmV0X2luaXRf dHhfcmluZyhzdHJ1Y3QgYmNtZ2VuZXRfcHJpdiAqcHJpdiwKIAkJCQkgIERNQV9FTkRfQUREUik7 CiAKIAkvKiBJbml0aWFsaXplIFR4IE5BUEkgKi8KLQluZXRpZl9uYXBpX2FkZChwcml2LT5kZXYs ICZyaW5nLT5uYXBpLCBiY21nZW5ldF90eF9wb2xsLAotCQkgICAgICAgTkFQSV9QT0xMX1dFSUdI VCk7CisJbmV0aWZfdHhfbmFwaV9hZGQocHJpdi0+ZGV2LCAmcmluZy0+bmFwaSwgYmNtZ2VuZXRf dHhfcG9sbCwKKwkJCSAgTkFQSV9QT0xMX1dFSUdIVCk7CiB9CiAKIC8qIEluaXRpYWxpemUgYSBS RE1BIHJpbmcgKi8KLS0gCjIuMjEuMQoKCkZyb20gYjgxMjMwZmI4YzNjNWQyYmEzNDhmODFmM2Uy ZGMyN2EyYjVhYmM3YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWljaGFlbCBFbGxl cm1hbiA8bXBlQGVsbGVybWFuLmlkLmF1PgpEYXRlOiBGcmksIDI0IEphbiAyMDIwIDIwOjQxOjQ0 ICsxMTAwClN1YmplY3Q6IFtQQVRDSCAwNi8zMl0gbmV0OiBjeGdiM19tYWluOiBBZGQgQ0FQX05F VF9BRE1JTiBjaGVjayB0bwogQ0hFTFNJT19HRVRfTUVNCgpbIFVwc3RyZWFtIGNvbW1pdCAzNTQ2 ZDhmMWJiZTk5MjQ4OGVkOTE1OTJjZjZiZjc2ZTcxMTQ3OTFhID0KClRoZSBjeGdiMyBkcml2ZXIg Zm9yICJDaGVsc2lvIFQzLWJhc2VkIGdpZ2FiaXQgYW5kIDEwR2IgRXRoZXJuZXQKYWRhcHRlcnMi IGltcGxlbWVudHMgYSBjdXN0b20gaW9jdGwgYXMgU0lPQ0NISU9DVEwvU0lPQ0RFVlBSSVZBVEUg aW4KY3hnYl9leHRlbnNpb25faW9jdGwoKS4KCk9uZSBvZiB0aGUgc3ViY29tbWFuZHMgb2YgdGhl IGlvY3RsIGlzIENIRUxTSU9fR0VUX01FTSwgd2hpY2ggYXBwZWFycwp0byByZWFkIG1lbW9yeSBk aXJlY3RseSBvdXQgb2YgdGhlIGFkYXB0ZXIgYW5kIHJldHVybiBpdCB0byB1c2Vyc3BhY2UuCkl0 J3Mgbm90IGVudGlyZWx5IGNsZWFyIHdoYXQgdGhlIGNvbnRlbnRzIG9mIHRoZSBhZGFwdGVyIG1l bW9yeQpjb250YWlucywgYnV0IHRoZSBhc3N1bXB0aW9uIGlzIHRoYXQgaXQgc2hvdWxkbid0IGJl IGFjY2Vzc2libGUgdG8gYWxsCnVzZXJzLgoKU28gYWRkIGEgQ0FQX05FVF9BRE1JTiBjaGVjayB0 byB0aGUgQ0hFTFNJT19HRVRfTUVNIGNhc2UuIFB1dCBpdCBhZnRlcgp0aGUgaXNfb2ZmbG9hZCgp IGNoZWNrLCB3aGljaCBtYXRjaGVzIHR3byBvZiB0aGUgb3RoZXIgc3ViY29tbWFuZHMgaW4KdGhl IHNhbWUgZnVuY3Rpb24gd2hpY2ggYWxzbyBjaGVjayBmb3IgaXNfb2ZmbG9hZCgpIGFuZCBDQVBf TkVUX0FETUlOLgoKRm91bmQgYnkgSWxqYSBieSBjb2RlIGluc3BlY3Rpb24sIG5vdCB0ZXN0ZWQg YXMgSSBkb24ndCBoYXZlIHRoZQpyZXF1aXJlZCBoYXJkd2FyZS4KClJlcG9ydGVkLWJ5OiBJbGph IFZhbiBTcHJ1bmRlbCA8aXZhbnNwcnVuZGVsQGlvYWN0aXZlLmNvbT4KU2lnbmVkLW9mZi1ieTog TWljaGFlbCBFbGxlcm1hbiA8bXBlQGVsbGVybWFuLmlkLmF1PgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvY2hlbHNpby9jeGdiMy9jeGdiM19tYWluLmMgfCAyICsrCiAxIGZpbGUgY2hhbmdlZCwgMiBp bnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9j eGdiMy9jeGdiM19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaGVsc2lvL2N4Z2IzL2N4 Z2IzX21haW4uYwppbmRleCA1OGY4OWY2YTA0MGYuLjk3ZmY4NjA4ZjBhYiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiMy9jeGdiM19tYWluLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvY2hlbHNpby9jeGdiMy9jeGdiM19tYWluLmMKQEAgLTI0NDgsNiAr MjQ0OCw4IEBAIHN0YXRpYyBpbnQgY3hnYl9leHRlbnNpb25faW9jdGwoc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwgdm9pZCBfX3VzZXIgKnVzZXJhZGRyKQogCiAJCWlmICghaXNfb2ZmbG9hZChhZGFw dGVyKSkKIAkJCXJldHVybiAtRU9QTk9UU1VQUDsKKwkJaWYgKCFjYXBhYmxlKENBUF9ORVRfQURN SU4pKQorCQkJcmV0dXJuIC1FUEVSTTsKIAkJaWYgKCEoYWRhcHRlci0+ZmxhZ3MgJiBGVUxMX0lO SVRfRE9ORSkpCiAJCQlyZXR1cm4gLUVJTzsJLyogbmVlZCB0aGUgbWVtb3J5IGNvbnRyb2xsZXJz ICovCiAJCWlmIChjb3B5X2Zyb21fdXNlcigmdCwgdXNlcmFkZHIsIHNpemVvZih0KSkpCi0tIAoy LjIxLjEKCgpGcm9tIGExMDM4ZmM5YTA0ODk5NDEzY2FkOTk4Nzg1YzA5ZGExMDIwMDcxZmUgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5pa28gS29ydHN0cm9tIDxuaWtvLmtvcnRzdHJv bUBub2tpYS5jb20+CkRhdGU6IFRodSwgMTYgSmFuIDIwMjAgMTE6NDM6MjcgKzAyMDAKU3ViamVj dDogW1BBVENIIDA3LzMyXSBuZXQ6IGlwNl9ncmU6IGZpeCBtb3ZpbmcgaXA2Z3JlIGJldHdlZW4g bmFtZXNwYWNlcwoKWyBVcHN0cmVhbSBjb21taXQgNjkwYWZjMTY1YmIzMTQzNTQ2NjdmNjcxNTdj MWExYWVhN2RjNzk3YSBdCgpTdXBwb3J0IGZvciBtb3ZpbmcgSVB2NCBHUkUgdHVubmVscyBiZXR3 ZWVuIG5hbWVzcGFjZXMgd2FzIGFkZGVkIGluCmNvbW1pdCBiNTc3MDhhZGQzMTQgKCJncmU6IGFk ZCB4LW5ldG5zIHN1cHBvcnQiKS4gVGhlIHJlc3BlY3RpdmUgY2hhbmdlCmZvciBJUHY2IHR1bm5l bHMsIGNvbW1pdCAyMmYwODA2OWU4YjQgKCJpcDZncmU6IGFkZCB4LW5ldG5zIHN1cHBvcnQiKQpk aWQgbm90IGRyb3AgTkVUSUZfRl9ORVROU19MT0NBTCBmbGFnIHNvIG1vdmluZyB0aGVtIGZyb20g b25lIG5ldG5zIHRvCmFub3RoZXIgaXMgc3RpbGwgZGVuaWVkIGluIElQdjYgY2FzZS4gRHJvcCBO RVRJRl9GX05FVE5TX0xPQ0FMIGZsYWcgZnJvbQppcDZncmUgdHVubmVscyB0byBhbGxvdyBtb3Zp bmcgaXA2Z3JlIHR1bm5lbCBlbmRwb2ludHMgYmV0d2VlbiBuZXR3b3JrCm5hbWVzcGFjZXMuCgpT aWduZWQtb2ZmLWJ5OiBOaWtvIEtvcnRzdHJvbSA8bmlrby5rb3J0c3Ryb21Abm9raWEuY29tPgpB Y2tlZC1ieTogTmljb2xhcyBEaWNodGVsIDxuaWNvbGFzLmRpY2h0ZWxANndpbmQuY29tPgpBY2tl ZC1ieTogV2lsbGlhbSBUdSA8dTkwMTIwNjNAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjYvaXA2X2dyZS5j IHwgMyAtLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25l dC9pcHY2L2lwNl9ncmUuYyBiL25ldC9pcHY2L2lwNl9ncmUuYwppbmRleCAxODlkZTU2ZjVlMzYu LjllYzA1YTFkZjVlMSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2X2dyZS5jCisrKyBiL25ldC9p cHY2L2lwNl9ncmUuYwpAQCAtMTQ2Niw3ICsxNDY2LDYgQEAgc3RhdGljIGludCBpcDZncmVfdHVu bmVsX2luaXRfY29tbW9uKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJCWRldi0+bXR1IC09IDg7 CiAKIAlpZiAodHVubmVsLT5wYXJtcy5jb2xsZWN0X21kKSB7Ci0JCWRldi0+ZmVhdHVyZXMgfD0g TkVUSUZfRl9ORVROU19MT0NBTDsKIAkJbmV0aWZfa2VlcF9kc3QoZGV2KTsKIAl9CiAJaXA2Z3Jl X3RubF9pbml0X2ZlYXR1cmVzKGRldik7CkBAIC0xODk0LDcgKzE4OTMsNiBAQCBzdGF0aWMgdm9p ZCBpcDZncmVfdGFwX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCiAJZGV2LT5uZWVkc19m cmVlX25ldGRldiA9IHRydWU7CiAJZGV2LT5wcml2X2Rlc3RydWN0b3IgPSBpcDZncmVfZGV2X2Zy ZWU7CiAKLQlkZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfTkVUTlNfTE9DQUw7CiAJZGV2LT5wcml2 X2ZsYWdzICY9IH5JRkZfVFhfU0tCX1NIQVJJTkc7CiAJZGV2LT5wcml2X2ZsYWdzIHw9IElGRl9M SVZFX0FERFJfQ0hBTkdFOwogCW5ldGlmX2tlZXBfZHN0KGRldik7CkBAIC0yMTk3LDcgKzIxOTUs NiBAQCBzdGF0aWMgdm9pZCBpcDZlcnNwYW5fdGFwX3NldHVwKHN0cnVjdCBuZXRfZGV2aWNlICpk ZXYpCiAJZGV2LT5uZWVkc19mcmVlX25ldGRldiA9IHRydWU7CiAJZGV2LT5wcml2X2Rlc3RydWN0 b3IgPSBpcDZncmVfZGV2X2ZyZWU7CiAKLQlkZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfTkVUTlNf TE9DQUw7CiAJZGV2LT5wcml2X2ZsYWdzICY9IH5JRkZfVFhfU0tCX1NIQVJJTkc7CiAJZGV2LT5w cml2X2ZsYWdzIHw9IElGRl9MSVZFX0FERFJfQ0hBTkdFOwogCW5ldGlmX2tlZXBfZHN0KGRldik7 Ci0tIAoyLjIxLjEKCgpGcm9tIDNlZjI0MDBiZWU3MTk1NTFkYWIxMzUzOTFjMjlkMWI4N2MyNmEw OTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdpbGxpYW0gRGF1Y2h5IDx3LmRhdWNo eUBjcml0ZW8uY29tPgpEYXRlOiBUdWUsIDIxIEphbiAyMDIwIDIxOjQ5OjU0ICswMTAwClN1Ympl Y3Q6IFtQQVRDSCAwOC8zMl0gbmV0LCBpcDZfdHVubmVsOiBmaXggbmFtZXNwYWNlcyBtb3ZlCgpb IFVwc3RyZWFtIGNvbW1pdCA1MzExYTY5YWFjYTMwZmE4NDljM2NjNDZmYjI1Zjc1NzI3ZmI3MmQw IF0KCmluIHRoZSBzYW1lIG1hbm5lciBhcyBjb21taXQgZDBmNDE4NTE2MDIyICgibmV0LCBpcF90 dW5uZWw6IGZpeApuYW1lc3BhY2VzIG1vdmUiKSwgZml4IG5hbWVzcGFjZSBtb3ZpbmcgYXMgaXQg d2FzIGJyb2tlbiBzaW5jZSBjb21taXQKOGQ3OTI2NmJjNDhjICgiaXA2X3R1bm5lbDogYWRkIGNv bGxlY3RfbWQgbW9kZSB0byBJUHY2IHR1bm5lbCIpLCBidXQgZm9yCmlwdjYgdGhpcyB0aW1lOyB0 aGVyZSBpcyBubyByZWFzb24gdG8ga2VlcCBpdCBmb3IgaXA2X3R1bm5lbC4KCkZpeGVzOiA4ZDc5 MjY2YmM0OGMgKCJpcDZfdHVubmVsOiBhZGQgY29sbGVjdF9tZCBtb2RlIHRvIElQdjYgdHVubmVs IikKU2lnbmVkLW9mZi1ieTogV2lsbGlhbSBEYXVjaHkgPHcuZGF1Y2h5QGNyaXRlby5jb20+CkFj a2VkLWJ5OiBOaWNvbGFzIERpY2h0ZWwgPG5pY29sYXMuZGljaHRlbEA2d2luZC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQv aXB2Ni9pcDZfdHVubmVsLmMgfCA0ICstLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigr KSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9pcDZfdHVubmVsLmMgYi9u ZXQvaXB2Ni9pcDZfdHVubmVsLmMKaW5kZXggMmYzNzZkYmMzN2Q1Li5iNWRkMjBjNDU5OWIgMTAw NjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl90dW5uZWwuYworKysgYi9uZXQvaXB2Ni9pcDZfdHVubmVs LmMKQEAgLTE4NzcsMTAgKzE4NzcsOCBAQCBzdGF0aWMgaW50IGlwNl90bmxfZGV2X2luaXQoc3Ry dWN0IG5ldF9kZXZpY2UgKmRldikKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwogCWlwNl90bmxf bGlua19jb25maWcodCk7Ci0JaWYgKHQtPnBhcm1zLmNvbGxlY3RfbWQpIHsKLQkJZGV2LT5mZWF0 dXJlcyB8PSBORVRJRl9GX05FVE5TX0xPQ0FMOworCWlmICh0LT5wYXJtcy5jb2xsZWN0X21kKQog CQluZXRpZl9rZWVwX2RzdChkZXYpOwotCX0KIAlyZXR1cm4gMDsKIH0KIAotLSAKMi4yMS4xCgoK RnJvbSA3MTc5NmJmMTY1ZmNkYTlmYjM2Yzg4NmQ3ZGI1Y2ZkODExMmJhMjg0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBXaWxsaWFtIERhdWNoeSA8dy5kYXVjaHlAY3JpdGVvLmNvbT4K RGF0ZTogVHVlLCAyMSBKYW4gMjAyMCAxNToyNjoyNCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDkv MzJdIG5ldCwgaXBfdHVubmVsOiBmaXggbmFtZXNwYWNlcyBtb3ZlCgpbIFVwc3RyZWFtIGNvbW1p dCBkMGY0MTg1MTYwMjJjMzJlY2NlYWY0Mjc1NDIzZTViZDNmODc0M2E5IF0KCmluIHRoZSBzYW1l IG1hbm5lciBhcyBjb21taXQgNjkwYWZjMTY1YmIzICgibmV0OiBpcDZfZ3JlOiBmaXggbW92aW5n CmlwNmdyZSBiZXR3ZWVuIG5hbWVzcGFjZXMiKSwgZml4IG5hbWVzcGFjZSBtb3ZpbmcgYXMgaXQg d2FzIGJyb2tlbiBzaW5jZQpjb21taXQgMmUxNWVhMzkwZTZmICgiaXBfZ3JlOiBBZGQgc3VwcG9y dCB0byBjb2xsZWN0IHR1bm5lbCBtZXRhZGF0YS4iKS4KSW5kZWVkLCB0aGUgaXA2X2dyZSBjb21t aXQgcmVtb3ZlZCB0aGUgbG9jYWwgZmxhZyBmb3IgY29sbGVjdF9tZApjb25kaXRpb24sIHNvIHRo ZXJlIGlzIG5vIHJlYXNvbiB0byBrZWVwIGl0IGZvciBpcF9ncmUvaXBfdHVubmVsLgoKdGhpcyBw YXRjaCB3aWxsIGZpeCBib3RoIGlwX3R1bm5lbCBhbmQgaXBfZ3JlIG1vZHVsZXMuCgpGaXhlczog MmUxNWVhMzkwZTZmICgiaXBfZ3JlOiBBZGQgc3VwcG9ydCB0byBjb2xsZWN0IHR1bm5lbCBtZXRh ZGF0YS4iKQpTaWduZWQtb2ZmLWJ5OiBXaWxsaWFtIERhdWNoeSA8dy5kYXVjaHlAY3JpdGVvLmNv bT4KQWNrZWQtYnk6IE5pY29sYXMgRGljaHRlbCA8bmljb2xhcy5kaWNodGVsQDZ3aW5kLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9pcHY0L2lwX3R1bm5lbC5jIHwgNCArLS0tCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfdHVubmVsLmMg Yi9uZXQvaXB2NC9pcF90dW5uZWwuYwppbmRleCAwZmUyYTVkM2UyNTguLjc0ZTFkOTY0YTYxNSAx MDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfdHVubmVsLmMKKysrIGIvbmV0L2lwdjQvaXBfdHVubmVs LmMKQEAgLTEyMzYsMTAgKzEyMzYsOCBAQCBpbnQgaXBfdHVubmVsX2luaXQoc3RydWN0IG5ldF9k ZXZpY2UgKmRldikKIAlpcGgtPnZlcnNpb24JCT0gNDsKIAlpcGgtPmlobAkJPSA1OwogCi0JaWYg KHR1bm5lbC0+Y29sbGVjdF9tZCkgewotCQlkZXYtPmZlYXR1cmVzIHw9IE5FVElGX0ZfTkVUTlNf TE9DQUw7CisJaWYgKHR1bm5lbC0+Y29sbGVjdF9tZCkKIAkJbmV0aWZfa2VlcF9kc3QoZGV2KTsK LQl9CiAJcmV0dXJuIDA7CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChpcF90dW5uZWxfaW5pdCk7Ci0t IAoyLjIxLjEKCgpGcm9tIGJkMGZmYTM4ZDA2N2RlZTlhNGZlODAxMDJhODA0ZGJiZmFiMGFmMmYg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KRGF0ZTogVHVlLCAyMSBKYW4gMjAyMCAyMjo0NzoyOSAtMDgwMApTdWJqZWN0OiBb UEFUQ0ggMTAvMzJdIG5ldDogcnRuZXRsaW5rOiB2YWxpZGF0ZSBJRkxBX01UVSBhdHRyaWJ1dGUg aW4KIHJ0bmxfY3JlYXRlX2xpbmsoKQoKWyBVcHN0cmVhbSBjb21taXQgZDgzNmY1YzY5ZDg3NDcz ZmY2NWMwNmE2MTIzZTViMmNmNWU1NmY1YiBdCgpydG5sX2NyZWF0ZV9saW5rKCkgbmVlZHMgdG8g YXBwbHkgZGV2LT5taW5fbXR1IGFuZCBkZXYtPm1heF9tdHUKY2hlY2tzIHRoYXQgd2UgYXBwbHkg aW4gZG9fc2V0bGluaygpCgpPdGhlcndpc2UgbWFsaWNpb3VzIHVzZXJzIGNhbiBjcmFzaCB0aGUg a2VybmVsLCBmb3IgZXhhbXBsZSBhZnRlcgphbiBpbnRlZ2VyIG92ZXJmbG93IDoKCkJVRzogS0FT QU46IHVzZS1hZnRlci1mcmVlIGluIG1lbXNldCBpbmNsdWRlL2xpbnV4L3N0cmluZy5oOjM2NSBb aW5saW5lXQpCVUc6IEtBU0FOOiB1c2UtYWZ0ZXItZnJlZSBpbiBfX2FsbG9jX3NrYisweDM3Yi8w eDVlMCBuZXQvY29yZS9za2J1ZmYuYzoyMzgKV3JpdGUgb2Ygc2l6ZSAzMiBhdCBhZGRyIGZmZmY4 ODgxOWYyMGI5YzAgYnkgdGFzayBzd2FwcGVyLzAvMAoKQ1BVOiAwIFBJRDogMCBDb21tOiBzd2Fw cGVyLzAgTm90IHRhaW50ZWQgNS41LjAtcmMxLXN5emthbGxlciAjMApIYXJkd2FyZSBuYW1lOiBH b29nbGUgR29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBH b29nbGUgMDEvMDEvMjAxMQpDYWxsIFRyYWNlOgogPElSUT4KIF9fZHVtcF9zdGFjayBsaWIvZHVt cF9zdGFjay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MTk3LzB4MjEwIGxpYi9kdW1wX3N0 YWNrLmM6MTE4CiBwcmludF9hZGRyZXNzX2Rlc2NyaXB0aW9uLmNvbnN0cHJvcC4wLmNvbGQrMHhk NC8weDMwYiBtbS9rYXNhbi9yZXBvcnQuYzozNzQKIF9fa2FzYW5fcmVwb3J0LmNvbGQrMHgxYi8w eDQxIG1tL2thc2FuL3JlcG9ydC5jOjUwNgoga2FzYW5fcmVwb3J0KzB4MTIvMHgyMCBtbS9rYXNh bi9jb21tb24uYzo2MzkKIGNoZWNrX21lbW9yeV9yZWdpb25faW5saW5lIG1tL2thc2FuL2dlbmVy aWMuYzoxODUgW2lubGluZV0KIGNoZWNrX21lbW9yeV9yZWdpb24rMHgxMzQvMHgxYTAgbW0va2Fz YW4vZ2VuZXJpYy5jOjE5MgogbWVtc2V0KzB4MjQvMHg0MCBtbS9rYXNhbi9jb21tb24uYzoxMDgK IG1lbXNldCBpbmNsdWRlL2xpbnV4L3N0cmluZy5oOjM2NSBbaW5saW5lXQogX19hbGxvY19za2Ir MHgzN2IvMHg1ZTAgbmV0L2NvcmUvc2tidWZmLmM6MjM4CiBhbGxvY19za2IgaW5jbHVkZS9saW51 eC9za2J1ZmYuaDoxMDQ5IFtpbmxpbmVdCiBhbGxvY19za2Jfd2l0aF9mcmFncysweDkzLzB4NTkw IG5ldC9jb3JlL3NrYnVmZi5jOjU2NjQKIHNvY2tfYWxsb2Nfc2VuZF9wc2tiKzB4N2FkLzB4OTIw IG5ldC9jb3JlL3NvY2suYzoyMjQyCiBzb2NrX2FsbG9jX3NlbmRfc2tiKzB4MzIvMHg0MCBuZXQv Y29yZS9zb2NrLmM6MjI1OQogbWxkX25ld3BhY2srMHgxZDcvMHg3ZjAgbmV0L2lwdjYvbWNhc3Qu YzoxNjA5CiBhZGRfZ3JoZWFkLmlzcmEuMCsweDI5OS8weDM3MCBuZXQvaXB2Ni9tY2FzdC5jOjE3 MTMKIGFkZF9ncmVjKzB4N2RiLzB4MTBiMCBuZXQvaXB2Ni9tY2FzdC5jOjE4NDQKIG1sZF9zZW5k X2NyIG5ldC9pcHY2L21jYXN0LmM6MTk3MCBbaW5saW5lXQogbWxkX2lmY190aW1lcl9leHBpcmUr MHgzZDMvMHg5NTAgbmV0L2lwdjYvbWNhc3QuYzoyNDc3CiBjYWxsX3RpbWVyX2ZuKzB4MWFjLzB4 NzgwIGtlcm5lbC90aW1lL3RpbWVyLmM6MTQwNAogZXhwaXJlX3RpbWVycyBrZXJuZWwvdGltZS90 aW1lci5jOjE0NDkgW2lubGluZV0KIF9fcnVuX3RpbWVycyBrZXJuZWwvdGltZS90aW1lci5jOjE3 NzMgW2lubGluZV0KIF9fcnVuX3RpbWVycyBrZXJuZWwvdGltZS90aW1lci5jOjE3NDAgW2lubGlu ZV0KIHJ1bl90aW1lcl9zb2Z0aXJxKzB4NmMzLzB4MTc5MCBrZXJuZWwvdGltZS90aW1lci5jOjE3 ODYKIF9fZG9fc29mdGlycSsweDI2Mi8weDk4YyBrZXJuZWwvc29mdGlycS5jOjI5MgogaW52b2tl X3NvZnRpcnEga2VybmVsL3NvZnRpcnEuYzozNzMgW2lubGluZV0KIGlycV9leGl0KzB4MTliLzB4 MWUwIGtlcm5lbC9zb2Z0aXJxLmM6NDEzCiBleGl0aW5nX2lycSBhcmNoL3g4Ni9pbmNsdWRlL2Fz bS9hcGljLmg6NTM2IFtpbmxpbmVdCiBzbXBfYXBpY190aW1lcl9pbnRlcnJ1cHQrMHgxYTMvMHg2 MTAgYXJjaC94ODYva2VybmVsL2FwaWMvYXBpYy5jOjExMzcKIGFwaWNfdGltZXJfaW50ZXJydXB0 KzB4Zi8weDIwIGFyY2gveDg2L2VudHJ5L2VudHJ5XzY0LlM6ODI5CiA8L0lSUT4KUklQOiAwMDEw Om5hdGl2ZV9zYWZlX2hhbHQrMHhlLzB4MTAgYXJjaC94ODYvaW5jbHVkZS9hc20vaXJxZmxhZ3Mu aDo2MQpDb2RlOiA5OCA2YiBlYSBmOSBlYiA4YSBjYyBjYyBjYyBjYyBjYyBjYyBlOSAwNyAwMCAw MCAwMCAwZiAwMCAyZCA0NCAxYyA2MCAwMCBmNCBjMyA2NiA5MCBlOSAwNyAwMCAwMCAwMCAwZiAw MCAyZCAzNCAxYyA2MCAwMCBmYiBmNCA8YzM+IGNjIDU1IDQ4IDg5IGU1IDQxIDU3IDQxIDU2IDQx IDU1IDQxIDU0IDUzIGU4IDRlIDVkIDlhIGY5IGU4IDc5ClJTUDogMDAxODpmZmZmZmZmZjg5ODA3 Y2U4IEVGTEFHUzogMDAwMDAyODYgT1JJR19SQVg6IGZmZmZmZmZmZmZmZmZmMTMKUkFYOiAxZmZm ZmZmZmYxMzI2NmFlIFJCWDogZmZmZmZmZmY4OTg3YTFjMCBSQ1g6IDAwMDAwMDAwMDAwMDAwMDAK UkRYOiBkZmZmZmMwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAwMDAwMDAwNiBSREk6IGZmZmZmZmZm ODk4N2FhNTQKUkJQOiBmZmZmZmZmZjg5ODA3ZDE4IFIwODogZmZmZmZmZmY4OTg3YTFjMCBSMDk6 IDAwMDAwMDAwMDAwMDAwMDAKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAw MDAwMCBSMTI6IGRmZmZmYzAwMDAwMDAwMDAKUjEzOiBmZmZmZmZmZjhhNzk5OTgwIFIxNDogMDAw MDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDAKIGFyY2hfY3B1X2lkbGUrMHhhLzB4 MTAgYXJjaC94ODYva2VybmVsL3Byb2Nlc3MuYzo2OTAKIGRlZmF1bHRfaWRsZV9jYWxsKzB4ODQv MHhiMCBrZXJuZWwvc2NoZWQvaWRsZS5jOjk0CiBjcHVpZGxlX2lkbGVfY2FsbCBrZXJuZWwvc2No ZWQvaWRsZS5jOjE1NCBbaW5saW5lXQogZG9faWRsZSsweDNjOC8weDZlMCBrZXJuZWwvc2NoZWQv aWRsZS5jOjI2OQogY3B1X3N0YXJ0dXBfZW50cnkrMHgxYi8weDIwIGtlcm5lbC9zY2hlZC9pZGxl LmM6MzYxCiByZXN0X2luaXQrMHgyM2IvMHgzNzEgaW5pdC9tYWluLmM6NDUxCiBhcmNoX2NhbGxf cmVzdF9pbml0KzB4ZS8weDFiCiBzdGFydF9rZXJuZWwrMHg5MDQvMHg5NDMgaW5pdC9tYWluLmM6 Nzg0CiB4ODZfNjRfc3RhcnRfcmVzZXJ2YXRpb25zKzB4MjkvMHgyYiBhcmNoL3g4Ni9rZXJuZWwv aGVhZDY0LmM6NDkwCiB4ODZfNjRfc3RhcnRfa2VybmVsKzB4NzcvMHg3YiBhcmNoL3g4Ni9rZXJu ZWwvaGVhZDY0LmM6NDcxCiBzZWNvbmRhcnlfc3RhcnR1cF82NCsweGE0LzB4YjAgYXJjaC94ODYv a2VybmVsL2hlYWRfNjQuUzoyNDIKClRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIHBh Z2U6CnBhZ2U6ZmZmZmVhMDAwNjdjODJjMCByZWZjb3VudDowIG1hcGNvdW50OjAgbWFwcGluZzow MDAwMDAwMDAwMDAwMDAwIGluZGV4OjB4MApyYXc6IDA1N2ZmZTAwMDAwMDAwMDAgZmZmZmVhMDAw NjdjODJjOCBmZmZmZWEwMDA2N2M4MmM4IDAwMDAwMDAwMDAwMDAwMDAKcmF3OiAwMDAwMDAwMDAw MDAwMDAwIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDBmZmZmZmZmZiAwMDAwMDAwMDAwMDAwMDAw CnBhZ2UgZHVtcGVkIGJlY2F1c2U6IGthc2FuOiBiYWQgYWNjZXNzIGRldGVjdGVkCgpNZW1vcnkg c3RhdGUgYXJvdW5kIHRoZSBidWdneSBhZGRyZXNzOgogZmZmZjg4ODE5ZjIwYjg4MDogZmYgZmYg ZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYKIGZmZmY4ODgxOWYyMGI5 MDA6IGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmCj5mZmZm ODg4MTlmMjBiOTgwOiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiBm ZiBmZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogZmZmZjg4 ODE5ZjIwYmEwMDogZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYgZmYg ZmYKIGZmZmY4ODgxOWYyMGJhODA6IGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZmIGZm IGZmIGZmIGZmIGZmCgpGaXhlczogNjFlODQ2MjNhY2UzICgibmV0OiBjZW50cmFsaXplIG5ldF9k ZXZpY2UgbWluL21heCBNVFUgY2hlY2tpbmciKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29n bGVncm91cHMuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9saW51eC9uZXRkZXZpY2UuaCB8ICAyICsrCiBuZXQvY29y ZS9kZXYuYyAgICAgICAgICAgIHwgMjkgKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIG5l dC9jb3JlL3J0bmV0bGluay5jICAgICAgfCAxMyArKysrKysrKysrKy0tCiAzIGZpbGVzIGNoYW5n ZWQsIDMyIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvbmV0ZGV2aWNlLmggYi9pbmNsdWRlL2xpbnV4L25ldGRldmljZS5oCmluZGV4IDEz ZjA5NzA2MDMzYS4uZjhmZGU5ZmE0NzljIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L25ldGRl dmljZS5oCisrKyBiL2luY2x1ZGUvbGludXgvbmV0ZGV2aWNlLmgKQEAgLTM2NjYsNiArMzY2Niw4 IEBAIGludCBkZXZfc2V0X2FsaWFzKHN0cnVjdCBuZXRfZGV2aWNlICosIGNvbnN0IGNoYXIgKiwg c2l6ZV90KTsKIGludCBkZXZfZ2V0X2FsaWFzKGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICosIGNo YXIgKiwgc2l6ZV90KTsKIGludCBkZXZfY2hhbmdlX25ldF9uYW1lc3BhY2Uoc3RydWN0IG5ldF9k ZXZpY2UgKiwgc3RydWN0IG5ldCAqLCBjb25zdCBjaGFyICopOwogaW50IF9fZGV2X3NldF9tdHUo c3RydWN0IG5ldF9kZXZpY2UgKiwgaW50KTsKK2ludCBkZXZfdmFsaWRhdGVfbXR1KHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsIGludCBtdHUsCisJCSAgICAgc3RydWN0IG5ldGxpbmtfZXh0X2FjayAq ZXh0YWNrKTsKIGludCBkZXZfc2V0X210dV9leHQoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50 IG10dSwKIAkJICAgIHN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjayk7CiBpbnQgZGV2X3Nl dF9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKiwgaW50KTsKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2Rl di5jIGIvbmV0L2NvcmUvZGV2LmMKaW5kZXggMzA5OGM5MGQ2MGUyLi4zYTk0ZWMyNjEwZWEgMTAw NjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3JlL2Rldi5jCkBAIC03OTczLDYg Kzc5NzMsMjIgQEAgaW50IF9fZGV2X3NldF9tdHUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50 IG5ld19tdHUpCiB9CiBFWFBPUlRfU1lNQk9MKF9fZGV2X3NldF9tdHUpOwogCitpbnQgZGV2X3Zh bGlkYXRlX210dShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgbmV3X210dSwKKwkJICAgICBz dHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spCit7CisJLyogTVRVIG11c3QgYmUgcG9zaXRp dmUsIGFuZCBpbiByYW5nZSAqLworCWlmIChuZXdfbXR1IDwgMCB8fCBuZXdfbXR1IDwgZGV2LT5t aW5fbXR1KSB7CisJCU5MX1NFVF9FUlJfTVNHKGV4dGFjaywgIm10dSBsZXNzIHRoYW4gZGV2aWNl IG1pbmltdW0iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJaWYgKGRldi0+bWF4X210dSA+ IDAgJiYgbmV3X210dSA+IGRldi0+bWF4X210dSkgeworCQlOTF9TRVRfRVJSX01TRyhleHRhY2ss ICJtdHUgZ3JlYXRlciB0aGFuIGRldmljZSBtYXhpbXVtIik7CisJCXJldHVybiAtRUlOVkFMOwor CX0KKwlyZXR1cm4gMDsKK30KKwogLyoqCiAgKglkZXZfc2V0X210dV9leHQgLSBDaGFuZ2UgbWF4 aW11bSB0cmFuc2ZlciB1bml0CiAgKglAZGV2OiBkZXZpY2UKQEAgLTc5ODksMTYgKzgwMDUsOSBA QCBpbnQgZGV2X3NldF9tdHVfZXh0KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBuZXdfbXR1 LAogCWlmIChuZXdfbXR1ID09IGRldi0+bXR1KQogCQlyZXR1cm4gMDsKIAotCS8qIE1UVSBtdXN0 IGJlIHBvc2l0aXZlLCBhbmQgaW4gcmFuZ2UgKi8KLQlpZiAobmV3X210dSA8IDAgfHwgbmV3X210 dSA8IGRldi0+bWluX210dSkgewotCQlOTF9TRVRfRVJSX01TRyhleHRhY2ssICJtdHUgbGVzcyB0 aGFuIGRldmljZSBtaW5pbXVtIik7Ci0JCXJldHVybiAtRUlOVkFMOwotCX0KLQotCWlmIChkZXYt Pm1heF9tdHUgPiAwICYmIG5ld19tdHUgPiBkZXYtPm1heF9tdHUpIHsKLQkJTkxfU0VUX0VSUl9N U0coZXh0YWNrLCAibXR1IGdyZWF0ZXIgdGhhbiBkZXZpY2UgbWF4aW11bSIpOwotCQlyZXR1cm4g LUVJTlZBTDsKLQl9CisJZXJyID0gZGV2X3ZhbGlkYXRlX210dShkZXYsIG5ld19tdHUsIGV4dGFj ayk7CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKIAogCWlmICghbmV0aWZfZGV2aWNlX3ByZXNl bnQoZGV2KSkKIAkJcmV0dXJuIC1FTk9ERVY7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9ydG5ldGxp bmsuYyBiL25ldC9jb3JlL3J0bmV0bGluay5jCmluZGV4IGU0ZWM1NzVjMWZiYS4uOTQ0YWNiMWE5 ZjI5IDEwMDY0NAotLS0gYS9uZXQvY29yZS9ydG5ldGxpbmsuYworKysgYi9uZXQvY29yZS9ydG5l dGxpbmsuYwpAQCAtMjk1OSw4ICsyOTU5LDE3IEBAIHN0cnVjdCBuZXRfZGV2aWNlICpydG5sX2Ny ZWF0ZV9saW5rKHN0cnVjdCBuZXQgKm5ldCwgY29uc3QgY2hhciAqaWZuYW1lLAogCWRldi0+cnRu bF9saW5rX29wcyA9IG9wczsKIAlkZXYtPnJ0bmxfbGlua19zdGF0ZSA9IFJUTkxfTElOS19JTklU SUFMSVpJTkc7CiAKLQlpZiAodGJbSUZMQV9NVFVdKQotCQlkZXYtPm10dSA9IG5sYV9nZXRfdTMy KHRiW0lGTEFfTVRVXSk7CisJaWYgKHRiW0lGTEFfTVRVXSkgeworCQl1MzIgbXR1ID0gbmxhX2dl dF91MzIodGJbSUZMQV9NVFVdKTsKKwkJaW50IGVycjsKKworCQllcnIgPSBkZXZfdmFsaWRhdGVf bXR1KGRldiwgbXR1LCBleHRhY2spOworCQlpZiAoZXJyKSB7CisJCQlmcmVlX25ldGRldihkZXYp OworCQkJcmV0dXJuIEVSUl9QVFIoZXJyKTsKKwkJfQorCQlkZXYtPm10dSA9IG10dTsKKwl9CiAJ aWYgKHRiW0lGTEFfQUREUkVTU10pIHsKIAkJbWVtY3B5KGRldi0+ZGV2X2FkZHIsIG5sYV9kYXRh KHRiW0lGTEFfQUREUkVTU10pLAogCQkJCW5sYV9sZW4odGJbSUZMQV9BRERSRVNTXSkpOwotLSAK Mi4yMS4xCgoKRnJvbSA1OTFlMmNhMzVkNTVhZmQyNmMwYTYwNjRlM2ZjYjlhYzQzNjE1ODNhIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdt YWlsLmNvbT4KRGF0ZTogV2VkLCAyMiBKYW4gMjAyMCAxNTo0MjowMiAtMDgwMApTdWJqZWN0OiBb UEFUQ0ggMTEvMzJdIG5ldF9zY2hlZDogZml4IGRhdGFsZW4gZm9yIGVtYXRjaAoKWyBVcHN0cmVh bSBjb21taXQgNjE2NzhkMjhkNGE0NWVmMzc2ZjVkMDJhODM5Y2MzNzUwOWFlOTI4MSBdCgpzeXpi b3QgcmVwb3J0ZWQgYW4gb3V0LW9mLWJvdW5kIGFjY2VzcyBpbiBlbV9uYnl0ZS4gQXMgaW5pdGlh bGx5CmFuYWx5emVkIGJ5IEVyaWMsIHRoaXMgaXMgYmVjYXVzZSBlbV9uYnl0ZSBzZXRzIGl0cyBv d24gZW0tPmRhdGFsZW4KaW4gZW1fbmJ5dGVfY2hhbmdlKCkgb3RoZXIgdGhhbiB0aGUgb25lIHNw ZWNpZmllZCBieSB1c2VyLCBidXQgdGhpcwp2YWx1ZSBnZXRzIG92ZXJ3cml0dGVuIGxhdGVyIGJ5 IGl0cyBjYWxsZXIgdGNmX2VtX3ZhbGlkYXRlKCkuCldlIHNob3VsZCBsZWF2ZSBlbS0+ZGF0YWxl biB1bnRvdWNoZWQgdG8gcmVzcGVjdCB0aGVpciBjaG9pY2VzLgoKSSBhdWRpdCBhbGwgdGhlIGlu LXRyZWUgZW1hdGNoIHVzZXJzLCBhbGwgb2YgdGhvc2UgaW1wbGVtZW50Ci0+Y2hhbmdlKCkgc2V0 IGVtLT5kYXRhbGVuLCBzbyB3ZSBjYW4ganVzdCBhdm9pZCBzZXR0aW5nIGl0IHR3aWNlCmluIHRo aXMgY2FzZS4KClJlcG9ydGVkLWFuZC10ZXN0ZWQtYnk6IHN5emJvdCs1YWY5YTkwZGFkNTY4YWE5 ZjYxMUBzeXprYWxsZXIuYXBwc3BvdG1haWwuY29tClJlcG9ydGVkLWJ5OiBzeXpib3QrMmYwNzkw M2E1YjA1ZTdmMzY0MTBAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpGaXhlczogMWRhMTc3ZTRj M2Y0ICgiTGludXgtMi42LjEyLXJjMiIpCkNjOiBFcmljIER1bWF6ZXQgPGVyaWMuZHVtYXpldEBn bWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdAZ21haWwu Y29tPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L3NjaGVkL2VtYXRjaC5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3NjaGVkL2VtYXRjaC5jIGIvbmV0L3NjaGVk L2VtYXRjaC5jCmluZGV4IDhmMmFkNzA2Nzg0ZC4uZDAxNDBhOTI2OTRhIDEwMDY0NAotLS0gYS9u ZXQvc2NoZWQvZW1hdGNoLmMKKysrIGIvbmV0L3NjaGVkL2VtYXRjaC5jCkBAIC0yNjMsMTIgKzI2 MywxMiBAQCBzdGF0aWMgaW50IHRjZl9lbV92YWxpZGF0ZShzdHJ1Y3QgdGNmX3Byb3RvICp0cCwK IAkJCQl9CiAJCQkJZW0tPmRhdGEgPSAodW5zaWduZWQgbG9uZykgdjsKIAkJCX0KKwkJCWVtLT5k YXRhbGVuID0gZGF0YV9sZW47CiAJCX0KIAl9CiAKIAllbS0+bWF0Y2hpZCA9IGVtX2hkci0+bWF0 Y2hpZDsKIAllbS0+ZmxhZ3MgPSBlbV9oZHItPmZsYWdzOwotCWVtLT5kYXRhbGVuID0gZGF0YV9s ZW47CiAJZW0tPm5ldCA9IG5ldDsKIAogCWVyciA9IDA7Ci0tIAoyLjIxLjEKCgpGcm9tIGMyOTg4 NWJlNmNjNGVlYWI1Y2QyZjEzMjQzZTBhMjU3ZDM5YTZjMGIgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAy MSBKYW4gMjAyMCAxMTowMjoyMCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTIvMzJdIG5ldF9zY2hl ZDogdXNlIHZhbGlkYXRlZCBUQ0FfS0lORCBhdHRyaWJ1dGUgaW4KIHRjX25ld190ZmlsdGVyKCkK ClsgVXBzdHJlYW0gY29tbWl0IDM2ZDc5YWY3ZmI1OWQ2ZDkxMDZmZWI5YzE4NTVlYjkzZDZkNTNm ZTYgXQoKc3lzYm90IGZvdW5kIGFub3RoZXIgaXNzdWUgaW4gdGNfbmV3X3RmaWx0ZXIoKS4KV2Ug cHJvYmFibHkgc2hvdWxkIHVzZSBAbmFtZSB3aGljaCBjb250YWlucyB0aGUgc2FuaXRpemVkCnZl cnNpb24gb2YgVENBX0tJTkQuCgpCVUc6IEtNU0FOOiB1bmluaXQtdmFsdWUgaW4gc3RyaW5nX25v Y2hlY2sgbGliL3ZzcHJpbnRmLmM6NjA4IFtpbmxpbmVdCkJVRzogS01TQU46IHVuaW5pdC12YWx1 ZSBpbiBzdHJpbmcrMHg1MjIvMHg2OTAgbGliL3ZzcHJpbnRmLmM6Njg5CkNQVTogMSBQSUQ6IDEw NzUzIENvbW06IHN5ei1leGVjdXRvci4xIE5vdCB0YWludGVkIDUuNS4wLXJjNS1zeXprYWxsZXIg IzAKSGFyZHdhcmUgbmFtZTogR29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29t cHV0ZSBFbmdpbmUsIEJJT1MgR29vZ2xlIDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKIF9fZHVtcF9z dGFjayBsaWIvZHVtcF9zdGFjay5jOjc3IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MWM5LzB4MjIw IGxpYi9kdW1wX3N0YWNrLmM6MTE4CiBrbXNhbl9yZXBvcnQrMHhmNy8weDFlMCBtbS9rbXNhbi9r bXNhbl9yZXBvcnQuYzoxMTgKIF9fbXNhbl93YXJuaW5nKzB4NTgvMHhhMCBtbS9rbXNhbi9rbXNh bl9pbnN0ci5jOjIxNQogc3RyaW5nX25vY2hlY2sgbGliL3ZzcHJpbnRmLmM6NjA4IFtpbmxpbmVd CiBzdHJpbmcrMHg1MjIvMHg2OTAgbGliL3ZzcHJpbnRmLmM6Njg5CiB2c25wcmludGYrMHgyMDdk LzB4MzFiMCBsaWIvdnNwcmludGYuYzoyNTc0CiBfX3JlcXVlc3RfbW9kdWxlKzB4MmFkLzB4MTFj MCBrZXJuZWwva21vZC5jOjE0MwogdGNmX3Byb3RvX2xvb2t1cF9vcHMrMHgyNDEvMHg3MjAgbmV0 L3NjaGVkL2Nsc19hcGkuYzoxMzkKIHRjZl9wcm90b19jcmVhdGUgbmV0L3NjaGVkL2Nsc19hcGku YzoyNjIgW2lubGluZV0KIHRjX25ld190ZmlsdGVyKzB4MmE0ZS8weDUwMTAgbmV0L3NjaGVkL2Ns c19hcGkuYzoyMDU4CiBydG5ldGxpbmtfcmN2X21zZysweGNiNy8weDE1NzAgbmV0L2NvcmUvcnRu ZXRsaW5rLmM6NTQxNQogbmV0bGlua19yY3Zfc2tiKzB4NDUxLzB4NjUwIG5ldC9uZXRsaW5rL2Fm X25ldGxpbmsuYzoyNDc3CiBydG5ldGxpbmtfcmN2KzB4NTAvMHg2MCBuZXQvY29yZS9ydG5ldGxp bmsuYzo1NDQyCiBuZXRsaW5rX3VuaWNhc3Rfa2VybmVsIG5ldC9uZXRsaW5rL2FmX25ldGxpbmsu YzoxMzAyIFtpbmxpbmVdCiBuZXRsaW5rX3VuaWNhc3QrMHhmOWUvMHgxMTAwIG5ldC9uZXRsaW5r L2FmX25ldGxpbmsuYzoxMzI4CiBuZXRsaW5rX3NlbmRtc2crMHgxMjQ4LzB4MTRkMCBuZXQvbmV0 bGluay9hZl9uZXRsaW5rLmM6MTkxNwogc29ja19zZW5kbXNnX25vc2VjIG5ldC9zb2NrZXQuYzo2 MzkgW2lubGluZV0KIHNvY2tfc2VuZG1zZyBuZXQvc29ja2V0LmM6NjU5IFtpbmxpbmVdCiBfX19f c3lzX3NlbmRtc2crMHgxMmI2LzB4MTM1MCBuZXQvc29ja2V0LmM6MjMzMAogX19fc3lzX3NlbmRt c2cgbmV0L3NvY2tldC5jOjIzODQgW2lubGluZV0KIF9fc3lzX3NlbmRtc2crMHg0NTEvMHg1ZjAg bmV0L3NvY2tldC5jOjI0MTcKIF9fZG9fc3lzX3NlbmRtc2cgbmV0L3NvY2tldC5jOjI0MjYgW2lu bGluZV0KIF9fc2Vfc3lzX3NlbmRtc2crMHg5Ny8weGIwIG5ldC9zb2NrZXQuYzoyNDI0CiBfX3g2 NF9zeXNfc2VuZG1zZysweDRhLzB4NzAgbmV0L3NvY2tldC5jOjI0MjQKIGRvX3N5c2NhbGxfNjQr MHhiOC8weDE2MCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyOTYKIGVudHJ5X1NZU0NBTExfNjRf YWZ0ZXJfaHdmcmFtZSsweDQ0LzB4YTkKUklQOiAwMDMzOjB4NDViMzQ5CkNvZGU6IGFkIGI2IGZi IGZmIGMzIDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDY2IDkwIDQ4IDg5IGY4IDQ4IDg5 IGY3IDQ4IDg5IGQ2IDQ4IDg5IGNhIDRkIDg5IGMyIDRkIDg5IGM4IDRjIDhiIDRjIDI0IDA4IDBm IDA1IDw0OD4gM2QgMDEgZjAgZmYgZmYgMGYgODMgN2IgYjYgZmIgZmYgYzMgNjYgMmUgMGYgMWYg ODQgMDAgMDAgMDAgMDAKUlNQOiAwMDJiOjAwMDA3Zjg4YjM5NDhjNzggRUZMQUdTOiAwMDAwMDI0 NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDAyZQpSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAw MDAwN2Y4OGIzOTQ5NmQ0IFJDWDogMDAwMDAwMDAwMDQ1YjM0OQpSRFg6IDAwMDAwMDAwMDAwMDAw MDAgUlNJOiAwMDAwMDAwMDIwMDAwMWMwIFJESTogMDAwMDAwMDAwMDAwMDAwMwpSQlA6IDAwMDAw MDAwMDA3NWJmYzggUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTogMDAwMDAwMDAwMDAwMDAwMApS MTA6IDAwMDAwMDAwMDAwMDAwMDAgUjExOiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDBm ZmZmZmZmZgpSMTM6IDAwMDAwMDAwMDAwMDA5OWYgUjE0OiAwMDAwMDAwMDAwNGNiMTYzIFIxNTog MDAwMDAwMDAwMDc1YmZkNAoKVW5pbml0IHdhcyBjcmVhdGVkIGF0Ogoga21zYW5fc2F2ZV9zdGFj a193aXRoX2ZsYWdzIG1tL2ttc2FuL2ttc2FuLmM6MTQ0IFtpbmxpbmVdCiBrbXNhbl9pbnRlcm5h bF9wb2lzb25fc2hhZG93KzB4NjYvMHhkMCBtbS9rbXNhbi9rbXNhbi5jOjEyNwoga21zYW5fc2xh Yl9hbGxvYysweDhhLzB4ZTAgbW0va21zYW4va21zYW5faG9va3MuYzo4Mgogc2xhYl9hbGxvY19u b2RlIG1tL3NsdWIuYzoyNzc0IFtpbmxpbmVdCiBfX2ttYWxsb2Nfbm9kZV90cmFja19jYWxsZXIr MHhiNDAvMHgxMjAwIG1tL3NsdWIuYzo0MzgyCiBfX2ttYWxsb2NfcmVzZXJ2ZSBuZXQvY29yZS9z a2J1ZmYuYzoxNDEgW2lubGluZV0KIF9fYWxsb2Nfc2tiKzB4MmZkLzB4YWMwIG5ldC9jb3JlL3Nr YnVmZi5jOjIwOQogYWxsb2Nfc2tiIGluY2x1ZGUvbGludXgvc2tidWZmLmg6MTA0OSBbaW5saW5l XQogbmV0bGlua19hbGxvY19sYXJnZV9za2IgbmV0L25ldGxpbmsvYWZfbmV0bGluay5jOjExNzQg W2lubGluZV0KIG5ldGxpbmtfc2VuZG1zZysweDdkMy8weDE0ZDAgbmV0L25ldGxpbmsvYWZfbmV0 bGluay5jOjE4OTIKIHNvY2tfc2VuZG1zZ19ub3NlYyBuZXQvc29ja2V0LmM6NjM5IFtpbmxpbmVd CiBzb2NrX3NlbmRtc2cgbmV0L3NvY2tldC5jOjY1OSBbaW5saW5lXQogX19fX3N5c19zZW5kbXNn KzB4MTJiNi8weDEzNTAgbmV0L3NvY2tldC5jOjIzMzAKIF9fX3N5c19zZW5kbXNnIG5ldC9zb2Nr ZXQuYzoyMzg0IFtpbmxpbmVdCiBfX3N5c19zZW5kbXNnKzB4NDUxLzB4NWYwIG5ldC9zb2NrZXQu YzoyNDE3CiBfX2RvX3N5c19zZW5kbXNnIG5ldC9zb2NrZXQuYzoyNDI2IFtpbmxpbmVdCiBfX3Nl X3N5c19zZW5kbXNnKzB4OTcvMHhiMCBuZXQvc29ja2V0LmM6MjQyNAogX194NjRfc3lzX3NlbmRt c2crMHg0YS8weDcwIG5ldC9zb2NrZXQuYzoyNDI0CiBkb19zeXNjYWxsXzY0KzB4YjgvMHgxNjAg YXJjaC94ODYvZW50cnkvY29tbW9uLmM6Mjk2CiBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJh bWUrMHg0NC8weGE5CgpGaXhlczogNmY5NmMzYzY5MDRjICgibmV0X3NjaGVkOiBmaXggYmFja3dh cmQgY29tcGF0aWJpbGl0eSBmb3IgVENBX0tJTkQiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6 ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBn b29nbGVncm91cHMuY29tPgpDYzogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ CkNjOiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4K Q2M6IEphbWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkNjOiBKaXJpIFBpcmtvIDxq aXJpQHJlc251bGxpLnVzPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRh dmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL2Nsc19hcGkuYyB8IDUgKystLS0KIDEgZmlsZSBj aGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L3NjaGVkL2Nsc19hcGkuYyBiL25ldC9zY2hlZC9jbHNfYXBpLmMKaW5kZXggNzZlMGQxMjI2MTZh Li5jMmNkZDBmYzJlNzAgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9jbHNfYXBpLmMKKysrIGIvbmV0 L3NjaGVkL2Nsc19hcGkuYwpAQCAtMjA1NSw5ICsyMDU1LDggQEAgc3RhdGljIGludCB0Y19uZXdf dGZpbHRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgbmxtc2doZHIgKm4sCiAJCQkJCQkJ ICAgICAgICZjaGFpbl9pbmZvKSk7CiAKIAkJbXV0ZXhfdW5sb2NrKCZjaGFpbi0+ZmlsdGVyX2No YWluX2xvY2spOwotCQl0cF9uZXcgPSB0Y2ZfcHJvdG9fY3JlYXRlKG5sYV9kYXRhKHRjYVtUQ0Ff S0lORF0pLAotCQkJCQkgIHByb3RvY29sLCBwcmlvLCBjaGFpbiwgcnRubF9oZWxkLAotCQkJCQkg IGV4dGFjayk7CisJCXRwX25ldyA9IHRjZl9wcm90b19jcmVhdGUobmFtZSwgcHJvdG9jb2wsIHBy aW8sIGNoYWluLAorCQkJCQkgIHJ0bmxfaGVsZCwgZXh0YWNrKTsKIAkJaWYgKElTX0VSUih0cF9u ZXcpKSB7CiAJCQllcnIgPSBQVFJfRVJSKHRwX25ldyk7CiAJCQlnb3RvIGVycm91dF90cDsKLS0g CjIuMjEuMQoKCkZyb20gZDFkYmJmM2Y5MWU4YTQyMmI0ZTcxNjM5ZmRkZmJkY2RjYWY1OGY1YyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm91bmkgSG9nYW5kZXIgPGpvdW5pLmhvZ2Fu ZGVyQHVuaWtpZS5jb20+CkRhdGU6IE1vbiwgMjAgSmFuIDIwMjAgMDk6NTE6MDMgKzAyMDAKU3Vi amVjdDogW1BBVENIIDEzLzMyXSBuZXQtc3lzZnM6IEZpeCByZWZlcmVuY2UgY291bnQgbGVhawoK WyBVcHN0cmVhbSBjb21taXQgY2I2MjZiZjU2NmViNDQzMzMxOGQzNTY4MTI4NmM0OTRmMDRmZWRj YyBdCgpOZXRkZXZfcmVnaXN0ZXJfa29iamVjdCBpcyBjYWxsaW5nIGRldmljZV9pbml0aWFsaXpl LiBJbiBjYXNlIG9mIGVycm9yCnJlZmVyZW5jZSB0YWtlbiBieSBkZXZpY2VfaW5pdGlhbGl6ZSBp cyBub3QgZ2l2ZW4gdXAuCgpEcml2ZXJzIGFyZSBzdXBwb3NlZCB0byBjYWxsIGZyZWVfbmV0ZGV2 IGluIGNhc2Ugb2YgZXJyb3IuIEluIG5vbi1lcnJvcgpjYXNlIHRoZSBsYXN0IHJlZmVyZW5jZSBp cyBnaXZlbiB1cCB0aGVyZSBhbmQgZGV2aWNlIHJlbGVhc2Ugc2VxdWVuY2UKaXMgdHJpZ2dlcmVk LiBJbiBlcnJvciBjYXNlIHRoaXMgcmVmZXJlbmNlIGlzIGtlcHQgYW5kIHRoZSByZWxlYXNlCnNl cXVlbmNlIGlzIG5ldmVyIHN0YXJ0ZWQuCgpGaXggdGhpcyBieSBzZXR0aW5nIHJlZ19zdGF0ZSBh cyBORVRSRUdfVU5SRUdJU1RFUkVEIGlmIHJlZ2lzdGVyaW5nCmZhaWxzLgoKVGhpcyBpcyB0aGUg cm9vdGNhdXNlIGZvciBjb3VwbGUgb2YgbWVtb3J5IGxlYWtzIHJlcG9ydGVkIGJ5IFN5emthbGxl cjoKCkJVRzogbWVtb3J5IGxlYWsgdW5yZWZlcmVuY2VkIG9iamVjdCAweGZmZmY4ODgwNjc1Y2Ew MDggKHNpemUgMjU2KToKICBjb21tICJuZXRkZXZfcmVnaXN0ZXIiLCBwaWQgMjgxLCBqaWZmaWVz IDQyOTQ2OTY2NjMgKGFnZSA2LjgwOHMpCiAgaGV4IGR1bXAgKGZpcnN0IDMyIGJ5dGVzKToKICAg IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIC4uLi4uLi4u Li4uLi4uLi4KICAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIC4uLi4uLi4uLi4uLi4uLi4KICBiYWNrdHJhY2U6CiAgICBbPDAwMDAwMDAwNThjYTQ3MTE+ XSBrbWVtX2NhY2hlX2FsbG9jX3RyYWNlKzB4MTY3LzB4MjgwCiAgICBbPDAwMDAwMDAwMjM0MDAx OWI+XSBkZXZpY2VfYWRkKzB4ODgyLzB4MTc1MAogICAgWzwwMDAwMDAwMDFkNTg4YzNhPl0gbmV0 ZGV2X3JlZ2lzdGVyX2tvYmplY3QrMHgxMjgvMHgzODAKICAgIFs8MDAwMDAwMDAxMWVmNTUzNT5d IHJlZ2lzdGVyX25ldGRldmljZSsweGExYi8weGYwMAogICAgWzwwMDAwMDAwMDdmY2YxYzk5Pl0g X190dW5fY2hyX2lvY3RsKzB4MjBkNS8weDNkZDAKICAgIFs8MDAwMDAwMDA2YTViN2IyYj5dIHR1 bl9jaHJfaW9jdGwrMHgyZi8weDQwCiAgICBbPDAwMDAwMDAwZjMwZjgzNGE+XSBkb192ZnNfaW9j dGwrMHgxYzcvMHgxNTEwCiAgICBbPDAwMDAwMDAwZmJhMDYyZWE+XSBrc3lzX2lvY3RsKzB4OTkv MHhiMAogICAgWzwwMDAwMDAwMGIxYzFiOGQyPl0gX194NjRfc3lzX2lvY3RsKzB4NzgvMHhiMAog ICAgWzwwMDAwMDAwMDk4NGNhYmI5Pl0gZG9fc3lzY2FsbF82NCsweDE2Zi8weDU4MAogICAgWzww MDAwMDAwMDBiZGUwMzNkPl0gZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDQvMHhh OQogICAgWzwwMDAwMDAwMGU2Y2EyZDlmPl0gMHhmZmZmZmZmZmZmZmZmZmZmCgpCVUc6IG1lbW9y eSBsZWFrCnVucmVmZXJlbmNlZCBvYmplY3QgMHhmZmZmODg4MDY2OGJhNTg4IChzaXplIDgpOgog IGNvbW0gImtvYmplY3Rfc2V0X25hbSIsIHBpZCAyODYsIGppZmZpZXMgNDI5NDcyNTI5NyAoYWdl IDkuODcxcykKICBoZXggZHVtcCAoZmlyc3QgOCBieXRlcyk6CiAgICA2ZSA3MiAzMCAwMCBjYyBi ZSBkZiAyYiAgICAgICAgICAgICAgICAgICAgICAgICAgbnIwLi4uLisKICBiYWNrdHJhY2U6CiAg ICBbPDAwMDAwMDAwYTMyMjMzMmE+XSBfX2ttYWxsb2NfdHJhY2tfY2FsbGVyKzB4MTZlLzB4Mjkw CiAgICBbPDAwMDAwMDAwMjM2ZmQyNmI+XSBrc3RyZHVwKzB4M2UvMHg3MAogICAgWzwwMDAwMDAw MGRkNGEyODE1Pl0ga3N0cmR1cF9jb25zdCsweDNlLzB4NTAKICAgIFs8MDAwMDAwMDA0OWEzNzdm Yz5dIGt2YXNwcmludGZfY29uc3QrMHgxMGUvMHgxNjAKICAgIFs8MDAwMDAwMDA2MjdmYzcxMT5d IGtvYmplY3Rfc2V0X25hbWVfdmFyZ3MrMHg1Yi8weDE0MAogICAgWzwwMDAwMDAwMDE5ZWVhYjA2 Pl0gZGV2X3NldF9uYW1lKzB4YzAvMHhmMAogICAgWzwwMDAwMDAwMDY5Y2IxMmJjPl0gbmV0ZGV2 X3JlZ2lzdGVyX2tvYmplY3QrMHhjOC8weDMyMAogICAgWzwwMDAwMDAwMGYyZTgzNzMyPl0gcmVn aXN0ZXJfbmV0ZGV2aWNlKzB4YTFiLzB4ZjAwCiAgICBbPDAwMDAwMDAwOWUxZjU3Y2M+XSBfX3R1 bl9jaHJfaW9jdGwrMHgyMGQ1LzB4M2RkMAogICAgWzwwMDAwMDAwMDljNTYwNzg0Pl0gdHVuX2No cl9pb2N0bCsweDJmLzB4NDAKICAgIFs8MDAwMDAwMDAwZDc1OWUwMj5dIGRvX3Zmc19pb2N0bCsw eDFjNy8weDE1MTAKICAgIFs8MDAwMDAwMDAzNTFkN2MzMT5dIGtzeXNfaW9jdGwrMHg5OS8weGIw CiAgICBbPDAwMDAwMDAwODM5MDA0MGE+XSBfX3g2NF9zeXNfaW9jdGwrMHg3OC8weGIwCiAgICBb PDAwMDAwMDAwNTJkMTk2Yjc+XSBkb19zeXNjYWxsXzY0KzB4MTZmLzB4NTgwCiAgICBbPDAwMDAw MDAwMTlhZjkyMzY+XSBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0NC8weGE5CiAg ICBbPDAwMDAwMDAwYmMzODQ1MzE+XSAweGZmZmZmZmZmZmZmZmZmZmYKCnYzIC0+IHY0OgogIFNl dCByZWdfc3RhdGUgdG8gTkVUUkVHX1VOUkVHSVNURVJFRCBpZiByZWdpc3RlcmluZyBmYWlscwoK djIgLT4gdjM6CiogUmVwbGFjZWQgQlVHX09OIHdpdGggV0FSTl9PTiBpbiBmcmVlX25ldGRldiBh bmQgbmV0ZGV2X3JlbGVhc2UKCnYxIC0+IHYyOgoqIFJlbHlpbmcgb24gZHJpdmVyIGNhbGxpbmcg ZnJlZV9uZXRkZXYgcmF0aGVyIHRoYW4gY2FsbGluZwogIHB1dF9kZXZpY2UgZGlyZWN0bHkgaW4g ZXJyb3IgcGF0aAoKUmVwb3J0ZWQtYnk6IHN5emJvdCthZDhjYTQwZWNkNzc4OTZkNTFlMkBzeXpr YWxsZXIuYXBwc3BvdG1haWwuY29tCkNjOiBEYXZpZCBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+CkNjOiBHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3JnPgpD YzogTHVrYXMgQnVsd2FobiA8bHVrYXMuYnVsd2FobkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IEpvdW5pIEhvZ2FuZGVyIDxqb3VuaS5ob2dhbmRlckB1bmlraWUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2NvcmUvZGV2 LmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9kZXYuYyBiL25ldC9jb3JlL2Rldi5jCmluZGV4IDNh OTRlYzI2MTBlYS4uYWY2ZWU1ZmY0ZmRhIDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXYuYworKysg Yi9uZXQvY29yZS9kZXYuYwpAQCAtOTA4Miw4ICs5MDgyLDEwIEBAIGludCByZWdpc3Rlcl9uZXRk ZXZpY2Uoc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIAkJZ290byBlcnJfdW5pbml0OwogCiAJcmV0 ID0gbmV0ZGV2X3JlZ2lzdGVyX2tvYmplY3QoZGV2KTsKLQlpZiAocmV0KQorCWlmIChyZXQpIHsK KwkJZGV2LT5yZWdfc3RhdGUgPSBORVRSRUdfVU5SRUdJU1RFUkVEOwogCQlnb3RvIGVycl91bmlu aXQ7CisJfQogCWRldi0+cmVnX3N0YXRlID0gTkVUUkVHX1JFR0lTVEVSRUQ7CiAKIAlfX25ldGRl dl91cGRhdGVfZmVhdHVyZXMoZGV2KTsKLS0gCjIuMjEuMQoKCkZyb20gMzVjMzE0M2Y5MTBhN2Vm Yzg3NDcyMTgwYTdhZjU4ZGJlNWY0ZDA5ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog SmFtZXMgSHVnaGVzIDxqYW1lcy5odWdoZXNAcmFzcGJlcnJ5cGkub3JnPgpEYXRlOiBNb24sIDIw IEphbiAyMDIwIDExOjEyOjQwICswMDAwClN1YmplY3Q6IFtQQVRDSCAxNC8zMl0gbmV0OiB1c2I6 IGxhbjc4eHg6IEFkZCAubmRvX2ZlYXR1cmVzX2NoZWNrCgpbIFVwc3RyZWFtIGNvbW1pdCBjZTg5 NjQ3NmM2NWQ3MmI0Yjk5ZmEwOWMyZjMzNDM2YjQxOThmMDM0IF0KCkFzIHJlcG9ydGVkIGJ5IEVy aWMgRHVtYXpldCwgdGhlcmUgYXJlIHN0aWxsIHNvbWUgb3V0c3RhbmRpbmcKY2FzZXMgd2hlcmUg dGhlIGRyaXZlciBkb2VzIG5vdCBoYW5kbGUgVFNPIGNvcnJlY3RseSB3aGVuIHNrYidzCmFyZSBv dmVyIGEgY2VydGFpbiBzaXplLiBNb3N0IGNhc2VzIGhhdmUgYmVlbiBmaXhlZCwgdGhpcyBwYXRj aApzaG91bGQgZW5zdXJlIHRoYXQgZm9yd2FyZGVkIFNLQidzIHRoYXQgYXJlIGdyZWF0ZXIgdGhh bgpNQVhfU0lOR0xFX1BBQ0tFVF9TSVpFIC0gVFhfT1ZFUkhFQUQgYXJlIHNvZnR3YXJlIHNlZ21l bnRlZAphbmQgaGFuZGxlZCBjb3JyZWN0bHkuCgpTaWduZWQtb2ZmLWJ5OiBKYW1lcyBIdWdoZXMg PGphbWVzLmh1Z2hlc0ByYXNwYmVycnlwaS5vcmc+ClJldmlld2VkLWJ5OiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC91c2IvbGFuNzh4eC5jIHwgMTUgKysr KysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMgYi9kcml2ZXJzL25ldC91c2IvbGFuNzh4eC5j CmluZGV4IGMyMzJmMTYxMjA4My4uMDE3MGE0NDEyMDhhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC91c2IvbGFuNzh4eC5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9sYW43OHh4LmMKQEAgLTIwLDYg KzIwLDcgQEAKICNpbmNsdWRlIDxsaW51eC9tZGlvLmg+CiAjaW5jbHVkZSA8bGludXgvcGh5Lmg+ CiAjaW5jbHVkZSA8bmV0L2lwNl9jaGVja3N1bS5oPgorI2luY2x1ZGUgPG5ldC92eGxhbi5oPgog I2luY2x1ZGUgPGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2lycWRvbWFpbi5o PgogI2luY2x1ZGUgPGxpbnV4L2lycS5oPgpAQCAtMzY2OCw2ICszNjY5LDE5IEBAIHN0YXRpYyB2 b2lkIGxhbjc4eHhfdHhfdGltZW91dChzdHJ1Y3QgbmV0X2RldmljZSAqbmV0KQogCXRhc2tsZXRf c2NoZWR1bGUoJmRldi0+YmgpOwogfQogCitzdGF0aWMgbmV0ZGV2X2ZlYXR1cmVzX3QgbGFuNzh4 eF9mZWF0dXJlc19jaGVjayhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJCQkJc3RydWN0IG5ldF9k ZXZpY2UgKm5ldGRldiwKKwkJCQkJCW5ldGRldl9mZWF0dXJlc190IGZlYXR1cmVzKQoreworCWlm IChza2ItPmxlbiArIFRYX09WRVJIRUFEID4gTUFYX1NJTkdMRV9QQUNLRVRfU0laRSkKKwkJZmVh dHVyZXMgJj0gfk5FVElGX0ZfR1NPX01BU0s7CisKKwlmZWF0dXJlcyA9IHZsYW5fZmVhdHVyZXNf Y2hlY2soc2tiLCBmZWF0dXJlcyk7CisJZmVhdHVyZXMgPSB2eGxhbl9mZWF0dXJlc19jaGVjayhz a2IsIGZlYXR1cmVzKTsKKworCXJldHVybiBmZWF0dXJlczsKK30KKwogc3RhdGljIGNvbnN0IHN0 cnVjdCBuZXRfZGV2aWNlX29wcyBsYW43OHh4X25ldGRldl9vcHMgPSB7CiAJLm5kb19vcGVuCQk9 IGxhbjc4eHhfb3BlbiwKIAkubmRvX3N0b3AJCT0gbGFuNzh4eF9zdG9wLApAQCAtMzY4MSw2ICsz Njk1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlX29wcyBsYW43OHh4X25ldGRl dl9vcHMgPSB7CiAJLm5kb19zZXRfZmVhdHVyZXMJPSBsYW43OHh4X3NldF9mZWF0dXJlcywKIAku bmRvX3ZsYW5fcnhfYWRkX3ZpZAk9IGxhbjc4eHhfdmxhbl9yeF9hZGRfdmlkLAogCS5uZG9fdmxh bl9yeF9raWxsX3ZpZAk9IGxhbjc4eHhfdmxhbl9yeF9raWxsX3ZpZCwKKwkubmRvX2ZlYXR1cmVz X2NoZWNrCT0gbGFuNzh4eF9mZWF0dXJlc19jaGVjaywKIH07CiAKIHN0YXRpYyB2b2lkIGxhbjc4 eHhfc3RhdF9tb25pdG9yKHN0cnVjdCB0aW1lcl9saXN0ICp0KQotLSAKMi4yMS4xCgoKRnJvbSBi MjM1NjZjMGY2YTU2MTQwZDIyYWFhOTQ3Y2Q3YmYwYzRjMDM2YzYxIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+CkRhdGU6IFR1ZSwg MjEgSmFuIDIwMjAgMTY6NTA6NDkgKzAxMDAKU3ViamVjdDogW1BBVENIIDE1LzMyXSBSZXZlcnQg InVkcDogZG8gcm1lbSBidWxrIGZyZWUgZXZlbiBpZiB0aGUgcnggc2sgcXVldWUKIGlzIGVtcHR5 IgoKWyBVcHN0cmVhbSBjb21taXQgZDM5Y2EyNTkwZDEwNzEyZjQxMmFkZDdhODhlMWRkNDY3YTcy NDZmNCBdCgpUaGlzIHJldmVydHMgY29tbWl0IDBkNGE2NjA4ZjY4Yzc1MzJkY2JmZWMyZWExMTUw Yzk3NjE3NjdkMDMuCgpXaWxsZW0gcmVwb3J0ZWQgdGhhdCBhZnRlciBjb21taXQgMGQ0YTY2MDhm NjhjICgidWRwOiBkbyBybWVtIGJ1bGsKZnJlZSBldmVuIGlmIHRoZSByeCBzayBxdWV1ZSBpcyBl bXB0eSIpIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGJ5CmFuIGFsbW9zdCBpZGxlIHN5c3RlbSB3aXRo IG1hbnkgVURQIHNvY2tldHMgY2FuIGdyb3cgYSBsb3QuCgpGb3Igc3RhYmxlIGtlcm5lbCBrZWVw IHRoZSBzb2x1dGlvbiBhcyBzaW1wbGUgYXMgcG9zc2libGUgYW5kIHJldmVydAp0aGUgb2ZmZW5k aW5nIGNvbW1pdC4KClJlcG9ydGVkLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1kZWJydWlq bi5rZXJuZWxAZ21haWwuY29tPgpEaWFnbm9zZWQtYnk6IEVyaWMgRHVtYXpldCA8ZXJpYy5kdW1h emV0QGdtYWlsLmNvbT4KRml4ZXM6IDBkNGE2NjA4ZjY4YyAoInVkcDogZG8gcm1lbSBidWxrIGZy ZWUgZXZlbiBpZiB0aGUgcnggc2sgcXVldWUgaXMgZW1wdHkiKQpTaWduZWQtb2ZmLWJ5OiBQYW9s byBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+CkFja2VkLWJ5OiBXaWxsZW0gZGUgQnJ1aWpuIDx3 aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC91ZHAuYyB8IDMgKystCiAxIGZpbGUgY2hhbmdl ZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQv dWRwLmMgYi9uZXQvaXB2NC91ZHAuYwppbmRleCA3YWE0ZTc3MTYxZjYuLjdhZTcwNjU3NThiZCAx MDA2NDQKLS0tIGEvbmV0L2lwdjQvdWRwLmMKKysrIGIvbmV0L2lwdjQvdWRwLmMKQEAgLTEzNjgs NyArMTM2OCw4IEBAIHN0YXRpYyB2b2lkIHVkcF9ybWVtX3JlbGVhc2Uoc3RydWN0IHNvY2sgKnNr LCBpbnQgc2l6ZSwgaW50IHBhcnRpYWwsCiAJaWYgKGxpa2VseShwYXJ0aWFsKSkgewogCQl1cC0+ Zm9yd2FyZF9kZWZpY2l0ICs9IHNpemU7CiAJCXNpemUgPSB1cC0+Zm9yd2FyZF9kZWZpY2l0Owot CQlpZiAoc2l6ZSA8IChzay0+c2tfcmN2YnVmID4+IDIpKQorCQlpZiAoc2l6ZSA8IChzay0+c2tf cmN2YnVmID4+IDIpICYmCisJCSAgICAhc2tiX3F1ZXVlX2VtcHR5KCZ1cC0+cmVhZGVyX3F1ZXVl KSkKIAkJCXJldHVybjsKIAl9IGVsc2UgewogCQlzaXplICs9IHVwLT5mb3J3YXJkX2RlZmljaXQ7 Ci0tIAoyLjIxLjEKCgpGcm9tIGZmYWEzZjFiODE5ZTM2MmY1NDcwMDExMTg2MTE0MzRhNGI3OWFl ODUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFdlbiBZYW5nIDx3ZW55YW5nQGxpbnV4 LmFsaWJhYmEuY29tPgpEYXRlOiBNb24sIDIwIEphbiAyMDIwIDE4OjA0OjU2ICswODAwClN1Ympl Y3Q6IFtQQVRDSCAxNi8zMl0gdGNwX2JicjogaW1wcm92ZSBhcml0aG1ldGljIGRpdmlzaW9uIGlu IGJicl91cGRhdGVfYncoKQoKWyBVcHN0cmVhbSBjb21taXQgNWIyZjFmMzA3MGI2NDQ3Yjc2MTc0 ZWE4YmZiNzM5MGRjNjI1M2ViZCBdCgpkb19kaXYoKSBkb2VzIGEgNjQtYnktMzIgZGl2aXNpb24u IFVzZSBkaXY2NF9sb25nKCkgaW5zdGVhZCBvZiBpdAppZiB0aGUgZGl2aXNvciBpcyBsb25nLCB0 byBhdm9pZCB0cnVuY2F0aW9uIHRvIDMyLWJpdC4KQW5kIGFzIGEgbmljZSBzaWRlIGVmZmVjdCBh bHNvIGNsZWFucyB1cCB0aGUgZnVuY3Rpb24gYSBiaXQuCgpTaWduZWQtb2ZmLWJ5OiBXZW4gWWFu ZyA8d2VueWFuZ0BsaW51eC5hbGliYWJhLmNvbT4KQ2M6IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRA Z29vZ2xlLmNvbT4KQ2M6ICJEYXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBkYXZlbWxvZnQubmV0PgpD YzogQWxleGV5IEt1em5ldHNvdiA8a3V6bmV0QG1zMi5pbnIuYWMucnU+CkNjOiBIaWRlYWtpIFlP U0hJRlVKSSA8eW9zaGZ1amlAbGludXgtaXB2Ni5vcmc+CkNjOiBuZXRkZXZAdmdlci5rZXJuZWwu b3JnCkNjOiBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnClNpZ25lZC1vZmYtYnk6IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L3RjcF9iYnIuYyB8IDMgKy0t CiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvbmV0L2lwdjQvdGNwX2Jici5jIGIvbmV0L2lwdjQvdGNwX2Jici5jCmluZGV4IGE2NTQ1 ZWYwZDI3Yi4uNmM0ZDc5YmFmZjI2IDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3BfYmJyLmMKKysr IGIvbmV0L2lwdjQvdGNwX2Jici5jCkBAIC03NzksOCArNzc5LDcgQEAgc3RhdGljIHZvaWQgYmJy X3VwZGF0ZV9idyhzdHJ1Y3Qgc29jayAqc2ssIGNvbnN0IHN0cnVjdCByYXRlX3NhbXBsZSAqcnMp CiAJICogYmFuZHdpZHRoIHNhbXBsZS4gRGVsaXZlcmVkIGlzIGluIHBhY2tldHMgYW5kIGludGVy dmFsX3VzIGluIHVTIGFuZAogCSAqIHJhdGlvIHdpbGwgYmUgPDwxIGZvciBtb3N0IGNvbm5lY3Rp b25zLiBTbyBkZWxpdmVyZWQgaXMgZmlyc3Qgc2NhbGVkLgogCSAqLwotCWJ3ID0gKHU2NClycy0+ ZGVsaXZlcmVkICogQldfVU5JVDsKLQlkb19kaXYoYncsIHJzLT5pbnRlcnZhbF91cyk7CisJYncg PSBkaXY2NF9sb25nKCh1NjQpcnMtPmRlbGl2ZXJlZCAqIEJXX1VOSVQsIHJzLT5pbnRlcnZhbF91 cyk7CiAKIAkvKiBJZiB0aGlzIHNhbXBsZSBpcyBhcHBsaWNhdGlvbi1saW1pdGVkLCBpdCBpcyBs aWtlbHkgdG8gaGF2ZSBhIHZlcnkKIAkgKiBsb3cgZGVsaXZlcmVkIGNvdW50IHRoYXQgcmVwcmVz ZW50cyBhcHBsaWNhdGlvbiBiZWhhdmlvciByYXRoZXIgdGhhbgotLSAKMi4yMS4xCgoKRnJvbSA5 MTM1NzA1MWRmZmY3NDE3MmNlMWUxMmQxYmY0ODc0YWNhNzdiZTRkIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRhdGU6IFdl ZCwgMjIgSmFuIDIwMjAgMjE6MDM6MDAgLTA4MDAKU3ViamVjdDogW1BBVENIIDE3LzMyXSB0Y3A6 IGRvIG5vdCBsZWF2ZSBkYW5nbGluZyBwb2ludGVycyBpbiB0cC0+aGlnaGVzdF9zYWNrCgpbIFVw c3RyZWFtIGNvbW1pdCAyYmVjNDQ1ZjliZjM1ZTUyZTM5NWI5NzFkZjQ4ZDNlMWU1ZGM3MDRhIF0K CkxhdGVzdCBjb21taXQgODUzNjk3NTA0ZGUwICgidGNwOiBGaXggaGlnaGVzdF9zYWNrIGFuZCBo aWdoZXN0X3NhY2tfc2VxIikKYXBwYXJlbnRseSBhbGxvd2VkIHN5emJvdCB0byB0cmlnZ2VyIHZh cmlvdXMgY3Jhc2hlcyBpbiBUQ1Agc3RhY2sgWzFdCgpJIGJlbGlldmUgdGhpcyBjb21taXQgb25s eSBtYWRlIHRoaW5ncyBlYXNpZXIgZm9yIHN5emJvdCB0byBmaW5kCml0cyB3YXkgaW50byB0cmln Z2VyaW5nIHVzZS1hZnRlci1mcmVlcy4gQnV0IHJlYWxseSB0aGUgYnVncwpjb3VsZCBsZWFkIHRv IGJhZCBUQ1AgYmVoYXZpb3Igb3IgZXZlbiBwbGFpbiBjcmFzaGVzIGV2ZW4gZm9yCm5vbiBtYWxp Y2lvdXMgcGVlcnMuCgpJIGhhdmUgYXVkaXRlZCBhbGwgY2FsbHMgdG8gdGNwX3J0eF9xdWV1ZV91 bmxpbmsoKSBhbmQKdGNwX3J0eF9xdWV1ZV91bmxpbmtfYW5kX2ZyZWUoKSBhbmQgbWFkZSBzdXJl IHRwLT5oaWdoZXN0X3NhY2sgd291bGQgYmUgdXBkYXRlZAppZiB3ZSBhcmUgcmVtb3ZpbmcgZnJv bSBydHggcXVldWUgdGhlIHNrYiB0aGF0IHRwLT5oaWdoZXN0X3NhY2sgcG9pbnRzIHRvLgoKVGhl c2UgdXBkYXRlcyB3ZXJlIG1pc3NpbmcgaW4gdGhyZWUgbG9jYXRpb25zIDoKCjEpIHRjcF9jbGVh bl9ydHhfcXVldWUoKSBbVGhpcyBvbmUgc2VlbXMgcXVpdGUgc2VyaW91cywKICAgICAgICAgICAg ICAgICAgICAgICAgICBJIGhhdmUgbm8gaWRlYSB3aHkgdGhpcyB3YXMgbm90IGNhdWdodCBlYXJs aWVyXQoKMikgdGNwX3J0eF9xdWV1ZV9wdXJnZSgpIFtQcm9iYWJseSBub3QgYSBiaWcgZGVhbCBm b3Igbm9ybWFsIG9wZXJhdGlvbnNdCgozKSB0Y3Bfc2VuZF9zeW5hY2soKSAgICAgW1Byb2JhYmx5 IG5vdCBhIGJpZyBkZWFsIGZvciBub3JtYWwgb3BlcmF0aW9uc10KClsxXQpCVUc6IEtBU0FOOiB1 c2UtYWZ0ZXItZnJlZSBpbiB0Y3BfaGlnaGVzdF9zYWNrX3NlcSBpbmNsdWRlL25ldC90Y3AuaDox ODY0IFtpbmxpbmVdCkJVRzogS0FTQU46IHVzZS1hZnRlci1mcmVlIGluIHRjcF9oaWdoZXN0X3Nh Y2tfc2VxIGluY2x1ZGUvbmV0L3RjcC5oOjE4NTYgW2lubGluZV0KQlVHOiBLQVNBTjogdXNlLWFm dGVyLWZyZWUgaW4gdGNwX2NoZWNrX3NhY2tfcmVvcmRlcmluZysweDMzYy8weDNhMCBuZXQvaXB2 NC90Y3BfaW5wdXQuYzo4OTEKUmVhZCBvZiBzaXplIDQgYXQgYWRkciBmZmZmODg4MGE0ODhkMDY4 IGJ5IHRhc2sga3NvZnRpcnFkLzEvMTYKCkNQVTogMSBQSUQ6IDE2IENvbW06IGtzb2Z0aXJxZC8x IE5vdCB0YWludGVkIDUuNS4wLXJjNS1zeXprYWxsZXIgIzAKSGFyZHdhcmUgbmFtZTogR29vZ2xl IEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29vZ2xl IDAxLzAxLzIwMTEKQ2FsbCBUcmFjZToKIF9fZHVtcF9zdGFjayBsaWIvZHVtcF9zdGFjay5jOjc3 IFtpbmxpbmVdCiBkdW1wX3N0YWNrKzB4MTk3LzB4MjEwIGxpYi9kdW1wX3N0YWNrLmM6MTE4CiBw cmludF9hZGRyZXNzX2Rlc2NyaXB0aW9uLmNvbnN0cHJvcC4wLmNvbGQrMHhkNC8weDMwYiBtbS9r YXNhbi9yZXBvcnQuYzozNzQKIF9fa2FzYW5fcmVwb3J0LmNvbGQrMHgxYi8weDQxIG1tL2thc2Fu L3JlcG9ydC5jOjUwNgoga2FzYW5fcmVwb3J0KzB4MTIvMHgyMCBtbS9rYXNhbi9jb21tb24uYzo2 MzkKIF9fYXNhbl9yZXBvcnRfbG9hZDRfbm9hYm9ydCsweDE0LzB4MjAgbW0va2FzYW4vZ2VuZXJp Y19yZXBvcnQuYzoxMzQKIHRjcF9oaWdoZXN0X3NhY2tfc2VxIGluY2x1ZGUvbmV0L3RjcC5oOjE4 NjQgW2lubGluZV0KIHRjcF9oaWdoZXN0X3NhY2tfc2VxIGluY2x1ZGUvbmV0L3RjcC5oOjE4NTYg W2lubGluZV0KIHRjcF9jaGVja19zYWNrX3Jlb3JkZXJpbmcrMHgzM2MvMHgzYTAgbmV0L2lwdjQv dGNwX2lucHV0LmM6ODkxCiB0Y3BfdHJ5X3VuZG9fcGFydGlhbCBuZXQvaXB2NC90Y3BfaW5wdXQu YzoyNzMwIFtpbmxpbmVdCiB0Y3BfZmFzdHJldHJhbnNfYWxlcnQrMHhmNzQvMHgyM2YwIG5ldC9p cHY0L3RjcF9pbnB1dC5jOjI4NDcKIHRjcF9hY2srMHgyNTc3LzB4NWJmMCBuZXQvaXB2NC90Y3Bf aW5wdXQuYzozNzEwCiB0Y3BfcmN2X2VzdGFibGlzaGVkKzB4NmRkLzB4MWU5MCBuZXQvaXB2NC90 Y3BfaW5wdXQuYzo1NzA2CiB0Y3BfdjRfZG9fcmN2KzB4NjE5LzB4OGQwIG5ldC9pcHY0L3RjcF9p cHY0LmM6MTYxOQogdGNwX3Y0X3JjdisweDMwN2YvMHgzYjQwIG5ldC9pcHY0L3RjcF9pcHY0LmM6 MjAwMQogaXBfcHJvdG9jb2xfZGVsaXZlcl9yY3UrMHg1YS8weDg4MCBuZXQvaXB2NC9pcF9pbnB1 dC5jOjIwNAogaXBfbG9jYWxfZGVsaXZlcl9maW5pc2grMHgyM2IvMHgzODAgbmV0L2lwdjQvaXBf aW5wdXQuYzoyMzEKIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDozMDcgW2lubGlu ZV0KIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDozMDEgW2lubGluZV0KIGlwX2xv Y2FsX2RlbGl2ZXIrMHgxZTkvMHg1MjAgbmV0L2lwdjQvaXBfaW5wdXQuYzoyNTIKIGRzdF9pbnB1 dCBpbmNsdWRlL25ldC9kc3QuaDo0NDIgW2lubGluZV0KIGlwX3Jjdl9maW5pc2grMHgxZGIvMHgy ZjAgbmV0L2lwdjQvaXBfaW5wdXQuYzo0MjgKIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0 ZXIuaDozMDcgW2lubGluZV0KIE5GX0hPT0sgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIuaDozMDEg W2lubGluZV0KIGlwX3JjdisweGU4LzB4M2YwIG5ldC9pcHY0L2lwX2lucHV0LmM6NTM4CiBfX25l dGlmX3JlY2VpdmVfc2tiX29uZV9jb3JlKzB4MTEzLzB4MWEwIG5ldC9jb3JlL2Rldi5jOjUxNDgK IF9fbmV0aWZfcmVjZWl2ZV9za2IrMHgyYy8weDFkMCBuZXQvY29yZS9kZXYuYzo1MjYyCiBwcm9j ZXNzX2JhY2tsb2crMHgyMDYvMHg3NTAgbmV0L2NvcmUvZGV2LmM6NjA5MwogbmFwaV9wb2xsIG5l dC9jb3JlL2Rldi5jOjY1MzAgW2lubGluZV0KIG5ldF9yeF9hY3Rpb24rMHg1MDgvMHgxMTIwIG5l dC9jb3JlL2Rldi5jOjY1OTgKIF9fZG9fc29mdGlycSsweDI2Mi8weDk4YyBrZXJuZWwvc29mdGly cS5jOjI5MgogcnVuX2tzb2Z0aXJxZCBrZXJuZWwvc29mdGlycS5jOjYwMyBbaW5saW5lXQogcnVu X2tzb2Z0aXJxZCsweDhlLzB4MTEwIGtlcm5lbC9zb2Z0aXJxLmM6NTk1CiBzbXBib290X3RocmVh ZF9mbisweDZhMy8weGE0MCBrZXJuZWwvc21wYm9vdC5jOjE2NQoga3RocmVhZCsweDM2MS8weDQz MCBrZXJuZWwva3RocmVhZC5jOjI1NQogcmV0X2Zyb21fZm9yaysweDI0LzB4MzAgYXJjaC94ODYv ZW50cnkvZW50cnlfNjQuUzozNTIKCkFsbG9jYXRlZCBieSB0YXNrIDEwMDkxOgogc2F2ZV9zdGFj aysweDIzLzB4OTAgbW0va2FzYW4vY29tbW9uLmM6NzIKIHNldF90cmFjayBtbS9rYXNhbi9jb21t b24uYzo4MCBbaW5saW5lXQogX19rYXNhbl9rbWFsbG9jIG1tL2thc2FuL2NvbW1vbi5jOjUxMyBb aW5saW5lXQogX19rYXNhbl9rbWFsbG9jLmNvbnN0cHJvcC4wKzB4Y2YvMHhlMCBtbS9rYXNhbi9j b21tb24uYzo0ODYKIGthc2FuX3NsYWJfYWxsb2MrMHhmLzB4MjAgbW0va2FzYW4vY29tbW9uLmM6 NTIxCiBzbGFiX3Bvc3RfYWxsb2NfaG9vayBtbS9zbGFiLmg6NTg0IFtpbmxpbmVdCiBzbGFiX2Fs bG9jX25vZGUgbW0vc2xhYi5jOjMyNjMgW2lubGluZV0KIGttZW1fY2FjaGVfYWxsb2Nfbm9kZSsw eDEzOC8weDc0MCBtbS9zbGFiLmM6MzU3NQogX19hbGxvY19za2IrMHhkNS8weDVlMCBuZXQvY29y ZS9za2J1ZmYuYzoxOTgKIGFsbG9jX3NrYl9mY2xvbmUgaW5jbHVkZS9saW51eC9za2J1ZmYuaDox MDk5IFtpbmxpbmVdCiBza19zdHJlYW1fYWxsb2Nfc2tiIG5ldC9pcHY0L3RjcC5jOjg3NSBbaW5s aW5lXQogc2tfc3RyZWFtX2FsbG9jX3NrYisweDExMy8weGM5MCBuZXQvaXB2NC90Y3AuYzo4NTIK IHRjcF9zZW5kbXNnX2xvY2tlZCsweGNmOS8weDM0NzAgbmV0L2lwdjQvdGNwLmM6MTI4MgogdGNw X3NlbmRtc2crMHgzMC8weDUwIG5ldC9pcHY0L3RjcC5jOjE0MzIKIGluZXRfc2VuZG1zZysweDll LzB4ZTAgbmV0L2lwdjQvYWZfaW5ldC5jOjgwNwogc29ja19zZW5kbXNnX25vc2VjIG5ldC9zb2Nr ZXQuYzo2NTIgW2lubGluZV0KIHNvY2tfc2VuZG1zZysweGQ3LzB4MTMwIG5ldC9zb2NrZXQuYzo2 NzIKIF9fc3lzX3NlbmR0bysweDI2Mi8weDM4MCBuZXQvc29ja2V0LmM6MTk5OAogX19kb19zeXNf c2VuZHRvIG5ldC9zb2NrZXQuYzoyMDEwIFtpbmxpbmVdCiBfX3NlX3N5c19zZW5kdG8gbmV0L3Nv Y2tldC5jOjIwMDYgW2lubGluZV0KIF9feDY0X3N5c19zZW5kdG8rMHhlMS8weDFhMCBuZXQvc29j a2V0LmM6MjAwNgogZG9fc3lzY2FsbF82NCsweGZhLzB4NzkwIGFyY2gveDg2L2VudHJ5L2NvbW1v bi5jOjI5NAogZW50cnlfU1lTQ0FMTF82NF9hZnRlcl9od2ZyYW1lKzB4NDkvMHhiZQoKRnJlZWQg YnkgdGFzayAxMDA5NToKIHNhdmVfc3RhY2srMHgyMy8weDkwIG1tL2thc2FuL2NvbW1vbi5jOjcy CiBzZXRfdHJhY2sgbW0va2FzYW4vY29tbW9uLmM6ODAgW2lubGluZV0KIGthc2FuX3NldF9mcmVl X2luZm8gbW0va2FzYW4vY29tbW9uLmM6MzM1IFtpbmxpbmVdCiBfX2thc2FuX3NsYWJfZnJlZSsw eDEwMi8weDE1MCBtbS9rYXNhbi9jb21tb24uYzo0NzQKIGthc2FuX3NsYWJfZnJlZSsweGUvMHgx MCBtbS9rYXNhbi9jb21tb24uYzo0ODMKIF9fY2FjaGVfZnJlZSBtbS9zbGFiLmM6MzQyNiBbaW5s aW5lXQoga21lbV9jYWNoZV9mcmVlKzB4ODYvMHgzMjAgbW0vc2xhYi5jOjM2OTQKIGtmcmVlX3Nr Ym1lbSsweDE3OC8weDFjMCBuZXQvY29yZS9za2J1ZmYuYzo2NDUKIF9fa2ZyZWVfc2tiKzB4MWUv MHgzMCBuZXQvY29yZS9za2J1ZmYuYzo2ODEKIHNrX2VhdF9za2IgaW5jbHVkZS9uZXQvc29jay5o OjI0NTMgW2lubGluZV0KIHRjcF9yZWN2bXNnKzB4MTI1Mi8weDI5MzAgbmV0L2lwdjQvdGNwLmM6 MjE2NgogaW5ldF9yZWN2bXNnKzB4MTM2LzB4NjEwIG5ldC9pcHY0L2FmX2luZXQuYzo4MzgKIHNv Y2tfcmVjdm1zZ19ub3NlYyBuZXQvc29ja2V0LmM6ODg2IFtpbmxpbmVdCiBzb2NrX3JlY3Ztc2cg bmV0L3NvY2tldC5jOjkwNCBbaW5saW5lXQogc29ja19yZWN2bXNnKzB4Y2UvMHgxMTAgbmV0L3Nv Y2tldC5jOjkwMAogX19zeXNfcmVjdmZyb20rMHgxZmYvMHgzNTAgbmV0L3NvY2tldC5jOjIwNTUK IF9fZG9fc3lzX3JlY3Zmcm9tIG5ldC9zb2NrZXQuYzoyMDczIFtpbmxpbmVdCiBfX3NlX3N5c19y ZWN2ZnJvbSBuZXQvc29ja2V0LmM6MjA2OSBbaW5saW5lXQogX194NjRfc3lzX3JlY3Zmcm9tKzB4 ZTEvMHgxYTAgbmV0L3NvY2tldC5jOjIwNjkKIGRvX3N5c2NhbGxfNjQrMHhmYS8weDc5MCBhcmNo L3g4Ni9lbnRyeS9jb21tb24uYzoyOTQKIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsw eDQ5LzB4YmUKClRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIG9iamVjdCBhdCBmZmZm ODg4MGE0ODhkMDQwCiB3aGljaCBiZWxvbmdzIHRvIHRoZSBjYWNoZSBza2J1ZmZfZmNsb25lX2Nh Y2hlIG9mIHNpemUgNDU2ClRoZSBidWdneSBhZGRyZXNzIGlzIGxvY2F0ZWQgNDAgYnl0ZXMgaW5z aWRlIG9mCiA0NTYtYnl0ZSByZWdpb24gW2ZmZmY4ODgwYTQ4OGQwNDAsIGZmZmY4ODgwYTQ4OGQy MDgpClRoZSBidWdneSBhZGRyZXNzIGJlbG9uZ3MgdG8gdGhlIHBhZ2U6CnBhZ2U6ZmZmZmVhMDAw MjkyMjM0MCByZWZjb3VudDoxIG1hcGNvdW50OjAgbWFwcGluZzpmZmZmODg4MjFiMDU3MDAwIGlu ZGV4OjB4MApyYXc6IDAwZmZmZTAwMDAwMDAyMDAgZmZmZmVhMDAwMjJhNTc4OCBmZmZmZWEwMDAy NjI0YTQ4IGZmZmY4ODgyMWIwNTcwMDAKcmF3OiAwMDAwMDAwMDAwMDAwMDAwIGZmZmY4ODgwYTQ4 OGQwNDAgMDAwMDAwMDEwMDAwMDAwNiAwMDAwMDAwMDAwMDAwMDAwCnBhZ2UgZHVtcGVkIGJlY2F1 c2U6IGthc2FuOiBiYWQgYWNjZXNzIGRldGVjdGVkCgpNZW1vcnkgc3RhdGUgYXJvdW5kIHRoZSBi dWdneSBhZGRyZXNzOgogZmZmZjg4ODBhNDg4Y2YwMDogZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMg ZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMKIGZmZmY4ODgwYTQ4OGNmODA6IGZjIGZjIGZjIGZjIGZj IGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjCj5mZmZmODg4MGE0ODhkMDAwOiBmYyBm YyBmYyBmYyBmYyBmYyBmYyBmYyBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogZmZmZjg4ODBh NDg4ZDA4MDogZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIgZmIK IGZmZmY4ODgwYTQ4OGQxMDA6IGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZiIGZi IGZiIGZiIGZiCgpGaXhlczogODUzNjk3NTA0ZGUwICgidGNwOiBGaXggaGlnaGVzdF9zYWNrIGFu ZCBoaWdoZXN0X3NhY2tfc2VxIikKRml4ZXM6IDUwODk1YjlkZTFkMyAoInRjcDogaGlnaGVzdF9z YWNrIGZpeCIpCkZpeGVzOiA3MzdmZjMxNDU2M2MgKCJ0Y3A6IHVzZSBzZXF1ZW5jZSBkaXN0YW5j ZSB0byBkZXRlY3QgcmVvcmRlcmluZyIpClNpZ25lZC1vZmYtYnk6IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IENhbWJkYSBaaHUgPGNhbWJkYUBsaW51eC5hbGliYWJhLmNv bT4KQ2M6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29tPgpDYzogTmVhbCBDYXJkd2Vs bCA8bmNhcmR3ZWxsQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBOZWFsIENhcmR3ZWxsIDxuY2FyZHdl bGxAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IFl1Y2h1bmcgQ2hlbmcgPHljaGVuZ0Bnb29nbGUuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2lwdjQvdGNwLmMgICAgICAgIHwgMSArCiBuZXQvaXB2NC90Y3BfaW5wdXQuYyAgfCAx ICsKIG5ldC9pcHY0L3RjcF9vdXRwdXQuYyB8IDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAzIGluc2Vy dGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3AuYyBiL25ldC9pcHY0L3RjcC5jCmlu ZGV4IDg0MTE1NTc3ZDNkYy4uMzY0MGU4NTYzYTEwIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3Au YworKysgYi9uZXQvaXB2NC90Y3AuYwpAQCAtMjUyMCw2ICsyNTIwLDcgQEAgc3RhdGljIHZvaWQg dGNwX3J0eF9xdWV1ZV9wdXJnZShzdHJ1Y3Qgc29jayAqc2spCiB7CiAJc3RydWN0IHJiX25vZGUg KnAgPSByYl9maXJzdCgmc2stPnRjcF9ydHhfcXVldWUpOwogCisJdGNwX3NrKHNrKS0+aGlnaGVz dF9zYWNrID0gTlVMTDsKIAl3aGlsZSAocCkgewogCQlzdHJ1Y3Qgc2tfYnVmZiAqc2tiID0gcmJf dG9fc2tiKHApOwogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0 L3RjcF9pbnB1dC5jCmluZGV4IDU5Yjc4Y2UyY2UyZS4uNmY3MTU1ZDkxMzEzIDEwMDY0NAotLS0g YS9uZXQvaXB2NC90Y3BfaW5wdXQuYworKysgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwpAQCAtMzE2 NCw2ICszMTY0LDcgQEAgc3RhdGljIGludCB0Y3BfY2xlYW5fcnR4X3F1ZXVlKHN0cnVjdCBzb2Nr ICpzaywgdTMyIHByaW9yX2ZhY2ssCiAJCQl0cC0+cmV0cmFuc21pdF9za2JfaGludCA9IE5VTEw7 CiAJCWlmICh1bmxpa2VseShza2IgPT0gdHAtPmxvc3Rfc2tiX2hpbnQpKQogCQkJdHAtPmxvc3Rf c2tiX2hpbnQgPSBOVUxMOworCQl0Y3BfaGlnaGVzdF9zYWNrX3JlcGxhY2Uoc2ssIHNrYiwgbmV4 dCk7CiAJCXRjcF9ydHhfcXVldWVfdW5saW5rX2FuZF9mcmVlKHNrYiwgc2spOwogCX0KIApkaWZm IC0tZ2l0IGEvbmV0L2lwdjQvdGNwX291dHB1dC5jIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jCmlu ZGV4IGU0YmE5MTVjNGJiNS4uNjYwYjI0ZmUwNDFlIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3Bf b3V0cHV0LmMKKysrIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jCkBAIC0zMjMxLDYgKzMyMzEsNyBA QCBpbnQgdGNwX3NlbmRfc3luYWNrKHN0cnVjdCBzb2NrICpzaykKIAkJCWlmICghbnNrYikKIAkJ CQlyZXR1cm4gLUVOT01FTTsKIAkJCUlOSVRfTElTVF9IRUFEKCZuc2tiLT50Y3BfdHNvcnRlZF9h bmNob3IpOworCQkJdGNwX2hpZ2hlc3Rfc2Fja19yZXBsYWNlKHNrLCBza2IsIG5za2IpOwogCQkJ dGNwX3J0eF9xdWV1ZV91bmxpbmtfYW5kX2ZyZWUoc2tiLCBzayk7CiAJCQlfX3NrYl9oZWFkZXJf cmVsZWFzZShuc2tiKTsKIAkJCXRjcF9yYnRyZWVfaW5zZXJ0KCZzay0+dGNwX3J0eF9xdWV1ZSwg bnNrYik7Ci0tIAoyLjIxLjEKCgpGcm9tIDc2Y2EwYmI4ZmJiNjZiYjA4NzdhM2Y5ODA3M2M3YTE3 ODg3NDFiZWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogV2VkLCAyMiBKYW4gMjAyMCAwOTowNzozNSAtMDgwMApT dWJqZWN0OiBbUEFUQ0ggMTgvMzJdIHR1bjogYWRkIG11dGV4X3VubG9jaygpIGNhbGwgYW5kIG5h cGkuc2tiIGNsZWFyaW5nIGluCiB0dW5fZ2V0X3VzZXIoKQoKWyBVcHN0cmVhbSBjb21taXQgMWVm YmE5ODdjNDg2MjljMGM2NDcwM2JiNGVhNzZjYTFhMzc3MWQxNyBdCgpJZiBib3RoIElGRl9OQVBJ X0ZSQUdTIG1vZGUgYW5kIFhEUCBhcmUgZW5hYmxlZCwgYW5kIHRoZSBYRFAgcHJvZ3JhbQpjb25z dW1lcyB0aGUgc2tiLCB3ZSBuZWVkIHRvIGNsZWFyIHRoZSBuYXBpLnNrYiAob3IgcmlzawphIHVz ZS1hZnRlci1mcmVlKSBhbmQgcmVsZWFzZSB0aGUgbXV0ZXggKG9yIHJpc2sgYSBkZWFkbG9jaykK CldBUk5JTkc6IGxvY2sgaGVsZCB3aGVuIHJldHVybmluZyB0byB1c2VyIHNwYWNlIQo1LjUuMC1y YzYtc3l6a2FsbGVyICMwIE5vdCB0YWludGVkCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpzeXotZXhlY3V0b3IuMC80NTUgaXMgbGVhdmluZyB0aGUga2Vy bmVsIHdpdGggbG9ja3Mgc3RpbGwgaGVsZCEKMSBsb2NrIGhlbGQgYnkgc3l6LWV4ZWN1dG9yLjAv NDU1OgogIzA6IGZmZmY4ODgwOThmNmU3NDggKCZ0ZmlsZS0+bmFwaV9tdXRleCl7Ky4rLn0sIGF0 OiB0dW5fZ2V0X3VzZXIrMHgxNjA0LzB4M2ZjMCBkcml2ZXJzL25ldC90dW4uYzoxODM1CgpGaXhl czogOTBlMzNkNDU5NDA3ICgidHVuOiBlbmFibGUgbmFwaV9ncm9fZnJhZ3MoKSBmb3IgVFVOL1RB UCBkcml2ZXIiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5j b20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpDYzog UGV0YXIgUGVua292IDxwcGVua292QGdvb2dsZS5jb20+CkNjOiBXaWxsZW0gZGUgQnJ1aWpuIDx3 aWxsZW1iQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90dW4uYyB8IDQgKysrKwogMSBmaWxlIGNo YW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3R1bi5jIGIv ZHJpdmVycy9uZXQvdHVuLmMKaW5kZXggMTY1NjRlYmNkZTUwLi42OWY1NTNhMDI4ZWUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L3R1bi5jCisrKyBiL2RyaXZlcnMvbmV0L3R1bi5jCkBAIC0xOTM2 LDYgKzE5MzYsMTAgQEAgc3RhdGljIHNzaXplX3QgdHVuX2dldF91c2VyKHN0cnVjdCB0dW5fc3Ry dWN0ICp0dW4sIHN0cnVjdCB0dW5fZmlsZSAqdGZpbGUsCiAJCQlpZiAocmV0ICE9IFhEUF9QQVNT KSB7CiAJCQkJcmN1X3JlYWRfdW5sb2NrKCk7CiAJCQkJbG9jYWxfYmhfZW5hYmxlKCk7CisJCQkJ aWYgKGZyYWdzKSB7CisJCQkJCXRmaWxlLT5uYXBpLnNrYiA9IE5VTEw7CisJCQkJCW11dGV4X3Vu bG9jaygmdGZpbGUtPm5hcGlfbXV0ZXgpOworCQkJCX0KIAkJCQlyZXR1cm4gdG90YWxfbGVuOwog CQkJfQogCQl9Ci0tIAoyLjIxLjEKCgpGcm9tIGVmOTJhZWE4MmMyZGQ2ZmRhZGEyNTRhNDE0ZWFk ZjlmMjBiMzgyODQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1pY2hhZWwgRWxsZXJt YW4gPG1wZUBlbGxlcm1hbi5pZC5hdT4KRGF0ZTogV2VkLCAyMiBKYW4gMjAyMCAxNTowNzoyNyAr MTEwMApTdWJqZWN0OiBbUEFUQ0ggMTkvMzJdIGFpcm86IEZpeCBwb3NzaWJsZSBpbmZvIGxlYWsg aW4KIEFJUk9PTERJT0NUTC9TSU9DREVWUFJJVkFURQoKWyBVcHN0cmVhbSBjb21taXQgZDZiY2Uy MTM3ZjVkNmJiMTA5M2U5NmQyZjgwMTQ3OTA5OWIyODA5NCBdCgpUaGUgZHJpdmVyIGZvciBDaXNj byBBaXJvbmV0IDQ1MDAgYW5kIDQ4MDAgc2VyaWVzIGNhcmRzIChhaXJvLmMpLAppbXBsZW1lbnRz IEFJUk9PTERJT0NUTC9TSU9DREVWUFJJVkFURSBpbiBhaXJvX2lvY3RsKCkuCgpUaGUgaW9jdGwg aGFuZGxlciBjb3BpZXMgYW4gYWlyb25ldF9pb2N0bCBzdHJ1Y3QgZnJvbSB1c2Vyc3BhY2UsIHdo aWNoCmluY2x1ZGVzIGEgY29tbWFuZCBhbmQgYSBsZW5ndGguIFNvbWUgb2YgdGhlIGNvbW1hbmRz IGFyZSBoYW5kbGVkIGluCnJlYWRyaWRzKCksIHdoaWNoIGttYWxsb2MoKSdzIGEgYnVmZmVyIG9m IFJJRFNJWkUgKDIwNDgpIGJ5dGVzLgoKVGhhdCBidWZmZXIgaXMgdGhlbiBwYXNzZWQgdG8gUEM0 NTAwX3JlYWRyaWQoKSwgd2hpY2ggaGFzIHR3byBjYXNlcy4KVGhlIGVsc2UgY2FzZSBkb2VzIHNv bWUgc2V0dXAgYW5kIHRoZW4gcmVhZHMgdXAgdG8gUklEU0laRSBieXRlcyBmcm9tCnRoZSBoYXJk d2FyZSBpbnRvIHRoZSBrbWFsbG9jKCknZWQgYnVmZmVyLgoKSGVyZSBsZW4gPT0gUklEU0laRSwg cEJ1ZiBpcyB0aGUga21hbGxvYygpJ2VkIGJ1ZmZlcjoKCgkvLyByZWFkIHRoZSByaWQgbGVuZ3Ro IGZpZWxkCgliYXBfcmVhZChhaSwgcEJ1ZiwgMiwgQkFQMSk7CgkvLyBsZW5ndGggZm9yIHJlbWFp bmluZyBwYXJ0IG9mIHJpZAoJbGVuID0gbWluKGxlbiwgKGludClsZTE2X3RvX2NwdSgqKF9fbGUx NiopcEJ1ZikpIC0gMjsKCS4uLgoJLy8gcmVhZCByZW1haW5kZXIgb2YgdGhlIHJpZAoJcmMgPSBi YXBfcmVhZChhaSwgKChfX2xlMTYqKXBCdWYpKzEsIGxlbiwgQkFQMSk7CgpQQzQ1MDBfcmVhZHJp ZCgpIHRoZW4gcmV0dXJucyB0byByZWFkcmlkcygpIHdoaWNoIGRvZXM6CgoJbGVuID0gY29tcC0+ bGVuOwoJaWYgKGNvcHlfdG9fdXNlcihjb21wLT5kYXRhLCBpb2J1ZiwgbWluKGxlbiwgKGludClS SURTSVpFKSkpIHsKCldoZXJlIGNvbXAtPmxlbiBpcyB0aGUgdXNlciBjb250cm9sbGVkIGxlbmd0 aCBmaWVsZC4KClNvIGlmIHRoZSAicmlkIGxlbmd0aCBmaWVsZCIgcmV0dXJuZWQgYnkgdGhlIGhh cmR3YXJlIGlzIDwgMjA0OCwgYW5kCnRoZSB1c2VyIHJlcXVlc3RzIDIwNDggYnl0ZXMgaW4gY29t cC0+bGVuLCB3ZSB3aWxsIGxlYWsgdGhlIHByZXZpb3VzCmNvbnRlbnRzIG9mIHRoZSBrbWFsbG9j KCknZWQgYnVmZmVyIHRvIHVzZXJzcGFjZS4KCkZpeCBpdCBieSBremFsbG9jKCknaW5nIHRoZSBi dWZmZXIuCgpGb3VuZCBieSBJbGphIGJ5IGNvZGUgaW5zcGVjdGlvbiwgbm90IHRlc3RlZCBhcyBJ IGRvbid0IGhhdmUgdGhlCnJlcXVpcmVkIGhhcmR3YXJlLgoKUmVwb3J0ZWQtYnk6IElsamEgVmFu IFNwcnVuZGVsIDxpdmFuc3BydW5kZWxAaW9hY3RpdmUuY29tPgpTaWduZWQtb2ZmLWJ5OiBNaWNo YWVsIEVsbGVybWFuIDxtcGVAZWxsZXJtYW4uaWQuYXU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC93aXJlbGVzcy9j aXNjby9haXJvLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9jaXNjby9haXJvLmMg Yi9kcml2ZXJzL25ldC93aXJlbGVzcy9jaXNjby9haXJvLmMKaW5kZXggZjQzYzA2NTY5ZWExLi5k NjljMmVlN2UyMDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2Npc2NvL2Fpcm8u YworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9jaXNjby9haXJvLmMKQEAgLTc4MTMsNyArNzgx Myw3IEBAIHN0YXRpYyBpbnQgcmVhZHJpZHMoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgYWlyb25l dF9pb2N0bCAqY29tcCkgewogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlpZiAoKGlvYnVmID0g a21hbGxvYyhSSURTSVpFLCBHRlBfS0VSTkVMKSkgPT0gTlVMTCkKKwlpZiAoKGlvYnVmID0ga3ph bGxvYyhSSURTSVpFLCBHRlBfS0VSTkVMKSkgPT0gTlVMTCkKIAkJcmV0dXJuIC1FTk9NRU07CiAK IAlQQzQ1MDBfcmVhZHJpZChhaSxyaWRjb2RlLGlvYnVmLFJJRFNJWkUsIDEpOwotLSAKMi4yMS4x CgoKRnJvbSBlNWVlZDc4ODI1NzJkMDAxZjFhOTBlMzIyODBhNDI4ZDk2NzE2ZjBhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWNoYWVsIEVsbGVybWFuIDxtcGVAZWxsZXJtYW4uaWQu YXU+CkRhdGU6IFdlZCwgMjIgSmFuIDIwMjAgMTU6MDc6MjggKzExMDAKU3ViamVjdDogW1BBVENI IDIwLzMyXSBhaXJvOiBBZGQgbWlzc2luZyBDQVBfTkVUX0FETUlOIGNoZWNrIGluCiBBSVJPT0xE SU9DVEwvU0lPQ0RFVlBSSVZBVEUKClsgVXBzdHJlYW0gY29tbWl0IDc4ZjdhNzU2NmY1ZWI1OTMy MWU5OWI1NWE2ZmRiMTZlYTA1YjM3ZDEgXQoKVGhlIGRyaXZlciBmb3IgQ2lzY28gQWlyb25ldCA0 NTAwIGFuZCA0ODAwIHNlcmllcyBjYXJkcyAoYWlyby5jKSwKaW1wbGVtZW50cyBBSVJPT0xESU9D VEwvU0lPQ0RFVlBSSVZBVEUgaW4gYWlyb19pb2N0bCgpLgoKVGhlIGlvY3RsIGhhbmRsZXIgY29w aWVzIGFuIGFpcm9uZXRfaW9jdGwgc3RydWN0IGZyb20gdXNlcnNwYWNlLCB3aGljaAppbmNsdWRl cyBhIGNvbW1hbmQuIFNvbWUgb2YgdGhlIGNvbW1hbmRzIGFyZSBoYW5kbGVkIGluIHJlYWRyaWRz KCksCndoZXJlIHRoZSB1c2VyIGNvbnRyb2xsZWQgY29tbWFuZCBpcyBjb252ZXJ0ZWQgaW50byBh IGRyaXZlci1pbnRlcm5hbAp2YWx1ZSBjYWxsZWQgInJpZGNvZGUiLgoKVGhlcmUgYXJlIHR3byBj b21tYW5kIHZhbHVlcywgQUlST0dXRVBLVE1QIGFuZCBBSVJPR1dFUEtOViwgd2hpY2gKY29ycmVz cG9uZCB0byByaWRjb2RlIHZhbHVlcyBvZiBSSURfV0VQX1RFTVAgYW5kIFJJRF9XRVBfUEVSTQpy ZXNwZWN0aXZlbHkuIFRoZXNlIGNvbW1hbmRzIGJvdGggaGF2ZSBjaGVja3MgdGhhdCB0aGUgdXNl ciBoYXMKQ0FQX05FVF9BRE1JTiwgd2l0aCB0aGUgY29tbWVudCB0aGF0ICJPbmx5IHN1cGVyLXVz ZXIgY2FuIHJlYWQgV0VQCmtleXMiLCBvdGhlcndpc2UgdGhleSByZXR1cm4gLUVQRVJNLgoKSG93 ZXZlciB0aGVyZSBpcyBhbm90aGVyIGNvbW1hbmQgdmFsdWUsIEFJUk9SUklELCB0aGF0IGxldHMg dGhlIHVzZXIKc3BlY2lmeSB0aGUgcmlkY29kZSB2YWx1ZSBkaXJlY3RseSwgd2l0aCBubyBvdGhl ciBjaGVja3MuIFRoaXMgbWVhbnMKdGhlIHVzZXIgY2FuIGJ5cGFzcyB0aGUgQ0FQX05FVF9BRE1J TiBjaGVjayBvbiBBSVJPR1dFUEtUTVAgYW5kCkFJUk9HV0VQS05WLgoKRml4IGl0IGJ5IG1vdmlu ZyB0aGUgQ0FQX05FVF9BRE1JTiBjaGVjayBvdXQgb2YgdGhlIGNvbW1hbmQgaGFuZGxpbmcKYW5k IGluc3RlYWQgZG8gaXQgbGF0ZXIgYmFzZWQgb24gdGhlIHJpZGNvZGUuIFRoYXQgd2F5IHJlZ2Fy ZGxlc3Mgb2YKd2hldGhlciB0aGUgcmlkY29kZSBpcyBzZXQgdmlhIEFJUk9HV0VQS1RNUCBvciBB SVJPR1dFUEtOViwgb3IgcGFzc2VkCmluIHVzaW5nIEFJUk9SSUQsIHdlIGFsd2F5cyBkbyB0aGUg Q0FQX05FVF9BRE1JTiBjaGVjay4KCkZvdW5kIGJ5IElsamEgYnkgY29kZSBpbnNwZWN0aW9uLCBu b3QgdGVzdGVkIGFzIEkgZG9uJ3QgaGF2ZSB0aGUKcmVxdWlyZWQgaGFyZHdhcmUuCgpSZXBvcnRl ZC1ieTogSWxqYSBWYW4gU3BydW5kZWwgPGl2YW5zcHJ1bmRlbEBpb2FjdGl2ZS5jb20+ClNpZ25l ZC1vZmYtYnk6IE1pY2hhZWwgRWxsZXJtYW4gPG1wZUBlbGxlcm1hbi5pZC5hdT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMv bmV0L3dpcmVsZXNzL2Npc2NvL2Fpcm8uYyB8IDE4ICsrKysrKysrLS0tLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvd2lyZWxlc3MvY2lzY28vYWlyby5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv Y2lzY28vYWlyby5jCmluZGV4IGQ2OWMyZWU3ZTIwNi4uYzRjOGYxYjYyZTFlIDEwMDY0NAotLS0g YS9kcml2ZXJzL25ldC93aXJlbGVzcy9jaXNjby9haXJvLmMKKysrIGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvY2lzY28vYWlyby5jCkBAIC03NzkwLDE2ICs3NzkwLDggQEAgc3RhdGljIGludCByZWFk cmlkcyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBhaXJvbmV0X2lvY3RsICpjb21wKSB7CiAJY2Fz ZSBBSVJPR1ZMSVNUOiAgICByaWRjb2RlID0gUklEX0FQTElTVDsgICAgICAgYnJlYWs7CiAJY2Fz ZSBBSVJPR0RSVk5BTTogICByaWRjb2RlID0gUklEX0RSVk5BTUU7ICAgICAgYnJlYWs7CiAJY2Fz ZSBBSVJPR0VIVEVOQzogICByaWRjb2RlID0gUklEX0VUSEVSRU5DQVA7ICAgYnJlYWs7Ci0JY2Fz ZSBBSVJPR1dFUEtUTVA6ICByaWRjb2RlID0gUklEX1dFUF9URU1QOwotCQkvKiBPbmx5IHN1cGVy LXVzZXIgY2FuIHJlYWQgV0VQIGtleXMgKi8KLQkJaWYgKCFjYXBhYmxlKENBUF9ORVRfQURNSU4p KQotCQkJcmV0dXJuIC1FUEVSTTsKLQkJYnJlYWs7Ci0JY2FzZSBBSVJPR1dFUEtOVjogICByaWRj b2RlID0gUklEX1dFUF9QRVJNOwotCQkvKiBPbmx5IHN1cGVyLXVzZXIgY2FuIHJlYWQgV0VQIGtl eXMgKi8KLQkJaWYgKCFjYXBhYmxlKENBUF9ORVRfQURNSU4pKQotCQkJcmV0dXJuIC1FUEVSTTsK LQkJYnJlYWs7CisJY2FzZSBBSVJPR1dFUEtUTVA6ICByaWRjb2RlID0gUklEX1dFUF9URU1QOwli cmVhazsKKwljYXNlIEFJUk9HV0VQS05WOiAgIHJpZGNvZGUgPSBSSURfV0VQX1BFUk07CWJyZWFr OwogCWNhc2UgQUlST0dTVEFUOiAgICAgcmlkY29kZSA9IFJJRF9TVEFUVVM7ICAgICAgIGJyZWFr OwogCWNhc2UgQUlST0dTVEFUU0QzMjogcmlkY29kZSA9IFJJRF9TVEFUU0RFTFRBOyAgIGJyZWFr OwogCWNhc2UgQUlST0dTVEFUU0MzMjogcmlkY29kZSA9IFJJRF9TVEFUUzsgICAgICAgIGJyZWFr OwpAQCAtNzgxMyw2ICs3ODA1LDEyIEBAIHN0YXRpYyBpbnQgcmVhZHJpZHMoc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwgYWlyb25ldF9pb2N0bCAqY29tcCkgewogCQlyZXR1cm4gLUVJTlZBTDsKIAl9 CiAKKwlpZiAocmlkY29kZSA9PSBSSURfV0VQX1RFTVAgfHwgcmlkY29kZSA9PSBSSURfV0VQX1BF Uk0pIHsKKwkJLyogT25seSBzdXBlci11c2VyIGNhbiByZWFkIFdFUCBrZXlzICovCisJCWlmICgh Y2FwYWJsZShDQVBfTkVUX0FETUlOKSkKKwkJCXJldHVybiAtRVBFUk07CisJfQorCiAJaWYgKChp b2J1ZiA9IGt6YWxsb2MoUklEU0laRSwgR0ZQX0tFUk5FTCkpID09IE5VTEwpCiAJCXJldHVybiAt RU5PTUVNOwogCi0tIAoyLjIxLjEKCgpGcm9tIDAzNTIwMGY1MmJmMTkxYmVjNDM5YzY2OWEwYzBj Y2I4ODhhNjYzZDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElkbyBTY2hpbW1lbCA8 aWRvc2NoQG1lbGxhbm94LmNvbT4KRGF0ZTogV2VkLCAyMiBKYW4gMjAyMCAyMDowOTo1MiArMDIw MApTdWJqZWN0OiBbUEFUQ0ggMjEvMzJdIG1seHN3OiBzcGVjdHJ1bV9hY2w6IEZpeCB1c2UtYWZ0 ZXItZnJlZSBkdXJpbmcgcmVsb2FkCgpbIFVwc3RyZWFtIGNvbW1pdCA5NzFkZTJlNTcyMTE4YzEx MjhiZmYyOTUzNDFlMzdiNmM4YjhmMTA4IF0KCkR1cmluZyByZWxvYWQgKG9yIG1vZHVsZSB1bmxv YWQpLCB0aGUgcm91dGVyIGJsb2NrIGlzIGRlLWluaXRpYWxpemVkLgpBbW9uZyBvdGhlciB0aGlu Z3MsIHRoaXMgcmVzdWx0cyBpbiB0aGUgcmVtb3ZhbCBvZiBhIGRlZmF1bHQgbXVsdGljYXN0CnJv dXRlIGZyb20gZWFjaCBhY3RpdmUgdmlydHVhbCByb3V0ZXIgKFZSRikuIFRoZXNlIGRlZmF1bHQg cm91dGVzIGFyZQpjb25maWd1cmVkIGR1cmluZyBpbml0aWFsaXphdGlvbiB0byB0cmFwIHBhY2tl dHMgdG8gdGhlIENQVS4gSW4KU3BlY3RydW0tMiwgdW5saWtlIFNwZWN0cnVtLTEsIG11bHRpY2Fz dCByb3V0ZXMgYXJlIGltcGxlbWVudGVkIHVzaW5nCkFDTCBydWxlcy4KClNpbmNlIHRoZSByb3V0 ZXIgYmxvY2sgaXMgZGUtaW5pdGlhbGl6ZWQgYmVmb3JlIHRoZSBBQ0wgYmxvY2ssIGl0IGlzCnBv c3NpYmxlIHRoYXQgdGhlIEFDTCBydWxlcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBkZWZhdWx0IHJv dXRlcyBhcmUKZGVsZXRlZCB3aGlsZSBiZWluZyBhY2Nlc3NlZCBieSB0aGUgQUNMIGRlbGF5ZWQg d29yayB0aGF0IHF1ZXJpZXMgcnVsZXMnCmFjdGl2aXR5IGZyb20gdGhlIGRldmljZS4gVGhpcyBj YW4gcmVzdWx0IGluIGEgcmFyZSB1c2UtYWZ0ZXItZnJlZSBbMV0uCgpGaXggdGhpcyBieSBwcm90 ZWN0aW5nIHRoZSBydWxlcyBsaXN0IGFjY2Vzc2VkIGJ5IHRoZSBkZWxheWVkIHdvcmsgd2l0aAph IGxvY2suIFdlIGNhbm5vdCB1c2UgYSBzcGlubG9jayBhcyB0aGUgYWN0aXZpdHkgcmVhZCBvcGVy YXRpb24gaXMKYmxvY2tpbmcuCgpbMV0KWyAgMTIzLjMzMTY2Ml0gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClsgIDEyMy4z Mzk5MjBdIEJVRzogS0FTQU46IHVzZS1hZnRlci1mcmVlIGluIG1seHN3X3NwX2FjbF9ydWxlX2Fj dGl2aXR5X3VwZGF0ZV93b3JrKzB4MzMwLzB4M2IwClsgIDEyMy4zNDkzODFdIFJlYWQgb2Ygc2l6 ZSA4IGF0IGFkZHIgZmZmZjg4ODFmM2JiNDUyMCBieSB0YXNrIGt3b3JrZXIvMDoyLzc4ClsgIDEy My4zNTcwODBdClsgIDEyMy4zNTg3NzNdIENQVTogMCBQSUQ6IDc4IENvbW06IGt3b3JrZXIvMDoy IE5vdCB0YWludGVkIDUuNS4wLXJjNS1jdXN0b20tMzMxMDgtZ2Y1ZGY5NWQzZWY0MSAjMjIwOQpb ICAxMjMuMzY4ODk4XSBIYXJkd2FyZSBuYW1lOiBNZWxsYW5veCBUZWNobm9sb2dpZXMgTHRkLiBN U04zNzAwQy9WTU9EMDAwOCwgQklPUyA1LjExIDEwLzEwLzIwMTgKWyAgMTIzLjM3ODQ1Nl0gV29y a3F1ZXVlOiBtbHhzd19jb3JlIG1seHN3X3NwX2FjbF9ydWxlX2FjdGl2aXR5X3VwZGF0ZV93b3Jr ClsgIDEyMy4zODU5NzBdIENhbGwgVHJhY2U6ClsgIDEyMy4zODg3MzRdICBkdW1wX3N0YWNrKzB4 YzYvMHgxMWUKWyAgMTIzLjM5MjU2OF0gIHByaW50X2FkZHJlc3NfZGVzY3JpcHRpb24uY29uc3Rw cm9wLjQrMHgyMS8weDM0MApbICAxMjMuNDAzMjM2XSAgX19rYXNhbl9yZXBvcnQuY29sZC44KzB4 NzYvMHhiMQpbICAxMjMuNDE0ODg0XSAga2FzYW5fcmVwb3J0KzB4ZS8weDIwClsgIDEyMy40MTg3 MTZdICBtbHhzd19zcF9hY2xfcnVsZV9hY3Rpdml0eV91cGRhdGVfd29yaysweDMzMC8weDNiMApb ICAxMjMuNDQ0MDM0XSAgcHJvY2Vzc19vbmVfd29yaysweGIwNi8weDE5YTAKWyAgMTIzLjQ1Mzcz MV0gIHdvcmtlcl90aHJlYWQrMHg5MS8weGU5MApbICAxMjMuNDY3MzQ4XSAga3RocmVhZCsweDM0 OC8weDQxMApbICAxMjMuNDc2ODQ3XSAgcmV0X2Zyb21fZm9yaysweDI0LzB4MzAKWyAgMTIzLjQ4 MDg2M10KWyAgMTIzLjQ4MjU0NV0gQWxsb2NhdGVkIGJ5IHRhc2sgNzM6ClsgIDEyMy40ODYyNzNd ICBzYXZlX3N0YWNrKzB4MTkvMHg4MApbICAxMjMuNDkwMDAwXSAgX19rYXNhbl9rbWFsbG9jLmNv bnN0cHJvcC42KzB4YzEvMHhkMApbICAxMjMuNDk1Mzc5XSAgbWx4c3dfc3BfYWNsX3J1bGVfY3Jl YXRlKzB4YTcvMHgyMzAKWyAgMTIzLjUwMDU2Nl0gIG1seHN3X3NwMl9tcl90Y2FtX3JvdXRlX2Ny ZWF0ZSsweGY2LzB4M2UwClsgIDEyMy41MDYzMzRdICBtbHhzd19zcF9tcl90Y2FtX3JvdXRlX2Ny ZWF0ZSsweDViNC8weDgyMApbICAxMjMuNTEyMTAyXSAgbWx4c3dfc3BfbXJfdGFibGVfY3JlYXRl KzB4M2I1LzB4NjkwClsgIDEyMy41MTczODldICBtbHhzd19zcF92cl9nZXQrMHgyODkvMHg0ZDAK WyAgMTIzLjUyMTc5N10gIG1seHN3X3NwX2ZpYl9ub2RlX2dldCsweGEyLzB4OTkwClsgIDEyMy41 MjY2OTJdICBtbHhzd19zcF9yb3V0ZXJfZmliNF9ldmVudF93b3JrKzB4NTRjLzB4MmQ2MApbICAx MjMuNTMyNzUyXSAgcHJvY2Vzc19vbmVfd29yaysweGIwNi8weDE5YTAKWyAgMTIzLjUzNzM1Ml0g IHdvcmtlcl90aHJlYWQrMHg5MS8weGU5MApbICAxMjMuNTQxNDcxXSAga3RocmVhZCsweDM0OC8w eDQxMApbICAxMjMuNTQ1MTAzXSAgcmV0X2Zyb21fZm9yaysweDI0LzB4MzAKWyAgMTIzLjU0OTEx M10KWyAgMTIzLjU1MDc5NV0gRnJlZWQgYnkgdGFzayA1MTg6ClsgIDEyMy41NTQyMzFdICBzYXZl X3N0YWNrKzB4MTkvMHg4MApbICAxMjMuNTU3OTU4XSAgX19rYXNhbl9zbGFiX2ZyZWUrMHgxMjUv MHgxNzAKWyAgMTIzLjU2MjU1Nl0gIGtmcmVlKzB4ZDcvMHgzYTAKWyAgMTIzLjU2NTg5NV0gIG1s eHN3X3NwX2FjbF9ydWxlX2Rlc3Ryb3krMHg2My8weGQwClsgIDEyMy41NzEwODFdICBtbHhzd19z cDJfbXJfdGNhbV9yb3V0ZV9kZXN0cm95KzB4ZDUvMHgxMzAKWyAgMTIzLjU3Njk0Nl0gIG1seHN3 X3NwX21yX3RjYW1fcm91dGVfZGVzdHJveSsweGJhLzB4MjYwClsgIDEyMy41ODI3MTRdICBtbHhz d19zcF9tcl90YWJsZV9kZXN0cm95KzB4MWFiLzB4MjkwClsgIDEyMy41ODgwOTFdICBtbHhzd19z cF92cl9wdXQrMHgxZGIvMHgzNTAKWyAgMTIzLjU5MjQ5Nl0gIG1seHN3X3NwX2ZpYl9ub2RlX3B1 dCsweDI5OC8weDRjMApbICAxMjMuNTk3NDg2XSAgbWx4c3dfc3BfdnJfZmliX2ZsdXNoKzB4MTVi LzB4MzYwClsgIDEyMy42MDI0NzZdICBtbHhzd19zcF9yb3V0ZXJfZmliX2ZsdXNoKzB4YmEvMHg0 NzAKWyAgMTIzLjYwNzc1Nl0gIG1seHN3X3NwX3Zyc19maW5pKzB4YWEvMHgxMjAKWyAgMTIzLjYx MjI2MF0gIG1seHN3X3NwX3JvdXRlcl9maW5pKzB4MTM3LzB4Mzg0ClsgIDEyMy42MTcxNTJdICBt bHhzd19zcF9maW5pKzB4MzBhLzB4NGEwClsgIDEyMy42MjEzNzRdICBtbHhzd19jb3JlX2J1c19k ZXZpY2VfdW5yZWdpc3RlcisweDE1OS8weDYwMApbICAxMjMuNjI3NDM1XSAgbWx4c3dfZGV2bGlu a19jb3JlX2J1c19kZXZpY2VfcmVsb2FkX2Rvd24rMHg3ZS8weGIwClsgIDEyMy42MzQxNzZdICBk ZXZsaW5rX3JlbG9hZCsweGI0LzB4MzgwClsgIDEyMy42MzgzOTFdICBkZXZsaW5rX25sX2NtZF9y ZWxvYWQrMHg2MTAvMHg3MDAKWyAgMTIzLjY0MzM4Ml0gIGdlbmxfcmN2X21zZysweDZhOC8weGRj MApbICAxMjMuNjQ3NDk3XSAgbmV0bGlua19yY3Zfc2tiKzB4MTM0LzB4M2EwClsgIDEyMy42NTE5 MDRdICBnZW5sX3JjdisweDI5LzB4NDAKWyAgMTIzLjY1NTQzNl0gIG5ldGxpbmtfdW5pY2FzdCsw eDRkNC8weDcwMApbICAxMjMuNjU5ODQzXSAgbmV0bGlua19zZW5kbXNnKzB4N2MwLzB4YzcwClsg IDEyMy42NjQyNTFdICBfX3N5c19zZW5kdG8rMHgyNjUvMHgzYzAKWyAgMTIzLjY2ODM2N10gIF9f eDY0X3N5c19zZW5kdG8rMHhlMi8weDFiMApbICAxMjMuNjcyNzczXSAgZG9fc3lzY2FsbF82NCsw eGEwLzB4NTMwClsgIDEyMy42NzY4OTJdICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUr MHg0OS8weGJlClsgIDEyMy42ODI1NTJdClsgIDEyMy42ODQyMzhdIFRoZSBidWdneSBhZGRyZXNz IGJlbG9uZ3MgdG8gdGhlIG9iamVjdCBhdCBmZmZmODg4MWYzYmI0NTAwClsgIDEyMy42ODQyMzhd ICB3aGljaCBiZWxvbmdzIHRvIHRoZSBjYWNoZSBrbWFsbG9jLTEyOCBvZiBzaXplIDEyOApbICAx MjMuNjk4MjYxXSBUaGUgYnVnZ3kgYWRkcmVzcyBpcyBsb2NhdGVkIDMyIGJ5dGVzIGluc2lkZSBv ZgpbICAxMjMuNjk4MjYxXSAgMTI4LWJ5dGUgcmVnaW9uIFtmZmZmODg4MWYzYmI0NTAwLCBmZmZm ODg4MWYzYmI0NTgwKQpbICAxMjMuNzExMzAzXSBUaGUgYnVnZ3kgYWRkcmVzcyBiZWxvbmdzIHRv IHRoZSBwYWdlOgpbICAxMjMuNzE2NjgyXSBwYWdlOmZmZmZlYTAwMDdjZWVkMDAgcmVmY291bnQ6 MSBtYXBjb3VudDowIG1hcHBpbmc6ZmZmZjg4ODIzNjQwMzUwMCBpbmRleDoweDAKWyAgMTIzLjcy NTk1OF0gcmF3OiAwMjAwMDAwMDAwMDAwMjAwIGRlYWQwMDAwMDAwMDAxMDAgZGVhZDAwMDAwMDAw MDEyMiBmZmZmODg4MjM2NDAzNTAwClsgIDEyMy43MzQ2NDZdIHJhdzogMDAwMDAwMDAwMDAwMDAw MCAwMDAwMDAwMDAwMTAwMDEwIDAwMDAwMDAxZmZmZmZmZmYgMDAwMDAwMDAwMDAwMDAwMApbICAx MjMuNzQzMzE1XSBwYWdlIGR1bXBlZCBiZWNhdXNlOiBrYXNhbjogYmFkIGFjY2VzcyBkZXRlY3Rl ZApbICAxMjMuNzQ5NTYyXQpbICAxMjMuNzUxMjQxXSBNZW1vcnkgc3RhdGUgYXJvdW5kIHRoZSBi dWdneSBhZGRyZXNzOgpbICAxMjMuNzU2NjIwXSAgZmZmZjg4ODFmM2JiNDQwMDogMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAKWyAgMTIzLjc2NDcxNl0gIGZm ZmY4ODgxZjNiYjQ0ODA6IGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZjIGZj IGZjIGZjClsgIDEyMy43NzI4MTJdID5mZmZmODg4MWYzYmI0NTAwOiBmYiBmYiBmYiBmYiBmYiBm YiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYiBmYgpbICAxMjMuNzgwOTA0XSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgpbICAxMjMuNzg1Njk3XSAgZmZmZjg4ODFmM2JiNDU4MDog ZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMgZmMKWyAgMTIzLjc5 Mzc5M10gIGZmZmY4ODgxZjNiYjQ2MDA6IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwClsgIDEyMy44MDE4ODNdID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKRml4ZXM6IGNmNzIyMWE0 ZjVhNSAoIm1seHN3OiBzcGVjdHJ1bV9yb3V0ZXI6IEFkZCBNdWx0aWNhc3Qgcm91dGluZyBzdXBw b3J0IGZvciBTcGVjdHJ1bS0yIikKU2lnbmVkLW9mZi1ieTogSWRvIFNjaGltbWVsIDxpZG9zY2hA bWVsbGFub3guY29tPgpBY2tlZC1ieTogSmlyaSBQaXJrbyA8amlyaUBtZWxsYW5veC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiAu Li4vbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0cnVtX2FjbC5jICAgfCAxNiArKysr KysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9z cGVjdHJ1bV9hY2wuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seHN3L3NwZWN0 cnVtX2FjbC5jCmluZGV4IDE1MGIzYTE0NGI4My4uM2QzY2NhNTk2MTE2IDEwMDY0NAotLS0gYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9hY2wuYworKysgYi9k cml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHhzdy9zcGVjdHJ1bV9hY2wuYwpAQCAtOCw2 ICs4LDcgQEAKICNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4KICNpbmNsdWRlIDxsaW51eC9yaGFz aHRhYmxlLmg+CiAjaW5jbHVkZSA8bGludXgvbmV0ZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgv bXV0ZXguaD4KICNpbmNsdWRlIDxuZXQvbmV0X25hbWVzcGFjZS5oPgogI2luY2x1ZGUgPG5ldC90 Y19hY3QvdGNfdmxhbi5oPgogCkBAIC0yNSw2ICsyNiw3IEBAIHN0cnVjdCBtbHhzd19zcF9hY2wg ewogCXN0cnVjdCBtbHhzd19zcF9maWQgKmR1bW15X2ZpZDsKIAlzdHJ1Y3Qgcmhhc2h0YWJsZSBy dWxlc2V0X2h0OwogCXN0cnVjdCBsaXN0X2hlYWQgcnVsZXM7CisJc3RydWN0IG11dGV4IHJ1bGVz X2xvY2s7IC8qIFByb3RlY3RzIHJ1bGVzIGxpc3QgKi8KIAlzdHJ1Y3QgewogCQlzdHJ1Y3QgZGVs YXllZF93b3JrIGR3OwogCQl1bnNpZ25lZCBsb25nIGludGVydmFsOwkvKiBtcyAqLwpAQCAtNzAx LDcgKzcwMyw5IEBAIGludCBtbHhzd19zcF9hY2xfcnVsZV9hZGQoc3RydWN0IG1seHN3X3NwICpt bHhzd19zcCwKIAkJCWdvdG8gZXJyX3J1bGVzZXRfYmxvY2tfYmluZDsKIAl9CiAKKwltdXRleF9s b2NrKCZtbHhzd19zcC0+YWNsLT5ydWxlc19sb2NrKTsKIAlsaXN0X2FkZF90YWlsKCZydWxlLT5s aXN0LCAmbWx4c3dfc3AtPmFjbC0+cnVsZXMpOworCW11dGV4X3VubG9jaygmbWx4c3dfc3AtPmFj bC0+cnVsZXNfbG9jayk7CiAJYmxvY2stPnJ1bGVfY291bnQrKzsKIAlibG9jay0+ZWdyZXNzX2Js b2NrZXJfcnVsZV9jb3VudCArPSBydWxlLT5ydWxlaS0+ZWdyZXNzX2JpbmRfYmxvY2tlcjsKIAly ZXR1cm4gMDsKQEAgLTcyMyw3ICs3MjcsOSBAQCB2b2lkIG1seHN3X3NwX2FjbF9ydWxlX2RlbChz dHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwLAogCiAJYmxvY2stPmVncmVzc19ibG9ja2VyX3J1bGVf Y291bnQgLT0gcnVsZS0+cnVsZWktPmVncmVzc19iaW5kX2Jsb2NrZXI7CiAJcnVsZXNldC0+aHRf a2V5LmJsb2NrLT5ydWxlX2NvdW50LS07CisJbXV0ZXhfbG9jaygmbWx4c3dfc3AtPmFjbC0+cnVs ZXNfbG9jayk7CiAJbGlzdF9kZWwoJnJ1bGUtPmxpc3QpOworCW11dGV4X3VubG9jaygmbWx4c3df c3AtPmFjbC0+cnVsZXNfbG9jayk7CiAJaWYgKCFydWxlc2V0LT5odF9rZXkuY2hhaW5faW5kZXgg JiYKIAkgICAgbWx4c3dfc3BfYWNsX3J1bGVzZXRfaXNfc2luZ3VsYXIocnVsZXNldCkpCiAJCW1s eHN3X3NwX2FjbF9ydWxlc2V0X2Jsb2NrX3VuYmluZChtbHhzd19zcCwgcnVsZXNldCwKQEAgLTc4 MywxOSArNzg5LDE4IEBAIHN0YXRpYyBpbnQgbWx4c3dfc3BfYWNsX3J1bGVzX2FjdGl2aXR5X3Vw ZGF0ZShzdHJ1Y3QgbWx4c3dfc3BfYWNsICphY2wpCiAJc3RydWN0IG1seHN3X3NwX2FjbF9ydWxl ICpydWxlOwogCWludCBlcnI7CiAKLQkvKiBQcm90ZWN0IGludGVybmFsIHN0cnVjdHVyZXMgZnJv bSBjaGFuZ2VzICovCi0JcnRubF9sb2NrKCk7CisJbXV0ZXhfbG9jaygmYWNsLT5ydWxlc19sb2Nr KTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJ1bGUsICZhY2wtPnJ1bGVzLCBsaXN0KSB7CiAJCWVy ciA9IG1seHN3X3NwX2FjbF9ydWxlX2FjdGl2aXR5X3VwZGF0ZShhY2wtPm1seHN3X3NwLAogCQkJ CQkJCXJ1bGUpOwogCQlpZiAoZXJyKQogCQkJZ290byBlcnJfcnVsZV91cGRhdGU7CiAJfQotCXJ0 bmxfdW5sb2NrKCk7CisJbXV0ZXhfdW5sb2NrKCZhY2wtPnJ1bGVzX2xvY2spOwogCXJldHVybiAw OwogCiBlcnJfcnVsZV91cGRhdGU6Ci0JcnRubF91bmxvY2soKTsKKwltdXRleF91bmxvY2soJmFj bC0+cnVsZXNfbG9jayk7CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtODgwLDYgKzg4NSw3IEBAIGlu dCBtbHhzd19zcF9hY2xfaW5pdChzdHJ1Y3QgbWx4c3dfc3AgKm1seHN3X3NwKQogCWFjbC0+ZHVt bXlfZmlkID0gZmlkOwogCiAJSU5JVF9MSVNUX0hFQUQoJmFjbC0+cnVsZXMpOworCW11dGV4X2lu aXQoJmFjbC0+cnVsZXNfbG9jayk7CiAJZXJyID0gbWx4c3dfc3BfYWNsX3RjYW1faW5pdChtbHhz d19zcCwgJmFjbC0+dGNhbSk7CiAJaWYgKGVycikKIAkJZ290byBlcnJfYWNsX29wc19pbml0OwpA QCAtODkyLDYgKzg5OCw3IEBAIGludCBtbHhzd19zcF9hY2xfaW5pdChzdHJ1Y3QgbWx4c3dfc3Ag Km1seHN3X3NwKQogCXJldHVybiAwOwogCiBlcnJfYWNsX29wc19pbml0OgorCW11dGV4X2Rlc3Ry b3koJmFjbC0+cnVsZXNfbG9jayk7CiAJbWx4c3dfc3BfZmlkX3B1dChmaWQpOwogZXJyX2ZpZF9n ZXQ6CiAJcmhhc2h0YWJsZV9kZXN0cm95KCZhY2wtPnJ1bGVzZXRfaHQpOwpAQCAtOTA4LDYgKzkx NSw3IEBAIHZvaWQgbWx4c3dfc3BfYWNsX2Zpbmkoc3RydWN0IG1seHN3X3NwICptbHhzd19zcCkK IAogCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmbWx4c3dfc3AtPmFjbC0+cnVsZV9hY3Rpdml0 eV91cGRhdGUuZHcpOwogCW1seHN3X3NwX2FjbF90Y2FtX2ZpbmkobWx4c3dfc3AsICZhY2wtPnRj YW0pOworCW11dGV4X2Rlc3Ryb3koJmFjbC0+cnVsZXNfbG9jayk7CiAJV0FSTl9PTighbGlzdF9l bXB0eSgmYWNsLT5ydWxlcykpOwogCW1seHN3X3NwX2ZpZF9wdXQoYWNsLT5kdW1teV9maWQpOwog CXJoYXNodGFibGVfZGVzdHJveSgmYWNsLT5ydWxlc2V0X2h0KTsKLS0gCjIuMjEuMQoKCkZyb20g YTc2OTkwMGIzZmQ0YzljYTU1N2UwMDJmNWQwNzkzYjY3MjAzN2U0NSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogS3Jpc3RpYW4gRXZlbnNlbiA8a3Jpc3RpYW4uZXZlbnNlbkBnbWFpbC5j b20+CkRhdGU6IFRodSwgMjMgSmFuIDIwMjAgMTM6MjA6MTggKzAxMDAKU3ViamVjdDogW1BBVENI IDIyLzMyXSBmb3U6IEZpeCBJUHY2IG5ldGxpbmsgcG9saWN5CgpbIFVwc3RyZWFtIGNvbW1pdCBi YjQ4ZWI5YjEyYTk1ZGI5ZDY3OTAyNTkyNzI2OWQ0YWRkYTZkYmQxIF0KCldoZW4gc3VibWl0dGlu ZyB2MiBvZiAiZm91OiBTdXBwb3J0IGJpbmRpbmcgRm9VIHNvY2tldCIgKDE3MTNjYjM3YmY2Nyks CkkgYWNjaWRlbnRhbGx5IHNlbnQgdGhlIHdyb25nIHZlcnNpb24gb2YgdGhlIHBhdGNoIGFuZCBv bmUgZml4IHdhcwptaXNzaW5nLiBJbiB0aGUgaW5pdGlhbCB2ZXJzaW9uIG9mIHRoZSBwYXRjaCwg YXMgd2VsbCBhcyB0aGUgdmVyc2lvbiAyCnRoYXQgSSBzdWJtaXR0ZWQsIEkgaW5jb3JyZWN0bHkg dXNlZCAiLnR5cGUiIGZvciB0aGUgdHdvIFY2LWF0dHJpYnV0ZXMuClRoZSBjb3JyZWN0IGlzIHRv IHVzZSAiLmxlbiIuCgpSZXBvcnRlZC1ieTogRG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtvdkBnb29nbGUu Y29tPgpGaXhlczogMTcxM2NiMzdiZjY3ICgiZm91OiBTdXBwb3J0IGJpbmRpbmcgRm9VIHNvY2tl dCIpClNpZ25lZC1vZmYtYnk6IEtyaXN0aWFuIEV2ZW5zZW4gPGtyaXN0aWFuLmV2ZW5zZW5AZ21h aWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjQvZm91LmMgfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvZm91LmMgYi9u ZXQvaXB2NC9mb3UuYwppbmRleCAzMGZhNzcxZDM4MmEuLmRjYzc5ZmY1NGI0MSAxMDA2NDQKLS0t IGEvbmV0L2lwdjQvZm91LmMKKysrIGIvbmV0L2lwdjQvZm91LmMKQEAgLTY2Miw4ICs2NjIsOCBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IG5sYV9wb2xpY3kgZm91X25sX3BvbGljeVtGT1VfQVRUUl9N QVggKyAxXSA9IHsKIAlbRk9VX0FUVFJfUkVNQ1NVTV9OT1BBUlRJQUxdCT0geyAudHlwZSA9IE5M QV9GTEFHLCB9LAogCVtGT1VfQVRUUl9MT0NBTF9WNF0JCT0geyAudHlwZSA9IE5MQV9VMzIsIH0s CiAJW0ZPVV9BVFRSX1BFRVJfVjRdCQk9IHsgLnR5cGUgPSBOTEFfVTMyLCB9LAotCVtGT1VfQVRU Ul9MT0NBTF9WNl0JCT0geyAudHlwZSA9IHNpemVvZihzdHJ1Y3QgaW42X2FkZHIpLCB9LAotCVtG T1VfQVRUUl9QRUVSX1Y2XQkJPSB7IC50eXBlID0gc2l6ZW9mKHN0cnVjdCBpbjZfYWRkciksIH0s CisJW0ZPVV9BVFRSX0xPQ0FMX1Y2XQkJPSB7IC5sZW4gPSBzaXplb2Yoc3RydWN0IGluNl9hZGRy KSwgfSwKKwlbRk9VX0FUVFJfUEVFUl9WNl0JCT0geyAubGVuID0gc2l6ZW9mKHN0cnVjdCBpbjZf YWRkciksIH0sCiAJW0ZPVV9BVFRSX1BFRVJfUE9SVF0JCT0geyAudHlwZSA9IE5MQV9VMTYsIH0s CiAJW0ZPVV9BVFRSX0lGSU5ERVhdCQk9IHsgLnR5cGUgPSBOTEFfUzMyLCB9LAogfTsKLS0gCjIu MjEuMQoKCkZyb20gZWYxZjE2MWEzZjBkYmUzYzUyMDkwNjFlNDI0MGNkMzUxNTE0MzE5NCBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWF4aW0gTWlraXR5YW5za2l5IDxtYXhpbW1pQG1l bGxhbm94LmNvbT4KRGF0ZTogVHVlLCAyMSBKYW4gMjAyMCAxNTowOTo0MCArMDAwMApTdWJqZWN0 OiBbUEFUQ0ggMjMvMzJdIG5ldDogRml4IHBhY2tldCByZW9yZGVyaW5nIGNhdXNlZCBieSBHUk8g YW5kIGxpc3RpZmllZAogUlggY29vcGVyYXRpb24KClsgVXBzdHJlYW0gY29tbWl0IGM4MDc5NDMy M2U4MmFjNmFiNDUwNTJlYmJhNTc1N2NlNDdiNGI1ODggXQoKQ29tbWl0IDMyM2ViYjYxZTMyYiAo Im5ldDogdXNlIGxpc3RpZmllZCBSWCBmb3IgaGFuZGxpbmcgR1JPX05PUk1BTApza2JzIikgaW50 cm9kdWNlcyBiYXRjaGluZyBvZiBHUk9fTk9STUFMIHBhY2tldHMgaW4gbmFwaV9mcmFnc19maW5p c2gsCmFuZCBjb21taXQgNjU3MGJjNzljMGRmICgibmV0OiBjb3JlOiB1c2UgbGlzdGlmaWVkIFJ4 IGZvciBHUk9fTk9STUFMIGluCm5hcGlfZ3JvX3JlY2VpdmUoKSIpIGFkZHMgdGhlIHNhbWUgdG8g bmFwaV9za2JfZmluaXNoLiBIb3dldmVyLApkZXZfZ3JvX3JlY2VpdmUgKHRoYXQgaXMgY2FsbGVk IGp1c3QgYmVmb3JlIG5hcGlfe2ZyYWdzLHNrYn1fZmluaXNoKSBjYW4KYWxzbyBwYXNzIHNrYnMg dG8gdGhlIG5ldHdvcmtpbmcgc3RhY2s6IGUuZy4sIHdoZW4gdGhlIEdSTyBzZXNzaW9uIGlzCmZs dXNoZWQsIG5hcGlfZ3JvX2NvbXBsZXRlIGlzIGNhbGxlZCwgd2hpY2ggcGFzc2VzIHBwIGRpcmVj dGx5IHRvCm5ldGlmX3JlY2VpdmVfc2tiX2ludGVybmFsLCBza2lwcGluZyBuYXBpLT5yeF9saXN0 LiBJdCBtZWFucyB0aGF0IHRoZQpwYWNrZXQgc3RvcmVkIGluIHBwIHdpbGwgYmUgaGFuZGxlZCBi eSB0aGUgc3RhY2sgZWFybGllciB0aGFuIHRoZQpwYWNrZXRzIHRoYXQgYXJyaXZlZCBiZWZvcmUs IGJ1dCBhcmUgc3RpbGwgd2FpdGluZyBpbiBuYXBpLT5yeF9saXN0LiBJdApsZWFkcyB0byBUQ1Ag cmVvcmRlcmluZ3MgdGhhdCBjYW4gYmUgb2JzZXJ2ZWQgaW4gdGhlIFRDUE9GT1F1ZXVlIGNvdW50 ZXIKaW4gbmV0c3RhdC4KClRoaXMgY29tbWl0IGZpeGVzIHRoZSByZW9yZGVyaW5nIGlzc3VlIGJ5 IG1ha2luZyBuYXBpX2dyb19jb21wbGV0ZSBhbHNvCnVzZSBuYXBpLT5yeF9saXN0LCBzbyB0aGF0 IGFsbCBwYWNrZXRzIGdvaW5nIHRocm91Z2ggR1JPIHdpbGwga2VlcCB0aGVpcgpvcmRlci4gSW4g b3JkZXIgdG8ga2VlcCBuYXBpX2dyb19mbHVzaCB3b3JraW5nIHByb3Blcmx5LCBncm9fbm9ybWFs X2xpc3QKY2FsbHMgYXJlIG1vdmVkIGFmdGVyIHRoZSBmbHVzaCB0byBjbGVhciBuYXBpLT5yeF9s aXN0LgoKaXdsd2lmaSBjYWxscyBuYXBpX2dyb19mbHVzaCBkaXJlY3RseSBhbmQgZG9lcyB0aGUg c2FtZSB0aGluZyB0aGF0IGlzCmRvbmUgYnkgZ3JvX25vcm1hbF9saXN0LCBzbyB0aGUgc2FtZSBj aGFuZ2UgaXMgYXBwbGllZCB0aGVyZToKbmFwaV9ncm9fZmx1c2ggaXMgbW92ZWQgdG8gYmUgYmVm b3JlIHRoZSBmbHVzaCBvZiBuYXBpLT5yeF9saXN0LgoKQSBmZXcgb3RoZXIgZHJpdmVycyBhbHNv IHVzZSBuYXBpX2dyb19mbHVzaCAoYnJvY2FkZS9ibmEvYm5hZC5jLApjb3J0aW5hL2dlbWluaS5j LCBoaXNpbGljb24vaG5zMy9obnMzX2VuZXQuYykuIFRoZSBmaXJzdCB0d28gYWxzbyB1c2UKbmFw aV9jb21wbGV0ZV9kb25lIGFmdGVyd2FyZHMsIHdoaWNoIHBlcmZvcm1zIHRoZSBncm9fbm9ybWFs X2xpc3QgZmx1c2gsCnNvIHRoZXkgYXJlIGZpbmUuIFRoZSBsYXR0ZXIgY2FsbHMgbmFwaV9ncm9f cmVjZWl2ZSByaWdodCBhZnRlcgpuYXBpX2dyb19mbHVzaCwgc28gaXQgY2FuIGVuZCB1cCB3aXRo IG5vbi1lbXB0eSBuYXBpLT5yeF9saXN0IGFueXdheS4KCkZpeGVzOiAzMjNlYmI2MWUzMmIgKCJu ZXQ6IHVzZSBsaXN0aWZpZWQgUlggZm9yIGhhbmRsaW5nIEdST19OT1JNQUwgc2ticyIpClNpZ25l ZC1vZmYtYnk6IE1heGltIE1pa2l0eWFuc2tpeSA8bWF4aW1taUBtZWxsYW5veC5jb20+CkNjOiBB bGV4YW5kZXIgTG9iYWtpbiA8YWxvYmFraW5AZGxpbmsucnU+CkNjOiBFZHdhcmQgQ3JlZSA8ZWNy ZWVAc29sYXJmbGFyZS5jb20+CkFja2VkLWJ5OiBBbGV4YW5kZXIgTG9iYWtpbiA8YWxvYmFraW5A ZGxpbmsucnU+CkFja2VkLWJ5OiBTYWVlZCBNYWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4K QWNrZWQtYnk6IEVkd2FyZCBDcmVlIDxlY3JlZUBzb2xhcmZsYXJlLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L3dpcmVsZXNzL2ludGVsL2l3bHdpZmkvcGNpZS9yeC5jIHwgIDQgKy0KIG5ldC9jb3JlL2Rldi5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNjQgKysrKysrKysrKy0tLS0tLS0tLS0K IDIgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9wY2llL3J4LmMgYi9k cml2ZXJzL25ldC93aXJlbGVzcy9pbnRlbC9pd2x3aWZpL3BjaWUvcnguYwppbmRleCAwNDFkZDc1 YWM3MmIuLjY0Yzc0YWNhZGI5OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50 ZWwvaXdsd2lmaS9wY2llL3J4LmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvaW50ZWwvaXds d2lmaS9wY2llL3J4LmMKQEAgLTE1MzcsMTMgKzE1MzcsMTMgQEAgc3RhdGljIHZvaWQgaXdsX3Bj aWVfcnhfaGFuZGxlKHN0cnVjdCBpd2xfdHJhbnMgKnRyYW5zLCBpbnQgcXVldWUpCiAKIAluYXBp ID0gJnJ4cS0+bmFwaTsKIAlpZiAobmFwaS0+cG9sbCkgeworCQluYXBpX2dyb19mbHVzaChuYXBp LCBmYWxzZSk7CisKIAkJaWYgKG5hcGktPnJ4X2NvdW50KSB7CiAJCQluZXRpZl9yZWNlaXZlX3Nr Yl9saXN0KCZuYXBpLT5yeF9saXN0KTsKIAkJCUlOSVRfTElTVF9IRUFEKCZuYXBpLT5yeF9saXN0 KTsKIAkJCW5hcGktPnJ4X2NvdW50ID0gMDsKIAkJfQotCi0JCW5hcGlfZ3JvX2ZsdXNoKG5hcGks IGZhbHNlKTsKIAl9CiAKIAlpd2xfcGNpZV9yeHFfcmVzdG9jayh0cmFucywgcnhxKTsKZGlmZiAt LWdpdCBhL25ldC9jb3JlL2Rldi5jIGIvbmV0L2NvcmUvZGV2LmMKaW5kZXggYWY2ZWU1ZmY0ZmRh Li44MjMyNWQzZDEzNzEgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL2Rldi5jCisrKyBiL25ldC9jb3Jl L2Rldi5jCkBAIC01MjcwLDkgKzUyNzAsMjkgQEAgc3RhdGljIHZvaWQgZmx1c2hfYWxsX2JhY2ts b2dzKHZvaWQpCiAJcHV0X29ubGluZV9jcHVzKCk7CiB9CiAKKy8qIFBhc3MgdGhlIGN1cnJlbnRs eSBiYXRjaGVkIEdST19OT1JNQUwgU0tCcyB1cCB0byB0aGUgc3RhY2suICovCitzdGF0aWMgdm9p ZCBncm9fbm9ybWFsX2xpc3Qoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpKQoreworCWlmICghbmFw aS0+cnhfY291bnQpCisJCXJldHVybjsKKwluZXRpZl9yZWNlaXZlX3NrYl9saXN0X2ludGVybmFs KCZuYXBpLT5yeF9saXN0KTsKKwlJTklUX0xJU1RfSEVBRCgmbmFwaS0+cnhfbGlzdCk7CisJbmFw aS0+cnhfY291bnQgPSAwOworfQorCisvKiBRdWV1ZSBvbmUgR1JPX05PUk1BTCBTS0IgdXAgZm9y IGxpc3QgcHJvY2Vzc2luZy4gSWYgYmF0Y2ggc2l6ZSBleGNlZWRlZCwKKyAqIHBhc3MgdGhlIHdo b2xlIGJhdGNoIHVwIHRvIHRoZSBzdGFjay4KKyAqLworc3RhdGljIHZvaWQgZ3JvX25vcm1hbF9v bmUoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQoreworCWxp c3RfYWRkX3RhaWwoJnNrYi0+bGlzdCwgJm5hcGktPnJ4X2xpc3QpOworCWlmICgrK25hcGktPnJ4 X2NvdW50ID49IGdyb19ub3JtYWxfYmF0Y2gpCisJCWdyb19ub3JtYWxfbGlzdChuYXBpKTsKK30K KwogSU5ESVJFQ1RfQ0FMTEFCTEVfREVDTEFSRShpbnQgaW5ldF9ncm9fY29tcGxldGUoc3RydWN0 IHNrX2J1ZmYgKiwgaW50KSk7CiBJTkRJUkVDVF9DQUxMQUJMRV9ERUNMQVJFKGludCBpcHY2X2dy b19jb21wbGV0ZShzdHJ1Y3Qgc2tfYnVmZiAqLCBpbnQpKTsKLXN0YXRpYyBpbnQgbmFwaV9ncm9f Y29tcGxldGUoc3RydWN0IHNrX2J1ZmYgKnNrYikKK3N0YXRpYyBpbnQgbmFwaV9ncm9fY29tcGxl dGUoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewogCXN0 cnVjdCBwYWNrZXRfb2ZmbG9hZCAqcHR5cGU7CiAJX19iZTE2IHR5cGUgPSBza2ItPnByb3RvY29s OwpAQCAtNTMwNSw3ICs1MzI1LDggQEAgc3RhdGljIGludCBuYXBpX2dyb19jb21wbGV0ZShzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKQogCX0KIAogb3V0OgotCXJldHVybiBuZXRpZl9yZWNlaXZlX3NrYl9p bnRlcm5hbChza2IpOworCWdyb19ub3JtYWxfb25lKG5hcGksIHNrYik7CisJcmV0dXJuIE5FVF9S WF9TVUNDRVNTOwogfQogCiBzdGF0aWMgdm9pZCBfX25hcGlfZ3JvX2ZsdXNoX2NoYWluKHN0cnVj dCBuYXBpX3N0cnVjdCAqbmFwaSwgdTMyIGluZGV4LApAQCAtNTMxOCw3ICs1MzM5LDcgQEAgc3Rh dGljIHZvaWQgX19uYXBpX2dyb19mbHVzaF9jaGFpbihzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGks IHUzMiBpbmRleCwKIAkJaWYgKGZsdXNoX29sZCAmJiBOQVBJX0dST19DQihza2IpLT5hZ2UgPT0g amlmZmllcykKIAkJCXJldHVybjsKIAkJc2tiX2xpc3RfZGVsX2luaXQoc2tiKTsKLQkJbmFwaV9n cm9fY29tcGxldGUoc2tiKTsKKwkJbmFwaV9ncm9fY29tcGxldGUobmFwaSwgc2tiKTsKIAkJbmFw aS0+Z3JvX2hhc2hbaW5kZXhdLmNvdW50LS07CiAJfQogCkBAIC01NDIxLDcgKzU0NDIsNyBAQCBz dGF0aWMgdm9pZCBncm9fcHVsbF9mcm9tX2ZyYWcwKHN0cnVjdCBza19idWZmICpza2IsIGludCBn cm93KQogCX0KIH0KIAotc3RhdGljIHZvaWQgZ3JvX2ZsdXNoX29sZGVzdChzdHJ1Y3QgbGlzdF9o ZWFkICpoZWFkKQorc3RhdGljIHZvaWQgZ3JvX2ZsdXNoX29sZGVzdChzdHJ1Y3QgbmFwaV9zdHJ1 Y3QgKm5hcGksIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQpCiB7CiAJc3RydWN0IHNrX2J1ZmYgKm9s ZGVzdDsKIApAQCAtNTQzNyw3ICs1NDU4LDcgQEAgc3RhdGljIHZvaWQgZ3JvX2ZsdXNoX29sZGVz dChzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkKQogCSAqIFNLQiB0byB0aGUgY2hhaW4uCiAJICovCiAJ c2tiX2xpc3RfZGVsX2luaXQob2xkZXN0KTsKLQluYXBpX2dyb19jb21wbGV0ZShvbGRlc3QpOwor CW5hcGlfZ3JvX2NvbXBsZXRlKG5hcGksIG9sZGVzdCk7CiB9CiAKIElORElSRUNUX0NBTExBQkxF X0RFQ0xBUkUoc3RydWN0IHNrX2J1ZmYgKmluZXRfZ3JvX3JlY2VpdmUoc3RydWN0IGxpc3RfaGVh ZCAqLApAQCAtNTUxMyw3ICs1NTM0LDcgQEAgc3RhdGljIGVudW0gZ3JvX3Jlc3VsdCBkZXZfZ3Jv X3JlY2VpdmUoc3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBzdHJ1Y3Qgc2tfYnVmZgogCiAJaWYg KHBwKSB7CiAJCXNrYl9saXN0X2RlbF9pbml0KHBwKTsKLQkJbmFwaV9ncm9fY29tcGxldGUocHAp OworCQluYXBpX2dyb19jb21wbGV0ZShuYXBpLCBwcCk7CiAJCW5hcGktPmdyb19oYXNoW2hhc2hd LmNvdW50LS07CiAJfQogCkBAIC01NTI0LDcgKzU1NDUsNyBAQCBzdGF0aWMgZW51bSBncm9fcmVz dWx0IGRldl9ncm9fcmVjZWl2ZShzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGksIHN0cnVjdCBza19i dWZmCiAJCWdvdG8gbm9ybWFsOwogCiAJaWYgKHVubGlrZWx5KG5hcGktPmdyb19oYXNoW2hhc2hd LmNvdW50ID49IE1BWF9HUk9fU0tCUykpIHsKLQkJZ3JvX2ZsdXNoX29sZGVzdChncm9faGVhZCk7 CisJCWdyb19mbHVzaF9vbGRlc3QobmFwaSwgZ3JvX2hlYWQpOwogCX0gZWxzZSB7CiAJCW5hcGkt Pmdyb19oYXNoW2hhc2hdLmNvdW50Kys7CiAJfQpAQCAtNTY3MiwyNiArNTY5Myw2IEBAIHN0cnVj dCBza19idWZmICpuYXBpX2dldF9mcmFncyhzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGkpCiB9CiBF WFBPUlRfU1lNQk9MKG5hcGlfZ2V0X2ZyYWdzKTsKIAotLyogUGFzcyB0aGUgY3VycmVudGx5IGJh dGNoZWQgR1JPX05PUk1BTCBTS0JzIHVwIHRvIHRoZSBzdGFjay4gKi8KLXN0YXRpYyB2b2lkIGdy b19ub3JtYWxfbGlzdChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm5hcGkpCi17Ci0JaWYgKCFuYXBpLT5y eF9jb3VudCkKLQkJcmV0dXJuOwotCW5ldGlmX3JlY2VpdmVfc2tiX2xpc3RfaW50ZXJuYWwoJm5h cGktPnJ4X2xpc3QpOwotCUlOSVRfTElTVF9IRUFEKCZuYXBpLT5yeF9saXN0KTsKLQluYXBpLT5y eF9jb3VudCA9IDA7Ci19Ci0KLS8qIFF1ZXVlIG9uZSBHUk9fTk9STUFMIFNLQiB1cCBmb3IgbGlz dCBwcm9jZXNzaW5nLiAgSWYgYmF0Y2ggc2l6ZSBleGNlZWRlZCwKLSAqIHBhc3MgdGhlIHdob2xl IGJhdGNoIHVwIHRvIHRoZSBzdGFjay4KLSAqLwotc3RhdGljIHZvaWQgZ3JvX25vcm1hbF9vbmUo c3RydWN0IG5hcGlfc3RydWN0ICpuYXBpLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQotewotCWxpc3Rf YWRkX3RhaWwoJnNrYi0+bGlzdCwgJm5hcGktPnJ4X2xpc3QpOwotCWlmICgrK25hcGktPnJ4X2Nv dW50ID49IGdyb19ub3JtYWxfYmF0Y2gpCi0JCWdyb19ub3JtYWxfbGlzdChuYXBpKTsKLX0KLQog c3RhdGljIGdyb19yZXN1bHRfdCBuYXBpX2ZyYWdzX2ZpbmlzaChzdHJ1Y3QgbmFwaV9zdHJ1Y3Qg Km5hcGksCiAJCQkJICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQkgICAgICBncm9fcmVz dWx0X3QgcmV0KQpAQCAtNTk3OSw4ICs1OTgwLDYgQEAgYm9vbCBuYXBpX2NvbXBsZXRlX2RvbmUo c3RydWN0IG5hcGlfc3RydWN0ICpuLCBpbnQgd29ya19kb25lKQogCQkJCSBOQVBJRl9TVEFURV9J Tl9CVVNZX1BPTEwpKSkKIAkJcmV0dXJuIGZhbHNlOwogCi0JZ3JvX25vcm1hbF9saXN0KG4pOwot CiAJaWYgKG4tPmdyb19iaXRtYXNrKSB7CiAJCXVuc2lnbmVkIGxvbmcgdGltZW91dCA9IDA7CiAK QEAgLTU5OTYsNiArNTk5NSw5IEBAIGJvb2wgbmFwaV9jb21wbGV0ZV9kb25lKHN0cnVjdCBuYXBp X3N0cnVjdCAqbiwgaW50IHdvcmtfZG9uZSkKIAkJCWhydGltZXJfc3RhcnQoJm4tPnRpbWVyLCBu c190b19rdGltZSh0aW1lb3V0KSwKIAkJCQkgICAgICBIUlRJTUVSX01PREVfUkVMX1BJTk5FRCk7 CiAJfQorCisJZ3JvX25vcm1hbF9saXN0KG4pOworCiAJaWYgKHVubGlrZWx5KCFsaXN0X2VtcHR5 KCZuLT5wb2xsX2xpc3QpKSkgewogCQkvKiBJZiBuLT5wb2xsX2xpc3QgaXMgbm90IGVtcHR5LCB3 ZSBuZWVkIHRvIG1hc2sgaXJxcyAqLwogCQlsb2NhbF9pcnFfc2F2ZShmbGFncyk7CkBAIC02MzI3 LDggKzYzMjksNiBAQCBzdGF0aWMgaW50IG5hcGlfcG9sbChzdHJ1Y3QgbmFwaV9zdHJ1Y3QgKm4s IHN0cnVjdCBsaXN0X2hlYWQgKnJlcG9sbCkKIAkJZ290byBvdXRfdW5sb2NrOwogCX0KIAotCWdy b19ub3JtYWxfbGlzdChuKTsKLQogCWlmIChuLT5ncm9fYml0bWFzaykgewogCQkvKiBmbHVzaCB0 b28gb2xkIHBhY2tldHMKIAkJICogSWYgSFogPCAxMDAwLCBmbHVzaCBhbGwgcGFja2V0cy4KQEAg LTYzMzYsNiArNjMzNiw4IEBAIHN0YXRpYyBpbnQgbmFwaV9wb2xsKHN0cnVjdCBuYXBpX3N0cnVj dCAqbiwgc3RydWN0IGxpc3RfaGVhZCAqcmVwb2xsKQogCQluYXBpX2dyb19mbHVzaChuLCBIWiA+ PSAxMDAwKTsKIAl9CiAKKwlncm9fbm9ybWFsX2xpc3Qobik7CisKIAkvKiBTb21lIGRyaXZlcnMg bWF5IGhhdmUgY2FsbGVkIG5hcGlfc2NoZWR1bGUKIAkgKiBwcmlvciB0byBleGhhdXN0aW5nIHRo ZWlyIGJ1ZGdldC4KIAkgKi8KLS0gCjIuMjEuMQoKCkZyb20gYzVmNDA5MDMzNGRjNjMzYzBhYTYx NDNmYTFlM2E4MTc5NDA1NmQ1NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGF1bCBC bGFrZXkgPHBhdWxiQG1lbGxhbm94LmNvbT4KRGF0ZTogVHVlLCAzMSBEZWMgMjAxOSAxNzowNDox NSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMjQvMzJdIG5ldC9tbHg1OiBGaXggbG93ZXN0IEZEQiBw b29sIHNpemUKClRoZSBwb29sIHNpemVzIHJlcHJlc2VudCB0aGUgcG9vbCBzaXplcyBpbiB0aGUg ZncuIHdoZW4gd2UgcmVxdWVzdAphIHBvb2wgc2l6ZSBmcm9tIGZ3LCBpdCB3aWxsIHJldHVybiB0 aGUgbmV4dCBwb3NzaWJsZSBncm91cC4KV2UgdHJhY2sgaG93IG1hbnkgcG9vbHMgdGhlIGZ3IGhh cyBsZWZ0IGFuZCBzdGFydCByZXF1ZXN0aW5nIGdyb3Vwcwpmcm9tIHRoZSBiaWcgdG8gdGhlIHNt YWxsLgpXaGVuIHdlIHN0YXJ0IHJlcXVlc3QgNGsgZ3JvdXAsIHdoaWNoIGRvZXNuJ3QgZXhpc3Rz IGluIGZ3LCBmdwp3YW50cyB0byBhbGxvY2F0ZSB0aGUgbmV4dCBwb3NzaWJsZSBzaXplLCA2NGss IGJ1dCB3aWxsIGZhaWwgc2luY2UKaXRzIGV4aGF1c3RlZC4gVGhlIGNvcnJlY3Qgc21hbGxlc3Qg cG9vbCBzaXplIGluIGZ3IGlzIDEyOCBhbmQgbm90IDRrLgoKRml4ZXM6IGU1MmMyODAyNDAwOCAo Im5ldC9tbHg1OiBFLVN3aXRjaCwgQWRkIGNoYWlucyBhbmQgcHJpb3JpdGllcyIpClNpZ25lZC1v ZmYtYnk6IFBhdWwgQmxha2V5IDxwYXVsYkBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBSb2kg RGF5YW4gPHJvaWRAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBNYWhhbWVlZCA8 c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9t bHg1L2NvcmUvZXN3aXRjaF9vZmZsb2Fkcy5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5z ZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMKaW5kZXggOTAwNGEw N2U0NTdhLi41YWNmZGVhM2E3NWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lc3dpdGNoX29mZmxvYWRzLmMKKysrIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2Vzd2l0Y2hfb2ZmbG9hZHMuYwpAQCAtODU4LDcgKzg1 OCw3IEBAIHN0YXRpYyBpbnQgZXN3X2FkZF9mZGJfbWlzc19ydWxlKHN0cnVjdCBtbHg1X2Vzd2l0 Y2ggKmVzdykKICAqLwogI2RlZmluZSBFU1dfU0laRSAoMTYgKiAxMDI0ICogMTAyNCkKIGNvbnN0 IHVuc2lnbmVkIGludCBFU1dfUE9PTFNbNF0gPSB7IDQgKiAxMDI0ICogMTAyNCwgMSAqIDEwMjQg KiAxMDI0LAotCQkJCSAgICA2NCAqIDEwMjQsIDQgKiAxMDI0IH07CisJCQkJICAgIDY0ICogMTAy NCwgMTI4IH07CiAKIHN0YXRpYyBpbnQKIGdldF9zel9mcm9tX3Bvb2woc3RydWN0IG1seDVfZXN3 aXRjaCAqZXN3KQotLSAKMi4yMS4xCgoKRnJvbSAyZWFjNDU0NDI1NjMwNGM2YWE5OWQ4NTk3MDk5 NmQxZjlhNDUyYmQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNZWlyIExpY2h0aW5n ZXIgPG1laXJsQG1lbGxhbm94LmNvbT4KRGF0ZTogVGh1LCAxMiBEZWMgMjAxOSAxNjowOTozMyAr MDIwMApTdWJqZWN0OiBbUEFUQ0ggMjUvMzJdIG5ldC9tbHg1OiBVcGRhdGUgdGhlIGxpc3Qgb2Yg dGhlIFBDSSBzdXBwb3J0ZWQgZGV2aWNlcwoKQWRkIHRoZSB1cGNvbWluZyBDb25uZWN0WC03IGRl dmljZSBJRC4KCkZpeGVzOiA4NTMyN2E5YzQxNTAgKCJuZXQvbWx4NTogVXBkYXRlIHRoZSBsaXN0 IG9mIHRoZSBQQ0kgc3VwcG9ydGVkIGRldmljZXMiKQpTaWduZWQtb2ZmLWJ5OiBNZWlyIExpY2h0 aW5nZXIgPG1laXJsQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IEVyYW4gQmVuIEVsaXNoYSA8 ZXJhbmJlQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQgPHNhZWVk bUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9j b3JlL21haW4uYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL21haW4uYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9tYWluLmMKaW5kZXggMDUxYWI4 NDViNTAxLi5jOTZhMGU1MDEwMDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL21haW4uYwpAQCAtMTU2OSw2ICsxNTY5LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBwY2lfZGV2aWNlX2lkIG1seDVfY29yZV9wY2lfdGFibGVbXSA9IHsKIAl7IFBDSV9WREVW SUNFKE1FTExBTk9YLCAweDEwMWQpIH0sCQkJLyogQ29ubmVjdFgtNiBEeCAqLwogCXsgUENJX1ZE RVZJQ0UoTUVMTEFOT1gsIDB4MTAxZSksIE1MWDVfUENJX0RFVl9JU19WRn0sCS8qIENvbm5lY3RY IEZhbWlseSBtbHg1R2VuIFZpcnR1YWwgRnVuY3Rpb24gKi8KIAl7IFBDSV9WREVWSUNFKE1FTExB Tk9YLCAweDEwMWYpIH0sCQkJLyogQ29ubmVjdFgtNiBMWCAqLworCXsgUENJX1ZERVZJQ0UoTUVM TEFOT1gsIDB4MTAyMSkgfSwJCQkvKiBDb25uZWN0WC03ICovCiAJeyBQQ0lfVkRFVklDRShNRUxM QU5PWCwgMHhhMmQyKSB9LAkJCS8qIEJsdWVGaWVsZCBpbnRlZ3JhdGVkIENvbm5lY3RYLTUgbmV0 d29yayBjb250cm9sbGVyICovCiAJeyBQQ0lfVkRFVklDRShNRUxMQU5PWCwgMHhhMmQzKSwgTUxY NV9QQ0lfREVWX0lTX1ZGfSwJLyogQmx1ZUZpZWxkIGludGVncmF0ZWQgQ29ubmVjdFgtNSBuZXR3 b3JrIGNvbnRyb2xsZXIgVkYgKi8KIAl7IFBDSV9WREVWSUNFKE1FTExBTk9YLCAweGEyZDYpIH0s CQkJLyogQmx1ZUZpZWxkLTIgaW50ZWdyYXRlZCBDb25uZWN0WC02IER4IG5ldHdvcmsgY29udHJv bGxlciAqLwotLSAKMi4yMS4xCgoKRnJvbSBhMTBjYjBjZGJmMTlmYjI4YzA4YWQ0MTk0ZGE1ZjJm YjFmZGZiNmRiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBFcmV6IFNoaXRyaXQgPGVy ZXpzaEBtZWxsYW5veC5jb20+CkRhdGU6IFdlZCwgOCBKYW4gMjAyMCAxNDoxNzozMiArMDIwMApT dWJqZWN0OiBbUEFUQ0ggMjYvMzJdIG5ldC9tbHg1OiBEUiwgRW5hYmxlIGNvdW50ZXIgb24gbm9u LWZ3ZC1kZXN0IG9iamVjdHMKClRoZSBjdXJyZW50IGNvZGUgaGFuZGxlcyBvbmx5IGNvdW50ZXJz IHRoYXQgYXR0YWNoZWQgdG8gZGVzdCwgd2Ugc3RpbGwKaGF2ZSB0aGUgY2FzZXMgd2hlcmUgd2Ug aGF2ZSBjb3VudGVyIG9uIG5vbi1kZXN0LCBsaWtlIG92ZXIgZHJvcCBldGMuCgpGaXhlczogNmE0 OGZhZWVjYTEwICgibmV0L21seDU6IEFkZCBkaXJlY3QgcnVsZSBmc19jbWQgaW1wbGVtZW50YXRp b24iKQpTaWduZWQtb2ZmLWJ5OiBIYW1kYW4gSWdiYXJpYSA8aGFtZGFuaUBtZWxsYW5veC5jb20+ ClNpZ25lZC1vZmYtYnk6IEVyZXogU2hpdHJpdCA8ZXJlenNoQG1lbGxhbm94LmNvbT4KUmV2aWV3 ZWQtYnk6IEFsZXggVmVza2VyIDx2YWxleEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNh ZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIC4uLi9tZWxsYW5veC9tbHg1 L2NvcmUvc3RlZXJpbmcvZnNfZHIuYyAgICAgICB8IDQyICsrKysrKysrKysrKystLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAyOSBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvZnNf ZHIuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9m c19kci5jCmluZGV4IDNkNTg3ZDBiZGJiZS4uMWUzMmUyNDQzZjczIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvZnNfZHIuYworKysg Yi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvc3RlZXJpbmcvZnNfZHIu YwpAQCAtMzUyLDI2ICszNTIsMTYgQEAgc3RhdGljIGludCBtbHg1X2NtZF9kcl9jcmVhdGVfZnRl KHN0cnVjdCBtbHg1X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5zLAogCWlmIChmdGUtPmFjdGlvbi5h Y3Rpb24gJiBNTFg1X0ZMT1dfQ09OVEVYVF9BQ1RJT05fRldEX0RFU1QpIHsKIAkJbGlzdF9mb3Jf ZWFjaF9lbnRyeShkc3QsICZmdGUtPm5vZGUuY2hpbGRyZW4sIG5vZGUubGlzdCkgewogCQkJZW51 bSBtbHg1X2Zsb3dfZGVzdGluYXRpb25fdHlwZSB0eXBlID0gZHN0LT5kZXN0X2F0dHIudHlwZTsK LQkJCXUzMiBpZDsKIAogCQkJaWYgKG51bV9hY3Rpb25zID09IE1MWDVfRkxPV19DT05URVhUX0FD VElPTl9NQVgpIHsKIAkJCQllcnIgPSAtRU5PU1BDOwogCQkJCWdvdG8gZnJlZV9hY3Rpb25zOwog CQkJfQogCi0JCQlzd2l0Y2ggKHR5cGUpIHsKLQkJCWNhc2UgTUxYNV9GTE9XX0RFU1RJTkFUSU9O X1RZUEVfQ09VTlRFUjoKLQkJCQlpZCA9IGRzdC0+ZGVzdF9hdHRyLmNvdW50ZXJfaWQ7CisJCQlp ZiAodHlwZSA9PSBNTFg1X0ZMT1dfREVTVElOQVRJT05fVFlQRV9DT1VOVEVSKQorCQkJCWNvbnRp bnVlOwogCi0JCQkJdG1wX2FjdGlvbiA9Ci0JCQkJCW1seDVkcl9hY3Rpb25fY3JlYXRlX2Zsb3df Y291bnRlcihpZCk7Ci0JCQkJaWYgKCF0bXBfYWN0aW9uKSB7Ci0JCQkJCWVyciA9IC1FTk9NRU07 Ci0JCQkJCWdvdG8gZnJlZV9hY3Rpb25zOwotCQkJCX0KLQkJCQlmc19kcl9hY3Rpb25zW2ZzX2Ry X251bV9hY3Rpb25zKytdID0gdG1wX2FjdGlvbjsKLQkJCQlhY3Rpb25zW251bV9hY3Rpb25zKytd ID0gdG1wX2FjdGlvbjsKLQkJCQlicmVhazsKKwkJCXN3aXRjaCAodHlwZSkgewogCQkJY2FzZSBN TFg1X0ZMT1dfREVTVElOQVRJT05fVFlQRV9GTE9XX1RBQkxFOgogCQkJCXRtcF9hY3Rpb24gPSBj cmVhdGVfZnRfYWN0aW9uKGRldiwgZHN0KTsKIAkJCQlpZiAoIXRtcF9hY3Rpb24pIHsKQEAgLTM5 Nyw2ICszODcsMzIgQEAgc3RhdGljIGludCBtbHg1X2NtZF9kcl9jcmVhdGVfZnRlKHN0cnVjdCBt bHg1X2Zsb3dfcm9vdF9uYW1lc3BhY2UgKm5zLAogCQl9CiAJfQogCisJaWYgKGZ0ZS0+YWN0aW9u LmFjdGlvbiAmIE1MWDVfRkxPV19DT05URVhUX0FDVElPTl9DT1VOVCkgeworCQlsaXN0X2Zvcl9l YWNoX2VudHJ5KGRzdCwgJmZ0ZS0+bm9kZS5jaGlsZHJlbiwgbm9kZS5saXN0KSB7CisJCQl1MzIg aWQ7CisKKwkJCWlmIChkc3QtPmRlc3RfYXR0ci50eXBlICE9CisJCQkgICAgTUxYNV9GTE9XX0RF U1RJTkFUSU9OX1RZUEVfQ09VTlRFUikKKwkJCQljb250aW51ZTsKKworCQkJaWYgKG51bV9hY3Rp b25zID09IE1MWDVfRkxPV19DT05URVhUX0FDVElPTl9NQVgpIHsKKwkJCQllcnIgPSAtRU5PU1BD OworCQkJCWdvdG8gZnJlZV9hY3Rpb25zOworCQkJfQorCisJCQlpZCA9IGRzdC0+ZGVzdF9hdHRy LmNvdW50ZXJfaWQ7CisJCQl0bXBfYWN0aW9uID0KKwkJCQltbHg1ZHJfYWN0aW9uX2NyZWF0ZV9m bG93X2NvdW50ZXIoaWQpOworCQkJaWYgKCF0bXBfYWN0aW9uKSB7CisJCQkJZXJyID0gLUVOT01F TTsKKwkJCQlnb3RvIGZyZWVfYWN0aW9uczsKKwkJCX0KKworCQkJZnNfZHJfYWN0aW9uc1tmc19k cl9udW1fYWN0aW9ucysrXSA9IHRtcF9hY3Rpb247CisJCQlhY3Rpb25zW251bV9hY3Rpb25zKytd ID0gdG1wX2FjdGlvbjsKKwkJfQorCX0KKwogCXBhcmFtcy5tYXRjaF9zeiA9IG1hdGNoX3N6Owog CXBhcmFtcy5tYXRjaF9idWYgPSAodTY0ICopZnRlLT52YWw7CiAKLS0gCjIuMjEuMQoKCkZyb20g ZWUxOTA1YTJkZWQxZDU5ZDRlYWFlYzQ2ZjA4ZWQ1Y2JkODU0MjVhNiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogRWxpIENvaGVuIDxlbGlAbWVsbGFub3guY29tPgpEYXRlOiBTdW4sIDEy IEphbiAyMDIwIDEzOjQzOjM3ICswMjAwClN1YmplY3Q6IFtQQVRDSCAyNy8zMl0gbmV0L21seDU6 IEUtU3dpdGNoLCBQcmV2ZW50IGluZ3Jlc3MgcmF0ZSBjb25maWd1cmF0aW9uCiBvZiB1cGxpbmsg cmVwCgpTaW5jZSB0aGUgaW1wbGVtZW50YXRpb24gcmVsaWVzIG9uIGxpbWl0aW5nIHRoZSBWRiB0 cmFuc21pdCByYXRlIHRvCnNpbXVsYXRlIGluZ3Jlc3MgcmF0ZSBsaW1pdGluZywgYW5kIHNpbmNl IGVpdGhlciB1cGxpbmsgcmVwcmVzZW50b3Igb3IKZWNwZiBhcmUgbm90IGFzc29jaWF0ZWQgd2l0 aCBhIFZGLCB3ZSBsaW1pdCB0aGUgcmF0ZSBsaW1pdCBjb25maWd1cmF0aW9uCmZvciB0aG9zZSBw b3J0cy4KCkZpeGVzOiBmY2I2NGMwZjU2NDAgKCJuZXQvbWx4NTogRS1Td2l0Y2gsIGFkZCBpbmdy ZXNzIHJhdGUgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEVsaSBDb2hlbiA8ZWxpQG1lbGxhbm94 LmNvbT4KUmV2aWV3ZWQtYnk6IFJvaSBEYXlhbiA8cm9pZEBtZWxsYW5veC5jb20+ClNpZ25lZC1v ZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFub3guY29tPgotLS0KIGRyaXZlcnMv bmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl90Yy5jIHwgOSArKysrKysrLS0KIDEg ZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX3RjLmMgYi9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYwppbmRleCA5NjcxMWUz NGQyNDguLjFmOTEwN2Q4Mzg0OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX3RjLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuX3RjLmMKQEAgLTM5NTEsNiArMzk1MSwxMyBAQCBzdGF0aWMgaW50IGFw cGx5X3BvbGljZV9wYXJhbXMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYsIHUzMiByYXRlLAogCXUz MiByYXRlX21icHM7CiAJaW50IGVycjsKIAorCXZwb3J0X251bSA9IHJwcml2LT5yZXAtPnZwb3J0 OworCWlmICh2cG9ydF9udW0gPj0gTUxYNV9WUE9SVF9FQ1BGKSB7CisJCU5MX1NFVF9FUlJfTVNH X01PRChleHRhY2ssCisJCQkJICAgIkluZ3Jlc3MgcmF0ZSBsaW1pdCBpcyBzdXBwb3J0ZWQgb25s eSBmb3IgRXN3aXRjaCBwb3J0cyBjb25uZWN0ZWQgdG8gVkZzIik7CisJCXJldHVybiAtRU9QTk9U U1VQUDsKKwl9CisKIAllc3cgPSBwcml2LT5tZGV2LT5wcml2LmVzd2l0Y2g7CiAJLyogcmF0ZSBp cyBnaXZlbiBpbiBieXRlcy9zZWMuCiAJICogRmlyc3QgY29udmVydCB0byBiaXRzL3NlYyBhbmQg dGhlbiByb3VuZCB0byB0aGUgbmVhcmVzdCBtYml0L3NlY3MuCkBAIC0zOTU5LDggKzM5NjYsNiBA QCBzdGF0aWMgaW50IGFwcGx5X3BvbGljZV9wYXJhbXMoc3RydWN0IG1seDVlX3ByaXYgKnByaXYs IHUzMiByYXRlLAogCSAqIDEgbWJpdC9zZWMuCiAJICovCiAJcmF0ZV9tYnBzID0gcmF0ZSA/IG1h eF90KHUzMiwgKHJhdGUgKiA4ICsgNTAwMDAwKSAvIDEwMDAwMDAsIDEpIDogMDsKLQl2cG9ydF9u dW0gPSBycHJpdi0+cmVwLT52cG9ydDsKLQogCWVyciA9IG1seDVfZXN3X21vZGlmeV92cG9ydF9y YXRlKGVzdywgdnBvcnRfbnVtLCByYXRlX21icHMpOwogCWlmIChlcnIpCiAJCU5MX1NFVF9FUlJf TVNHX01PRChleHRhY2ssICJmYWlsZWQgYXBwbHlpbmcgYWN0aW9uIHRvIGhhcmR3YXJlIik7Ci0t IAoyLjIxLjEKCgpGcm9tIGYwZjI3MjBkYzRiMjMzYzI0NDE3Y2Q4ZGI2ZDZjMjM1MjJiNzFjODkg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyZXogU2hpdHJpdCA8ZXJlenNoQG1lbGxh bm94LmNvbT4KRGF0ZTogU3VuLCAxMiBKYW4gMjAyMCAwODo1Nzo1OSArMDIwMApTdWJqZWN0OiBb UEFUQ0ggMjgvMzJdIG5ldC9tbHg1OiBEUiwgdXNlIG5vbiBwcmVlbXB0aWJsZSBjYWxsIHRvIGdl dCB0aGUKIGN1cnJlbnQgY3B1IG51bWJlcgoKVXNlIHJhd19zbXBfcHJvY2Vzc29yX2lkIGluc3Rl YWQgb2Ygc21wX3Byb2Nlc3Nvcl9pZCgpIG90aGVyd2lzZSB3ZSB3aWxsCmdldCB0aGUgZm9sbG93 aW5nIHRyYWNlIGluIGRlYnVnLWtlcm5lbDoKCUJVRzogdXNpbmcgc21wX3Byb2Nlc3Nvcl9pZCgp IGluIHByZWVtcHRpYmxlIFswMDAwMDAwMF0gY29kZTogZGV2bGluawoJY2FsbGVyIGlzIGRyX2Ny ZWF0ZV9jcS5jb25zdHByb3AuMisweDMxZC8weDk3MCBbbWx4NV9jb3JlXQoJQ2FsbCBUcmFjZToK CWR1bXBfc3RhY2srMHg5YS8weGYwCglkZWJ1Z19zbXBfcHJvY2Vzc29yX2lkKzB4MWYzLzB4MjAw Cglkcl9jcmVhdGVfY3EuY29uc3Rwcm9wLjIrMHgzMWQvMHg5NzAKCWdlbmxfZmFtaWx5X3Jjdl9t c2crMHg1ZmQvMHgxMTcwCglnZW5sX3Jjdl9tc2crMHhiOC8weDE2MAoJbmV0bGlua19yY3Zfc2ti KzB4MTFlLzB4MzQwCgpGaXhlczogMjk3Y2NjZWJkYzVhICgibmV0L21seDU6IERSLCBFeHBvc2Ug YW4gaW50ZXJuYWwgQVBJIHRvIGlzc3VlIFJETUEgb3BlcmF0aW9ucyIpClNpZ25lZC1vZmYtYnk6 IEVyZXogU2hpdHJpdCA8ZXJlenNoQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQg TWFoYW1lZWQgPHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2RyX3NlbmQuYyB8IDMgKystCiAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2RyX3NlbmQuYyBiL2Ry aXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9kcl9zZW5kLmMK aW5kZXggNTE4MDNlZWYxM2RkLi5jN2YxMGQ0ZjhmOGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9zdGVlcmluZy9kcl9zZW5kLmMKKysrIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL3N0ZWVyaW5nL2RyX3NlbmQuYwpA QCAtMSw2ICsxLDcgQEAKIC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wIE9SIExp bnV4LU9wZW5JQgogLyogQ29weXJpZ2h0IChjKSAyMDE5IE1lbGxhbm94IFRlY2hub2xvZ2llcy4g Ki8KIAorI2luY2x1ZGUgPGxpbnV4L3NtcC5oPgogI2luY2x1ZGUgImRyX3R5cGVzLmgiCiAKICNk ZWZpbmUgUVVFVUVfU0laRSAxMjgKQEAgLTcyOSw3ICs3MzAsNyBAQCBzdGF0aWMgc3RydWN0IG1s eDVkcl9jcSAqZHJfY3JlYXRlX2NxKHN0cnVjdCBtbHg1X2NvcmVfZGV2ICptZGV2LAogCWlmICgh aW4pCiAJCWdvdG8gZXJyX2Nxd3E7CiAKLQl2ZWN0b3IgPSBzbXBfcHJvY2Vzc29yX2lkKCkgJSBt bHg1X2NvbXBfdmVjdG9yc19jb3VudChtZGV2KTsKKwl2ZWN0b3IgPSByYXdfc21wX3Byb2Nlc3Nv cl9pZCgpICUgbWx4NV9jb21wX3ZlY3RvcnNfY291bnQobWRldik7CiAJZXJyID0gbWx4NV92ZWN0 b3IyZXFuKG1kZXYsIHZlY3RvciwgJmVxbiwgJmlycW4pOwogCWlmIChlcnIpIHsKIAkJa3ZmcmVl KGluKTsKLS0gCjIuMjEuMQoKCkZyb20gNjhkYmQyZGRmNjQzYWZmZTQzNzI3NTVkOWE2YjA5ODlj YTdjMjY0NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGFyaXEgVG91a2FuIDx0YXJp cXRAbWVsbGFub3guY29tPgpEYXRlOiBTdW4sIDEyIEphbiAyMDIwIDE2OjIyOjE0ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAyOS8zMl0gbmV0L21seDVlOiBrVExTLCBGaXggY29ybmVyLWNhc2UgY2hl Y2tzIGluIFRYIHJlc3luYwogZmxvdwoKVGhlcmUgYXJlIHRoZSBmb2xsb3dpbmcgY2FzZXM6Cgox LiBQYWNrZXQgZW5kcyBiZWZvcmUgc3RhcnQgbWFya2VyOiBieXBhc3Mgb2ZmbG9hZC4KMi4gUGFj a2V0IHN0YXJ0cyBiZWZvcmUgc3RhcnQgbWFya2VyIGFuZCBlbmRzIGFmdGVyIGl0OiBkcm9wLAog ICBub3Qgc3VwcG9ydGVkLCBicmVha3MgY29udHJhY3Qgd2l0aCBrZXJuZWwuCjMuIHBhY2tldCBl bmRzIGJlZm9yZSB0bHMgcmVjb3JkIGluZm8gc3RhcnRzOiBkcm9wLAogICB0aGlzIHBhY2tldCB3 YXMgYWxyZWFkeSBhY2tub3dsZWRnZWQgYW5kIGl0cyByZWNvcmQgaW5mbwogICB3YXMgcmVsZWFz ZWQuCgpBZGQgdGhlIGFib3ZlIGFzIGNvbW1lbnQgaW4gY29kZS4KCk1pbmQgcG9zc2libGUgd3Jh cGFyb3VuZHMgb2YgdGhlIFRDUCBzZXEsIHJlcGxhY2UgdGhlIHNpbXBsZSBjb21wYXJpc29uCndp dGggYSBjYWxsIHRvIHRoZSBUQ1AgYmVmb3JlKCkgbWV0aG9kLgoKSW4gYWRkaXRpb24sIHJlbW92 ZSBsb2dpYyB0aGF0IGhhbmRsZXMgbmVnYXRpdmUgc3luY19sZW4gdmFsdWVzLAphcyBpdCBiZWNh bWUgaW1wb3NzaWJsZS4KCkZpeGVzOiBkMmVhZDFmMzYwZTggKCJuZXQvbWx4NWU6IEFkZCBrVExT IFRYIEhXIG9mZmxvYWQgc3VwcG9ydCIpCkZpeGVzOiA0NmEzZWE5ODA3NGUgKCJuZXQvbWx4NWU6 IGtUTFMsIEVuaGFuY2UgVFggcmVzeW5jIGZsb3ciKQpTaWduZWQtb2ZmLWJ5OiBUYXJpcSBUb3Vr YW4gPHRhcmlxdEBtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IEJvcmlzIFBpc21lbm55IDxi b3Jpc3BAbWVsbGFub3guY29tPgpSZXZpZXdlZC1ieTogQm9yaXMgUGlzbWVubnkgPGJvcmlzcEBt ZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IFNhZWVkIE1haGFtZWVkIDxzYWVlZG1AbWVsbGFu b3guY29tPgotLS0KIC4uLi9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwva3Rsc190eC5jICAg ICB8IDMzICsrKysrKysrKysrLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25z KCspLCAxNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwva3Rsc190eC5jIGIvZHJpdmVycy9uZXQvZXRoZXJu ZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2t0bHNfdHguYwppbmRleCA3NzhkYWIxYWY4 ZmMuLjhkYmI5MjE3NmJkNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4NS9jb3JlL2VuX2FjY2VsL2t0bHNfdHguYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwva3Rsc190eC5jCkBAIC0xODAsNyArMTgwLDcg QEAgbWx4NWVfa3Rsc190eF9wb3N0X3BhcmFtX3dxZXMoc3RydWN0IG1seDVlX3R4cXNxICpzcSwK IAogc3RydWN0IHR4X3N5bmNfaW5mbyB7CiAJdTY0IHJjZF9zbjsKLQlzMzIgc3luY19sZW47CisJ dTMyIHN5bmNfbGVuOwogCWludCBucl9mcmFnczsKIAlza2JfZnJhZ190IGZyYWdzW01BWF9TS0Jf RlJBR1NdOwogfTsKQEAgLTE5MywxMyArMTkzLDE0IEBAIGVudW0gbWx4NWVfa3Rsc19zeW5jX3Jl dHZhbCB7CiAKIHN0YXRpYyBlbnVtIG1seDVlX2t0bHNfc3luY19yZXR2YWwKIHR4X3N5bmNfaW5m b19nZXQoc3RydWN0IG1seDVlX2t0bHNfb2ZmbG9hZF9jb250ZXh0X3R4ICpwcml2X3R4LAotCQkg dTMyIHRjcF9zZXEsIHN0cnVjdCB0eF9zeW5jX2luZm8gKmluZm8pCisJCSB1MzIgdGNwX3NlcSwg aW50IGRhdGFsZW4sIHN0cnVjdCB0eF9zeW5jX2luZm8gKmluZm8pCiB7CiAJc3RydWN0IHRsc19v ZmZsb2FkX2NvbnRleHRfdHggKnR4X2N0eCA9IHByaXZfdHgtPnR4X2N0eDsKIAllbnVtIG1seDVl X2t0bHNfc3luY19yZXR2YWwgcmV0ID0gTUxYNUVfS1RMU19TWU5DX0RPTkU7CiAJc3RydWN0IHRs c19yZWNvcmRfaW5mbyAqcmVjb3JkOwogCWludCByZW1haW5pbmcsIGkgPSAwOwogCXVuc2lnbmVk IGxvbmcgZmxhZ3M7CisJYm9vbCBlbmRzX2JlZm9yZTsKIAogCXNwaW5fbG9ja19pcnFzYXZlKCZ0 eF9jdHgtPmxvY2ssIGZsYWdzKTsKIAlyZWNvcmQgPSB0bHNfZ2V0X3JlY29yZCh0eF9jdHgsIHRj cF9zZXEsICZpbmZvLT5yY2Rfc24pOwpAQCAtMjA5LDkgKzIxMCwyMSBAQCB0eF9zeW5jX2luZm9f Z2V0KHN0cnVjdCBtbHg1ZV9rdGxzX29mZmxvYWRfY29udGV4dF90eCAqcHJpdl90eCwKIAkJZ290 byBvdXQ7CiAJfQogCi0JaWYgKHVubGlrZWx5KHRjcF9zZXEgPCB0bHNfcmVjb3JkX3N0YXJ0X3Nl cShyZWNvcmQpKSkgewotCQlyZXQgPSB0bHNfcmVjb3JkX2lzX3N0YXJ0X21hcmtlcihyZWNvcmQp ID8KLQkJCU1MWDVFX0tUTFNfU1lOQ19TS0lQX05PX0RBVEEgOiBNTFg1RV9LVExTX1NZTkNfRkFJ TDsKKwkvKiBUaGVyZSBhcmUgdGhlIGZvbGxvd2luZyBjYXNlczoKKwkgKiAxLiBwYWNrZXQgZW5k cyBiZWZvcmUgc3RhcnQgbWFya2VyOiBieXBhc3Mgb2ZmbG9hZC4KKwkgKiAyLiBwYWNrZXQgc3Rh cnRzIGJlZm9yZSBzdGFydCBtYXJrZXIgYW5kIGVuZHMgYWZ0ZXIgaXQ6IGRyb3AsCisJICogICAg bm90IHN1cHBvcnRlZCwgYnJlYWtzIGNvbnRyYWN0IHdpdGgga2VybmVsLgorCSAqIDMuIHBhY2tl dCBlbmRzIGJlZm9yZSB0bHMgcmVjb3JkIGluZm8gc3RhcnRzOiBkcm9wLAorCSAqICAgIHRoaXMg cGFja2V0IHdhcyBhbHJlYWR5IGFja25vd2xlZGdlZCBhbmQgaXRzIHJlY29yZCBpbmZvCisJICog ICAgd2FzIHJlbGVhc2VkLgorCSAqLworCWVuZHNfYmVmb3JlID0gYmVmb3JlKHRjcF9zZXEgKyBk YXRhbGVuLCB0bHNfcmVjb3JkX3N0YXJ0X3NlcShyZWNvcmQpKTsKKworCWlmICh1bmxpa2VseSh0 bHNfcmVjb3JkX2lzX3N0YXJ0X21hcmtlcihyZWNvcmQpKSkgeworCQlyZXQgPSBlbmRzX2JlZm9y ZSA/IE1MWDVFX0tUTFNfU1lOQ19TS0lQX05PX0RBVEEgOiBNTFg1RV9LVExTX1NZTkNfRkFJTDsK KwkJZ290byBvdXQ7CisJfSBlbHNlIGlmIChlbmRzX2JlZm9yZSkgeworCQlyZXQgPSBNTFg1RV9L VExTX1NZTkNfRkFJTDsKIAkJZ290byBvdXQ7CiAJfQogCkBAIC0zMzcsNyArMzUwLDcgQEAgbWx4 NWVfa3Rsc190eF9oYW5kbGVfb29vKHN0cnVjdCBtbHg1ZV9rdGxzX29mZmxvYWRfY29udGV4dF90 eCAqcHJpdl90eCwKIAl1OCBudW1fd3FlYmJzOwogCWludCBpID0gMDsKIAotCXJldCA9IHR4X3N5 bmNfaW5mb19nZXQocHJpdl90eCwgc2VxLCAmaW5mbyk7CisJcmV0ID0gdHhfc3luY19pbmZvX2dl dChwcml2X3R4LCBzZXEsIGRhdGFsZW4sICZpbmZvKTsKIAlpZiAodW5saWtlbHkocmV0ICE9IE1M WDVFX0tUTFNfU1lOQ19ET05FKSkgewogCQlpZiAocmV0ID09IE1MWDVFX0tUTFNfU1lOQ19TS0lQ X05PX0RBVEEpIHsKIAkJCXN0YXRzLT50bHNfc2tpcF9ub19zeW5jX2RhdGErKzsKQEAgLTM1MSwx NCArMzY0LDYgQEAgbWx4NWVfa3Rsc190eF9oYW5kbGVfb29vKHN0cnVjdCBtbHg1ZV9rdGxzX29m ZmxvYWRfY29udGV4dF90eCAqcHJpdl90eCwKIAkJZ290byBlcnJfb3V0OwogCX0KIAotCWlmICh1 bmxpa2VseShpbmZvLnN5bmNfbGVuIDwgMCkpIHsKLQkJaWYgKGxpa2VseShkYXRhbGVuIDw9IC1p bmZvLnN5bmNfbGVuKSkKLQkJCXJldHVybiBNTFg1RV9LVExTX1NZTkNfRE9ORTsKLQotCQlzdGF0 cy0+dGxzX2Ryb3BfYnlwYXNzX3JlcSsrOwotCQlnb3RvIGVycl9vdXQ7Ci0JfQotCiAJc3RhdHMt PnRsc19vb28rKzsKIAogCXR4X3Bvc3RfcmVzeW5jX3BhcmFtcyhzcSwgcHJpdl90eCwgaW5mby5y Y2Rfc24pOwotLSAKMi4yMS4xCgoKRnJvbSAxNzdjMmQ4ZjlmM2ExOTYwMDNmODIxYmI4YWRmOTg4 YWY3N2VjZTZiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUYXJpcSBUb3VrYW4gPHRh cmlxdEBtZWxsYW5veC5jb20+CkRhdGU6IE1vbiwgMTMgSmFuIDIwMjAgMTQ6NDY6MDkgKzAyMDAK U3ViamVjdDogW1BBVENIIDMwLzMyXSBuZXQvbWx4NWU6IGtUTFMsIFJlbW92ZSByZWR1bmRhbnQg cG9zdHMgaW4gVFggcmVzeW5jCiBmbG93CgpUaGUgY2FsbCB0byB0eF9wb3N0X3Jlc3luY19wYXJh bXMoKSBpcyBkb25lIGVhcmxpZXIgaW4gdGhlIGZsb3csCnRoZSBwb3N0IG9mIHRoZSBjb250cm9s IFdRRXMgaXMgdW5uZWNlc3NhcmlseSByZXBlYXRlZC4gUmVtb3ZlIGl0LgoKRml4ZXM6IDcwMGVj NDk3NDI0MCAoIm5ldC9tbHg1ZToga1RMUywgRml4IG1pc3NpbmcgU1EgZWRnZSBmaWxsIikKU2ln bmVkLW9mZi1ieTogVGFyaXEgVG91a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpTaWduZWQtb2Zm LWJ5OiBCb3JpcyBQaXNtZW5ueSA8Ym9yaXNwQG1lbGxhbm94LmNvbT4KUmV2aWV3ZWQtYnk6IEJv cmlzIFBpc21lbm55IDxib3Jpc3BAbWVsbGFub3guY29tPgpTaWduZWQtb2ZmLWJ5OiBTYWVlZCBN YWhhbWVlZCA8c2FlZWRtQG1lbGxhbm94LmNvbT4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9t ZWxsYW5veC9tbHg1L2NvcmUvZW5fYWNjZWwva3Rsc190eC5jIHwgMiAtLQogMSBmaWxlIGNoYW5n ZWQsIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVs bGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2t0bHNfdHguYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9rdGxzX3R4LmMKaW5kZXggOGRiYjkyMTc2YmQ3 Li41OTJlOTIxYWExNjcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21lbGxhbm94 L21seDUvY29yZS9lbl9hY2NlbC9rdGxzX3R4LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQv bWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2t0bHNfdHguYwpAQCAtMzgzLDggKzM4Myw2IEBA IG1seDVlX2t0bHNfdHhfaGFuZGxlX29vbyhzdHJ1Y3QgbWx4NWVfa3Rsc19vZmZsb2FkX2NvbnRl eHRfdHggKnByaXZfdHgsCiAJaWYgKHVubGlrZWx5KGNvbnRpZ193cWViYnNfcm9vbSA8IG51bV93 cWViYnMpKQogCQltbHg1ZV9maWxsX3NxX2ZyYWdfZWRnZShzcSwgd3EsIHBpLCBjb250aWdfd3Fl YmJzX3Jvb20pOwogCi0JdHhfcG9zdF9yZXN5bmNfcGFyYW1zKHNxLCBwcml2X3R4LCBpbmZvLnJj ZF9zbik7Ci0KIAlmb3IgKDsgaSA8IGluZm8ubnJfZnJhZ3M7IGkrKykgewogCQl1bnNpZ25lZCBp bnQgb3JpZ19mc3osIGZyYWdfb2Zmc2V0ID0gMCwgbiA9IDA7CiAJCXNrYl9mcmFnX3QgKmYgPSAm aW5mby5mcmFnc1tpXTsKLS0gCjIuMjEuMQoKCkZyb20gOWEwYTllNTg1MjEwYmVmMjAyMTJhZDk5 Yjg1MmI5NjNmZmQxYjRjYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGFyaXEgVG91 a2FuIDx0YXJpcXRAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDIwIEphbiAyMDIwIDEzOjQyOjAw ICswMjAwClN1YmplY3Q6IFtQQVRDSCAzMS8zMl0gbmV0L21seDVlOiBrVExTLCBEbyBub3Qgc2Vu ZCBkZWNyeXB0ZWQtbWFya2VkIFNLQnMgdmlhCiBub24tYWNjZWwgcGF0aAoKV2hlbiBUQ1Agb3V0 LW9mLW9yZGVyIGlzIGlkZW50aWZpZWQgKHVuZXhwZWN0ZWQgdGNwIHNlcSBtaXNtYXRjaCksIGRy aXZlcgphbmFseXplcyB0aGUgcGFja2V0IGFuZCBkZWNpZGVzIHdoYXQgaGFuZGxpbmcgc2hvdWxk IGl0IGdldDoKMS4gZ28gdG8gYWNjZWxlcmF0ZWQgcGF0aCAodG8gYmUgZW5jcnlwdGVkIGluIEhX KSwKMi4gZ28gdG8gcmVndWxhciB4bWl0IHBhdGggKHNlbmQgdy9vIGVuY3J5cHRpb24pLAozLiBk cm9wLgoKUGFja2V0cyBtYXJrZWQgd2l0aCBza2ItPmRlY3J5cHRlZCBieSB0aGUgVExTIHN0YWNr IGluIHRoZSBUWCBmbG93IHNraXBzClNXIGVuY3J5cHRpb24sIGFuZCByZWx5IG9uIHRoZSBIVyBv ZmZsb2FkLgpWZXJpZnkgdGhhdCBzdWNoIHBhY2tldHMgYXJlIG5ldmVyIHNlbnQgdW4tZW5jcnlw dGVkIG9uIHRoZSB3aXJlLgpBZGQgYSBXQVJOIHRvIGNhdGNoIHN1Y2ggYnVncywgYW5kIHByZWZl ciBkcm9wcGluZyB0aGUgcGFja2V0IGluIHRoZXNlIGNhc2VzLgoKRml4ZXM6IDQ2YTNlYTk4MDc0 ZSAoIm5ldC9tbHg1ZToga1RMUywgRW5oYW5jZSBUWCByZXN5bmMgZmxvdyIpClNpZ25lZC1vZmYt Ynk6IFRhcmlxIFRvdWthbiA8dGFyaXF0QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogQm9y aXMgUGlzbWVubnkgPGJvcmlzcEBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBCb3JpcyBQaXNt ZW5ueSA8Ym9yaXNwQG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogU2FlZWQgTWFoYW1lZWQg PHNhZWVkbUBtZWxsYW5veC5jb20+Ci0tLQogLi4uL2V0aGVybmV0L21lbGxhbm94L21seDUvY29y ZS9lbl9hY2NlbC9rdGxzX3R4LmMgfCAxNCArKysrKysrKysrLS0tLQogMSBmaWxlIGNoYW5nZWQs IDEwIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9u ZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2t0bHNfdHguYyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9rdGxzX3R4LmMKaW5k ZXggNTkyZTkyMWFhMTY3Li5mMjYwZGQ5Njg3M2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21lbGxhbm94L21seDUvY29yZS9lbl9hY2NlbC9rdGxzX3R4LmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4NS9jb3JlL2VuX2FjY2VsL2t0bHNfdHguYwpAQCAt NDU4LDEyICs0NTgsMTggQEAgc3RydWN0IHNrX2J1ZmYgKm1seDVlX2t0bHNfaGFuZGxlX3R4X3Nr YihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0ZGV2LAogCQllbnVtIG1seDVlX2t0bHNfc3luY19yZXR2 YWwgcmV0ID0KIAkJCW1seDVlX2t0bHNfdHhfaGFuZGxlX29vbyhwcml2X3R4LCBzcSwgZGF0YWxl biwgc2VxKTsKIAotCQlpZiAobGlrZWx5KHJldCA9PSBNTFg1RV9LVExTX1NZTkNfRE9ORSkpCisJ CXN3aXRjaCAocmV0KSB7CisJCWNhc2UgTUxYNUVfS1RMU19TWU5DX0RPTkU6CiAJCQkqd3FlID0g bWx4NWVfc3FfZmV0Y2hfd3FlKHNxLCBzaXplb2YoKip3cWUpLCBwaSk7Ci0JCWVsc2UgaWYgKHJl dCA9PSBNTFg1RV9LVExTX1NZTkNfRkFJTCkKKwkJCWJyZWFrOworCQljYXNlIE1MWDVFX0tUTFNf U1lOQ19TS0lQX05PX0RBVEE6CisJCQlpZiAobGlrZWx5KCFza2ItPmRlY3J5cHRlZCkpCisJCQkJ Z290byBvdXQ7CisJCQlXQVJOX09OX09OQ0UoMSk7CisJCQkvKiBmYWxsLXRocm91Z2ggKi8KKwkJ ZGVmYXVsdDogLyogTUxYNUVfS1RMU19TWU5DX0ZBSUwgKi8KIAkJCWdvdG8gZXJyX291dDsKLQkJ ZWxzZSAvKiByZXQgPT0gTUxYNUVfS1RMU19TWU5DX1NLSVBfTk9fREFUQSAqLwotCQkJZ290byBv dXQ7CisJCX0KIAl9CiAKIAlwcml2X3R4LT5leHBlY3RlZF9zZXEgPSBzZXEgKyBkYXRhbGVuOwot LSAKMi4yMS4xCgoKRnJvbSAxNTY0YjNiZTBhNDQ0NTA4Njc1MTg0MmE3YmJjMThhYjQwM2ViOTBh IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFp bC5jb20+CkRhdGU6IEZyaSwgMTAgSmFuIDIwMjAgMDk6MDM6NTggLTA4MDAKU3ViamVjdDogW1BB VENIIDMyLzMyXSBpcHY0OiBEZXRlY3Qgcm9sbG92ZXIgaW4gc3BlY2lmaWMgZmliIHRhYmxlIGR1 bXAKClsgVXBzdHJlYW0gY29tbWl0IDk4MjdjMDYzNGU0NjE3MDNhYmY4MWU4Y2M4YjdhZGY1ZGE1 ODg2ZDAgXQoKU3Zlbi1IYWVnYXIgcmVwb3J0ZWQgbG9vcGluZyBvbiBmaWIgZHVtcHMgd2hlbiAy NTUuMjU1LjI1NS4yNTUgcm91dGUgaGFzCmJlZW4gYWRkZWQgdG8gYSB0YWJsZS4gVGhlIGxvb3Bp bmcgaXMgY2F1c2VkIGJ5IHRoZSBrZXkgcm9sbGluZyBvdmVyIGZyb20KRkZGRkZGRkYgdG8gMC4g V2hlbiBkdW1waW5nIGEgc3BlY2lmaWMgdGFibGUgb25seSwgd2UgbmVlZCBhIG1lYW5zIHRvIGRl dGVjdAp3aGVuIHRoZSB0YWJsZSBkdW1wIGlzIGRvbmUuIFRoZSBrZXkgYW5kIGNvdW50IHNhdmVk IHRvIGNiIGFyZ3MgYXJlIGJvdGggMApvbmx5IGF0IHRoZSBzdGFydCBvZiB0aGUgdGFibGUgZHVt cC4gSWYga2V5IGlzIDAgYW5kIGNvdW50ID4gMCwgdGhlbiB3ZSBhcmUKaW4gdGhlIHJvbGxvdmVy IGNhc2UuIERldGVjdCBhbmQgcmV0dXJuIHRvIGF2b2lkIGxvb3BpbmcuCgpUaGlzIG9ubHkgYWZm ZWN0cyBkdW1wcyBvZiBhIHNwZWNpZmljIHRhYmxlOyBmb3IgZHVtcHMgb2YgYWxsIHRhYmxlcwoo dGhlIGNhc2UgcHJpb3IgdG8gdGhlIGNoYW5nZSBpbiB0aGUgRml4ZXMgdGFnKSBpbmV0X2R1bXBf ZmliIG1vdmVkCnRoZSBlbnRyeSBjb3VudGVyIHRvIHRoZSBuZXh0IHRhYmxlIGFuZCByZXNldCB0 aGUgY2IgYXJncyB1c2VkIGJ5CmZpYl90YWJsZV9kdW1wIGFuZCBmbl90cmllX2R1bXBfbGVhZiwg c28gdGhlIHJvbGxvdmVyIGZmZmZmZmZmIGJhY2sKdG8gMCBkaWQgbm90IGNhdXNlIGxvb3Bpbmcg d2l0aCB0aGUgZHVtcHMuCgpGaXhlczogZWZmZTY3OTI2NjI0ICgibmV0OiBFbmFibGUga2VybmVs IHNpZGUgZmlsdGVyaW5nIG9mIHJvdXRlIGR1bXBzIikKUmVwb3J0ZWQtYnk6IFN2ZW4tSGFlZ2Fy IEtvY2ggPGhhZWdhckBzZGluZXQuZGU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2Fo ZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2ZpYl90cmllLmMgfCA2ICsrKysrKwogMSBmaWxlIGNo YW5nZWQsIDYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2ZpYl90cmllLmMg Yi9uZXQvaXB2NC9maWJfdHJpZS5jCmluZGV4IDFhYjJmYjZiYjM3ZC4uZjEyZmE4ZGE2MTI3IDEw MDY0NAotLS0gYS9uZXQvaXB2NC9maWJfdHJpZS5jCisrKyBiL25ldC9pcHY0L2ZpYl90cmllLmMK QEAgLTIxNzUsNiArMjE3NSwxMiBAQCBpbnQgZmliX3RhYmxlX2R1bXAoc3RydWN0IGZpYl90YWJs ZSAqdGIsIHN0cnVjdCBza19idWZmICpza2IsCiAJaW50IGNvdW50ID0gY2ItPmFyZ3NbMl07CiAJ dF9rZXkga2V5ID0gY2ItPmFyZ3NbM107CiAKKwkvKiBGaXJzdCB0aW1lIGhlcmUsIGNvdW50IGFu ZCBrZXkgYXJlIGJvdGggYWx3YXlzIDAuIENvdW50ID4gMAorCSAqIGFuZCBrZXkgPT0gMCBtZWFu cyB0aGUgZHVtcCBoYXMgd3JhcHBlZCBhcm91bmQgYW5kIHdlIGFyZSBkb25lLgorCSAqLworCWlm IChjb3VudCAmJiAha2V5KQorCQlyZXR1cm4gc2tiLT5sZW47CisKIAl3aGlsZSAoKGwgPSBsZWFm X3dhbGtfcmN1KCZ0cCwga2V5KSkgIT0gTlVMTCkgewogCQlpbnQgZXJyOwogCi0tIAoyLjIxLjEK Cg== ----Next_Part(Mon_Jan_27_12_16_17_2020_514)----