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 A6745C33C9E for ; Tue, 14 Jan 2020 21:11:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4E03024658 for ; Tue, 14 Jan 2020 21:11:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728760AbgANVLY (ORCPT ); Tue, 14 Jan 2020 16:11:24 -0500 Received: from imap2.colo.codethink.co.uk ([78.40.148.184]:35046 "EHLO imap2.colo.codethink.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727285AbgANVLY (ORCPT ); Tue, 14 Jan 2020 16:11:24 -0500 Received: from [167.98.27.226] (helo=xylophone) by imap2.colo.codethink.co.uk with esmtpsa (Exim 4.92 #3 (Debian)) id 1irTT6-0006y2-TF; Tue, 14 Jan 2020 21:11:21 +0000 Message-ID: Subject: [4.4-stable] Mostly security fixes From: Ben Hutchings To: Greg Kroah-Hartman , Sasha Levin Cc: stable Date: Tue, 14 Jan 2020 21:11:20 +0000 Organization: Codethink Ltd. Content-Type: multipart/mixed; boundary="=-ZzTKAmGNPEtBfmij9hND" User-Agent: Evolution 3.30.5-1.1 MIME-Version: 1.0 Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org --=-ZzTKAmGNPEtBfmij9hND Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Some more fixes that required backporting for 4.4. All these fixes are related to CVEs though some of them don't seem to have any security impact. Ben. -- Ben Hutchings, Software Developer Codethink Ltd https://www.codethink.co.uk/ Dale House, 35 Dale Street Manchester, M1 2HF, United Kingdom --=-ZzTKAmGNPEtBfmij9hND Content-Type: application/mbox; name="security-4.4.mbox" Content-Disposition: attachment; filename="security-4.4.mbox" Content-Transfer-Encoding: base64 RnJvbSA1MzcwOGZmMjU1OWViZjA1NWU3NjE5Nzc5YTc0MTIwZDVhNDdlZmZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW5qYXkgS29uZHVyaSA8c2FuamF5LmtvbmR1cmlAcmVkcGlu ZXNpZ25hbHMuY29tPgpEYXRlOiBUdWUsIDE1IE1heSAyMDE4IDE0OjM0OjMwICswNTMwClN1Ympl Y3Q6IHJzaTogYWRkIGZpeCBmb3IgY3Jhc2ggZHVyaW5nIGFzc2VydGlvbnMKCmNvbW1pdCBhYmQz OWM2ZGVkOWRiNTNhYTQ0YzI1NDAwOTJiZGQ1ZmI2NTkwZmE4IHVwc3RyZWFtLgoKT2JzZXJ2ZWQg Y3Jhc2ggaW4gc29tZSBzY2VuYXJpb3Mgd2hlbiBhc3NlcnRpb24gaGFzIG9jY3VycmVkLAp0aGlz IGlzIGJlY2F1c2UgaHcgc3RydWN0dXJlIGlzIGZyZWVkIGFuZCBpcyB0cmllZCB0byBnZXQKYWNj ZXNzZWQgaW4gc29tZSBmdW5jdGlvbnMgd2hlcmUgbnVsbCBjaGVjayBpcyBhbHJlYWR5CnByZXNl bnQuIFNvLCBhdm9pZGVkIHRoZSBjcmFzaCBieSBtYWtpbmcgdGhlIGh3IHRvIE5VTEwgYWZ0ZXIK ZnJlZWluZy4KClNpZ25lZC1vZmYtYnk6IFNhbmpheSBLb25kdXJpIDxzYW5qYXkua29uZHVyaUBy ZWRwaW5lc2lnbmFscy5jb20+ClNpZ25lZC1vZmYtYnk6IFN1c2hhbnQgS3VtYXIgTWlzaHJhIDxz dXNoYW50Lm1pc2hyYUByZWRwaW5lc2lnbmFscy5jb20+ClNpZ25lZC1vZmYtYnk6IEthbGxlIFZh bG8gPGt2YWxvQGNvZGVhdXJvcmEub3JnPgpTaWduZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxi ZW4uaHV0Y2hpbmdzQGNvZGV0aGluay5jby51az4KLS0tCiBkcml2ZXJzL25ldC93aXJlbGVzcy9y c2kvcnNpXzkxeF9tYWM4MDIxMS5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yc2kvcnNpXzkxeF9tYWM4MDIx MS5jIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcnNpL3JzaV85MXhfbWFjODAyMTEuYwppbmRleCA0 ZGY5OTJkZTdkMDcuLjJmNDA1MDZhNTgyMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxl c3MvcnNpL3JzaV85MXhfbWFjODAyMTEuYworKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yc2kv cnNpXzkxeF9tYWM4MDIxMS5jCkBAIC0xOTksNiArMTk5LDcgQEAgdm9pZCByc2lfbWFjODAyMTFf ZGV0YWNoKHN0cnVjdCByc2lfaHcgKmFkYXB0ZXIpCiAJCWllZWU4MDIxMV9zdG9wX3F1ZXVlcyho dyk7CiAJCWllZWU4MDIxMV91bnJlZ2lzdGVyX2h3KGh3KTsKIAkJaWVlZTgwMjExX2ZyZWVfaHco aHcpOworCQlhZGFwdGVyLT5odyA9IE5VTEw7CiAJfQogCiAJcnNpX3JlbW92ZV9kYmdmcyhhZGFw dGVyKTsKCkZyb20gOTM3ZTJkOWNhZWFmMmZmN2U0NjQzNjc5NjhjMzQxYTI5NzllNWRkMiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGVkeSBMYW5za3kgPGRsYW5za3lAY29kZWF1cm9y YS5vcmc+CkRhdGU6IFN1biwgMjkgSnVsIDIwMTggMTQ6NTk6MTYgKzAzMDAKU3ViamVjdDogY2Zn ODAyMTEvbWFjODAyMTE6IG1ha2UgaWVlZTgwMjExX3NlbmRfbGF5ZXIyX3VwZGF0ZSBhIHB1Ymxp YwogZnVuY3Rpb24KCmNvbW1pdCAzMGNhMWFhNTM2MjExZjVhYzNkZTAxNzM1MTNhN2E5OWE5OGE5 N2YzIHVwc3RyZWFtLgoKTWFrZSBpZWVlODAyMTFfc2VuZF9sYXllcjJfdXBkYXRlKCkgYSBjb21t b24gZnVuY3Rpb24gc28gb3RoZXIgZHJpdmVycwpjYW4gcmUtdXNlIGl0LgoKU2lnbmVkLW9mZi1i eTogRGVkeSBMYW5za3kgPGRsYW5za3lAY29kZWF1cm9yYS5vcmc+ClNpZ25lZC1vZmYtYnk6IEpv aGFubmVzIEJlcmcgPGpvaGFubmVzLmJlcmdAaW50ZWwuY29tPgpbYndoOiBCYWNrcG9ydGVkIHRv IDQuNCBhcyBkZXBlbmRlbmN5IG9mIGNvbW1pdCAzZTQ5MzE3M2I3ODQKICJtYWM4MDIxMTogRG8g bm90IHNlbmQgTGF5ZXIgMiBVcGRhdGUgZnJhbWUgYmVmb3JlIGF1dGhvcml6YXRpb24iOgogLSBS ZXRhaW4gdHlwZS1jYXN0aW5nIG9mIHNrYl9wdXQoKSByZXR1cm4gdmFsdWUKIC0gQWRqdXN0IGNv bnRleHRdClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRo aW5rLmNvLnVrPgotLS0KIGluY2x1ZGUvbmV0L2NmZzgwMjExLmggfCAxMSArKysrKysrKysrCiBu ZXQvbWFjODAyMTEvY2ZnLmMgICAgIHwgNDggKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiBuZXQvd2lyZWxlc3MvdXRpbC5jICAgIHwgNDUgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMo KyksIDQ2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2NmZzgwMjExLmgg Yi9pbmNsdWRlL25ldC9jZmc4MDIxMS5oCmluZGV4IGMwNTc0OGNjMWIyMC4uM2ZlNTMxMDFiNzJh IDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9jZmc4MDIxMS5oCisrKyBiL2luY2x1ZGUvbmV0L2Nm ZzgwMjExLmgKQEAgLTM4NTUsNiArMzg1NSwxNyBAQCBjb25zdCB1OCAqY2ZnODAyMTFfZmluZF9p ZSh1OCBlaWQsIGNvbnN0IHU4ICppZXMsIGludCBsZW4pOwogY29uc3QgdTggKmNmZzgwMjExX2Zp bmRfdmVuZG9yX2llKHVuc2lnbmVkIGludCBvdWksIHU4IG91aV90eXBlLAogCQkJCSAgY29uc3Qg dTggKmllcywgaW50IGxlbik7CiAKKy8qKgorICogY2ZnODAyMTFfc2VuZF9sYXllcjJfdXBkYXRl IC0gc2VuZCBsYXllciAyIHVwZGF0ZSBmcmFtZQorICoKKyAqIEBkZXY6IG5ldHdvcmsgZGV2aWNl CisgKiBAYWRkcjogU1RBIE1BQyBhZGRyZXNzCisgKgorICogV2lyZWxlc3MgZHJpdmVycyBjYW4g dXNlIHRoaXMgZnVuY3Rpb24gdG8gdXBkYXRlIGZvcndhcmRpbmcgdGFibGVzIGluIGJyaWRnZQor ICogZGV2aWNlcyB1cG9uIFNUQSBhc3NvY2lhdGlvbi4KKyAqLwordm9pZCBjZmc4MDIxMV9zZW5k X2xheWVyMl91cGRhdGUoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgY29uc3QgdTggKmFkZHIpOwor CiAvKioKICAqIERPQzogUmVndWxhdG9yeSBlbmZvcmNlbWVudCBpbmZyYXN0cnVjdHVyZQogICoK ZGlmZiAtLWdpdCBhL25ldC9tYWM4MDIxMS9jZmcuYyBiL25ldC9tYWM4MDIxMS9jZmcuYwppbmRl eCAxOTk5YTdlYWE2OTIuLjBiOGNlODQ2YmQ3MyAxMDA2NDQKLS0tIGEvbmV0L21hYzgwMjExL2Nm Zy5jCisrKyBiL25ldC9tYWM4MDIxMS9jZmcuYwpAQCAtODc1LDUwICs4NzUsNiBAQCBzdGF0aWMg aW50IGllZWU4MDIxMV9zdG9wX2FwKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRfZGV2 aWNlICpkZXYpCiAJcmV0dXJuIDA7CiB9CiAKLS8qIExheWVyIDIgVXBkYXRlIGZyYW1lICg4MDIu MiBUeXBlIDEgTExDIFhJRCBVcGRhdGUgcmVzcG9uc2UpICovCi1zdHJ1Y3QgaWFwcF9sYXllcjJf dXBkYXRlIHsKLQl1OCBkYVtFVEhfQUxFTl07CS8qIGJyb2FkY2FzdCAqLwotCXU4IHNhW0VUSF9B TEVOXTsJLyogU1RBIGFkZHIgKi8KLQlfX2JlMTYgbGVuOwkJLyogNiAqLwotCXU4IGRzYXA7CQkv KiAwICovCi0JdTggc3NhcDsJCS8qIDAgKi8KLQl1OCBjb250cm9sOwotCXU4IHhpZF9pbmZvWzNd OwotfSBfX3BhY2tlZDsKLQotc3RhdGljIHZvaWQgaWVlZTgwMjExX3NlbmRfbGF5ZXIyX3VwZGF0 ZShzdHJ1Y3Qgc3RhX2luZm8gKnN0YSkKLXsKLQlzdHJ1Y3QgaWFwcF9sYXllcjJfdXBkYXRlICpt c2c7Ci0Jc3RydWN0IHNrX2J1ZmYgKnNrYjsKLQotCS8qIFNlbmQgTGV2ZWwgMiBVcGRhdGUgRnJh bWUgdG8gdXBkYXRlIGZvcndhcmRpbmcgdGFibGVzIGluIGxheWVyIDIKLQkgKiBicmlkZ2UgZGV2 aWNlcyAqLwotCi0Jc2tiID0gZGV2X2FsbG9jX3NrYihzaXplb2YoKm1zZykpOwotCWlmICghc2ti KQotCQlyZXR1cm47Ci0JbXNnID0gKHN0cnVjdCBpYXBwX2xheWVyMl91cGRhdGUgKilza2JfcHV0 KHNrYiwgc2l6ZW9mKCptc2cpKTsKLQotCS8qIDgwMi4yIFR5cGUgMSBMb2dpY2FsIExpbmsgQ29u dHJvbCAoTExDKSBFeGNoYW5nZSBJZGVudGlmaWVyIChYSUQpCi0JICogVXBkYXRlIHJlc3BvbnNl IGZyYW1lOyBJRUVFIFN0ZCA4MDIuMi0xOTk4LCA1LjQuMS4yLjEgKi8KLQotCWV0aF9icm9hZGNh c3RfYWRkcihtc2ctPmRhKTsKLQltZW1jcHkobXNnLT5zYSwgc3RhLT5zdGEuYWRkciwgRVRIX0FM RU4pOwotCW1zZy0+bGVuID0gaHRvbnMoNik7Ci0JbXNnLT5kc2FwID0gMDsKLQltc2ctPnNzYXAg PSAweDAxOwkvKiBOVUxMIExTQVAsIENSIEJpdDogUmVzcG9uc2UgKi8KLQltc2ctPmNvbnRyb2wg PSAweGFmOwkvKiBYSUQgcmVzcG9uc2UgbHNiLjExMTFGMTAxLgotCQkJCSAqIEY9MCAobm8gcG9s bCBjb21tYW5kOyB1bnNvbGljaXRlZCBmcmFtZSkgKi8KLQltc2ctPnhpZF9pbmZvWzBdID0gMHg4 MTsJLyogWElEIGZvcm1hdCBpZGVudGlmaWVyICovCi0JbXNnLT54aWRfaW5mb1sxXSA9IDE7CS8q IExMQyB0eXBlcy9jbGFzc2VzOiBUeXBlIDEgTExDICovCi0JbXNnLT54aWRfaW5mb1syXSA9IDA7 CS8qIFhJRCBzZW5kZXIncyByZWNlaXZlIHdpbmRvdyBzaXplIChSVykgKi8KLQotCXNrYi0+ZGV2 ID0gc3RhLT5zZGF0YS0+ZGV2OwotCXNrYi0+cHJvdG9jb2wgPSBldGhfdHlwZV90cmFucyhza2Is IHN0YS0+c2RhdGEtPmRldik7Ci0JbWVtc2V0KHNrYi0+Y2IsIDAsIHNpemVvZihza2ItPmNiKSk7 Ci0JbmV0aWZfcnhfbmkoc2tiKTsKLX0KLQogc3RhdGljIGludCBzdGFfYXBwbHlfYXV0aF9mbGFn cyhzdHJ1Y3QgaWVlZTgwMjExX2xvY2FsICpsb2NhbCwKIAkJCQlzdHJ1Y3Qgc3RhX2luZm8gKnN0 YSwKIAkJCQl1MzIgbWFzaywgdTMyIHNldCkKQEAgLTEyNTgsNyArMTIxNCw3IEBAIHN0YXRpYyBp bnQgaWVlZTgwMjExX2FkZF9zdGF0aW9uKHN0cnVjdCB3aXBoeSAqd2lwaHksIHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYsCiAJfQogCiAJaWYgKGxheWVyMl91cGRhdGUpCi0JCWllZWU4MDIxMV9zZW5k X2xheWVyMl91cGRhdGUoc3RhKTsKKwkJY2ZnODAyMTFfc2VuZF9sYXllcjJfdXBkYXRlKHN0YS0+ c2RhdGEtPmRldiwgc3RhLT5zdGEuYWRkcik7CiAKIAlyY3VfcmVhZF91bmxvY2soKTsKIApAQCAt MTM2Nyw3ICsxMzIzLDcgQEAgc3RhdGljIGludCBpZWVlODAyMTFfY2hhbmdlX3N0YXRpb24oc3Ry dWN0IHdpcGh5ICp3aXBoeSwKIAkJCQlhdG9taWNfaW5jKCZzdGEtPnNkYXRhLT5ic3MtPm51bV9t Y2FzdF9zdGEpOwogCQl9CiAKLQkJaWVlZTgwMjExX3NlbmRfbGF5ZXIyX3VwZGF0ZShzdGEpOwor CQljZmc4MDIxMV9zZW5kX2xheWVyMl91cGRhdGUoc3RhLT5zZGF0YS0+ZGV2LCBzdGEtPnN0YS5h ZGRyKTsKIAl9CiAKIAllcnIgPSBzdGFfYXBwbHlfcGFyYW1ldGVycyhsb2NhbCwgc3RhLCBwYXJh bXMpOwpkaWZmIC0tZ2l0IGEvbmV0L3dpcmVsZXNzL3V0aWwuYyBiL25ldC93aXJlbGVzcy91dGls LmMKaW5kZXggNDA1Mzg4NzcyZmM0Li4xNTZhMmE2MzM3YjkgMTAwNjQ0Ci0tLSBhL25ldC93aXJl bGVzcy91dGlsLmMKKysrIGIvbmV0L3dpcmVsZXNzL3V0aWwuYwpAQCAtMTgxNCwzICsxODE0LDQ4 IEBAIEVYUE9SVF9TWU1CT0wocmZjMTA0Ml9oZWFkZXIpOwogY29uc3QgdW5zaWduZWQgY2hhciBi cmlkZ2VfdHVubmVsX2hlYWRlcltdIF9fYWxpZ25lZCgyKSA9CiAJeyAweGFhLCAweGFhLCAweDAz LCAweDAwLCAweDAwLCAweGY4IH07CiBFWFBPUlRfU1lNQk9MKGJyaWRnZV90dW5uZWxfaGVhZGVy KTsKKworLyogTGF5ZXIgMiBVcGRhdGUgZnJhbWUgKDgwMi4yIFR5cGUgMSBMTEMgWElEIFVwZGF0 ZSByZXNwb25zZSkgKi8KK3N0cnVjdCBpYXBwX2xheWVyMl91cGRhdGUgeworCXU4IGRhW0VUSF9B TEVOXTsJLyogYnJvYWRjYXN0ICovCisJdTggc2FbRVRIX0FMRU5dOwkvKiBTVEEgYWRkciAqLwor CV9fYmUxNiBsZW47CQkvKiA2ICovCisJdTggZHNhcDsJCS8qIDAgKi8KKwl1OCBzc2FwOwkJLyog MCAqLworCXU4IGNvbnRyb2w7CisJdTggeGlkX2luZm9bM107Cit9IF9fcGFja2VkOworCit2b2lk IGNmZzgwMjExX3NlbmRfbGF5ZXIyX3VwZGF0ZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBjb25z dCB1OCAqYWRkcikKK3sKKwlzdHJ1Y3QgaWFwcF9sYXllcjJfdXBkYXRlICptc2c7CisJc3RydWN0 IHNrX2J1ZmYgKnNrYjsKKworCS8qIFNlbmQgTGV2ZWwgMiBVcGRhdGUgRnJhbWUgdG8gdXBkYXRl IGZvcndhcmRpbmcgdGFibGVzIGluIGxheWVyIDIKKwkgKiBicmlkZ2UgZGV2aWNlcyAqLworCisJ c2tiID0gZGV2X2FsbG9jX3NrYihzaXplb2YoKm1zZykpOworCWlmICghc2tiKQorCQlyZXR1cm47 CisJbXNnID0gKHN0cnVjdCBpYXBwX2xheWVyMl91cGRhdGUgKilza2JfcHV0KHNrYiwgc2l6ZW9m KCptc2cpKTsKKworCS8qIDgwMi4yIFR5cGUgMSBMb2dpY2FsIExpbmsgQ29udHJvbCAoTExDKSBF eGNoYW5nZSBJZGVudGlmaWVyIChYSUQpCisJICogVXBkYXRlIHJlc3BvbnNlIGZyYW1lOyBJRUVF IFN0ZCA4MDIuMi0xOTk4LCA1LjQuMS4yLjEgKi8KKworCWV0aF9icm9hZGNhc3RfYWRkcihtc2ct PmRhKTsKKwlldGhlcl9hZGRyX2NvcHkobXNnLT5zYSwgYWRkcik7CisJbXNnLT5sZW4gPSBodG9u cyg2KTsKKwltc2ctPmRzYXAgPSAwOworCW1zZy0+c3NhcCA9IDB4MDE7CS8qIE5VTEwgTFNBUCwg Q1IgQml0OiBSZXNwb25zZSAqLworCW1zZy0+Y29udHJvbCA9IDB4YWY7CS8qIFhJRCByZXNwb25z ZSBsc2IuMTExMUYxMDEuCisJCQkJICogRj0wIChubyBwb2xsIGNvbW1hbmQ7IHVuc29saWNpdGVk IGZyYW1lKSAqLworCW1zZy0+eGlkX2luZm9bMF0gPSAweDgxOwkvKiBYSUQgZm9ybWF0IGlkZW50 aWZpZXIgKi8KKwltc2ctPnhpZF9pbmZvWzFdID0gMTsJLyogTExDIHR5cGVzL2NsYXNzZXM6IFR5 cGUgMSBMTEMgKi8KKwltc2ctPnhpZF9pbmZvWzJdID0gMDsJLyogWElEIHNlbmRlcidzIHJlY2Vp dmUgd2luZG93IHNpemUgKFJXKSAqLworCisJc2tiLT5kZXYgPSBkZXY7CisJc2tiLT5wcm90b2Nv bCA9IGV0aF90eXBlX3RyYW5zKHNrYiwgZGV2KTsKKwltZW1zZXQoc2tiLT5jYiwgMCwgc2l6ZW9m KHNrYi0+Y2IpKTsKKwluZXRpZl9yeF9uaShza2IpOworfQorRVhQT1JUX1NZTUJPTChjZmc4MDIx MV9zZW5kX2xheWVyMl91cGRhdGUpOwoKRnJvbSA0YTgwNjc4ZjIxNDEwM2IyMjM4OWNjYWRmMzQz MDE0ODYzMjQ5NWI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKb3VuaSBNYWxpbmVu IDxqb3VuaUBjb2RlYXVyb3JhLm9yZz4KRGF0ZTogV2VkLCAxMSBTZXAgMjAxOSAxNjowMzowNSAr MDMwMApTdWJqZWN0OiBtYWM4MDIxMTogRG8gbm90IHNlbmQgTGF5ZXIgMiBVcGRhdGUgZnJhbWUg YmVmb3JlIGF1dGhvcml6YXRpb24KCmNvbW1pdCAzZTQ5MzE3M2I3ODQxMjU5YTA4YzVjOGU1Y2Jl OTBhZGIzNDlkYTdlIHVwc3RyZWFtLgoKVGhlIExheWVyIDIgVXBkYXRlIGZyYW1lIGlzIHVzZWQg dG8gdXBkYXRlIGJyaWRnZXMgd2hlbiBhIHN0YXRpb24gcm9hbXMKdG8gYW5vdGhlciBBUCBldmVu IGlmIHRoYXQgU1RBIGRvZXMgbm90IHRyYW5zbWl0IGFueSBmcmFtZXMgYWZ0ZXIgdGhlCnJlYXNz b2NpYXRpb24uIFRoaXMgYmVoYXZpb3Igd2FzIGRlc2NyaWJlZCBpbiBJRUVFIFN0ZCA4MDIuMTFG LTIwMDMgYXMKc29tZXRoaW5nIHRoYXQgd291bGQgaGFwcGVuIGJhc2VkIG9uIE1MTUUtQVNTT0NJ QVRFLmluZGljYXRpb24sIGkuZS4sCmJlZm9yZSBjb21wbGV0aW5nIDQtd2F5IGhhbmRzaGFrZS4g SG93ZXZlciwgdGhpcyBJRUVFIHRyaWFsLXVzZQpyZWNvbW1lbmRlZCBwcmFjdGljZSBkb2N1bWVu dCB3YXMgcHVibGlzaGVkIGJlZm9yZSBSU04gKElFRUUgU3RkCjgwMi4xMWktMjAwNCkgYW5kIGFz IHN1Y2gsIGRpZCBub3QgY29uc2lkZXIgUlNOIHVzZSBjYXNlcy4gRnVydGhlcm1vcmUsCklFRUUg U3RkIDgwMi4xMUYtMjAwMyB3YXMgd2l0aGRyYXduIGluIDIwMDYgYW5kIGFzIHN1Y2gsIGhhcyBu b3QgYmVlbgptYWludGFpbmVkIGFtZCBzaG91bGQgbm90IGJlIHVzZWQgYW55bW9yZS4KClNlbmRp bmcgb3V0IHRoZSBMYXllciAyIFVwZGF0ZSBmcmFtZSBpbW1lZGlhdGVseSBhZnRlciBhc3NvY2lh dGlvbiBpcwpmaW5lIGZvciBvcGVuIG5ldHdvcmtzIChhbmQgYWxzbyB3aGVuIHVzaW5nIFNBRSwg RlQgcHJvdG9jb2wsIG9yIEZJTFMKYXV0aGVudGljYXRpb24gd2hlbiB0aGUgc3RhdGlvbiBpcyBh Y3R1YWxseSBhdXRoZW50aWNhdGVkIGJ5IHRoZSB0aW1lCmFzc29jaWF0aW9uIGNvbXBsZXRlcyku IEhvd2V2ZXIsIGl0IGlzIG5vdCBhcHByb3ByaWF0ZSBmb3IgY2FzZXMgd2hlcmUKUlNOIGlzIHVz ZWQgd2l0aCBQU0sgb3IgRUFQIGF1dGhlbnRpY2F0aW9uIHNpbmNlIHRoZSBzdGF0aW9uIGlzIGFj dHVhbGx5CmZ1bGx5IGF1dGhlbnRpY2F0ZWQgb25seSBvbmNlIHRoZSA0LXdheSBoYW5kc2hha2Ug Y29tcGxldGVzIGFmdGVyCmF1dGhlbnRpY2F0aW9uIGFuZCBhdHRhY2tlcnMgbWlnaHQgYmUgYWJs ZSB0byB1c2UgdGhlIHVuYXV0aGVudGljYXRlZAp0cmlnZ2VyaW5nIG9mIExheWVyIDIgVXBkYXRl IGZyYW1lIHRyYW5zbWlzc2lvbiB0byBkaXNydXB0IGJyaWRnZQpiZWhhdmlvci4KCkZpeCB0aGlz IGJ5IHBvc3Rwb25pbmcgdHJhbnNtaXNzaW9uIG9mIHRoZSBMYXllciAyIFVwZGF0ZSBmcmFtZSBm cm9tCnN0YXRpb24gZW50cnkgYWRkaXRpb24gdG8gdGhlIHBvaW50IHdoZW4gdGhlIHN0YXRpb24g ZW50cnkgaXMgbWFya2VkCmF1dGhvcml6ZWQuIFNpbWlsYXJseSwgc2VuZCBvdXQgdGhlIFZMQU4g YmluZGluZyB1cGRhdGUgb25seSBpZiB0aGUgU1RBCmVudHJ5IGhhcyBhbHJlYWR5IGJlZW4gYXV0 aG9yaXplZC4KClNpZ25lZC1vZmYtYnk6IEpvdW5pIE1hbGluZW4gPGpvdW5pQGNvZGVhdXJvcmEu b3JnPgpSZXZpZXdlZC1ieTogSm9oYW5uZXMgQmVyZyA8am9oYW5uZXNAc2lwc29sdXRpb25zLm5l dD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgpb YndoOiBCYWNrcG9ydGVkIHRvIDQuNDogYWRqdXN0IGNvbnRleHRdClNpZ25lZC1vZmYtYnk6IEJl biBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIG5ldC9tYWM4 MDIxMS9jZmcuYyAgICAgIHwgMTEgKysrLS0tLS0tLS0KIG5ldC9tYWM4MDIxMS9zdGFfaW5mby5j IHwgIDQgKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL2NmZy5jIGIvbmV0L21hYzgwMjExL2NmZy5j CmluZGV4IDBiOGNlODQ2YmQ3My4uY2YzOTE3YzZkYTBhIDEwMDY0NAotLS0gYS9uZXQvbWFjODAy MTEvY2ZnLmMKKysrIGIvbmV0L21hYzgwMjExL2NmZy5jCkBAIC0xMTUwLDcgKzExNTAsNiBAQCBz dGF0aWMgaW50IGllZWU4MDIxMV9hZGRfc3RhdGlvbihzdHJ1Y3Qgd2lwaHkgKndpcGh5LCBzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2LAogCXN0cnVjdCBzdGFfaW5mbyAqc3RhOwogCXN0cnVjdCBpZWVl ODAyMTFfc3ViX2lmX2RhdGEgKnNkYXRhOwogCWludCBlcnI7Ci0JaW50IGxheWVyMl91cGRhdGU7 CiAKIAlpZiAocGFyYW1zLT52bGFuKSB7CiAJCXNkYXRhID0gSUVFRTgwMjExX0RFVl9UT19TVUJf SUYocGFyYW1zLT52bGFuKTsKQEAgLTEyMDQsMTggKzEyMDMsMTIgQEAgc3RhdGljIGludCBpZWVl ODAyMTFfYWRkX3N0YXRpb24oc3RydWN0IHdpcGh5ICp3aXBoeSwgc3RydWN0IG5ldF9kZXZpY2Ug KmRldiwKIAkgICAgdGVzdF9zdGFfZmxhZyhzdGEsIFdMQU5fU1RBX0FTU09DKSkKIAkJcmF0ZV9j b250cm9sX3JhdGVfaW5pdChzdGEpOwogCi0JbGF5ZXIyX3VwZGF0ZSA9IHNkYXRhLT52aWYudHlw ZSA9PSBOTDgwMjExX0lGVFlQRV9BUF9WTEFOIHx8Ci0JCXNkYXRhLT52aWYudHlwZSA9PSBOTDgw MjExX0lGVFlQRV9BUDsKLQogCWVyciA9IHN0YV9pbmZvX2luc2VydF9yY3Uoc3RhKTsKIAlpZiAo ZXJyKSB7CiAJCXJjdV9yZWFkX3VubG9jaygpOwogCQlyZXR1cm4gZXJyOwogCX0KIAotCWlmIChs YXllcjJfdXBkYXRlKQotCQljZmc4MDIxMV9zZW5kX2xheWVyMl91cGRhdGUoc3RhLT5zZGF0YS0+ ZGV2LCBzdGEtPnN0YS5hZGRyKTsKLQogCXJjdV9yZWFkX3VubG9jaygpOwogCiAJcmV0dXJuIDA7 CkBAIC0xMzIzLDcgKzEzMTYsOSBAQCBzdGF0aWMgaW50IGllZWU4MDIxMV9jaGFuZ2Vfc3RhdGlv bihzdHJ1Y3Qgd2lwaHkgKndpcGh5LAogCQkJCWF0b21pY19pbmMoJnN0YS0+c2RhdGEtPmJzcy0+ bnVtX21jYXN0X3N0YSk7CiAJCX0KIAotCQljZmc4MDIxMV9zZW5kX2xheWVyMl91cGRhdGUoc3Rh LT5zZGF0YS0+ZGV2LCBzdGEtPnN0YS5hZGRyKTsKKwkJaWYgKHN0YS0+c3RhX3N0YXRlID09IElF RUU4MDIxMV9TVEFfQVVUSE9SSVpFRCkKKwkJCWNmZzgwMjExX3NlbmRfbGF5ZXIyX3VwZGF0ZShz dGEtPnNkYXRhLT5kZXYsCisJCQkJCQkgICAgc3RhLT5zdGEuYWRkcik7CiAJfQogCiAJZXJyID0g c3RhX2FwcGx5X3BhcmFtZXRlcnMobG9jYWwsIHN0YSwgcGFyYW1zKTsKZGlmZiAtLWdpdCBhL25l dC9tYWM4MDIxMS9zdGFfaW5mby5jIGIvbmV0L21hYzgwMjExL3N0YV9pbmZvLmMKaW5kZXggN2U3 YjllZjI5ZDhkLi4xY2FkN2NhOTIzNGIgMTAwNjQ0Ci0tLSBhL25ldC9tYWM4MDIxMS9zdGFfaW5m by5jCisrKyBiL25ldC9tYWM4MDIxMS9zdGFfaW5mby5jCkBAIC0xNzc1LDYgKzE3NzUsMTAgQEAg aW50IHN0YV9pbmZvX21vdmVfc3RhdGUoc3RydWN0IHN0YV9pbmZvICpzdGEsCiAJCQlzZXRfYml0 KFdMQU5fU1RBX0FVVEhPUklaRUQsICZzdGEtPl9mbGFncyk7CiAJCQlpZWVlODAyMTFfY2hlY2tf ZmFzdF94bWl0KHN0YSk7CiAJCX0KKwkJaWYgKHN0YS0+c2RhdGEtPnZpZi50eXBlID09IE5MODAy MTFfSUZUWVBFX0FQX1ZMQU4gfHwKKwkJICAgIHN0YS0+c2RhdGEtPnZpZi50eXBlID09IE5MODAy MTFfSUZUWVBFX0FQKQorCQkJY2ZnODAyMTFfc2VuZF9sYXllcjJfdXBkYXRlKHN0YS0+c2RhdGEt PmRldiwKKwkJCQkJCSAgICBzdGEtPnN0YS5hZGRyKTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJ YnJlYWs7CgpGcm9tIGJiNGMyNDg4MzAzODdlMzljYTdmNDQ3NGJjNTBkZDNjMmZlOGY2M2MgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFZhbmRhbmEgQk4gPGJudmFuZGFuYUBnbWFpbC5j b20+CkRhdGU6IFdlZCwgMjIgTWF5IDIwMTkgMDQ6MzQ6MTUgLTA0MDAKU3ViamVjdDogbWVkaWE6 IHVzYjp6cjM2NHh4OkZpeCBLQVNBTjpudWxsLXB0ci1kZXJlZiBSZWFkIGluCiB6cjM2NHh4X3Zp ZGlvY19xdWVyeWNhcAoKY29tbWl0IDVkMmU3M2E1ZjgwYTViNWFmZjNjYWYxZWM2ZDM5YjViM2Y1 NGIyNmUgdXBzdHJlYW0uCgpTeXpLYWxsZXIgaGl0IHRoZSBudWxsIHBvaW50ZXIgZGVyZWYgd2hp bGUgcmVhZGluZyBmcm9tIHVuaW5pdGlhbGl6ZWQKdWRldi0+cHJvZHVjdCBpbiB6cjM2NHh4X3Zp ZGlvY19xdWVyeWNhcCgpLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CkJVRzogS0FTQU46IG51bGwtcHRyLWRlcmVmIGlu IHJlYWRfd29yZF9hdF9hX3RpbWUrMHhlLzB4MjAKaW5jbHVkZS9saW51eC9jb21waWxlci5oOjI3 NApSZWFkIG9mIHNpemUgMSBhdCBhZGRyIDAwMDAwMDAwMDAwMDAwMDAgYnkgdGFzayB2NGxfaWQv NTI4NwoKQ1BVOiAxIFBJRDogNTI4NyBDb21tOiB2NGxfaWQgTm90IHRhaW50ZWQgNS4xLjAtcmMz LTMxOTAwNC1nNDMxNTFkNiAjNgpIYXJkd2FyZSBuYW1lOiBHb29nbGUgR29vZ2xlIENvbXB1dGUg RW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUwpHb29nbGUgMDEvMDEvMjAxMQpDYWxs IFRyYWNlOgogIF9fZHVtcF9zdGFjayBsaWIvZHVtcF9zdGFjay5jOjc3IFtpbmxpbmVdCiAgZHVt cF9zdGFjaysweGU4LzB4MTZlIGxpYi9kdW1wX3N0YWNrLmM6MTEzCiAga2FzYW5fcmVwb3J0LmNv bGQrMHg1LzB4M2MgbW0va2FzYW4vcmVwb3J0LmM6MzIxCiAgcmVhZF93b3JkX2F0X2FfdGltZSsw eGUvMHgyMCBpbmNsdWRlL2xpbnV4L2NvbXBpbGVyLmg6Mjc0CiAgc3Ryc2NweSsweDhhLzB4Mjgw IGxpYi9zdHJpbmcuYzoyMDcKICB6cjM2NHh4X3ZpZGlvY19xdWVyeWNhcCsweGI1LzB4MjEwIGRy aXZlcnMvbWVkaWEvdXNiL3pyMzY0eHgvenIzNjR4eC5jOjcwNgogIHY0bF9xdWVyeWNhcCsweDEy Yi8weDM0MCBkcml2ZXJzL21lZGlhL3Y0bDItY29yZS92NGwyLWlvY3RsLmM6MTA2MgogIF9fdmlk ZW9fZG9faW9jdGwrMHg1YmIvMHhiNDAgZHJpdmVycy9tZWRpYS92NGwyLWNvcmUvdjRsMi1pb2N0 bC5jOjI4NzQKICB2aWRlb191c2VyY29weSsweDQ0ZS8weGYwMCBkcml2ZXJzL21lZGlhL3Y0bDIt Y29yZS92NGwyLWlvY3RsLmM6MzA1NgogIHY0bDJfaW9jdGwrMHgxNGUvMHgxYTAgZHJpdmVycy9t ZWRpYS92NGwyLWNvcmUvdjRsMi1kZXYuYzozNjQKICB2ZnNfaW9jdGwgZnMvaW9jdGwuYzo0NiBb aW5saW5lXQogIGZpbGVfaW9jdGwgZnMvaW9jdGwuYzo1MDkgW2lubGluZV0KICBkb192ZnNfaW9j dGwrMHhjZWQvMHgxMmYwIGZzL2lvY3RsLmM6Njk2CiAga3N5c19pb2N0bCsweGEwLzB4YzAgZnMv aW9jdGwuYzo3MTMKICBfX2RvX3N5c19pb2N0bCBmcy9pb2N0bC5jOjcyMCBbaW5saW5lXQogIF9f c2Vfc3lzX2lvY3RsIGZzL2lvY3RsLmM6NzE4IFtpbmxpbmVdCiAgX194NjRfc3lzX2lvY3RsKzB4 NzQvMHhiMCBmcy9pb2N0bC5jOjcxOAogIGRvX3N5c2NhbGxfNjQrMHhjZi8weDRmMCBhcmNoL3g4 Ni9lbnRyeS9jb21tb24uYzoyOTAKICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0 OS8weGJlClJJUDogMDAzMzoweDdmM2I1NmQ4YjM0NwpDb2RlOiA5MCA5MCA5MCA0OCA4YiAwNSBm MSBmYSAyYSAwMCA2NCBjNyAwMCAyNiAwMCAwMCAwMCA0OCBjNyBjMCBmZiBmZiBmZgpmZiBjMyA5 MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCA5MCBiOCAxMCAwMCAwMCAwMCAwZiAwNSA8NDg+IDNk IDAxIGYwIGZmCmZmIDczIDAxIGMzIDQ4IDhiIDBkIGMxIGZhIDJhIDAwIDMxIGQyIDQ4IDI5IGMy IDY0ClJTUDogMDAyYjowMDAwN2ZmZTAwNWQ1ZDY4IEVGTEFHUzogMDAwMDAyMDIgT1JJR19SQVg6 IDAwMDAwMDAwMDAwMDAwMTAKUkFYOiBmZmZmZmZmZmZmZmZmZmRhIFJCWDogMDAwMDAwMDAwMDAw MDAwMyBSQ1g6IDAwMDA3ZjNiNTZkOGIzNDcKUkRYOiAwMDAwN2ZmZTAwNWQ1ZDcwIFJTSTogMDAw MDAwMDA4MDY4NTYwMCBSREk6IDAwMDAwMDAwMDAwMDAwMDMKUkJQOiAwMDAwMDAwMDAwMDAwMDAw IFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDAwMDAKUjEwOiAwMDAwMDAw MDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDIwMiBSMTI6IDAwMDAwMDAwMDA0MDA4ODQKUjEz OiAwMDAwN2ZmZTAwNWQ1ZWMwIFIxNDogMDAwMDAwMDAwMDAwMDAwMCBSMTU6IDAwMDAwMDAwMDAw MDAwMDAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CgpGb3IgdGhpcyBkZXZpY2UgdWRldi0+cHJvZHVjdCBpcyBub3QgaW5p dGlhbGl6ZWQgYW5kIGFjY2Vzc2luZyBpdCBjYXVzZXMgYSBOVUxMIHBvaW50ZXIgZGVyZWYuCgpU aGUgZml4IGlzIHRvIGNoZWNrIGZvciBOVUxMIGJlZm9yZSBzdHJzY3B5KCkgYW5kIGNvcHkgZW1w dHkgc3RyaW5nLCBpZgpwcm9kdWN0IGlzIE5VTEwKClJlcG9ydGVkLWJ5OiBzeXpib3QrNjYwMTAw MTJmZDRjNTMxYTFhOTZAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpTaWduZWQtb2ZmLWJ5OiBW YW5kYW5hIEJOIDxibnZhbmRhbmFAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBIYW5zIFZlcmt1 aWwgPGh2ZXJrdWlsLWNpc2NvQHhzNGFsbC5ubD4KU2lnbmVkLW9mZi1ieTogTWF1cm8gQ2FydmFs aG8gQ2hlaGFiIDxtY2hlaGFiK3NhbXN1bmdAa2VybmVsLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0 byA0LjQ6IFRoaXMgZnVuY3Rpb24gdXNlcyBzdHJsY3B5KCkgaW5zdGVhZCBvZiBzdHJzY3B5KCld ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNv LnVrPgotLS0KIGRyaXZlcnMvbWVkaWEvdXNiL3pyMzY0eHgvenIzNjR4eC5jIHwgMyArKy0KIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL21lZGlhL3VzYi96cjM2NHh4L3pyMzY0eHguYyBiL2RyaXZlcnMvbWVkaWEvdXNi L3pyMzY0eHgvenIzNjR4eC5jCmluZGV4IGZkNmEzYjM2MjA4ZS4uMmQ1NmNjY2FhNDc0IDEwMDY0 NAotLS0gYS9kcml2ZXJzL21lZGlhL3VzYi96cjM2NHh4L3pyMzY0eHguYworKysgYi9kcml2ZXJz L21lZGlhL3VzYi96cjM2NHh4L3pyMzY0eHguYwpAQCAtNzExLDcgKzcxMSw4IEBAIHN0YXRpYyBp bnQgenIzNjR4eF92aWRpb2NfcXVlcnljYXAoc3RydWN0IGZpbGUgKmZpbGUsIHZvaWQgKnByaXYs CiAJc3RydWN0IHpyMzY0eHhfY2FtZXJhICpjYW0gPSB2aWRlb19kcnZkYXRhKGZpbGUpOwogCiAJ c3RybGNweShjYXAtPmRyaXZlciwgRFJJVkVSX0RFU0MsIHNpemVvZihjYXAtPmRyaXZlcikpOwot CXN0cmxjcHkoY2FwLT5jYXJkLCBjYW0tPnVkZXYtPnByb2R1Y3QsIHNpemVvZihjYXAtPmNhcmQp KTsKKwlpZiAoY2FtLT51ZGV2LT5wcm9kdWN0KQorCQlzdHJsY3B5KGNhcC0+Y2FyZCwgY2FtLT51 ZGV2LT5wcm9kdWN0LCBzaXplb2YoY2FwLT5jYXJkKSk7CiAJc3RybGNweShjYXAtPmJ1c19pbmZv LCBkZXZfbmFtZSgmY2FtLT51ZGV2LT5kZXYpLAogCQlzaXplb2YoY2FwLT5idXNfaW5mbykpOwog CWNhcC0+ZGV2aWNlX2NhcHMgPSBWNEwyX0NBUF9WSURFT19DQVBUVVJFIHwKCkZyb20gYjgxMmI1 ZjRlOWI5NzA0NDZjMTAyZmU1ZmNhZTYxOGFmYWM2YmZlNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogQWxhbiBTdGVybiA8c3Rlcm5Acm93bGFuZC5oYXJ2YXJkLmVkdT4KRGF0ZTogTW9u LCAyMCBNYXkgMjAxOSAxMDo0NDoyMSAtMDQwMApTdWJqZWN0OiBwNTR1c2I6IEZpeCByYWNlIGJl dHdlZW4gZGlzY29ubmVjdCBhbmQgZmlybXdhcmUgbG9hZGluZwoKY29tbWl0IDZlNDFlMjI1N2Yx MDk0YWNjMzc2MThiZjZjODU2MTE1Mzc0YzY5MjIgdXBzdHJlYW0uCgpUaGUgc3l6Ym90IGZ1enpl ciBmb3VuZCBhIGJ1ZyBpbiB0aGUgcDU0IFVTQiB3aXJlbGVzcyBkcml2ZXIuICBUaGUKaXNzdWUg aW52b2x2ZXMgYSByYWNlIGJldHdlZW4gZGlzY29ubmVjdCBhbmQgdGhlIGZpcm13YXJlLWxvYWRl cgpjYWxsYmFjayByb3V0aW5lLCBhbmQgaXQgaGFzIHNldmVyYWwgYXNwZWN0cy4KCk9uZSBiaWcg cHJvYmxlbSBpcyB0aGF0IHdoZW4gdGhlIGZpcm13YXJlIGNhbid0IGJlIGxvYWRlZCwgdGhlCmNh bGxiYWNrIHJvdXRpbmUgdHJpZXMgdG8gdW5iaW5kIHRoZSBkcml2ZXIgZnJvbSB0aGUgVVNCIF9k ZXZpY2VfIChieQpjYWxsaW5nIGRldmljZV9yZWxlYXNlX2RyaXZlcikgaW5zdGVhZCBvZiBmcm9t IHRoZSBVU0IgX2ludGVyZmFjZV8gdG8Kd2hpY2ggaXQgaXMgYWN0dWFsbHkgYm91bmQgKGJ5IGNh bGxpbmcgdXNiX2RyaXZlcl9yZWxlYXNlX2ludGVyZmFjZSkuCgpUaGUgcmFjZSBpbnZvbHZlcyBh Y2Nlc3MgdG8gdGhlIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUuICBUaGUgZHJpdmVyJ3MKZGlzY29u bmVjdCBoYW5kbGVyIHdhaXRzIGZvciBhIGNvbXBsZXRpb24gdGhhdCBpcyBzaWduYWxsZWQgYnkg dGhlCmZpcm13YXJlLWxvYWRlciBjYWxsYmFjayByb3V0aW5lLiAgQXMgc29vbiBhcyB0aGUgY29t cGxldGlvbiBpcwpzaWduYWxsZWQsIHlvdSBoYXZlIHRvIGFzc3VtZSB0aGF0IHRoZSBwcml2YXRl IGRhdGEgc3RydWN0dXJlIG1heSBoYXZlCmJlZW4gZGVhbGxvY2F0ZWQgYnkgdGhlIGRpc2Nvbm5l Y3QgaGFuZGxlciAtLSBldmVuIGlmIHRoZSBmaXJtd2FyZSB3YXMKbG9hZGVkIHdpdGhvdXQgZXJy b3JzLiAgSG93ZXZlciwgdGhlIGNhbGxiYWNrIHJvdXRpbmUgZG9lcyBhY2Nlc3MgdGhlCnByaXZh dGUgZGF0YSBzZXZlcmFsIHRpbWVzIGFmdGVyIHRoYXQgcG9pbnQuCgpBbm90aGVyIHByb2JsZW0g aXMgdGhhdCwgaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGhlIFVTQiBkZXZpY2UKc3RydWN0dXJl IGhhc24ndCBiZWVuIGZyZWVkIHdoZW4gdGhlIGNhbGxiYWNrIHJvdXRpbmUgcnVucywgdGhlIGRy aXZlcgp0YWtlcyBhIHJlZmVyZW5jZSB0byBpdC4gIFRoaXMgaXNuJ3QgZ29vZCBlbm91Z2ggYW55 IG1vcmUsIGJlY2F1c2Ugbm93CnRoYXQgdGhlIGNhbGxiYWNrIHJvdXRpbmUgY2FsbHMgdXNiX2Ry aXZlcl9yZWxlYXNlX2ludGVyZmFjZSwgaXQgaGFzCnRvIGVuc3VyZSB0aGF0IHRoZSBpbnRlcmZh Y2Ugc3RydWN0dXJlIGhhc24ndCBiZWVuIGZyZWVkLgoKRmluYWxseSwgdGhlIGRyaXZlciB0YWtl cyBhbiB1bm5lY2Vzc2FyeSByZWZlcmVuY2UgdG8gdGhlIFVTQiBkZXZpY2UKc3RydWN0dXJlIGlu IHRoZSBwcm9iZSBmdW5jdGlvbiBhbmQgZHJvcHMgdGhlIHJlZmVyZW5jZSBpbiB0aGUKZGlzY29u bmVjdCBoYW5kbGVyLiAgVGhpcyBleHRyYSByZWZlcmVuY2UgZG9lc24ndCBhY2NvbXBsaXNoIGFu eXRoaW5nLApiZWNhdXNlIHRoZSBVU0IgY29yZSBhbHJlYWR5IGd1YXJhbnRlZXMgdGhhdCBhIGRl dmljZSBzdHJ1Y3R1cmUgd29uJ3QKYmUgZGVhbGxvY2F0ZWQgd2hpbGUgYSBkcml2ZXIgaXMgc3Rp bGwgYm91bmQgdG8gYW55IG9mIGl0cyBpbnRlcmZhY2VzLgoKVG8gZml4IHRoZXNlIHByb2JsZW1z LCB0aGlzIHBhdGNoIG1ha2VzIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKCglDYWxsIHVzYl9kcml2 ZXJfcmVsZWFzZV9pbnRlcmZhY2UoKSByYXRoZXIgdGhhbgoJZGV2aWNlX3JlbGVhc2VfZHJpdmVy KCkuCgoJRG9uJ3Qgc2lnbmFsIHRoZSBjb21wbGV0aW9uIHVudGlsIGFmdGVyIHRoZSBpbXBvcnRh bnQKCWluZm9ybWF0aW9uIGhhcyBiZWVuIGNvcGllZCBvdXQgb2YgdGhlIHByaXZhdGUgZGF0YSBz dHJ1Y3R1cmUsCglhbmQgZG9uJ3QgcmVmZXIgdG8gdGhlIHByaXZhdGUgZGF0YSBhdCBhbGwgdGhl cmVhZnRlci4KCglMb2NrIHVkZXYgKHRoZSBpbnRlcmZhY2UncyBwYXJlbnQpIGJlZm9yZSB1bmJp bmRpbmcgdGhlIGRyaXZlcgoJaW5zdGVhZCBvZiBsb2NraW5nIHVkZXYtPnBhcmVudC4KCglEdXJp bmcgdGhlIGZpcm13YXJlIGxvYWRpbmcgcHJvY2VzcywgdGFrZSBhIHJlZmVyZW5jZSB0byB0aGUK CVVTQiBpbnRlcmZhY2UgaW5zdGVhZCBvZiB0aGUgVVNCIGRldmljZS4KCglEb24ndCB0YWtlIGFu IHVubmVjZXNzYXJ5IHJlZmVyZW5jZSB0byB0aGUgZGV2aWNlIGR1cmluZyBwcm9iZQoJKGFuZCB0 aGVuIGRvbid0IGRyb3AgaXQgZHVyaW5nIGRpc2Nvbm5lY3QpLgoKU2lnbmVkLW9mZi1ieTogQWxh biBTdGVybiA8c3Rlcm5Acm93bGFuZC5oYXJ2YXJkLmVkdT4KUmVwb3J0ZWQtYW5kLXRlc3RlZC1i eTogc3l6Ym90KzIwMGQ0YmIxMWIyM2Q5MjkzMzVmQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20K QWNrZWQtYnk6IENocmlzdGlhbiBMYW1wYXJ0ZXIgPGNodW5rZWV5QGdtYWlsLmNvbT4KU2lnbmVk LW9mZi1ieTogS2FsbGUgVmFsbyA8a3ZhbG9AY29kZWF1cm9yYS5vcmc+Cltid2g6IEJhY2twb3J0 ZWQgdG8gNC40OiBhZGp1c3QgZmlsZW5hbWVdClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3Mg PGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGRyaXZlcnMvbmV0L3dpcmVsZXNz L3A1NC9wNTR1c2IuYyB8IDQzICsrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC93aXJlbGVzcy9wNTQvcDU0dXNiLmMgYi9kcml2ZXJzL25ldC93aXJlbGVz cy9wNTQvcDU0dXNiLmMKaW5kZXggMDQzYmQxYzIzYzE5Li40YTE5N2EzMmQ3OGMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3A1NC9wNTR1c2IuYworKysgYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9wNTQvcDU0dXNiLmMKQEAgLTMzLDYgKzMzLDggQEAgTU9EVUxFX0FMSUFTKCJwcmlz bTU0dXNiIik7CiBNT0RVTEVfRklSTVdBUkUoImlzbDM4ODZ1c2IiKTsKIE1PRFVMRV9GSVJNV0FS RSgiaXNsMzg4N3VzYiIpOwogCitzdGF0aWMgc3RydWN0IHVzYl9kcml2ZXIgcDU0dV9kcml2ZXI7 CisKIC8qCiAgKiBOb3RlOgogICoKQEAgLTkyMSw5ICs5MjMsOSBAQCBzdGF0aWMgdm9pZCBwNTR1 X2xvYWRfZmlybXdhcmVfY2IoY29uc3Qgc3RydWN0IGZpcm13YXJlICpmaXJtd2FyZSwKIHsKIAlz dHJ1Y3QgcDU0dV9wcml2ICpwcml2ID0gY29udGV4dDsKIAlzdHJ1Y3QgdXNiX2RldmljZSAqdWRl diA9IHByaXYtPnVkZXY7CisJc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYgPSBwcml2LT5pbnRm OwogCWludCBlcnI7CiAKLQljb21wbGV0ZSgmcHJpdi0+Zndfd2FpdF9sb2FkKTsKIAlpZiAoZmly bXdhcmUpIHsKIAkJcHJpdi0+ZncgPSBmaXJtd2FyZTsKIAkJZXJyID0gcDU0dV9zdGFydF9vcHMo cHJpdik7CkBAIC05MzIsMjYgKzkzNCwyMiBAQCBzdGF0aWMgdm9pZCBwNTR1X2xvYWRfZmlybXdh cmVfY2IoY29uc3Qgc3RydWN0IGZpcm13YXJlICpmaXJtd2FyZSwKIAkJZGV2X2VycigmdWRldi0+ ZGV2LCAiRmlybXdhcmUgbm90IGZvdW5kLlxuIik7CiAJfQogCi0JaWYgKGVycikgewotCQlzdHJ1 Y3QgZGV2aWNlICpwYXJlbnQgPSBwcml2LT51ZGV2LT5kZXYucGFyZW50OwotCi0JCWRldl9lcnIo JnVkZXYtPmRldiwgImZhaWxlZCB0byBpbml0aWFsaXplIGRldmljZSAoJWQpXG4iLCBlcnIpOwot Ci0JCWlmIChwYXJlbnQpCi0JCQlkZXZpY2VfbG9jayhwYXJlbnQpOworCWNvbXBsZXRlKCZwcml2 LT5md193YWl0X2xvYWQpOworCS8qCisJICogQXQgdGhpcyBwb2ludCBwNTR1X2Rpc2Nvbm5lY3Qg bWF5IGhhdmUgYWxyZWFkeSBmcmVlZAorCSAqIHRoZSAicHJpdiIgY29udGV4dC4gRG8gbm90IHVz ZSBpdCBhbnltb3JlIQorCSAqLworCXByaXYgPSBOVUxMOwogCi0JCWRldmljZV9yZWxlYXNlX2Ry aXZlcigmdWRldi0+ZGV2KTsKLQkJLyoKLQkJICogQXQgdGhpcyBwb2ludCBwNTR1X2Rpc2Nvbm5l Y3QgaGFzIGFscmVhZHkgZnJlZWQKLQkJICogdGhlICJwcml2IiBjb250ZXh0LiBEbyBub3QgdXNl IGl0IGFueW1vcmUhCi0JCSAqLwotCQlwcml2ID0gTlVMTDsKKwlpZiAoZXJyKSB7CisJCWRldl9l cnIoJmludGYtPmRldiwgImZhaWxlZCB0byBpbml0aWFsaXplIGRldmljZSAoJWQpXG4iLCBlcnIp OwogCi0JCWlmIChwYXJlbnQpCi0JCQlkZXZpY2VfdW5sb2NrKHBhcmVudCk7CisJCXVzYl9sb2Nr X2RldmljZSh1ZGV2KTsKKwkJdXNiX2RyaXZlcl9yZWxlYXNlX2ludGVyZmFjZSgmcDU0dV9kcml2 ZXIsIGludGYpOworCQl1c2JfdW5sb2NrX2RldmljZSh1ZGV2KTsKIAl9CiAKLQl1c2JfcHV0X2Rl dih1ZGV2KTsKKwl1c2JfcHV0X2ludGYoaW50Zik7CiB9CiAKIHN0YXRpYyBpbnQgcDU0dV9sb2Fk X2Zpcm13YXJlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmRldiwKQEAgLTk3MiwxNCArOTcwLDE0IEBA IHN0YXRpYyBpbnQgcDU0dV9sb2FkX2Zpcm13YXJlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmRldiwK IAlkZXZfaW5mbygmcHJpdi0+dWRldi0+ZGV2LCAiTG9hZGluZyBmaXJtd2FyZSBmaWxlICVzXG4i LAogCSAgICAgICBwNTR1X2Z3bGlzdFtpXS5mdyk7CiAKLQl1c2JfZ2V0X2Rldih1ZGV2KTsKKwl1 c2JfZ2V0X2ludGYoaW50Zik7CiAJZXJyID0gcmVxdWVzdF9maXJtd2FyZV9ub3dhaXQoVEhJU19N T0RVTEUsIDEsIHA1NHVfZndsaXN0W2ldLmZ3LAogCQkJCSAgICAgIGRldmljZSwgR0ZQX0tFUk5F TCwgcHJpdiwKIAkJCQkgICAgICBwNTR1X2xvYWRfZmlybXdhcmVfY2IpOwogCWlmIChlcnIpIHsK IAkJZGV2X2VycigmcHJpdi0+dWRldi0+ZGV2LCAiKHA1NHVzYikgY2Fubm90IGxvYWQgZmlybXdh cmUgJXMgIgogCQkJCQkgICIoJWQpIVxuIiwgcDU0dV9md2xpc3RbaV0uZncsIGVycik7Ci0JCXVz Yl9wdXRfZGV2KHVkZXYpOworCQl1c2JfcHV0X2ludGYoaW50Zik7CiAJfQogCiAJcmV0dXJuIGVy cjsKQEAgLTEwMTEsOCArMTAwOSw2IEBAIHN0YXRpYyBpbnQgcDU0dV9wcm9iZShzdHJ1Y3QgdXNi X2ludGVyZmFjZSAqaW50ZiwKIAlza2JfcXVldWVfaGVhZF9pbml0KCZwcml2LT5yeF9xdWV1ZSk7 CiAJaW5pdF91c2JfYW5jaG9yKCZwcml2LT5zdWJtaXR0ZWQpOwogCi0JdXNiX2dldF9kZXYodWRl dik7Ci0KIAkvKiByZWFsbHkgbGF6eSBhbmQgc2ltcGxlIHdheSBvZiBmaWd1cmluZyBvdXQgaWYg d2UncmUgYSAzODg3ICovCiAJLyogVE9ETzogc2hvdWxkIGp1c3Qgc3RpY2sgdGhlIGlkZW50aWZp Y2F0aW9uIGluIHRoZSBkZXZpY2UgdGFibGUgKi8KIAlpID0gaW50Zi0+YWx0c2V0dGluZy0+ZGVz Yy5iTnVtRW5kcG9pbnRzOwpAQCAtMTA1MywxMCArMTA0OSw4IEBAIHN0YXRpYyBpbnQgcDU0dV9w cm9iZShzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZiwKIAkJcHJpdi0+dXBsb2FkX2Z3ID0gcDU0 dV91cGxvYWRfZmlybXdhcmVfbmV0MjI4MDsKIAl9CiAJZXJyID0gcDU0dV9sb2FkX2Zpcm13YXJl KGRldiwgaW50Zik7Ci0JaWYgKGVycikgewotCQl1c2JfcHV0X2Rldih1ZGV2KTsKKwlpZiAoZXJy KQogCQlwNTRfZnJlZV9jb21tb24oZGV2KTsKLQl9CiAJcmV0dXJuIGVycjsKIH0KIApAQCAtMTA3 Miw3ICsxMDY2LDYgQEAgc3RhdGljIHZvaWQgcDU0dV9kaXNjb25uZWN0KHN0cnVjdCB1c2JfaW50 ZXJmYWNlICppbnRmKQogCXdhaXRfZm9yX2NvbXBsZXRpb24oJnByaXYtPmZ3X3dhaXRfbG9hZCk7 CiAJcDU0X3VucmVnaXN0ZXJfY29tbW9uKGRldik7CiAKLQl1c2JfcHV0X2RldihpbnRlcmZhY2Vf dG9fdXNiZGV2KGludGYpKTsKIAlyZWxlYXNlX2Zpcm13YXJlKHByaXYtPmZ3KTsKIAlwNTRfZnJl ZV9jb21tb24oZGV2KTsKIH0KCkZyb20gYjExYzIzNWQyOGYzNTM1MzAxYTIxOWQ1Yjc4ZjgyZjZi NjU0MGU1NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGFrYXNoaSBJd2FpIDx0aXdh aUBzdXNlLmRlPgpEYXRlOiBUdWUsIDIgSnVsIDIwMTkgMjA6MDc6MjEgKzAyMDAKU3ViamVjdDog QUxTQTogbGluZTY6IEZpeCB3cml0ZSBvbiB6ZXJvLXNpemVkIGJ1ZmZlcgoKY29tbWl0IDM0NTAx MjE5OTdjZTg3MmViN2YxMjQ4NDE3MjI1ODI3ZWEyNDk3MTAgdXBzdHJlYW0uCgpMSU5FNiBkcml2 ZXJzIGFsbG9jYXRlIHRoZSBidWZmZXJzIGJhc2VkIG9uIHRoZSB2YWx1ZSByZXR1cm5lZCBmcm9t CnVzYl9tYXhwYWNrZXQoKSBjYWxscy4gIFRoZSBtYW5pcHVsYXRlZCBkZXZpY2UgbWF5IHJldHVy biB6ZXJvIGZvcgp0aGlzLCBhbmQgdGhpcyByZXN1bHRzIGluIHRoZSBrbWFsbG9jKCkgd2l0aCB6 ZXJvIHNpemUgKGFuZCBpdCBtYXkKc3VjY2VlZCkgd2hpbGUgdGhlIG90aGVyIHBhcnQgb2YgdGhl IGRyaXZlciBjb2RlIHdyaXRlcyB0aGUgcGFja2V0CmRhdGEgd2l0aCB0aGUgZml4ZWQgc2l6ZSAt LSB3aGljaCBldmVudHVhbGx5IG92ZXJ3cml0ZXMuCgpUaGlzIHBhdGNoIGFkZHMgYSBzaW1wbGUg c2FuaXR5IGNoZWNrIGZvciB0aGUgaW52YWxpZCBidWZmZXIgc2l6ZSBmb3IKYXZvaWRpbmcgdGhh dCBwcm9ibGVtLgoKUmVwb3J0ZWQtYnk6IHN5emJvdCsyMTlmMDBmYjQ5ODc0ZGNhZWExN0BzeXpr YWxsZXIuYXBwc3BvdG1haWwuY29tClNpZ25lZC1vZmYtYnk6IFRha2FzaGkgSXdhaSA8dGl3YWlA c3VzZS5kZT4KW2J3aDogQmFja3BvcnRlZCB0byA0LjQ6IERyaXZlciBkb2Vzbid0IHN1cHBvcnQg YXN5bW1ldHJpY2FsIHBhY2tldAogc2l6ZXMsIHNvIG9ubHkgY2hlY2sgc25kX2xpbmU2X3BjbTo6 bWF4X3BhY2tldF9zaXplXQpTaWduZWQtb2ZmLWJ5OiBCZW4gSHV0Y2hpbmdzIDxiZW4uaHV0Y2hp bmdzQGNvZGV0aGluay5jby51az4KLS0tCiBzb3VuZC91c2IvbGluZTYvcGNtLmMgfCA1ICsrKysr CiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc291bmQvdXNi L2xpbmU2L3BjbS5jIGIvc291bmQvdXNiL2xpbmU2L3BjbS5jCmluZGV4IDQxYWEzMzU1ZTkyMC4u YTUzMTg4MWIyYmU2IDEwMDY0NAotLS0gYS9zb3VuZC91c2IvbGluZTYvcGNtLmMKKysrIGIvc291 bmQvdXNiL2xpbmU2L3BjbS5jCkBAIC01MjksNiArNTI5LDExIEBAIGludCBsaW5lNl9pbml0X3Bj bShzdHJ1Y3QgdXNiX2xpbmU2ICpsaW5lNiwKIAkJCQl1c2JfcmN2aXNvY3BpcGUobGluZTYtPnVz YmRldiwgZXBfcmVhZCksIDApLAogCQkJdXNiX21heHBhY2tldChsaW5lNi0+dXNiZGV2LAogCQkJ CXVzYl9zbmRpc29jcGlwZShsaW5lNi0+dXNiZGV2LCBlcF93cml0ZSksIDEpKTsKKwlpZiAoIWxp bmU2cGNtLT5tYXhfcGFja2V0X3NpemUpIHsKKwkJZGV2X2VycihsaW5lNnBjbS0+bGluZTYtPmlm Y2RldiwKKwkJCSJjYW5ub3QgZ2V0IHByb3BlciBtYXggcGFja2V0IHNpemVcbiIpOworCQlyZXR1 cm4gLUVJTlZBTDsKKwl9CiAKIAlzcGluX2xvY2tfaW5pdCgmbGluZTZwY20tPm91dC5sb2NrKTsK IAlzcGluX2xvY2tfaW5pdCgmbGluZTZwY20tPmluLmxvY2spOwoKRnJvbSBlMGQzY2RhODcxMmFm YjNhODA2Mzk1ODZiNmFmYTA2MzdiNDZlNmNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiBUYWthc2hpIEl3YWkgPHRpd2FpQHN1c2UuZGU+CkRhdGU6IFdlZCwgMjEgQXVnIDIwMTkgMjA6 MDA6MDIgKzAyMDAKU3ViamVjdDogQUxTQTogbGluZTY6IEZpeCBtZW1vcnkgbGVhayBhdCBsaW5l Nl9pbml0X3BjbSgpIGVycm9yIHBhdGgKCmNvbW1pdCAxYmM4ZDE4Yzc1ZmVmM2I0NzhkYmRmZWY3 MjJhYWUwOWUyYTlmZGU3IHVwc3RyZWFtLgoKSSBmb3Jnb3QgdG8gcmVsZWFzZSB0aGUgYWxsb2Nh dGVkIG9iamVjdCBhdCB0aGUgZWFybHkgZXJyb3IgcGF0aCBpbgpsaW5lNl9pbml0X3BjbSgpLiAg Rm9yIGFkZHJlc3NpbmcgaXQsIHNsaWdodGx5IHNodWZmbGUgdGhlIGNvZGUgc28KdGhhdCB0aGUg UENNIGRlc3RydWN0b3IgKHBjbS0+cHJpdmF0ZV9mcmVlKSBpcyBhc3NpZ25lZCBwcm9wZXJseQpi ZWZvcmUgYWxsIGVycm9yIHBhdGhzLgoKRml4ZXM6IDM0NTAxMjE5OTdjZSAoIkFMU0E6IGxpbmU2 OiBGaXggd3JpdGUgb24gemVyby1zaXplZCBidWZmZXIiKQpTaWduZWQtb2ZmLWJ5OiBUYWthc2hp IEl3YWkgPHRpd2FpQHN1c2UuZGU+Cltid2g6IEJhY2twb3J0ZWQgdG8gNC40OiBhZGp1c3QgY29u dGV4dF0KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhp bmsuY28udWs+Ci0tLQogc291bmQvdXNiL2xpbmU2L3BjbS5jIHwgMTggKysrKysrKysrLS0tLS0t LS0tCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NvdW5kL3VzYi9saW5lNi9wY20uYyBiL3NvdW5kL3VzYi9saW5lNi9wY20uYwpp bmRleCBhNTMxODgxYjJiZTYuLmU4NWFkYTE0YThlMSAxMDA2NDQKLS0tIGEvc291bmQvdXNiL2xp bmU2L3BjbS5jCisrKyBiL3NvdW5kL3VzYi9saW5lNi9wY20uYwpAQCAtNTIzLDYgKzUyMywxNSBA QCBpbnQgbGluZTZfaW5pdF9wY20oc3RydWN0IHVzYl9saW5lNiAqbGluZTYsCiAJbGluZTZwY20t PnZvbHVtZV9tb25pdG9yID0gMjU1OwogCWxpbmU2cGNtLT5saW5lNiA9IGxpbmU2OwogCisJc3Bp bl9sb2NrX2luaXQoJmxpbmU2cGNtLT5vdXQubG9jayk7CisJc3Bpbl9sb2NrX2luaXQoJmxpbmU2 cGNtLT5pbi5sb2NrKTsKKwlsaW5lNnBjbS0+aW1wdWxzZV9wZXJpb2QgPSBMSU5FNl9JTVBVTFNF X0RFRkFVTFRfUEVSSU9EOworCisJbGluZTYtPmxpbmU2cGNtID0gbGluZTZwY207CisKKwlwY20t PnByaXZhdGVfZGF0YSA9IGxpbmU2cGNtOworCXBjbS0+cHJpdmF0ZV9mcmVlID0gbGluZTZfY2xl YW51cF9wY207CisKIAkvKiBSZWFkIGFuZCB3cml0ZSBidWZmZXJzIGFyZSBzaXplZCBpZGVudGlj YWxseSwgc28gY2hvb3NlIG1pbmltdW0gKi8KIAlsaW5lNnBjbS0+bWF4X3BhY2tldF9zaXplID0g bWluKAogCQkJdXNiX21heHBhY2tldChsaW5lNi0+dXNiZGV2LApAQCAtNTM1LDE1ICs1NDQsNiBA QCBpbnQgbGluZTZfaW5pdF9wY20oc3RydWN0IHVzYl9saW5lNiAqbGluZTYsCiAJCXJldHVybiAt RUlOVkFMOwogCX0KIAotCXNwaW5fbG9ja19pbml0KCZsaW5lNnBjbS0+b3V0LmxvY2spOwotCXNw aW5fbG9ja19pbml0KCZsaW5lNnBjbS0+aW4ubG9jayk7Ci0JbGluZTZwY20tPmltcHVsc2VfcGVy aW9kID0gTElORTZfSU1QVUxTRV9ERUZBVUxUX1BFUklPRDsKLQotCWxpbmU2LT5saW5lNnBjbSA9 IGxpbmU2cGNtOwotCi0JcGNtLT5wcml2YXRlX2RhdGEgPSBsaW5lNnBjbTsKLQlwY20tPnByaXZh dGVfZnJlZSA9IGxpbmU2X2NsZWFudXBfcGNtOwotCiAJZXJyID0gbGluZTZfY3JlYXRlX2F1ZGlv X291dF91cmJzKGxpbmU2cGNtKTsKIAlpZiAoZXJyIDwgMCkKIAkJcmV0dXJuIGVycjsKCkZyb20g MzdlYzcxZGRmOThjMTk3N2Q2MzM4ZGNlMTg4NTJjNDVhM2E2MmM3YSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSWdvciBSZWRrbyA8cmVka29pQHZpcnR1b3p6by5jb20+CkRhdGU6IFRo dSwgMTcgTWFyIDIwMTYgMTQ6MTk6MDUgLTA3MDAKU3ViamVjdDogbW0vcGFnZV9hbGxvYy5jOiBj YWxjdWxhdGUgJ2F2YWlsYWJsZScgbWVtb3J5IGluIGEgc2VwYXJhdGUgZnVuY3Rpb24KCmNvbW1p dCBkMDJiZDI3YmQzM2RkN2U4ZDIyNTk0Y2Q1NjhiODFiZTBjYjU4NGNkIHVwc3RyZWFtLgoKQWRk IGEgbmV3IGZpZWxkLCBWSVJUSU9fQkFMTE9PTl9TX0FWQUlMLCB0byB2aXJ0aW9fYmFsbG9vbiBt ZW1vcnkKc3RhdGlzdGljcyBwcm90b2NvbCwgY29ycmVzcG9uZGluZyB0byAnQXZhaWxhYmxlJyBp biAvcHJvYy9tZW1pbmZvLgoKSXQgaW5kaWNhdGVzIHRvIHRoZSBoeXBlcnZpc29yIGhvdyBiaWcg dGhlIGJhbGxvb24gY2FuIGJlIGluZmxhdGVkCndpdGhvdXQgcHVzaGluZyB0aGUgZ3Vlc3Qgc3lz dGVtIHRvIHN3YXAuICBUaGlzIG1ldHJpYyB3b3VsZCBiZSB2ZXJ5CnVzZWZ1bCBpbiBWTSBvcmNo ZXN0cmF0aW9uIHNvZnR3YXJlIHRvIGltcHJvdmUgbWVtb3J5IG1hbmFnZW1lbnQgb2YKZGlmZmVy ZW50IFZNcyB1bmRlciBvdmVyY29tbWl0LgoKVGhpcyBwYXRjaCAob2YgMik6CgpGYWN0b3Igb3V0 IGNhbGN1bGF0aW9uIG9mIHRoZSBhdmFpbGFibGUgbWVtb3J5IGNvdW50ZXIgaW50byBhIHNlcGFy YXRlCmV4cG9ydGFibGUgZnVuY3Rpb24sIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gdXNlIGl0IGlu IG90aGVyIHBhcnRzIG9mIHRoZQprZXJuZWwuCgpJbiBwYXJ0aWN1bGFyLCBpdCBhcHBlYXJzIGEg cmVsZXZhbnQgbWV0cmljIHRvIHJlcG9ydCB0byB0aGUgaHlwZXJ2aXNvcgp2aWEgdmlydGlvLWJh bGxvb24gc3RhdGlzdGljcyBpbnRlcmZhY2UgKGluIGEgZm9sbG93dXAgcGF0Y2gpLgoKU2lnbmVk LW9mZi1ieTogSWdvciBSZWRrbyA8cmVka29pQHZpcnR1b3p6by5jb20+ClNpZ25lZC1vZmYtYnk6 IERlbmlzIFYuIEx1bmV2IDxkZW5Ab3BlbnZ6Lm9yZz4KUmV2aWV3ZWQtYnk6IFJvbWFuIEthZ2Fu IDxya2FnYW5AdmlydHVvenpvLmNvbT4KQ2M6IE1pY2hhZWwgUy4gVHNpcmtpbiA8bXN0QHJlZGhh dC5jb20+ClNpZ25lZC1vZmYtYnk6IEFuZHJldyBNb3J0b24gPGFrcG1AbGludXgtZm91bmRhdGlv bi5vcmc+ClNpZ25lZC1vZmYtYnk6IExpbnVzIFRvcnZhbGRzIDx0b3J2YWxkc0BsaW51eC1mb3Vu ZGF0aW9uLm9yZz4KW2J3aDogQmFja3BvcnRlZCB0byA0LjQgYXMgZGVwZW5kZW5jeSBvZiBjb21t aXQgYTEwNzhlODIxYjYwCiAieGVuOiBsZXQgYWxsb2NfeGVuYmFsbG9vbmVkX3BhZ2VzKCkgZmFp bCBpZiBub3QgZW5vdWdoIG1lbW9yeSBmcmVlIl0KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5n cyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZnMvcHJvYy9tZW1pbmZvLmMg IHwgMzEgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogaW5jbHVkZS9saW51eC9tbS5o IHwgIDEgKwogbW0vcGFnZV9hbGxvYy5jICAgIHwgNDMgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA0NSBpbnNlcnRpb25zKCspLCAz MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9mcy9wcm9jL21lbWluZm8uYyBiL2ZzL3Byb2Mv bWVtaW5mby5jCmluZGV4IGRmNDY2MWFiYWRjNC4uODM3MjA0NjBjNWJjIDEwMDY0NAotLS0gYS9m cy9wcm9jL21lbWluZm8uYworKysgYi9mcy9wcm9jL21lbWluZm8uYwpAQCAtMjksMTAgKzI5LDcg QEAgc3RhdGljIGludCBtZW1pbmZvX3Byb2Nfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQg KnYpCiAJdW5zaWduZWQgbG9uZyBjb21taXR0ZWQ7CiAJbG9uZyBjYWNoZWQ7CiAJbG9uZyBhdmFp bGFibGU7Ci0JdW5zaWduZWQgbG9uZyBwYWdlY2FjaGU7Ci0JdW5zaWduZWQgbG9uZyB3bWFya19s b3cgPSAwOwogCXVuc2lnbmVkIGxvbmcgcGFnZXNbTlJfTFJVX0xJU1RTXTsKLQlzdHJ1Y3Qgem9u ZSAqem9uZTsKIAlpbnQgbHJ1OwogCiAvKgpAQCAtNTEsMzMgKzQ4LDcgQEAgc3RhdGljIGludCBt ZW1pbmZvX3Byb2Nfc2hvdyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHZvaWQgKnYpCiAJZm9yIChscnUg PSBMUlVfQkFTRTsgbHJ1IDwgTlJfTFJVX0xJU1RTOyBscnUrKykKIAkJcGFnZXNbbHJ1XSA9IGds b2JhbF9wYWdlX3N0YXRlKE5SX0xSVV9CQVNFICsgbHJ1KTsKIAotCWZvcl9lYWNoX3pvbmUoem9u ZSkKLQkJd21hcmtfbG93ICs9IHpvbmUtPndhdGVybWFya1tXTUFSS19MT1ddOwotCi0JLyoKLQkg KiBFc3RpbWF0ZSB0aGUgYW1vdW50IG9mIG1lbW9yeSBhdmFpbGFibGUgZm9yIHVzZXJzcGFjZSBh bGxvY2F0aW9ucywKLQkgKiB3aXRob3V0IGNhdXNpbmcgc3dhcHBpbmcuCi0JICovCi0JYXZhaWxh YmxlID0gaS5mcmVlcmFtIC0gdG90YWxyZXNlcnZlX3BhZ2VzOwotCi0JLyoKLQkgKiBOb3QgYWxs IHRoZSBwYWdlIGNhY2hlIGNhbiBiZSBmcmVlZCwgb3RoZXJ3aXNlIHRoZSBzeXN0ZW0gd2lsbAot CSAqIHN0YXJ0IHN3YXBwaW5nLiBBc3N1bWUgYXQgbGVhc3QgaGFsZiBvZiB0aGUgcGFnZSBjYWNo ZSwgb3IgdGhlCi0JICogbG93IHdhdGVybWFyayB3b3J0aCBvZiBjYWNoZSwgbmVlZHMgdG8gc3Rh eS4KLQkgKi8KLQlwYWdlY2FjaGUgPSBwYWdlc1tMUlVfQUNUSVZFX0ZJTEVdICsgcGFnZXNbTFJV X0lOQUNUSVZFX0ZJTEVdOwotCXBhZ2VjYWNoZSAtPSBtaW4ocGFnZWNhY2hlIC8gMiwgd21hcmtf bG93KTsKLQlhdmFpbGFibGUgKz0gcGFnZWNhY2hlOwotCi0JLyoKLQkgKiBQYXJ0IG9mIHRoZSBy ZWNsYWltYWJsZSBzbGFiIGNvbnNpc3RzIG9mIGl0ZW1zIHRoYXQgYXJlIGluIHVzZSwKLQkgKiBh bmQgY2Fubm90IGJlIGZyZWVkLiBDYXAgdGhpcyBlc3RpbWF0ZSBhdCB0aGUgbG93IHdhdGVybWFy ay4KLQkgKi8KLQlhdmFpbGFibGUgKz0gZ2xvYmFsX3BhZ2Vfc3RhdGUoTlJfU0xBQl9SRUNMQUlN QUJMRSkgLQotCQkgICAgIG1pbihnbG9iYWxfcGFnZV9zdGF0ZShOUl9TTEFCX1JFQ0xBSU1BQkxF KSAvIDIsIHdtYXJrX2xvdyk7Ci0KLQlpZiAoYXZhaWxhYmxlIDwgMCkKLQkJYXZhaWxhYmxlID0g MDsKKwlhdmFpbGFibGUgPSBzaV9tZW1fYXZhaWxhYmxlKCk7CiAKIAkvKgogCSAqIFRhZ2dlZCBm b3JtYXQsIGZvciBlYXN5IGdyZXBwaW5nIGFuZCBleHBhbnNpb24uCmRpZmYgLS1naXQgYS9pbmNs dWRlL2xpbnV4L21tLmggYi9pbmNsdWRlL2xpbnV4L21tLmgKaW5kZXggZWQ2NTNiYTQ3YzQ2Li4x NWY4MWIyYjg3ZWQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvbW0uaAorKysgYi9pbmNsdWRl L2xpbnV4L21tLmgKQEAgLTE4MDIsNiArMTgwMiw3IEBAIGV4dGVybiBpbnQgX19tZW1pbml0IGlu aXRfcGVyX3pvbmVfd21hcmtfbWluKHZvaWQpOwogZXh0ZXJuIHZvaWQgbWVtX2luaXQodm9pZCk7 CiBleHRlcm4gdm9pZCBfX2luaXQgbW1hcF9pbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgc2hvd19t ZW0odW5zaWduZWQgaW50IGZsYWdzKTsKK2V4dGVybiBsb25nIHNpX21lbV9hdmFpbGFibGUodm9p ZCk7CiBleHRlcm4gdm9pZCBzaV9tZW1pbmZvKHN0cnVjdCBzeXNpbmZvICogdmFsKTsKIGV4dGVy biB2b2lkIHNpX21lbWluZm9fbm9kZShzdHJ1Y3Qgc3lzaW5mbyAqdmFsLCBpbnQgbmlkKTsKIApk aWZmIC0tZ2l0IGEvbW0vcGFnZV9hbGxvYy5jIGIvbW0vcGFnZV9hbGxvYy5jCmluZGV4IGZkNzVl MjdjOWI0MC4uZGY1ODk0MTZhY2U2IDEwMDY0NAotLS0gYS9tbS9wYWdlX2FsbG9jLmMKKysrIGIv bW0vcGFnZV9hbGxvYy5jCkBAIC0zNjUwLDYgKzM2NTAsNDkgQEAgc3RhdGljIGlubGluZSB2b2lk IHNob3dfbm9kZShzdHJ1Y3Qgem9uZSAqem9uZSkKIAkJcHJpbnRrKCJOb2RlICVkICIsIHpvbmVf dG9fbmlkKHpvbmUpKTsKIH0KIAorbG9uZyBzaV9tZW1fYXZhaWxhYmxlKHZvaWQpCit7CisJbG9u ZyBhdmFpbGFibGU7CisJdW5zaWduZWQgbG9uZyBwYWdlY2FjaGU7CisJdW5zaWduZWQgbG9uZyB3 bWFya19sb3cgPSAwOworCXVuc2lnbmVkIGxvbmcgcGFnZXNbTlJfTFJVX0xJU1RTXTsKKwlzdHJ1 Y3Qgem9uZSAqem9uZTsKKwlpbnQgbHJ1OworCisJZm9yIChscnUgPSBMUlVfQkFTRTsgbHJ1IDwg TlJfTFJVX0xJU1RTOyBscnUrKykKKwkJcGFnZXNbbHJ1XSA9IGdsb2JhbF9wYWdlX3N0YXRlKE5S X0xSVV9CQVNFICsgbHJ1KTsKKworCWZvcl9lYWNoX3pvbmUoem9uZSkKKwkJd21hcmtfbG93ICs9 IHpvbmUtPndhdGVybWFya1tXTUFSS19MT1ddOworCisJLyoKKwkgKiBFc3RpbWF0ZSB0aGUgYW1v dW50IG9mIG1lbW9yeSBhdmFpbGFibGUgZm9yIHVzZXJzcGFjZSBhbGxvY2F0aW9ucywKKwkgKiB3 aXRob3V0IGNhdXNpbmcgc3dhcHBpbmcuCisJICovCisJYXZhaWxhYmxlID0gZ2xvYmFsX3BhZ2Vf c3RhdGUoTlJfRlJFRV9QQUdFUykgLSB0b3RhbHJlc2VydmVfcGFnZXM7CisKKwkvKgorCSAqIE5v dCBhbGwgdGhlIHBhZ2UgY2FjaGUgY2FuIGJlIGZyZWVkLCBvdGhlcndpc2UgdGhlIHN5c3RlbSB3 aWxsCisJICogc3RhcnQgc3dhcHBpbmcuIEFzc3VtZSBhdCBsZWFzdCBoYWxmIG9mIHRoZSBwYWdl IGNhY2hlLCBvciB0aGUKKwkgKiBsb3cgd2F0ZXJtYXJrIHdvcnRoIG9mIGNhY2hlLCBuZWVkcyB0 byBzdGF5LgorCSAqLworCXBhZ2VjYWNoZSA9IHBhZ2VzW0xSVV9BQ1RJVkVfRklMRV0gKyBwYWdl c1tMUlVfSU5BQ1RJVkVfRklMRV07CisJcGFnZWNhY2hlIC09IG1pbihwYWdlY2FjaGUgLyAyLCB3 bWFya19sb3cpOworCWF2YWlsYWJsZSArPSBwYWdlY2FjaGU7CisKKwkvKgorCSAqIFBhcnQgb2Yg dGhlIHJlY2xhaW1hYmxlIHNsYWIgY29uc2lzdHMgb2YgaXRlbXMgdGhhdCBhcmUgaW4gdXNlLAor CSAqIGFuZCBjYW5ub3QgYmUgZnJlZWQuIENhcCB0aGlzIGVzdGltYXRlIGF0IHRoZSBsb3cgd2F0 ZXJtYXJrLgorCSAqLworCWF2YWlsYWJsZSArPSBnbG9iYWxfcGFnZV9zdGF0ZShOUl9TTEFCX1JF Q0xBSU1BQkxFKSAtCisJCSAgICAgbWluKGdsb2JhbF9wYWdlX3N0YXRlKE5SX1NMQUJfUkVDTEFJ TUFCTEUpIC8gMiwgd21hcmtfbG93KTsKKworCWlmIChhdmFpbGFibGUgPCAwKQorCQlhdmFpbGFi bGUgPSAwOworCXJldHVybiBhdmFpbGFibGU7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChzaV9tZW1f YXZhaWxhYmxlKTsKKwogdm9pZCBzaV9tZW1pbmZvKHN0cnVjdCBzeXNpbmZvICp2YWwpCiB7CiAJ dmFsLT50b3RhbHJhbSA9IHRvdGFscmFtX3BhZ2VzOwoKRnJvbSBiN2JjZmYzNGJiNDkwMDUzYzBl NmI0ZWNlMDgxNzI3NDRiNjhiYzBkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKdWVy Z2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+CkRhdGU6IFdlZCwgMTkgSnVuIDIwMTkgMTE6MDA6 NTYgKzAyMDAKU3ViamVjdDogeGVuOiBsZXQgYWxsb2NfeGVuYmFsbG9vbmVkX3BhZ2VzKCkgZmFp bCBpZiBub3QgZW5vdWdoIG1lbW9yeSBmcmVlCgpjb21taXQgYTEwNzhlODIxYjYwNTgxM2I2M2Jm NmJjYTQxNGE4NWY4MDRkNWM2NiB1cHN0cmVhbS4KCkluc3RlYWQgb2YgdHJ5aW5nIHRvIGFsbG9j YXRlIHBhZ2VzIHdpdGggR0ZQX1VTRVIgaW4KYWRkX2JhbGxvb25lZF9wYWdlcygpIGNoZWNrIHRo ZSBhdmFpbGFibGUgZnJlZSBtZW1vcnkgdmlhCnNpX21lbV9hdmFpbGFibGUoKS4gR0ZQX1VTRVIg aXMgZmFyIGxlc3MgbGltaXRpbmcgbWVtb3J5IGV4aGF1c3Rpb24KdGhhbiB0aGUgdGVzdCB2aWEg c2lfbWVtX2F2YWlsYWJsZSgpLgoKVGhpcyB3aWxsIGF2b2lkIGRvbTAgcnVubmluZyBvdXQgb2Yg bWVtb3J5IGR1ZSB0byBleGNlc3NpdmUgZm9yZWlnbgpwYWdlIG1hcHBpbmdzIGVzcGVjaWFsbHkg b24gQVJNIGFuZCBvbiB4ODYgaW4gUFZIIG1vZGUsIGFzIHRob3NlIGRvbid0CmhhdmUgYSBwcmUt YmFsbG9vbmVkIGFyZWEgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGZvcmVpZ24gbWFwcGluZ3MuCgpB cyB0aGUgbm9ybWFsIGJhbGxvb25pbmcgc3VmZmVycyBmcm9tIHRoZSBzYW1lIHByb2JsZW0gZG9u J3QgYmFsbG9vbgpkb3duIG1vcmUgdGhhbiBzaV9tZW1fYXZhaWxhYmxlKCkgcGFnZXMgaW4gb25l IGl0ZXJhdGlvbi4gQXQgdGhlIHNhbWUKdGltZSBsaW1pdCB0aGUgZGVmYXVsdCBtYXhpbXVtIG51 bWJlciBvZiByZXRyaWVzLgoKVGhpcyBpcyBwYXJ0IG9mIFhTQS0zMDAuCgpTaWduZWQtb2ZmLWJ5 OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRj aGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGRyaXZlcnMveGVuL2Jh bGxvb24uYyB8IDE2ICsrKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRp b25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMveGVuL2JhbGxvb24u YyBiL2RyaXZlcnMveGVuL2JhbGxvb24uYwppbmRleCAxYzc4OTA1NmU3ZTguLmQ2ZjVhNzRkZjk3 MyAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vYmFsbG9vbi5jCisrKyBiL2RyaXZlcnMveGVuL2Jh bGxvb24uYwpAQCAtNTg0LDggKzU4NCwxNSBAQCBzdGF0aWMgdm9pZCBiYWxsb29uX3Byb2Nlc3Mo c3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQogCQkJCXN0YXRlID0gcmVzZXJ2ZV9hZGRpdGlvbmFs X21lbW9yeSgpOwogCQl9CiAKLQkJaWYgKGNyZWRpdCA8IDApCi0JCQlzdGF0ZSA9IGRlY3JlYXNl X3Jlc2VydmF0aW9uKC1jcmVkaXQsIEdGUF9CQUxMT09OKTsKKwkJaWYgKGNyZWRpdCA8IDApIHsK KwkJCWxvbmcgbl9wYWdlczsKKworCQkJbl9wYWdlcyA9IG1pbigtY3JlZGl0LCBzaV9tZW1fYXZh aWxhYmxlKCkpOworCQkJc3RhdGUgPSBkZWNyZWFzZV9yZXNlcnZhdGlvbihuX3BhZ2VzLCBHRlBf QkFMTE9PTik7CisJCQlpZiAoc3RhdGUgPT0gQlBfRE9ORSAmJiBuX3BhZ2VzICE9IC1jcmVkaXQg JiYKKwkJCSAgICBuX3BhZ2VzIDwgdG90YWxyZXNlcnZlX3BhZ2VzKQorCQkJCXN0YXRlID0gQlBf RUFHQUlOOworCQl9CiAKIAkJc3RhdGUgPSB1cGRhdGVfc2NoZWR1bGUoc3RhdGUpOwogCkBAIC02 MjQsNiArNjMxLDkgQEAgc3RhdGljIGludCBhZGRfYmFsbG9vbmVkX3BhZ2VzKGludCBucl9wYWdl cykKIAkJfQogCX0KIAorCWlmIChzaV9tZW1fYXZhaWxhYmxlKCkgPCBucl9wYWdlcykKKwkJcmV0 dXJuIC1FTk9NRU07CisKIAlzdCA9IGRlY3JlYXNlX3Jlc2VydmF0aW9uKG5yX3BhZ2VzLCBHRlBf VVNFUik7CiAJaWYgKHN0ICE9IEJQX0RPTkUpCiAJCXJldHVybiAtRU5PTUVNOwpAQCAtNzQ3LDcg Kzc1Nyw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGJhbGxvb25faW5pdCh2b2lkKQogCWJhbGxvb25f c3RhdHMuc2NoZWR1bGVfZGVsYXkgPSAxOwogCWJhbGxvb25fc3RhdHMubWF4X3NjaGVkdWxlX2Rl bGF5ID0gMzI7CiAJYmFsbG9vbl9zdGF0cy5yZXRyeV9jb3VudCA9IDE7Ci0JYmFsbG9vbl9zdGF0 cy5tYXhfcmV0cnlfY291bnQgPSBSRVRSWV9VTkxJTUlURUQ7CisJYmFsbG9vbl9zdGF0cy5tYXhf cmV0cnlfY291bnQgPSA0OwogCiAjaWZkZWYgQ09ORklHX1hFTl9CQUxMT09OX01FTU9SWV9IT1RQ TFVHCiAJc2V0X29ubGluZV9wYWdlX2NhbGxiYWNrKCZ4ZW5fb25saW5lX3BhZ2UpOwoKRnJvbSBj M2E4ZWNlY2U4ODk3ZWU5NDliNWFhYjJmZmU0MzJhNjM5NTgwYzgyIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBOYXZpZCBFbWFtZG9vc3QgPG5hdmlkLmVtYW1kb29zdEBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTAgU2VwIDIwMTkgMTg6MDE6NDAgLTA1MDAKU3ViamVjdDogd2ltYXg6IGky NDAwOiBmaXggbWVtb3J5IGxlYWsKCmNvbW1pdCAyNTA3ZTZhYjdhOWE0NDA3NzNiZTQ3NjE0MWEy NTU5MzQ0NjhjNWVmIHVwc3RyZWFtLgoKSW4gaTI0MDBtX29wX3Jma2lsbF9zd190b2dnbGUgY21k IGJ1ZmZlciBzaG91bGQgYmUgcmVsZWFzZWQgYWxvbmcgd2l0aApza2IgcmVzcG9uc2UuCgpTaWdu ZWQtb2ZmLWJ5OiBOYXZpZCBFbWFtZG9vc3QgPG5hdmlkLmVtYW1kb29zdEBnbWFpbC5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KU2lnbmVk LW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0t LQogZHJpdmVycy9uZXQvd2ltYXgvaTI0MDBtL29wLXJma2lsbC5jIHwgMSArCiAxIGZpbGUgY2hh bmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aW1heC9pMjQw MG0vb3AtcmZraWxsLmMgYi9kcml2ZXJzL25ldC93aW1heC9pMjQwMG0vb3AtcmZraWxsLmMKaW5k ZXggYjBkYmEzNWE4YWQyLi43YzkyZThhY2U5YzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3dp bWF4L2kyNDAwbS9vcC1yZmtpbGwuYworKysgYi9kcml2ZXJzL25ldC93aW1heC9pMjQwMG0vb3At cmZraWxsLmMKQEAgLTE0Miw2ICsxNDIsNyBAQCBpbnQgaTI0MDBtX29wX3Jma2lsbF9zd190b2dn bGUoc3RydWN0IHdpbWF4X2RldiAqd2ltYXhfZGV2LAogCQkJIiVkXG4iLCByZXN1bHQpOwogCXJl c3VsdCA9IDA7CiBlcnJvcl9jbWQ6CisJa2ZyZWUoY21kKTsKIAlrZnJlZV9za2IoYWNrX3NrYik7 CiBlcnJvcl9tc2dfdG9fZGV2OgogZXJyb3JfYWxsb2M6CgpGcm9tIDYyMmE2ZjgyYzg5OGNlZTQ2 MjkxNWY2OTA2NzZiNTVlZGNhYTI4MGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5h dmlkIEVtYW1kb29zdCA8bmF2aWQuZW1hbWRvb3N0QGdtYWlsLmNvbT4KRGF0ZTogRnJpLCAyNSBP Y3QgMjAxOSAyMzo1MzozMCAtMDUwMApTdWJqZWN0OiB3aW1heDogaTI0MDA6IEZpeCBtZW1vcnkg bGVhayBpbiBpMjQwMG1fb3BfcmZraWxsX3N3X3RvZ2dsZQoKY29tbWl0IDZmM2VmNWMyNWNjNzYy Njg3YTczNDFjMThjYmVhNWFmNTQ0NjE0MDcgdXBzdHJlYW0uCgpJbiB0aGUgaW1wbGVtZW50YXRp b24gb2YgaTI0MDBtX29wX3Jma2lsbF9zd190b2dnbGUoKSB0aGUgYWxsb2NhdGVkCmJ1ZmZlciBm b3IgY21kIHNob3VsZCBiZSByZWxlYXNlZCBiZWZvcmUgcmV0dXJuaW5nLiBUaGUKZG9jdW1lbnRh dGlvbiBmb3IgaTI0MDBtX21zZ190b19kZXYoKSBzYXlzIHdoZW4gaXQgcmV0dXJucyB0aGUgYnVm ZmVyCmNhbiBiZSByZXVzZWQuIE1lYW5pbmcgY21kIHNob3VsZCBiZSByZWxlYXNlZCBpbiBlaXRo ZXIgY2FzZS4gTW92ZQprZnJlZShjbWQpIGJlZm9yZSByZXR1cm4gdG8gYmUgcmVhY2hlZCBieSBh bGwgZXhlY3V0aW9uIHBhdGhzLgoKRml4ZXM6IDI1MDdlNmFiN2E5YSAoIndpbWF4OiBpMjQwMDog Zml4IG1lbW9yeSBsZWFrIikKU2lnbmVkLW9mZi1ieTogTmF2aWQgRW1hbWRvb3N0IDxuYXZpZC5l bWFtZG9vc3RAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+ClNpZ25lZC1vZmYtYnk6IEJlbiBIdXRjaGluZ3MgPGJlbi5odXRjaGlu Z3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIGRyaXZlcnMvbmV0L3dpbWF4L2kyNDAwbS9vcC1yZmtp bGwuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigt KQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpbWF4L2kyNDAwbS9vcC1yZmtpbGwuYyBiL2Ry aXZlcnMvbmV0L3dpbWF4L2kyNDAwbS9vcC1yZmtpbGwuYwppbmRleCA3YzkyZThhY2U5YzIuLmRj NmZlOTNjZTcxZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvd2ltYXgvaTI0MDBtL29wLXJma2ls bC5jCisrKyBiL2RyaXZlcnMvbmV0L3dpbWF4L2kyNDAwbS9vcC1yZmtpbGwuYwpAQCAtMTQyLDEy ICsxNDIsMTIgQEAgaW50IGkyNDAwbV9vcF9yZmtpbGxfc3dfdG9nZ2xlKHN0cnVjdCB3aW1heF9k ZXYgKndpbWF4X2RldiwKIAkJCSIlZFxuIiwgcmVzdWx0KTsKIAlyZXN1bHQgPSAwOwogZXJyb3Jf Y21kOgotCWtmcmVlKGNtZCk7CiAJa2ZyZWVfc2tiKGFja19za2IpOwogZXJyb3JfbXNnX3RvX2Rl djoKIGVycm9yX2FsbG9jOgogCWRfZm5lbmQoNCwgZGV2LCAiKHdpbWF4X2RldiAlcCBzdGF0ZSAl ZCkgPSAlZFxuIiwKIAkJd2ltYXhfZGV2LCBzdGF0ZSwgcmVzdWx0KTsKKwlrZnJlZShjbWQpOwog CXJldHVybiByZXN1bHQ7CiB9CiAKCkZyb20gZmY1OGYwOWFlZDg2NjA0N2UxMDRjNzQ3YzM2ODQx OTZlZDIxMGNiZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQmFycmV0IFJob2RlbiA8 YnJob0Bnb29nbGUuY29tPgpEYXRlOiBUaHUsIDI1IEFwciAyMDE5IDExOjU1OjUwIC0wNDAwClN1 YmplY3Q6IGV4dDQ6IGZpeCB1c2UtYWZ0ZXItZnJlZSByYWNlIHdpdGggZGVidWdfd2FudF9leHRy YV9pc2l6ZQoKY29tbWl0IDdiYzA0YzVjMmNjNDY3YzViNDBmMmIwM2JhMDhkYTE3NGEwZDVmYTcg dXBzdHJlYW0uCgpXaGVuIHJlbW91bnRpbmcgd2l0aCBkZWJ1Z193YW50X2V4dHJhX2lzaXplLCB3 ZSB3ZXJlIG5vdCBwZXJmb3JtaW5nIHRoZQpzYW1lIGNoZWNrcyB0aGF0IHdlIGRvIGR1cmluZyBh IG5vcm1hbCBtb3VudC4gIFRoYXQgYWxsb3dlZCB1cyB0byBzZXQgYQp2YWx1ZSBmb3Igc193YW50 X2V4dHJhX2lzaXplIHRoYXQgcmVhY2hlZCBvdXRzaWRlIHRoZSBzX2lub2RlX3NpemUuCgpGaXhl czogZTJiOTExYzUzNTg0ICgiZXh0NDogY2xlYW4gdXAgZmVhdHVyZSB0ZXN0IG1hY3JvcyB3aXRo IHByZWRpY2F0ZSBmdW5jdGlvbnMiKQpSZXBvcnRlZC1ieTogc3l6Ym90K2Y1ODRlZmEwYWM3MjEz YzIyNmI3QHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KUmV2aWV3ZWQtYnk6IEphbiBLYXJhIDxq YWNrQHN1c2UuY3o+ClNpZ25lZC1vZmYtYnk6IEJhcnJldCBSaG9kZW4gPGJyaG9AZ29vZ2xlLmNv bT4KU2lnbmVkLW9mZi1ieTogVGhlb2RvcmUgVHMnbyA8dHl0c29AbWl0LmVkdT4KW2J3aDogQmFj a3BvcnRlZCB0byA0LjQ6IFRoZSBkZWJ1Z193YW50X2V4dHJhX2lzaXplIG1vdW50IG9wdGlvbiBp cyBub3QKIHN1cHBvcnRlZF0KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNoaW5ncyA8YmVuLmh1dGNo aW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZnMvZXh0NC9zdXBlci5jIHwgNTYgKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQs IDMzIGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2ZzL2V4dDQv c3VwZXIuYyBiL2ZzL2V4dDQvc3VwZXIuYwppbmRleCA2ZjAwMzg4YTE0NzEuLjU0ZTFjMmY4ZWE3 OSAxMDA2NDQKLS0tIGEvZnMvZXh0NC9zdXBlci5jCisrKyBiL2ZzL2V4dDQvc3VwZXIuYwpAQCAt MzE2OSw2ICszMTY5LDM2IEBAIGludCBleHQ0X2NhbGN1bGF0ZV9vdmVyaGVhZChzdHJ1Y3Qgc3Vw ZXJfYmxvY2sgKnNiKQogCXJldHVybiAwOwogfQogCitzdGF0aWMgdm9pZCBleHQ0X2NsYW1wX3dh bnRfZXh0cmFfaXNpemUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKK3sKKwlzdHJ1Y3QgZXh0NF9z Yl9pbmZvICpzYmkgPSBFWFQ0X1NCKHNiKTsKKwlzdHJ1Y3QgZXh0NF9zdXBlcl9ibG9jayAqZXMg PSBzYmktPnNfZXM7CisKKwkvKiBkZXRlcm1pbmUgdGhlIG1pbmltdW0gc2l6ZSBvZiBuZXcgbGFy Z2UgaW5vZGVzLCBpZiBwcmVzZW50ICovCisJaWYgKHNiaS0+c19pbm9kZV9zaXplID4gRVhUNF9H T09EX09MRF9JTk9ERV9TSVpFKSB7CisJCXNiaS0+c193YW50X2V4dHJhX2lzaXplID0gc2l6ZW9m KHN0cnVjdCBleHQ0X2lub2RlKSAtCisJCQkJCQkgICAgIEVYVDRfR09PRF9PTERfSU5PREVfU0la RTsKKwkJaWYgKGV4dDRfaGFzX2ZlYXR1cmVfZXh0cmFfaXNpemUoc2IpKSB7CisJCQlpZiAoc2Jp LT5zX3dhbnRfZXh0cmFfaXNpemUgPAorCQkJICAgIGxlMTZfdG9fY3B1KGVzLT5zX3dhbnRfZXh0 cmFfaXNpemUpKQorCQkJCXNiaS0+c193YW50X2V4dHJhX2lzaXplID0KKwkJCQkJbGUxNl90b19j cHUoZXMtPnNfd2FudF9leHRyYV9pc2l6ZSk7CisJCQlpZiAoc2JpLT5zX3dhbnRfZXh0cmFfaXNp emUgPAorCQkJICAgIGxlMTZfdG9fY3B1KGVzLT5zX21pbl9leHRyYV9pc2l6ZSkpCisJCQkJc2Jp LT5zX3dhbnRfZXh0cmFfaXNpemUgPQorCQkJCQlsZTE2X3RvX2NwdShlcy0+c19taW5fZXh0cmFf aXNpemUpOworCQl9CisJfQorCS8qIENoZWNrIGlmIGVub3VnaCBpbm9kZSBzcGFjZSBpcyBhdmFp bGFibGUgKi8KKwlpZiAoRVhUNF9HT09EX09MRF9JTk9ERV9TSVpFICsgc2JpLT5zX3dhbnRfZXh0 cmFfaXNpemUgPgorCQkJCQkJCXNiaS0+c19pbm9kZV9zaXplKSB7CisJCXNiaS0+c193YW50X2V4 dHJhX2lzaXplID0gc2l6ZW9mKHN0cnVjdCBleHQ0X2lub2RlKSAtCisJCQkJCQkgICAgICAgRVhU NF9HT09EX09MRF9JTk9ERV9TSVpFOworCQlleHQ0X21zZyhzYiwgS0VSTl9JTkZPLAorCQkJICJy ZXF1aXJlZCBleHRyYSBpbm9kZSBzcGFjZSBub3QgYXZhaWxhYmxlIik7CisJfQorfQorCiBzdGF0 aWMgdm9pZCBleHQ0X3NldF9yZXN2X2NsdXN0ZXJzKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCiB7 CiAJZXh0NF9mc2Jsa190IHJlc3ZfY2x1c3RlcnM7CkBAIC0zOTkxLDI5ICs0MDIxLDcgQEAgbm9f am91cm5hbDoKIAlpZiAoZXh0NF9zZXR1cF9zdXBlcihzYiwgZXMsIHNiLT5zX2ZsYWdzICYgTVNf UkRPTkxZKSkKIAkJc2ItPnNfZmxhZ3MgfD0gTVNfUkRPTkxZOwogCi0JLyogZGV0ZXJtaW5lIHRo ZSBtaW5pbXVtIHNpemUgb2YgbmV3IGxhcmdlIGlub2RlcywgaWYgcHJlc2VudCAqLwotCWlmIChz YmktPnNfaW5vZGVfc2l6ZSA+IEVYVDRfR09PRF9PTERfSU5PREVfU0laRSkgewotCQlzYmktPnNf d2FudF9leHRyYV9pc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZXh0NF9pbm9kZSkgLQotCQkJCQkJICAg ICBFWFQ0X0dPT0RfT0xEX0lOT0RFX1NJWkU7Ci0JCWlmIChleHQ0X2hhc19mZWF0dXJlX2V4dHJh X2lzaXplKHNiKSkgewotCQkJaWYgKHNiaS0+c193YW50X2V4dHJhX2lzaXplIDwKLQkJCSAgICBs ZTE2X3RvX2NwdShlcy0+c193YW50X2V4dHJhX2lzaXplKSkKLQkJCQlzYmktPnNfd2FudF9leHRy YV9pc2l6ZSA9Ci0JCQkJCWxlMTZfdG9fY3B1KGVzLT5zX3dhbnRfZXh0cmFfaXNpemUpOwotCQkJ aWYgKHNiaS0+c193YW50X2V4dHJhX2lzaXplIDwKLQkJCSAgICBsZTE2X3RvX2NwdShlcy0+c19t aW5fZXh0cmFfaXNpemUpKQotCQkJCXNiaS0+c193YW50X2V4dHJhX2lzaXplID0KLQkJCQkJbGUx Nl90b19jcHUoZXMtPnNfbWluX2V4dHJhX2lzaXplKTsKLQkJfQotCX0KLQkvKiBDaGVjayBpZiBl bm91Z2ggaW5vZGUgc3BhY2UgaXMgYXZhaWxhYmxlICovCi0JaWYgKEVYVDRfR09PRF9PTERfSU5P REVfU0laRSArIHNiaS0+c193YW50X2V4dHJhX2lzaXplID4KLQkJCQkJCQlzYmktPnNfaW5vZGVf c2l6ZSkgewotCQlzYmktPnNfd2FudF9leHRyYV9pc2l6ZSA9IHNpemVvZihzdHJ1Y3QgZXh0NF9p bm9kZSkgLQotCQkJCQkJICAgICAgIEVYVDRfR09PRF9PTERfSU5PREVfU0laRTsKLQkJZXh0NF9t c2coc2IsIEtFUk5fSU5GTywgInJlcXVpcmVkIGV4dHJhIGlub2RlIHNwYWNlIG5vdCIKLQkJCSAi YXZhaWxhYmxlIik7Ci0JfQorCWV4dDRfY2xhbXBfd2FudF9leHRyYV9pc2l6ZShzYik7CiAKIAll eHQ0X3NldF9yZXN2X2NsdXN0ZXJzKHNiKTsKIApAQCAtNDc2Niw2ICs0Nzc0LDggQEAgc3RhdGlj IGludCBleHQ0X3JlbW91bnQoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50ICpmbGFncywgY2hh ciAqZGF0YSkKIAkJZ290byByZXN0b3JlX29wdHM7CiAJfQogCisJZXh0NF9jbGFtcF93YW50X2V4 dHJhX2lzaXplKHNiKTsKKwogCWlmICgob2xkX29wdHMuc19tb3VudF9vcHQgJiBFWFQ0X01PVU5U X0pPVVJOQUxfQ0hFQ0tTVU0pIF4KIAkgICAgdGVzdF9vcHQoc2IsIEpPVVJOQUxfQ0hFQ0tTVU0p KSB7CiAJCWV4dDRfbXNnKHNiLCBLRVJOX0VSUiwgImNoYW5naW5nIGpvdXJuYWxfY2hlY2tzdW0g IgoKRnJvbSAzYzYzMDdkNGViYzEwMDE1NjFmY2Y1YjY5NjdkZDc4YTUzZmYyZDFjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaGVvZG9yZSBUcydvIDx0eXRzb0BtaXQuZWR1PgpEYXRl OiBUaHUsIDcgTm92IDIwMTkgMjE6NDM6NDEgLTA1MDAKU3ViamVjdDogZXh0NDogYWRkIG1vcmUg cGFyYW5vaWEgY2hlY2tpbmcgaW4gZXh0NF9leHBhbmRfZXh0cmFfaXNpemUgaGFuZGxpbmcKCmNv bW1pdCA0ZWE5OTkzNmExNjMwZjUxZmMzYTJkNjFhNThlYzRhMWM0YjdkNTVhIHVwc3RyZWFtLgoK SXQncyBwb3NzaWJsZSB0byBzcGVjaWZ5IGEgbm9uLXplcm8gc193YW50X2V4dHJhX2lzaXplIHZp YSBkZWJ1Z2dpbmcKb3B0aW9uLCBhbmQgdGhpcyBjYW4gY2F1c2UgYmFkIHRoaW5ncyh0bSkgdG8g aGFwcGVuIHdoZW4gdXNpbmcgYSBmaWxlCnN5c3RlbSB3aXRoIGFuIGlub2RlIHNpemUgb2YgMTI4 IGJ5dGVzLgoKQWRkIGJldHRlciBjaGVja2luZyB3aGVuIHRoZSBmaWxlIHN5c3RlbSBpcyBtb3Vu dGVkLCBhcyB3ZWxsIGFzIHdoZW4Kd2UgYXJlIGFjdHVhbGx5IGRvaW5nIHRoZSB0cnlpbmcgdG8g ZG8gdGhlIGlub2RlIGV4cGFuc2lvbi4KCkxpbms6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL3Iv MjAxOTExMTAxMjE1MTAuR0gyMzMyNUBtaXQuZWR1ClJlcG9ydGVkLWJ5OiBzeXpib3QrZjhkNmY4 Mzg2Y2VhY2RiZmZmNTdAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpSZXBvcnRlZC1ieTogc3l6 Ym90KzMzZDdlYTcyZTQ3ZGUzYmRmNGUxQHN5emthbGxlci5hcHBzcG90bWFpbC5jb20KUmVwb3J0 ZWQtYnk6IHN5emJvdCs0NGI2NzYzZWRmYzE3MTQ0Mjk2ZkBzeXprYWxsZXIuYXBwc3BvdG1haWwu Y29tClNpZ25lZC1vZmYtYnk6IFRoZW9kb3JlIFRzJ28gPHR5dHNvQG1pdC5lZHU+Cltid2g6IEJh Y2twb3J0ZWQgdG8gNC40OiBhZGp1c3QgY29udGV4dF0KU2lnbmVkLW9mZi1ieTogQmVuIEh1dGNo aW5ncyA8YmVuLmh1dGNoaW5nc0Bjb2RldGhpbmsuY28udWs+Ci0tLQogZnMvZXh0NC9pbm9kZS5j IHwgMTUgKysrKysrKysrKysrKysrCiBmcy9leHQ0L3N1cGVyLmMgfCAyMCArKysrKysrKysrKyst LS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2ZzL2V4dDQvaW5vZGUuYyBiL2ZzL2V4dDQvaW5vZGUuYwppbmRleCAz NTU3YzU3MTdjOGQuLjI3MWQ4ZDlkMDU5OCAxMDA2NDQKLS0tIGEvZnMvZXh0NC9pbm9kZS5jCisr KyBiL2ZzL2V4dDQvaW5vZGUuYwpAQCAtNTE4OSwxMCArNTE4OSwyNSBAQCBzdGF0aWMgaW50IGV4 dDRfZXhwYW5kX2V4dHJhX2lzaXplKHN0cnVjdCBpbm9kZSAqaW5vZGUsCiB7CiAJc3RydWN0IGV4 dDRfaW5vZGUgKnJhd19pbm9kZTsKIAlzdHJ1Y3QgZXh0NF94YXR0cl9pYm9keV9oZWFkZXIgKmhl YWRlcjsKKwl1bnNpZ25lZCBpbnQgaW5vZGVfc2l6ZSA9IEVYVDRfSU5PREVfU0laRShpbm9kZS0+ aV9zYik7CisJc3RydWN0IGV4dDRfaW5vZGVfaW5mbyAqZWkgPSBFWFQ0X0koaW5vZGUpOwogCiAJ aWYgKEVYVDRfSShpbm9kZSktPmlfZXh0cmFfaXNpemUgPj0gbmV3X2V4dHJhX2lzaXplKQogCQly ZXR1cm4gMDsKIAorCS8qIHRoaXMgd2FzIGNoZWNrZWQgYXQgaWdldCB0aW1lLCBidXQgZG91Ymxl IGNoZWNrIGZvciBnb29kIG1lYXN1cmUgKi8KKwlpZiAoKEVYVDRfR09PRF9PTERfSU5PREVfU0la RSArIGVpLT5pX2V4dHJhX2lzaXplID4gaW5vZGVfc2l6ZSkgfHwKKwkgICAgKGVpLT5pX2V4dHJh X2lzaXplICYgMykpIHsKKwkJRVhUNF9FUlJPUl9JTk9ERShpbm9kZSwgImJhZCBleHRyYV9pc2l6 ZSAldSAoaW5vZGUgc2l6ZSAldSkiLAorCQkJCSBlaS0+aV9leHRyYV9pc2l6ZSwKKwkJCQkgRVhU NF9JTk9ERV9TSVpFKGlub2RlLT5pX3NiKSk7CisJCXJldHVybiAtRUZTQ09SUlVQVEVEOworCX0K KwlpZiAoKG5ld19leHRyYV9pc2l6ZSA8IGVpLT5pX2V4dHJhX2lzaXplKSB8fAorCSAgICAobmV3 X2V4dHJhX2lzaXplIDwgNCkgfHwKKwkgICAgKG5ld19leHRyYV9pc2l6ZSA+IGlub2RlX3NpemUg LSBFWFQ0X0dPT0RfT0xEX0lOT0RFX1NJWkUpKQorCQlyZXR1cm4gLUVJTlZBTDsJLyogU2hvdWxk IG5ldmVyIGhhcHBlbiAqLworCiAJcmF3X2lub2RlID0gZXh0NF9yYXdfaW5vZGUoJmlsb2MpOwog CiAJaGVhZGVyID0gSUhEUihpbm9kZSwgcmF3X2lub2RlKTsKZGlmZiAtLWdpdCBhL2ZzL2V4dDQv c3VwZXIuYyBiL2ZzL2V4dDQvc3VwZXIuYwppbmRleCA1NGUxYzJmOGVhNzkuLmFkZjAyYjE1MDlj YSAxMDA2NDQKLS0tIGEvZnMvZXh0NC9zdXBlci5jCisrKyBiL2ZzL2V4dDQvc3VwZXIuYwpAQCAt MzE3MywxMSArMzE3MywxNSBAQCBzdGF0aWMgdm9pZCBleHQ0X2NsYW1wX3dhbnRfZXh0cmFfaXNp emUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYikKIHsKIAlzdHJ1Y3QgZXh0NF9zYl9pbmZvICpzYmkg PSBFWFQ0X1NCKHNiKTsKIAlzdHJ1Y3QgZXh0NF9zdXBlcl9ibG9jayAqZXMgPSBzYmktPnNfZXM7 CisJdW5zaWduZWQgZGVmX2V4dHJhX2lzaXplID0gc2l6ZW9mKHN0cnVjdCBleHQ0X2lub2RlKSAt CisJCQkJCQlFWFQ0X0dPT0RfT0xEX0lOT0RFX1NJWkU7CiAKLQkvKiBkZXRlcm1pbmUgdGhlIG1p bmltdW0gc2l6ZSBvZiBuZXcgbGFyZ2UgaW5vZGVzLCBpZiBwcmVzZW50ICovCi0JaWYgKHNiaS0+ c19pbm9kZV9zaXplID4gRVhUNF9HT09EX09MRF9JTk9ERV9TSVpFKSB7Ci0JCXNiaS0+c193YW50 X2V4dHJhX2lzaXplID0gc2l6ZW9mKHN0cnVjdCBleHQ0X2lub2RlKSAtCi0JCQkJCQkgICAgIEVY VDRfR09PRF9PTERfSU5PREVfU0laRTsKKwlpZiAoc2JpLT5zX2lub2RlX3NpemUgPT0gRVhUNF9H T09EX09MRF9JTk9ERV9TSVpFKSB7CisJCXNiaS0+c193YW50X2V4dHJhX2lzaXplID0gMDsKKwkJ cmV0dXJuOworCX0KKwlpZiAoc2JpLT5zX3dhbnRfZXh0cmFfaXNpemUgPCA0KSB7CisJCXNiaS0+ c193YW50X2V4dHJhX2lzaXplID0gZGVmX2V4dHJhX2lzaXplOwogCQlpZiAoZXh0NF9oYXNfZmVh dHVyZV9leHRyYV9pc2l6ZShzYikpIHsKIAkJCWlmIChzYmktPnNfd2FudF9leHRyYV9pc2l6ZSA8 CiAJCQkgICAgbGUxNl90b19jcHUoZXMtPnNfd2FudF9leHRyYV9pc2l6ZSkpCkBAIC0zMTkwLDEw ICszMTk0LDEwIEBAIHN0YXRpYyB2b2lkIGV4dDRfY2xhbXBfd2FudF9leHRyYV9pc2l6ZShzdHJ1 Y3Qgc3VwZXJfYmxvY2sgKnNiKQogCQl9CiAJfQogCS8qIENoZWNrIGlmIGVub3VnaCBpbm9kZSBz cGFjZSBpcyBhdmFpbGFibGUgKi8KLQlpZiAoRVhUNF9HT09EX09MRF9JTk9ERV9TSVpFICsgc2Jp LT5zX3dhbnRfZXh0cmFfaXNpemUgPgotCQkJCQkJCXNiaS0+c19pbm9kZV9zaXplKSB7Ci0JCXNi aS0+c193YW50X2V4dHJhX2lzaXplID0gc2l6ZW9mKHN0cnVjdCBleHQ0X2lub2RlKSAtCi0JCQkJ CQkgICAgICAgRVhUNF9HT09EX09MRF9JTk9ERV9TSVpFOworCWlmICgoc2JpLT5zX3dhbnRfZXh0 cmFfaXNpemUgPiBzYmktPnNfaW5vZGVfc2l6ZSkgfHwKKwkgICAgKEVYVDRfR09PRF9PTERfSU5P REVfU0laRSArIHNiaS0+c193YW50X2V4dHJhX2lzaXplID4KKwkJCQkJCQlzYmktPnNfaW5vZGVf c2l6ZSkpIHsKKwkJc2JpLT5zX3dhbnRfZXh0cmFfaXNpemUgPSBkZWZfZXh0cmFfaXNpemU7CiAJ CWV4dDRfbXNnKHNiLCBLRVJOX0lORk8sCiAJCQkgInJlcXVpcmVkIGV4dHJhIGlub2RlIHNwYWNl IG5vdCBhdmFpbGFibGUiKTsKIAl9CgpGcm9tIGMyMmI2ZmJhNmEyODUwOGUyMmUwMjFhMzljZmVm N2YwNDU3OWQ4YmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFl1ZUhhaWJpbmcgPHl1 ZWhhaWJpbmdAaHVhd2VpLmNvbT4KRGF0ZTogTW9uLCAxIEFwciAyMDE5IDA5OjM1OjU0ICswODAw ClN1YmplY3Q6IGRjY3A6IEZpeCBtZW1sZWFrIGluIF9fZmVhdF9yZWdpc3Rlcl9zcAoKY29tbWl0 IDFkM2ZmMDk1MGUyYjQwZGM4NjFiMTczOTAyOTY0OWQwM2Y1OTE4MjAgdXBzdHJlYW0uCgpJZiBk Y2NwX2ZlYXRfcHVzaF9jaGFuZ2UgZmFpbHMsIHdlIGZvcmdldCBmcmVlIHRoZSBtZW0Kd2hpY2gg aXMgYWxsb2NlZCBieSBrbWVtZHVwIGluIGRjY3BfZmVhdF9jbG9uZV9zcF92YWwuCgpSZXBvcnRl ZC1ieTogSHVsayBSb2JvdCA8aHVsa2NpQGh1YXdlaS5jb20+CkZpeGVzOiBlOGVmOTY3YTU0ZjQg KCJkY2NwOiBSZWdpc3RyYXRpb24gcm91dGluZXMgZm9yIGNoYW5naW5nIGZlYXR1cmUgdmFsdWVz IikKUmV2aWV3ZWQtYnk6IE11a2VzaCBPamhhIDxtb2poYUBjb2RlYXVyb3JhLm9yZz4KU2lnbmVk LW9mZi1ieTogWXVlSGFpYmluZyA8eXVlaGFpYmluZ0BodWF3ZWkuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ClNpZ25lZC1vZmYtYnk6IEJl biBIdXRjaGluZ3MgPGJlbi5odXRjaGluZ3NAY29kZXRoaW5rLmNvLnVrPgotLS0KIG5ldC9kY2Nw L2ZlYXQuYyB8IDcgKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMSBk ZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9kY2NwL2ZlYXQuYyBiL25ldC9kY2NwL2ZlYXQu YwppbmRleCBmMjI3ZjAwMmM3M2QuLmRiODdkOWY1ODAxOSAxMDA2NDQKLS0tIGEvbmV0L2RjY3Av ZmVhdC5jCisrKyBiL25ldC9kY2NwL2ZlYXQuYwpAQCAtNzM4LDcgKzczOCwxMiBAQCBzdGF0aWMg aW50IF9fZmVhdF9yZWdpc3Rlcl9zcChzdHJ1Y3QgbGlzdF9oZWFkICpmbiwgdTggZmVhdCwgdTgg aXNfbG9jYWwsCiAJaWYgKGRjY3BfZmVhdF9jbG9uZV9zcF92YWwoJmZ2YWwsIHNwX3ZhbCwgc3Bf bGVuKSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKLQlyZXR1cm4gZGNjcF9mZWF0X3B1c2hfY2hhbmdl KGZuLCBmZWF0LCBpc19sb2NhbCwgbWFuZGF0b3J5LCAmZnZhbCk7CisJaWYgKGRjY3BfZmVhdF9w dXNoX2NoYW5nZShmbiwgZmVhdCwgaXNfbG9jYWwsIG1hbmRhdG9yeSwgJmZ2YWwpKSB7CisJCWtm cmVlKGZ2YWwuc3AudmVjKTsKKwkJcmV0dXJuIC1FTk9NRU07CisJfQorCisJcmV0dXJuIDA7CiB9 CiAKIC8qKgo= --=-ZzTKAmGNPEtBfmij9hND--