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=-8.3 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham 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 2116EC433DF for ; Thu, 25 Jun 2020 08:18:56 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DE655207FC for ; Thu, 25 Jun 2020 08:18:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="rIUicT2d" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DE655207FC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=amd-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 88AA56E528; Thu, 25 Jun 2020 08:18:55 +0000 (UTC) Received: from mail-wm1-x344.google.com (mail-wm1-x344.google.com [IPv6:2a00:1450:4864:20::344]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0C8B36E528 for ; Thu, 25 Jun 2020 08:18:54 +0000 (UTC) Received: by mail-wm1-x344.google.com with SMTP id f18so4987142wml.3 for ; Thu, 25 Jun 2020 01:18:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=reply-to:subject:to:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding:content-language; bh=s5i+x7ILl+bNJhSitz9vr1Qk/8G2Jyn/n1MgLPXrgfQ=; b=rIUicT2d5vYAL3zO4+XrdI1Bx0BmH0ubSCvoodF/Uci0DcuDf6fuFb1kMHVg+iN9a2 VC+tNDfymKrLfsZxq0LW5aU1p3Y5baHt2AuV6o4dKjVThL958EZ87nMMxKyuqefkjqoQ 5Aj2/O+6tE4rtG3iacKSffMIrgZstwKvSU73uoXcRxeky55VZj1zPrcAP0n4bB9N091e FsMXlYUmLpxVpICiFOgQRDsZ5K7OgYBpIr//J2OmTudjMp5q/63a6lB90uNvsgvw0Smv 4dd0OqblG3AnA/rJiT0eybbP1Gr7OfUpwA983uFBlJX2W+DCKHoOjTbXKEcgVHDP85RK U1Cw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:reply-to:subject:to:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=s5i+x7ILl+bNJhSitz9vr1Qk/8G2Jyn/n1MgLPXrgfQ=; b=g4LRUZdLWQd+jrxQIvey7bYjqOhE1HOfaWvQjiver2kGRvdtaERlzAK76+Sru398nI x31QlfyI/akBb6LpUEEKxwKaV9vWOE+YRr0cXOA5tQIsjVtzwtLpPSkRuFTwvRs4wDxO eY4VcTBp5xwQHAbW+OqO9OfUG9//GwcmkzIsTtOC5tkfKhGRoU6OE8mKKOY+jpHhusNO sbOp27vBEHZKYNRbVKwhG553pzcus+QXSX6Rb34rRp9XethOH1rUYn0kKLbvijKtu67v sElyJKcOZs31FBU12vqDPrp5URZBIb1NJOr3M8/sFezDcT6HRJOlfWP7MAhvtNou3T2Z 6sxw== X-Gm-Message-State: AOAM532fkj4Q5FYPUO4YC3njR9i2ygA+BmalNf4yeZipbl0orZ7csCns oHgVl/t+Dp3Uznq0GNgXHSIYNXS6 X-Google-Smtp-Source: ABdhPJx4SYAFEFzn8k5CgNNoT2JY7QPcIFCqjQ7fCLkMp9qz/qtjJKNsjAI5Zfwi6SW0b8Ip5RwMGA== X-Received: by 2002:a7b:c0c9:: with SMTP id s9mr1955153wmh.166.1593073132297; Thu, 25 Jun 2020 01:18:52 -0700 (PDT) Received: from ?IPv6:2a02:908:1252:fb60:be8a:bd56:1f94:86e7? ([2a02:908:1252:fb60:be8a:bd56:1f94:86e7]) by smtp.gmail.com with ESMTPSA id t205sm11473227wmt.8.2020.06.25.01.18.51 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 25 Jun 2020 01:18:51 -0700 (PDT) Subject: Re: [PATCH 1/2] drm/amdgpu: Clean up KFD VMID assignment To: Felix Kuehling , amd-gfx@lists.freedesktop.org References: <20200625031834.16122-1-Felix.Kuehling@amd.com> From: =?UTF-8?Q?Christian_K=c3=b6nig?= Message-ID: <1dcf7569-ed9e-676d-4f61-0075295f02d5@gmail.com> Date: Thu, 25 Jun 2020 10:18:50 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <20200625031834.16122-1-Felix.Kuehling@amd.com> Content-Language: en-US X-BeenThere: amd-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: christian.koenig@amd.com Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: amd-gfx-bounces@lists.freedesktop.org Sender: "amd-gfx" QW0gMjUuMDYuMjAgdW0gMDU6MTggc2NocmllYiBGZWxpeCBLdWVobGluZzoKPiBUaGUgS0ZEIFZN SUQgYXNzaWdubWVudCB3YXMgaGFyZC1jb2RlZCBpbiBhIGZldyBwbGFjZXMuIENvbnNvbGlkYXRl IHRoYXQgaW4KPiBhIHNpbmdsZSB2YXJpYWJsZSBhZGV2LT52bV9tYW5hZ2VyLmZpcnN0X2tmZF92 bWlkLiBUaGUgdmFsdWUgaXMgc3RpbGwKPiBhc3NpZ25lZCBpbiBnbWMtaXAtdmVyc2lvbi1zcGVj aWZpYyBjb2RlLgo+Cj4gU2lnbmVkLW9mZi1ieTogRmVsaXggS3VlaGxpbmcgPEZlbGl4Lkt1ZWhs aW5nQGFtZC5jb20+CgpSZXZpZXdlZC1ieTogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtv ZW5pZ0BhbWQuY29tPiBmb3IgdGhpcyBvbmUuCgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5jIHwgMTIgKysrKystLS0tLS0tCj4gICBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfaWRzLmMgICAgfCAgMyArKysKPiAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oICAgICB8ICAxICsKPiAgIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2Npa2QuaCAgICAgICAgICB8ICAyIC0tCj4gICBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9nZnhfdjEwXzAuYyAgICAgfCAgNiArKy0tLS0KPiAgIGRyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2dmeF92N18wLmMgICAgICB8ICA2ICsrLS0tLQo+ICAgZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYyAgICAgIHwgIDYgKystLS0tCj4gICBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nZnhfdjlfMC5jICAgICAgfCAgNiArKy0tLS0KPiAgIGRyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2dtY192MTBfMC5jICAgICB8ICA1ICstLS0tCj4gICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZfMC5jICAgICAgfCAgMiArLQo+ICAgZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYyAgICAgIHwgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmMgICAgICB8ICAyICstCj4gICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jICAgICAgfCAgNyArLS0tLS0tCj4gICBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9zaV9lbnVtcy5oICAgICAgfCAgMSAtCj4gICBkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9zaWQuaCAgICAgICAgICAgfCAgMiAtLQo+ICAgZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvdmlkLmggICAgICAgICAgIHwgIDIgLS0KPiAgIDE2IGZpbGVzIGNoYW5nZWQs IDIyIGluc2VydGlvbnMoKyksIDQzIGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuYwo+IGluZGV4IGFkNTlhYzQ0MjNiOC4uMWI4NjVmZWQ3 NGNhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRr ZmQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuYwo+ IEBAIC0zMSw4ICszMSw2IEBACj4gICAjaW5jbHVkZSAiYW1kZ3B1X3hnbWkuaCIKPiAgICNpbmNs dWRlIDx1YXBpL2xpbnV4L2tmZF9pb2N0bC5oPgo+ICAgCj4gLXN0YXRpYyBjb25zdCB1bnNpZ25l ZCBpbnQgY29tcHV0ZV92bWlkX2JpdG1hcCA9IDB4RkYwMDsKPiAtCj4gICAvKiBUb3RhbCBtZW1v cnkgc2l6ZSBpbiBzeXN0ZW0gbWVtb3J5IGFuZCBhbGwgR1BVIFZSQU0uIFVzZWQgdG8KPiAgICAq IGVzdGltYXRlIHdvcnN0IGNhc2UgYW1vdW50IG9mIG1lbW9yeSB0byByZXNlcnZlIGZvciBwYWdl IHRhYmxlcwo+ICAgICovCj4gQEAgLTExMyw3ICsxMTEsOSBAQCB2b2lkIGFtZGdwdV9hbWRrZmRf ZGV2aWNlX2luaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICAKPiAgIAlpZiAoYWRl di0+a2ZkLmRldikgewo+ICAgCQlzdHJ1Y3Qga2dkMmtmZF9zaGFyZWRfcmVzb3VyY2VzIGdwdV9y ZXNvdXJjZXMgPSB7Cj4gLQkJCS5jb21wdXRlX3ZtaWRfYml0bWFwID0gY29tcHV0ZV92bWlkX2Jp dG1hcCwKPiArCQkJLmNvbXB1dGVfdm1pZF9iaXRtYXAgPQo+ICsJCQkJKCgxIDw8IEFNREdQVV9O VU1fVk1JRCkgLSAxKSAtCj4gKwkJCQkoKDEgPDwgYWRldi0+dm1fbWFuYWdlci5maXJzdF9rZmRf dm1pZCkgLSAxKSwKPiAgIAkJCS5udW1fcGlwZV9wZXJfbWVjID0gYWRldi0+Z2Z4Lm1lYy5udW1f cGlwZV9wZXJfbWVjLAo+ICAgCQkJLm51bV9xdWV1ZV9wZXJfcGlwZSA9IGFkZXYtPmdmeC5tZWMu bnVtX3F1ZXVlX3Blcl9waXBlLAo+ICAgCQkJLmdwdXZtX3NpemUgPSBtaW4oYWRldi0+dm1fbWFu YWdlci5tYXhfcGZuCj4gQEAgLTYzNywxMCArNjM3LDggQEAgdm9pZCBhbWRncHVfYW1ka2ZkX3Nl dF9jb21wdXRlX2lkbGUoc3RydWN0IGtnZF9kZXYgKmtnZCwgYm9vbCBpZGxlKQo+ICAgCj4gICBi b29sIGFtZGdwdV9hbWRrZmRfaXNfa2ZkX3ZtaWQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs IHUzMiB2bWlkKQo+ICAgewo+IC0JaWYgKGFkZXYtPmtmZC5kZXYpIHsKPiAtCQlpZiAoKDEgPDwg dm1pZCkgJiBjb21wdXRlX3ZtaWRfYml0bWFwKQo+IC0JCQlyZXR1cm4gdHJ1ZTsKPiAtCX0KPiAr CWlmIChhZGV2LT5rZmQuZGV2KQo+ICsJCXJldHVybiB2bWlkID49IGFkZXYtPnZtX21hbmFnZXIu Zmlyc3Rfa2ZkX3ZtaWQ7Cj4gICAKPiAgIAlyZXR1cm4gZmFsc2U7Cj4gICB9Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pZHMuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pZHMuYwo+IGluZGV4IDI2N2ZhNDVkZGI2Ni4uNzUyMWY0 YWI1NWRlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9p ZHMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9pZHMuYwo+IEBA IC01NzQsNiArNTc0LDkgQEAgdm9pZCBhbWRncHVfdm1pZF9tZ3JfaW5pdChzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldikKPiAgIAkJSU5JVF9MSVNUX0hFQUQoJmlkX21nci0+aWRzX2xydSk7Cj4g ICAJCWF0b21pY19zZXQoJmlkX21nci0+cmVzZXJ2ZWRfdm1pZF9udW0sIDApOwo+ICAgCj4gKwkJ LyogbWFuYWdlIG9ubHkgVk1JRHMgbm90IHVzZWQgYnkgS0ZEICovCj4gKwkJaWRfbWdyLT5udW1f aWRzID0gYWRldi0+dm1fbWFuYWdlci5maXJzdF9rZmRfdm1pZDsKPiArCj4gICAJCS8qIHNraXAg b3ZlciBWTUlEIDAsIHNpbmNlIGl0IGlzIHRoZSBzeXN0ZW0gVk0gKi8KPiAgIAkJZm9yIChqID0g MTsgaiA8IGlkX21nci0+bnVtX2lkczsgKytqKSB7Cj4gICAJCQlhbWRncHVfdm1pZF9yZXNldChh ZGV2LCBpLCBqKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1k Z3B1X3ZtLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdm0uaAo+IGluZGV4 IGM4ZTY4ZDc4OTBiZi4uNzcwMDI1YTVlNTAwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9hbWQvYW1kZ3B1L2FtZGdwdV92bS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X3ZtLmgKPiBAQCAtMzI0LDYgKzMyNCw3IEBAIHN0cnVjdCBhbWRncHVfdm0gewo+ ICAgc3RydWN0IGFtZGdwdV92bV9tYW5hZ2VyIHsKPiAgIAkvKiBIYW5kbGluZyBvZiBWTUlEcyAq Lwo+ICAgCXN0cnVjdCBhbWRncHVfdm1pZF9tZ3IJCQlpZF9tZ3JbQU1ER1BVX01BWF9WTUhVQlNd Owo+ICsJdW5zaWduZWQgaW50CQkJCWZpcnN0X2tmZF92bWlkOwo+ICAgCj4gICAJLyogSGFuZGxp bmcgb2YgVk0gZmVuY2VzICovCj4gICAJdTY0CQkJCQlmZW5jZV9jb250ZXh0Owo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtkLmggYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9jaWtkLmgKPiBpbmRleCA1ZjNmNmViZmIzODcuLjU1OTgyYzAwNjRiNSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtkLmgKPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jaWtkLmgKPiBAQCAtNTQsOCArNTQsNiBAQAo+ICAgI2Rl ZmluZSBCT05BSVJFX0dCX0FERFJfQ09ORklHX0dPTERFTiAgICAgICAgMHgxMjAxMDAwMQo+ICAg I2RlZmluZSBIQVdBSUlfR0JfQUREUl9DT05GSUdfR09MREVOICAgICAgICAgMHgxMjAxMTAwMwo+ ICAgCj4gLSNkZWZpbmUgQU1ER1BVX05VTV9PRl9WTUlEUwk4Cj4gLQo+ICAgI2RlZmluZQkJUElQ RUlEKHgpCQkJCQkoKHgpIDw8IDApCj4gICAjZGVmaW5lCQlNRUlEKHgpCQkJCQkJKCh4KSA8PCAy KQo+ICAgI2RlZmluZQkJVk1JRCh4KQkJCQkJCSgoeCkgPDwgNCkKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3YxMF8wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nZnhfdjEwXzAuYwo+IGluZGV4IDMyMzI4NWViMTQ1Ny4uODM2NmM1MDZhOGI1IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92MTBfMC5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3YxMF8wLmMKPiBAQCAtNDUxMiw4ICs0 NTEyLDYgQEAgc3RhdGljIHUzMiBnZnhfdjEwXzBfaW5pdF9wYV9zY190aWxlX3N0ZWVyaW5nX292 ZXJyaWRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGUKPiAgIH0KPiAgIAo+ICAgI2RlZmluZSBE RUZBVUxUX1NIX01FTV9CQVNFUwkoMHg2MDAwKQo+IC0jZGVmaW5lIEZJUlNUX0NPTVBVVEVfVk1J RAkoOCkKPiAtI2RlZmluZSBMQVNUX0NPTVBVVEVfVk1JRAkoMTYpCj4gICAKPiAgIHN0YXRpYyB2 b2lkIGdmeF92MTBfMF9pbml0X2NvbXB1dGVfdm1pZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRl dikKPiAgIHsKPiBAQCAtNDUyOSw3ICs0NTI3LDcgQEAgc3RhdGljIHZvaWQgZ2Z4X3YxMF8wX2lu aXRfY29tcHV0ZV92bWlkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgCXNoX21lbV9i YXNlcyA9IERFRkFVTFRfU0hfTUVNX0JBU0VTIHwgKERFRkFVTFRfU0hfTUVNX0JBU0VTIDw8IDE2 KTsKPiAgIAo+ICAgCW11dGV4X2xvY2soJmFkZXYtPnNyYm1fbXV0ZXgpOwo+IC0JZm9yIChpID0g RklSU1RfQ09NUFVURV9WTUlEOyBpIDwgTEFTVF9DT01QVVRFX1ZNSUQ7IGkrKykgewo+ICsJZm9y IChpID0gYWRldi0+dm1fbWFuYWdlci5maXJzdF9rZmRfdm1pZDsgaSA8IEFNREdQVV9OVU1fVk1J RDsgaSsrKSB7Cj4gICAJCW52X2dyYm1fc2VsZWN0KGFkZXYsIDAsIDAsIDAsIGkpOwo+ICAgCQkv KiBDUCBhbmQgc2hhZGVycyAqLwo+ICAgCQlXUkVHMzJfU09DMTUoR0MsIDAsIG1tU0hfTUVNX0NP TkZJRywgREVGQVVMVF9TSF9NRU1fQ09ORklHKTsKPiBAQCAtNDU0MCw3ICs0NTM4LDcgQEAgc3Rh dGljIHZvaWQgZ2Z4X3YxMF8wX2luaXRfY29tcHV0ZV92bWlkKHN0cnVjdCBhbWRncHVfZGV2aWNl ICphZGV2KQo+ICAgCj4gICAJLyogSW5pdGlhbGl6ZSBhbGwgY29tcHV0ZSBWTUlEcyB0byBoYXZl IG5vIEdEUywgR1dTLCBvciBPQQo+ICAgCSAgIGFjY2Nlc3MuIFRoZXNlIHNob3VsZCBiZSBlbmFi bGVkIGJ5IEZXIGZvciB0YXJnZXQgVk1JRHMuICovCj4gLQlmb3IgKGkgPSBGSVJTVF9DT01QVVRF X1ZNSUQ7IGkgPCBMQVNUX0NPTVBVVEVfVk1JRDsgaSsrKSB7Cj4gKwlmb3IgKGkgPSBhZGV2LT52 bV9tYW5hZ2VyLmZpcnN0X2tmZF92bWlkOyBpIDwgQU1ER1BVX05VTV9WTUlEOyBpKyspIHsKPiAg IAkJV1JFRzMyX1NPQzE1X09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDBfQkFTRSwgMiAqIGksIDAp Owo+ICAgCQlXUkVHMzJfU09DMTVfT0ZGU0VUKEdDLCAwLCBtbUdEU19WTUlEMF9TSVpFLCAyICog aSwgMCk7Cj4gICAJCVdSRUczMl9TT0MxNV9PRkZTRVQoR0MsIDAsIG1tR0RTX0dXU19WTUlEMCwg aSwgMCk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92N18w LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjdfMC5jCj4gaW5kZXggNGFlYzc2 MDQ5YTYwLi4wNGVhZjNhOGZkZGIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZ2Z4X3Y3XzAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92 N18wLmMKPiBAQCAtMTg1MCw4ICsxODUwLDYgQEAgc3RhdGljIHZvaWQgZ2Z4X3Y3XzBfc2V0dXBf cmIoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICAgKgo+ICAgICovCj4gICAjZGVmaW5l IERFRkFVTFRfU0hfTUVNX0JBU0VTCSgweDYwMDApCj4gLSNkZWZpbmUgRklSU1RfQ09NUFVURV9W TUlECSg4KQo+IC0jZGVmaW5lIExBU1RfQ09NUFVURV9WTUlECSgxNikKPiAgIHN0YXRpYyB2b2lk IGdmeF92N18wX2luaXRfY29tcHV0ZV92bWlkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ ICAgewo+ICAgCWludCBpOwo+IEBAIC0xODY5LDcgKzE4NjcsNyBAQCBzdGF0aWMgdm9pZCBnZnhf djdfMF9pbml0X2NvbXB1dGVfdm1pZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgIAkJ CVNIX01FTV9DT05GSUdfX0FMSUdOTUVOVF9NT0RFX19TSElGVDsKPiAgIAlzaF9tZW1fY29uZmln IHw9IE1UWVBFX05PTkNBQ0hFRCA8PCBTSF9NRU1fQ09ORklHX19ERUZBVUxUX01UWVBFX19TSElG VDsKPiAgIAltdXRleF9sb2NrKCZhZGV2LT5zcmJtX211dGV4KTsKPiAtCWZvciAoaSA9IEZJUlNU X0NPTVBVVEVfVk1JRDsgaSA8IExBU1RfQ09NUFVURV9WTUlEOyBpKyspIHsKPiArCWZvciAoaSA9 IGFkZXYtPnZtX21hbmFnZXIuZmlyc3Rfa2ZkX3ZtaWQ7IGkgPCBBTURHUFVfTlVNX1ZNSUQ7IGkr Kykgewo+ICAgCQljaWtfc3JibV9zZWxlY3QoYWRldiwgMCwgMCwgMCwgaSk7Cj4gICAJCS8qIENQ IGFuZCBzaGFkZXJzICovCj4gICAJCVdSRUczMihtbVNIX01FTV9DT05GSUcsIHNoX21lbV9jb25m aWcpOwo+IEBAIC0xODgyLDcgKzE4ODAsNyBAQCBzdGF0aWMgdm9pZCBnZnhfdjdfMF9pbml0X2Nv bXB1dGVfdm1pZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgIAo+ICAgCS8qIEluaXRp YWxpemUgYWxsIGNvbXB1dGUgVk1JRHMgdG8gaGF2ZSBubyBHRFMsIEdXUywgb3IgT0EKPiAgIAkg ICBhY2NjZXNzLiBUaGVzZSBzaG91bGQgYmUgZW5hYmxlZCBieSBGVyBmb3IgdGFyZ2V0IFZNSURz LiAqLwo+IC0JZm9yIChpID0gRklSU1RfQ09NUFVURV9WTUlEOyBpIDwgTEFTVF9DT01QVVRFX1ZN SUQ7IGkrKykgewo+ICsJZm9yIChpID0gYWRldi0+dm1fbWFuYWdlci5maXJzdF9rZmRfdm1pZDsg aSA8IEFNREdQVV9OVU1fVk1JRDsgaSsrKSB7Cj4gICAJCVdSRUczMihhbWRncHVfZ2RzX3JlZ19v ZmZzZXRbaV0ubWVtX2Jhc2UsIDApOwo+ICAgCQlXUkVHMzIoYW1kZ3B1X2dkc19yZWdfb2Zmc2V0 W2ldLm1lbV9zaXplLCAwKTsKPiAgIAkJV1JFRzMyKGFtZGdwdV9nZHNfcmVnX29mZnNldFtpXS5n d3MsIDApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjhf MC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ2Z4X3Y4XzAuYwo+IGluZGV4IGVmYjc1 OWI2MmQyMS4uMzNmMWM0YTQ2ZWJlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2dmeF92OF8wLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhf djhfMC5jCj4gQEAgLTM2ODYsOCArMzY4Niw2IEBAIHN0YXRpYyB2b2lkIGdmeF92OF8wX3NldHVw X3JiKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgICoKPiAgICAqLwo+ICAgI2RlZmlu ZSBERUZBVUxUX1NIX01FTV9CQVNFUwkoMHg2MDAwKQo+IC0jZGVmaW5lIEZJUlNUX0NPTVBVVEVf Vk1JRAkoOCkKPiAtI2RlZmluZSBMQVNUX0NPTVBVVEVfVk1JRAkoMTYpCj4gICBzdGF0aWMgdm9p ZCBnZnhfdjhfMF9pbml0X2NvbXB1dGVfdm1pZChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikK PiAgIHsKPiAgIAlpbnQgaTsKPiBAQCAtMzcxMCw3ICszNzA4LDcgQEAgc3RhdGljIHZvaWQgZ2Z4 X3Y4XzBfaW5pdF9jb21wdXRlX3ZtaWQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYpCj4gICAJ CQlTSF9NRU1fQ09ORklHX19QUklWQVRFX0FUQ19NQVNLOwo+ICAgCj4gICAJbXV0ZXhfbG9jaygm YWRldi0+c3JibV9tdXRleCk7Cj4gLQlmb3IgKGkgPSBGSVJTVF9DT01QVVRFX1ZNSUQ7IGkgPCBM QVNUX0NPTVBVVEVfVk1JRDsgaSsrKSB7Cj4gKwlmb3IgKGkgPSBhZGV2LT52bV9tYW5hZ2VyLmZp cnN0X2tmZF92bWlkOyBpIDwgQU1ER1BVX05VTV9WTUlEOyBpKyspIHsKPiAgIAkJdmlfc3JibV9z ZWxlY3QoYWRldiwgMCwgMCwgMCwgaSk7Cj4gICAJCS8qIENQIGFuZCBzaGFkZXJzICovCj4gICAJ CVdSRUczMihtbVNIX01FTV9DT05GSUcsIHNoX21lbV9jb25maWcpOwo+IEBAIC0zNzIzLDcgKzM3 MjEsNyBAQCBzdGF0aWMgdm9pZCBnZnhfdjhfMF9pbml0X2NvbXB1dGVfdm1pZChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKPiAgIAo+ICAgCS8qIEluaXRpYWxpemUgYWxsIGNvbXB1dGUgVk1J RHMgdG8gaGF2ZSBubyBHRFMsIEdXUywgb3IgT0EKPiAgIAkgICBhY2NjZXNzLiBUaGVzZSBzaG91 bGQgYmUgZW5hYmxlZCBieSBGVyBmb3IgdGFyZ2V0IFZNSURzLiAqLwo+IC0JZm9yIChpID0gRklS U1RfQ09NUFVURV9WTUlEOyBpIDwgTEFTVF9DT01QVVRFX1ZNSUQ7IGkrKykgewo+ICsJZm9yIChp ID0gYWRldi0+dm1fbWFuYWdlci5maXJzdF9rZmRfdm1pZDsgaSA8IEFNREdQVV9OVU1fVk1JRDsg aSsrKSB7Cj4gICAJCVdSRUczMihhbWRncHVfZ2RzX3JlZ19vZmZzZXRbaV0ubWVtX2Jhc2UsIDAp Owo+ICAgCQlXUkVHMzIoYW1kZ3B1X2dkc19yZWdfb2Zmc2V0W2ldLm1lbV9zaXplLCAwKTsKPiAg IAkJV1JFRzMyKGFtZGdwdV9nZHNfcmVnX29mZnNldFtpXS5nd3MsIDApOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjlfMC5jIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRncHUvZ2Z4X3Y5XzAuYwo+IGluZGV4IDk5ZmZjM2UxZmRkYy4uY2I5ZDYwYTRlMDVl IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dmeF92OV8wLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nZnhfdjlfMC5jCj4gQEAgLTI0NjMsOCAr MjQ2Myw2IEBAIHN0YXRpYyB2b2lkIGdmeF92OV8wX3NldHVwX3JiKHN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2KQo+ICAgfQo+ICAgCj4gICAjZGVmaW5lIERFRkFVTFRfU0hfTUVNX0JBU0VTCSgw eDYwMDApCj4gLSNkZWZpbmUgRklSU1RfQ09NUFVURV9WTUlECSg4KQo+IC0jZGVmaW5lIExBU1Rf Q09NUFVURV9WTUlECSgxNikKPiAgIHN0YXRpYyB2b2lkIGdmeF92OV8wX2luaXRfY29tcHV0ZV92 bWlkKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2KQo+ICAgewo+ICAgCWludCBpOwo+IEBAIC0y NDg0LDcgKzI0ODIsNyBAQCBzdGF0aWMgdm9pZCBnZnhfdjlfMF9pbml0X2NvbXB1dGVfdm1pZChz dHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldikKPiAgIAkJCVNIX01FTV9DT05GSUdfX0FMSUdOTUVO VF9NT0RFX19TSElGVDsKPiAgIAo+ICAgCW11dGV4X2xvY2soJmFkZXYtPnNyYm1fbXV0ZXgpOwo+ IC0JZm9yIChpID0gRklSU1RfQ09NUFVURV9WTUlEOyBpIDwgTEFTVF9DT01QVVRFX1ZNSUQ7IGkr Kykgewo+ICsJZm9yIChpID0gYWRldi0+dm1fbWFuYWdlci5maXJzdF9rZmRfdm1pZDsgaSA8IEFN REdQVV9OVU1fVk1JRDsgaSsrKSB7Cj4gICAJCXNvYzE1X2dyYm1fc2VsZWN0KGFkZXYsIDAsIDAs IDAsIGkpOwo+ICAgCQkvKiBDUCBhbmQgc2hhZGVycyAqLwo+ICAgCQlXUkVHMzJfU09DMTVfUkxD KEdDLCAwLCBtbVNIX01FTV9DT05GSUcsIHNoX21lbV9jb25maWcpOwo+IEBAIC0yNDk1LDcgKzI0 OTMsNyBAQCBzdGF0aWMgdm9pZCBnZnhfdjlfMF9pbml0X2NvbXB1dGVfdm1pZChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqYWRldikKPiAgIAo+ICAgCS8qIEluaXRpYWxpemUgYWxsIGNvbXB1dGUgVk1J RHMgdG8gaGF2ZSBubyBHRFMsIEdXUywgb3IgT0EKPiAgIAkgICBhY2NjZXNzLiBUaGVzZSBzaG91 bGQgYmUgZW5hYmxlZCBieSBGVyBmb3IgdGFyZ2V0IFZNSURzLiAqLwo+IC0JZm9yIChpID0gRklS U1RfQ09NUFVURV9WTUlEOyBpIDwgTEFTVF9DT01QVVRFX1ZNSUQ7IGkrKykgewo+ICsJZm9yIChp ID0gYWRldi0+dm1fbWFuYWdlci5maXJzdF9rZmRfdm1pZDsgaSA8IEFNREdQVV9OVU1fVk1JRDsg aSsrKSB7Cj4gICAJCVdSRUczMl9TT0MxNV9PRkZTRVQoR0MsIDAsIG1tR0RTX1ZNSUQwX0JBU0Us IDIgKiBpLCAwKTsKPiAgIAkJV1JFRzMyX1NPQzE1X09GRlNFVChHQywgMCwgbW1HRFNfVk1JRDBf U0laRSwgMiAqIGksIDApOwo+ICAgCQlXUkVHMzJfU09DMTVfT0ZGU0VUKEdDLCAwLCBtbUdEU19H V1NfVk1JRDAsIGksIDApOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9nbWNfdjEwXzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192MTBfMC5jCj4g aW5kZXggZjdlNjZiZjBmNjQ3Li5iZmU2Mjk4NWFmZmYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZ21jX3YxMF8wLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1k L2FtZGdwdS9nbWNfdjEwXzAuYwo+IEBAIC00OSw4ICs0OSw2IEBACj4gICAjaW5jbHVkZSAibW1o dWJfdjJfMC5oIgo+ICAgI2luY2x1ZGUgImF0aHViX3YyXzAuaCIKPiAgICNpbmNsdWRlICJhdGh1 Yl92Ml8xLmgiCj4gLS8qIFhYWCBNb3ZlIHRoaXMgbWFjcm8gdG8gbmF2aTEwIGhlYWRlciBmaWxl LCB3aGljaCBpcyBsaWtlIHZpZC5oIGZvciBWSS4qLwo+IC0jZGVmaW5lIEFNREdQVV9OVU1fT0Zf Vk1JRFMJCQk4Cj4gICAKPiAgICNpZiAwCj4gICBzdGF0aWMgY29uc3Qgc3RydWN0IHNvYzE1X3Jl Z19nb2xkZW4gZ29sZGVuX3NldHRpbmdzX25hdmkxMF9oZHBbXSA9Cj4gQEAgLTkwNSw4ICs5MDMs NyBAQCBzdGF0aWMgaW50IGdtY192MTBfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKPiAgIAkgKiBh bWRncHUgZ3JhcGhpY3MvY29tcHV0ZSB3aWxsIHVzZSBWTUlEcyAxLTcKPiAgIAkgKiBhbWRrZmQg d2lsbCB1c2UgVk1JRHMgOC0xNQo+ICAgCSAqLwo+IC0JYWRldi0+dm1fbWFuYWdlci5pZF9tZ3Jb QU1ER1BVX0dGWEhVQl8wXS5udW1faWRzID0gQU1ER1BVX05VTV9PRl9WTUlEUzsKPiAtCWFkZXYt PnZtX21hbmFnZXIuaWRfbWdyW0FNREdQVV9NTUhVQl8wXS5udW1faWRzID0gQU1ER1BVX05VTV9P Rl9WTUlEUzsKPiArCWFkZXYtPnZtX21hbmFnZXIuZmlyc3Rfa2ZkX3ZtaWQgPSA4Owo+ICAgCj4g ICAJYW1kZ3B1X3ZtX21hbmFnZXJfaW5pdChhZGV2KTsKPiAgIAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvZ21jX3Y2XzAuYwo+IGluZGV4IGE3NWU0NzJiNGE4MS4uNTM4ZTdlZTM1Y2RmIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192Nl8wLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjZfMC5jCj4gQEAgLTg3OCw3ICs4NzgsNyBA QCBzdGF0aWMgaW50IGdtY192Nl8wX3N3X2luaXQodm9pZCAqaGFuZGxlKQo+ICAgCSAqIGFtZGdw dSBncmFwaGljcy9jb21wdXRlIHdpbGwgdXNlIFZNSURzIDEtNwo+ICAgCSAqIGFtZGtmZCB3aWxs IHVzZSBWTUlEcyA4LTE1Cj4gICAJICovCj4gLQlhZGV2LT52bV9tYW5hZ2VyLmlkX21nclswXS5u dW1faWRzID0gQU1ER1BVX05VTV9PRl9WTUlEUzsKPiArCWFkZXYtPnZtX21hbmFnZXIuZmlyc3Rf a2ZkX3ZtaWQgPSA4Owo+ICAgCWFtZGdwdV92bV9tYW5hZ2VyX2luaXQoYWRldik7Cj4gICAKPiAg IAkvKiBiYXNlIG9mZnNldCBvZiB2cmFtIHBhZ2VzICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdw dS9nbWNfdjdfMC5jCj4gaW5kZXggYmNkNGJhZWNmZTExLi5lMTgyOTZkYzEzODYgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y3XzAuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192N18wLmMKPiBAQCAtMTA1Miw3ICsxMDUyLDcgQEAg c3RhdGljIGludCBnbWNfdjdfMF9zd19pbml0KHZvaWQgKmhhbmRsZSkKPiAgIAkgKiBhbWRncHUg Z3JhcGhpY3MvY29tcHV0ZSB3aWxsIHVzZSBWTUlEcyAxLTcKPiAgIAkgKiBhbWRrZmQgd2lsbCB1 c2UgVk1JRHMgOC0xNQo+ICAgCSAqLwo+IC0JYWRldi0+dm1fbWFuYWdlci5pZF9tZ3JbMF0ubnVt X2lkcyA9IEFNREdQVV9OVU1fT0ZfVk1JRFM7Cj4gKwlhZGV2LT52bV9tYW5hZ2VyLmZpcnN0X2tm ZF92bWlkID0gODsKPiAgIAlhbWRncHVfdm1fbWFuYWdlcl9pbml0KGFkZXYpOwo+ICAgCj4gICAJ LyogYmFzZSBvZmZzZXQgb2YgdnJhbSBwYWdlcyAqLwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUv Z21jX3Y4XzAuYwo+IGluZGV4IDI2OTc2ZTUwZTJhMi4uYTllNzIyYjhhNDU4IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dtY192OF8wLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjhfMC5jCj4gQEAgLTExNzcsNyArMTE3Nyw3IEBAIHN0 YXRpYyBpbnQgZ21jX3Y4XzBfc3dfaW5pdCh2b2lkICpoYW5kbGUpCj4gICAJICogYW1kZ3B1IGdy YXBoaWNzL2NvbXB1dGUgd2lsbCB1c2UgVk1JRHMgMS03Cj4gICAJICogYW1ka2ZkIHdpbGwgdXNl IFZNSURzIDgtMTUKPiAgIAkgKi8KPiAtCWFkZXYtPnZtX21hbmFnZXIuaWRfbWdyWzBdLm51bV9p ZHMgPSBBTURHUFVfTlVNX09GX1ZNSURTOwo+ICsJYWRldi0+dm1fbWFuYWdlci5maXJzdF9rZmRf dm1pZCA9IDg7Cj4gICAJYW1kZ3B1X3ZtX21hbmFnZXJfaW5pdChhZGV2KTsKPiAgIAo+ICAgCS8q IGJhc2Ugb2Zmc2V0IG9mIHZyYW0gcGFnZXMgKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2dt Y192OV8wLmMKPiBpbmRleCAxMWU5M2E4MjEzMWQuLjZlMTBiNDJjNTdlNSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9nbWNfdjlfMC5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvZ21jX3Y5XzAuYwo+IEBAIC02OCw5ICs2OCw2IEBACj4gICAjZGVm aW5lIEhVQlAwX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX19QUklfVklFV1BPUlRfV0lE VEhfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAwMDNG RkZMCj4gICAjZGVmaW5lIEhVQlAwX0RDU1VSRl9QUklfVklFV1BPUlRfRElNRU5TSU9OX19QUklf VklFV1BPUlRfSEVJR0hUX01BU0sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDB4M0ZGRjAwMDBMCj4gICAKPiAtLyogWFhYIE1vdmUgdGhpcyBtYWNybyB0byBWRUdBMTAg aGVhZGVyIGZpbGUsIHdoaWNoIGlzIGxpa2UgdmlkLmggZm9yIFZJLiovCj4gLSNkZWZpbmUgQU1E R1BVX05VTV9PRl9WTUlEUwkJCTgKPiAtCj4gICBzdGF0aWMgY29uc3QgdTMyIGdvbGRlbl9zZXR0 aW5nc192ZWdhMTBfaGRwW10gPQo+ICAgewo+ICAgCTB4ZjY0LCAweDBmZmZmZmZmLCAweDAwMDAw MDAwLAo+IEBAIC0xMjUxLDkgKzEyNDgsNyBAQCBzdGF0aWMgaW50IGdtY192OV8wX3N3X2luaXQo dm9pZCAqaGFuZGxlKQo+ICAgCSAqIGFtZGdwdSBncmFwaGljcy9jb21wdXRlIHdpbGwgdXNlIFZN SURzIDEtNwo+ICAgCSAqIGFtZGtmZCB3aWxsIHVzZSBWTUlEcyA4LTE1Cj4gICAJICovCj4gLQlh ZGV2LT52bV9tYW5hZ2VyLmlkX21ncltBTURHUFVfR0ZYSFVCXzBdLm51bV9pZHMgPSBBTURHUFVf TlVNX09GX1ZNSURTOwo+IC0JYWRldi0+dm1fbWFuYWdlci5pZF9tZ3JbQU1ER1BVX01NSFVCXzBd Lm51bV9pZHMgPSBBTURHUFVfTlVNX09GX1ZNSURTOwo+IC0JYWRldi0+dm1fbWFuYWdlci5pZF9t Z3JbQU1ER1BVX01NSFVCXzFdLm51bV9pZHMgPSBBTURHUFVfTlVNX09GX1ZNSURTOwo+ICsJYWRl di0+dm1fbWFuYWdlci5maXJzdF9rZmRfdm1pZCA9IDg7Cj4gICAKPiAgIAlhbWRncHVfdm1fbWFu YWdlcl9pbml0KGFkZXYpOwo+ICAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L3NpX2VudW1zLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zaV9lbnVtcy5o Cj4gaW5kZXggNzkwYmE0NmVhZWJiLi40ZTkzNWJhYTdiOTEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvc2lfZW51bXMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L3NpX2VudW1zLmgKPiBAQCAtMTIxLDcgKzEyMSw2IEBACj4gICAjZGVmaW5lIENV UlNPUl9VUERBVEVfTE9DSyAgICAgICAgICAgICAoMSA8PCAxNikKPiAgICNkZWZpbmUgQ1VSU09S X0RJU0FCTEVfTVVMVElQTEVfVVBEQVRFICgxIDw8IDI0KQo+ICAgCj4gLSNkZWZpbmUgQU1ER1BV X05VTV9PRl9WTUlEUyAgICAgICAgICAgICAgICAgICAgIDgKPiAgICNkZWZpbmUgU0lfQ1JUQzBf UkVHSVNURVJfT0ZGU0VUICAgICAgICAgICAgICAgIDAKPiAgICNkZWZpbmUgU0lfQ1JUQzFfUkVH SVNURVJfT0ZGU0VUICAgICAgICAgICAgICAgIDB4MzAwCj4gICAjZGVmaW5lIFNJX0NSVEMyX1JF R0lTVEVSX09GRlNFVCAgICAgICAgICAgICAgICAweDI2MDAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvc2lkLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9z aWQuaAo+IGluZGV4IDVmNjYwZjBjODE5Zi4uY2EyZTlkNjYxYjI4IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NpZC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvc2lkLmgKPiBAQCAtNDgsOCArNDgsNiBAQAo+ICAgI2RlZmluZSBTSV9NQVhfVEND ICAgICAgICAgICAgICAgCTE2Cj4gICAjZGVmaW5lIFNJX01BWF9UQ0NfTUFTSyAgICAgICAgICAJ MHhGRkZGCj4gICAKPiAtI2RlZmluZSBBTURHUFVfTlVNX09GX1ZNSURTIAkJOAo+IC0KPiAgIC8q IFNNQyBJTkQgYWNjZXNzb3IgcmVncyAqLwo+ICAgI2RlZmluZSBTTUNfSU5EX0lOREVYXzAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAweDgwCj4gICAjZGVmaW5lIFNNQ19JTkRfREFUQV8w ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ODEKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvdmlkLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS92 aWQuaAo+IGluZGV4IDdhMDFlNjEzMzc5OC4uODBjZTQyYWFjYzBjIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZpZC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvdmlkLmgKPiBAQCAtNjcsOCArNjcsNiBAQAo+ICAgI2RlZmluZSBIUEQ0X1JFR0lT VEVSX09GRlNFVCAgICAgICAgICAgICAgICAgKDB4MThiOCAtIDB4MTg5OCkKPiAgICNkZWZpbmUg SFBENV9SRUdJU1RFUl9PRkZTRVQgICAgICAgICAgICAgICAgICgweDE4YzAgLSAweDE4OTgpCj4g ICAKPiAtI2RlZmluZSBBTURHUFVfTlVNX09GX1ZNSURTCQkJOAo+IC0KPiAgICNkZWZpbmUJCVBJ UEVJRCh4KQkJCQkJKCh4KSA8PCAwKQo+ICAgI2RlZmluZQkJTUVJRCh4KQkJCQkJCSgoeCkgPDwg MikKPiAgICNkZWZpbmUJCVZNSUQoeCkJCQkJCQkoKHgpIDw8IDQpCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2FtZC1nZngK