From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oded Gabbay Subject: Re: [PATCH 2/2] drm/amdkfd: Add CU-masking ioctl to KFD Date: Sat, 28 Jul 2018 12:19:59 +0300 Message-ID: References: <1531609559-30402-1-git-send-email-Felix.Kuehling@amd.com> <1531609559-30402-2-git-send-email-Felix.Kuehling@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1531609559-30402-2-git-send-email-Felix.Kuehling-5C7GfCeVMHo@public.gmane.org> List-Id: Discussion list for AMD gfx List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: amd-gfx-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "amd-gfx" To: "Kuehling, Felix" Cc: JinHuiEric.Huang-5C7GfCeVMHo@public.gmane.org, flora.cui-5C7GfCeVMHo@public.gmane.org, Kent Russell , amd-gfx list T24gU3VuLCBKdWwgMTUsIDIwMTggYXQgMjowNiBBTSBGZWxpeCBLdWVobGluZyA8RmVsaXguS3Vl aGxpbmdAYW1kLmNvbT4gd3JvdGU6Cj4KPiBDVS1tYXNraW5nIGFsbG93cyBhIEtGRCBjbGllbnQg dG8gY29udHJvbCB0aGUgc2V0IG9mIENVcyB1c2VkIGJ5IGEKPiB1c2VyIG1vZGUgcXVldWUgZm9y IGV4ZWN1dGluZyBjb21wdXRlIGRpc3BhdGNoZXMuIFRoaXMgY2FuIGJlIHVzZWQKPiBmb3Igb3B0 aW1pemluZyB0aGUgcGFydGl0aW9uaW5nIG9mIHRoZSBHUFUgYW5kIG1pbmltaXplIGNvbmZsaWN0 cwo+IGJldHdlZW4gY29uY3VycmVudCB0YXNrcy4KPgo+IFNpZ25lZC1vZmYtYnk6IEZsb3JhIEN1 aSA8ZmxvcmEuY3VpQGFtZC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogS2VudCBSdXNzZWxsIDxrZW50 LnJ1c3NlbGxAYW1kLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBFcmljIEh1YW5nIDxKaW5IdWlFcmlj Lkh1YW5nQGFtZC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogRmVsaXggS3VlaGxpbmcgPEZlbGl4Lkt1 ZWhsaW5nQGFtZC5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9j aGFyZGV2LmMgICAgICAgICAgIHwgNTggKysrKysrKysrKysrKysrKysrKysrKwo+ICBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfa2VybmVsX3F1ZXVlLmMgICAgICB8ICAxICsKPiAgZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyLmMgICAgICAgfCA0MSArKysr KysrKysrKysrKy0KPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2Vy LmggICAgICAgfCAgNCArKwo+ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21h bmFnZXJfY2lrLmMgICB8IDI3ICsrKysrKysrKysKPiAgZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRr ZmQva2ZkX21xZF9tYW5hZ2VyX3Y5LmMgICAgfCAyNyArKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1 L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl92aS5jICAgIHwgMjcgKysrKysrKysrKwo+ ICBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJpdi5oICAgICAgICAgICAgICB8ICA1 ICsrCj4gIC4uLi9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3Byb2Nlc3NfcXVldWVfbWFuYWdlci5j IHwgMzAgKysrKysrKysrKysKPiAgOSBmaWxlcyBjaGFuZ2VkLCAyMTkgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2Zk L2tmZF9jaGFyZGV2LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfY2hhcmRldi5j Cj4gaW5kZXggMjFkMDk4OS4uMDYzYzk0MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGtmZC9rZmRfY2hhcmRldi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRr ZmQva2ZkX2NoYXJkZXYuYwo+IEBAIC0zOTIsNiArMzkyLDYxIEBAIHN0YXRpYyBpbnQga2ZkX2lv Y3RsX3VwZGF0ZV9xdWV1ZShzdHJ1Y3QgZmlsZSAqZmlscCwgc3RydWN0IGtmZF9wcm9jZXNzICpw LAo+ICAgICAgICAgcmV0dXJuIHJldHZhbDsKPiAgfQo+Cj4gK3N0YXRpYyBpbnQga2ZkX2lvY3Rs X3NldF9jdV9tYXNrKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qga2ZkX3Byb2Nlc3MgKnAsCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEpCj4gK3sK PiArICAgICAgIGludCByZXR2YWw7Cj4gKyAgICAgICBjb25zdCBpbnQgbWF4X251bV9jdXMgPSAx MDI0Owo+ICsgICAgICAgc3RydWN0IGtmZF9pb2N0bF9zZXRfY3VfbWFza19hcmdzICphcmdzID0g ZGF0YTsKPiArICAgICAgIHN0cnVjdCBxdWV1ZV9wcm9wZXJ0aWVzIHByb3BlcnRpZXM7Cj4gKyAg ICAgICB1aW50MzJfdCBfX3VzZXIgKmN1X21hc2tfcHRyID0gKHVpbnQzMl90IF9fdXNlciAqKWFy Z3MtPmN1X21hc2tfcHRyOwo+ICsgICAgICAgc2l6ZV90IGN1X21hc2tfc2l6ZSA9IHNpemVvZih1 aW50MzJfdCkgKiAoYXJncy0+bnVtX2N1X21hc2sgLyAzMik7Cj4gKwo+ICsgICAgICAgaWYgKChh cmdzLT5udW1fY3VfbWFzayAlIDMyKSAhPSAwKSB7Cj4gKyAgICAgICAgICAgICAgIHByX2RlYnVn KCJudW1fY3VfbWFzayAweCV4IG11c3QgYmUgYSBtdWx0aXBsZSBvZiAzMiIsCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhcmdzLT5udW1fY3VfbWFzayk7Cj4gKyAgICAgICAgICAg ICAgIHJldHVybiAtRUlOVkFMOwo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIHByb3BlcnRpZXMu Y3VfbWFza19jb3VudCA9IGFyZ3MtPm51bV9jdV9tYXNrOwo+ICsgICAgICAgaWYgKHByb3BlcnRp ZXMuY3VfbWFza19jb3VudCA9PSAwKSB7Cj4gKyAgICAgICAgICAgICAgIHByX2RlYnVnKCJDVSBt YXNrIGNhbm5vdCBiZSAwIik7Cj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ICsg ICAgICAgfQo+ICsKPiArICAgICAgIC8qIFRvIHByZXZlbnQgYW4gdW5yZWFzb25hYmx5IGxhcmdl IENVIG1hc2sgc2l6ZSwgc2V0IGFuIGFyYml0cmFyeQo+ICsgICAgICAgICogbGltaXQgb2YgbWF4 X251bV9jdXMgYml0cy4gIFdlIGNhbiB0aGVuIGp1c3QgZHJvcCBhbnkgQ1UgbWFzayBiaXRzCj4g KyAgICAgICAgKiBwYXN0IG1heF9udW1fY3VzIGJpdHMgYW5kIGp1c3QgdXNlIHRoZSBmaXJzdCBt YXhfbnVtX2N1cyBiaXRzLgo+ICsgICAgICAgICovCj4gKyAgICAgICBpZiAocHJvcGVydGllcy5j dV9tYXNrX2NvdW50ID4gbWF4X251bV9jdXMpIHsKPiArICAgICAgICAgICAgICAgcHJfZGVidWco IkNVIG1hc2sgY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAxMDI0IGJpdHMiKTsKPiArICAgICAgICAg ICAgICAgcHJvcGVydGllcy5jdV9tYXNrX2NvdW50ID0gbWF4X251bV9jdXM7Cj4gKyAgICAgICAg ICAgICAgIGN1X21hc2tfc2l6ZSA9IHNpemVvZih1aW50MzJfdCkgKiAobWF4X251bV9jdXMvMzIp Owo+ICsgICAgICAgfQo+ICsKPiArICAgICAgIHByb3BlcnRpZXMuY3VfbWFzayA9IGt6YWxsb2Mo Y3VfbWFza19zaXplLCBHRlBfS0VSTkVMKTsKPiArICAgICAgIGlmICghcHJvcGVydGllcy5jdV9t YXNrKQo+ICsgICAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKPiArCj4gKyAgICAgICByZXR2 YWwgPSBjb3B5X2Zyb21fdXNlcihwcm9wZXJ0aWVzLmN1X21hc2ssIGN1X21hc2tfcHRyLCBjdV9t YXNrX3NpemUpOwo+ICsgICAgICAgaWYgKHJldHZhbCkgewo+ICsgICAgICAgICAgICAgICBwcl9k ZWJ1ZygiQ291bGQgbm90IGNvcHkgQ1UgbWFzayBmcm9tIHVzZXJzcGFjZSIpOwo+ICsgICAgICAg ICAgICAgICBrZnJlZShwcm9wZXJ0aWVzLmN1X21hc2spOwo+ICsgICAgICAgICAgICAgICByZXR1 cm4gLUVGQVVMVDsKPiArICAgICAgIH0KPiArCj4gKyAgICAgICBtdXRleF9sb2NrKCZwLT5tdXRl eCk7Cj4gKwo+ICsgICAgICAgcmV0dmFsID0gcHFtX3NldF9jdV9tYXNrKCZwLT5wcW0sIGFyZ3Mt PnF1ZXVlX2lkLCAmcHJvcGVydGllcyk7Cj4gKwo+ICsgICAgICAgbXV0ZXhfdW5sb2NrKCZwLT5t dXRleCk7Cj4gKwo+ICsgICAgICAgaWYgKHJldHZhbCkKPiArICAgICAgICAgICAgICAga2ZyZWUo cHJvcGVydGllcy5jdV9tYXNrKTsKPiArCj4gKyAgICAgICByZXR1cm4gcmV0dmFsOwo+ICt9Cj4g Kwo+ICBzdGF0aWMgaW50IGtmZF9pb2N0bF9zZXRfbWVtb3J5X3BvbGljeShzdHJ1Y3QgZmlsZSAq ZmlsZXAsCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBr ZmRfcHJvY2VzcyAqcCwgdm9pZCAqZGF0YSkKPiAgewo+IEBAIC0xNTYxLDYgKzE2MTYsOSBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGFtZGtmZF9pb2N0bF9kZXNjIGFtZGtmZF9pb2N0bHNbXSA9IHsK PiAgICAgICAgIEFNREtGRF9JT0NUTF9ERUYoQU1ES0ZEX0lPQ19VTk1BUF9NRU1PUllfRlJPTV9H UFUsCj4gICAgICAgICAgICAgICAgICAgICAgICAga2ZkX2lvY3RsX3VubWFwX21lbW9yeV9mcm9t X2dwdSwgMCksCj4KPiArICAgICAgIEFNREtGRF9JT0NUTF9ERUYoQU1ES0ZEX0lPQ19TRVRfQ1Vf TUFTSywKPiArICAgICAgICAgICAgICAgICAgICAgICBrZmRfaW9jdGxfc2V0X2N1X21hc2ssIDAp LAo+ICsKPiAgfTsKPgo+ICAjZGVmaW5lIEFNREtGRF9DT1JFX0lPQ1RMX0NPVU5UICAgICAgICBB UlJBWV9TSVpFKGFtZGtmZF9pb2N0bHMpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1ka2ZkL2tmZF9rZXJuZWxfcXVldWUuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2Zk L2tmZF9rZXJuZWxfcXVldWUuYwo+IGluZGV4IDJjODg5N2UuLjlmODRiNGQgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2tlcm5lbF9xdWV1ZS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2tlcm5lbF9xdWV1ZS5jCj4gQEAgLTEyMyw2 ICsxMjMsNyBAQCBzdGF0aWMgYm9vbCBpbml0aWFsaXplKHN0cnVjdCBrZXJuZWxfcXVldWUgKmtx LCBzdHJ1Y3Qga2ZkX2RldiAqZGV2LAo+ICAgICAgICAgcHJvcC53cml0ZV9wdHIgPSAodWludDMy X3QgKikga3EtPndwdHJfZ3B1X2FkZHI7Cj4gICAgICAgICBwcm9wLmVvcF9yaW5nX2J1ZmZlcl9h ZGRyZXNzID0ga3EtPmVvcF9ncHVfYWRkcjsKPiAgICAgICAgIHByb3AuZW9wX3JpbmdfYnVmZmVy X3NpemUgPSBQQUdFX1NJWkU7Cj4gKyAgICAgICBwcm9wLmN1X21hc2sgPSBOVUxMOwo+Cj4gICAg ICAgICBpZiAoaW5pdF9xdWV1ZSgma3EtPnF1ZXVlLCAmcHJvcCkgIT0gMCkKPiAgICAgICAgICAg ICAgICAgZ290byBlcnJfaW5pdF9xdWV1ZTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtm ZC9rZmRfbXFkX21hbmFnZXIuYwo+IGluZGV4IDRiOGViNTAuLjNiYzI1YWIgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyLmMKPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXIuYwo+IEBAIC0yMSw3ICsy MSw3IEBACj4gICAqCj4gICAqLwo+Cj4gLSNpbmNsdWRlICJrZmRfcHJpdi5oIgo+ICsjaW5jbHVk ZSAia2ZkX21xZF9tYW5hZ2VyLmgiCj4KPiAgc3RydWN0IG1xZF9tYW5hZ2VyICptcWRfbWFuYWdl cl9pbml0KGVudW0gS0ZEX01RRF9UWVBFIHR5cGUsCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBrZmRfZGV2ICpkZXYpCj4gQEAgLTQ4LDMgKzQ4LDQyIEBA IHN0cnVjdCBtcWRfbWFuYWdlciAqbXFkX21hbmFnZXJfaW5pdChlbnVtIEtGRF9NUURfVFlQRSB0 eXBlLAo+Cj4gICAgICAgICByZXR1cm4gTlVMTDsKPiAgfQo+ICsKPiArdm9pZCBtcWRfc3ltbWV0 cmljYWxseV9tYXBfY3VfbWFzayhzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLAo+ICsgICAgICAgICAg ICAgICBjb25zdCB1aW50MzJfdCAqY3VfbWFzaywgdWludDMyX3QgY3VfbWFza19jb3VudCwKPiAr ICAgICAgICAgICAgICAgdWludDMyX3QgKnNlX21hc2spCj4gK3sKPiArICAgICAgIHN0cnVjdCBr ZmRfY3VfaW5mbyBjdV9pbmZvOwo+ICsgICAgICAgdWludDMyX3QgY3VfcGVyX3NoWzRdID0gezB9 Owo+ICsgICAgICAgaW50IGksIHNlLCBjdSA9IDA7Cj4gKwo+ICsgICAgICAgbW0tPmRldi0+a2Zk MmtnZC0+Z2V0X2N1X2luZm8obW0tPmRldi0+a2dkLCAmY3VfaW5mbyk7Cj4gKwo+ICsgICAgICAg aWYgKGN1X21hc2tfY291bnQgPiBjdV9pbmZvLmN1X2FjdGl2ZV9udW1iZXIpCj4gKyAgICAgICAg ICAgICAgIGN1X21hc2tfY291bnQgPSBjdV9pbmZvLmN1X2FjdGl2ZV9udW1iZXI7Cj4gKwo+ICsg ICAgICAgZm9yIChzZSA9IDA7IHNlIDwgY3VfaW5mby5udW1fc2hhZGVyX2VuZ2luZXM7IHNlKysp Cj4gKyAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCA0OyBpKyspCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgY3VfcGVyX3NoW3NlXSArPSBod2VpZ2h0MzIoY3VfaW5mby5jdV9iaXRtYXBb c2VdW2ldKTsKPiArCj4gKyAgICAgICAvKiBTeW1tZXRyaWNhbGx5IG1hcCBjdV9tYXNrIHRvIGFs bCBTRXM6Cj4gKyAgICAgICAgKiBjdV9tYXNrWzBdIGJpdDAgLT4gc2VfbWFza1swXSBiaXQwOwo+ ICsgICAgICAgICogY3VfbWFza1swXSBiaXQxIC0+IHNlX21hc2tbMV0gYml0MDsKPiArICAgICAg ICAqIC4uLiAoaWYgIyBTRSBpcyA0KQo+ICsgICAgICAgICogY3VfbWFza1swXSBiaXQ0IC0+IHNl X21hc2tbMF0gYml0MTsKPiArICAgICAgICAqIC4uLgo+ICsgICAgICAgICovCj4gKyAgICAgICBz ZSA9IDA7Cj4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgY3VfbWFza19jb3VudDsgaSsrKSB7Cj4g KyAgICAgICAgICAgICAgIGlmIChjdV9tYXNrW2kgLyAzMl0gJiAoMSA8PCAoaSAlIDMyKSkpCj4g KyAgICAgICAgICAgICAgICAgICAgICAgc2VfbWFza1tzZV0gfD0gMSA8PCBjdTsKPiArCj4gKyAg ICAgICAgICAgICAgIGRvIHsKPiArICAgICAgICAgICAgICAgICAgICAgICBzZSsrOwo+ICsgICAg ICAgICAgICAgICAgICAgICAgIGlmIChzZSA9PSBjdV9pbmZvLm51bV9zaGFkZXJfZW5naW5lcykg ewo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2UgPSAwOwo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY3UrKzsKPiArICAgICAgICAgICAgICAgICAgICAgICB9Cj4g KyAgICAgICAgICAgICAgIH0gd2hpbGUgKGN1ID49IGN1X3Blcl9zaFtzZV0gJiYgY3UgPCAzMik7 Cj4gKyAgICAgICB9Cj4gK30KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRr ZmQva2ZkX21xZF9tYW5hZ2VyLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFk X21hbmFnZXIuaAo+IGluZGV4IDg5NzJiY2YuLjRlODQwNTIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyLmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXIuaAo+IEBAIC05Myw0ICs5Myw4IEBAIHN0 cnVjdCBtcWRfbWFuYWdlciB7Cj4gICAgICAgICBzdHJ1Y3Qga2ZkX2RldiAgKmRldjsKPiAgfTsK Pgo+ICt2b2lkIG1xZF9zeW1tZXRyaWNhbGx5X21hcF9jdV9tYXNrKHN0cnVjdCBtcWRfbWFuYWdl ciAqbW0sCj4gKyAgICAgICAgICAgICAgIGNvbnN0IHVpbnQzMl90ICpjdV9tYXNrLCB1aW50MzJf dCBjdV9tYXNrX2NvdW50LAo+ICsgICAgICAgICAgICAgICB1aW50MzJfdCAqc2VfbWFzayk7Cj4g Kwo+ICAjZW5kaWYgLyogS0ZEX01RRF9NQU5BR0VSX0hfICovCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl9jaWsuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl9jaWsuYwo+IGluZGV4IDQ4NzI1NzQuLjQ3 MjQzMTYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9t YW5hZ2VyX2Npay5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9t YW5hZ2VyX2Npay5jCj4gQEAgLTQxLDYgKzQxLDMxIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IGNp a19zZG1hX3JsY19yZWdpc3RlcnMgKmdldF9zZG1hX21xZCh2b2lkICptcWQpCj4gICAgICAgICBy ZXR1cm4gKHN0cnVjdCBjaWtfc2RtYV9ybGNfcmVnaXN0ZXJzICopbXFkOwo+ICB9Cj4KPiArc3Rh dGljIHZvaWQgdXBkYXRlX2N1X21hc2soc3RydWN0IG1xZF9tYW5hZ2VyICptbSwgdm9pZCAqbXFk LAo+ICsgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBxdWV1ZV9wcm9wZXJ0aWVzICpxKQo+ ICt7Cj4gKyAgICAgICBzdHJ1Y3QgY2lrX21xZCAqbTsKPiArICAgICAgIHVpbnQzMl90IHNlX21h c2tbNF0gPSB7MH07IC8qIDQgaXMgdGhlIG1heCAjIG9mIFNFcyAqLwo+ICsKPiArICAgICAgIGlm IChxLT5jdV9tYXNrX2NvdW50ID09IDApCj4gKyAgICAgICAgICAgICAgIHJldHVybjsKPiArCj4g KyAgICAgICBtcWRfc3ltbWV0cmljYWxseV9tYXBfY3VfbWFzayhtbSwKPiArICAgICAgICAgICAg ICAgcS0+Y3VfbWFzaywgcS0+Y3VfbWFza19jb3VudCwgc2VfbWFzayk7Cj4gKwo+ICsgICAgICAg bSA9IGdldF9tcWQobXFkKTsKPiArICAgICAgIG0tPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210 X3NlMCA9IHNlX21hc2tbMF07Cj4gKyAgICAgICBtLT5jb21wdXRlX3N0YXRpY190aHJlYWRfbWdt dF9zZTEgPSBzZV9tYXNrWzFdOwo+ICsgICAgICAgbS0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFkX21n bXRfc2UyID0gc2VfbWFza1syXTsKPiArICAgICAgIG0tPmNvbXB1dGVfc3RhdGljX3RocmVhZF9t Z210X3NlMyA9IHNlX21hc2tbM107Cj4gKwo+ICsgICAgICAgcHJfZGVidWcoIlVwZGF0ZSBjdSBt YXNrIHRvICUjeCAlI3ggJSN4ICUjeFxuIiwKPiArICAgICAgICAgICAgICAgbS0+Y29tcHV0ZV9z dGF0aWNfdGhyZWFkX21nbXRfc2UwLAo+ICsgICAgICAgICAgICAgICBtLT5jb21wdXRlX3N0YXRp Y190aHJlYWRfbWdtdF9zZTEsCj4gKyAgICAgICAgICAgICAgIG0tPmNvbXB1dGVfc3RhdGljX3Ro cmVhZF9tZ210X3NlMiwKPiArICAgICAgICAgICAgICAgbS0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFk X21nbXRfc2UzKTsKPiArfQo+ICsKPiAgc3RhdGljIGludCBpbml0X21xZChzdHJ1Y3QgbXFkX21h bmFnZXIgKm1tLCB2b2lkICoqbXFkLAo+ICAgICAgICAgICAgICAgICBzdHJ1Y3Qga2ZkX21lbV9v YmogKiptcWRfbWVtX29iaiwgdWludDY0X3QgKmdhcnRfYWRkciwKPiAgICAgICAgICAgICAgICAg c3RydWN0IHF1ZXVlX3Byb3BlcnRpZXMgKnEpCj4gQEAgLTE5Niw2ICsyMjEsOCBAQCBzdGF0aWMg aW50IF9fdXBkYXRlX21xZChzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICptcWQsCj4gICAg ICAgICBpZiAocS0+Zm9ybWF0ID09IEtGRF9RVUVVRV9GT1JNQVRfQVFMKQo+ICAgICAgICAgICAg ICAgICBtLT5jcF9ocWRfcHFfY29udHJvbCB8PSBOT19VUERBVEVfUlBUUjsKPgo+ICsgICAgICAg dXBkYXRlX2N1X21hc2sobW0sIG1xZCwgcSk7Cj4gKwo+ICAgICAgICAgcS0+aXNfYWN0aXZlID0g KHEtPnF1ZXVlX3NpemUgPiAwICYmCj4gICAgICAgICAgICAgICAgICAgICAgICAgcS0+cXVldWVf YWRkcmVzcyAhPSAwICYmCj4gICAgICAgICAgICAgICAgICAgICAgICAgcS0+cXVldWVfcGVyY2Vu dCA+IDAgJiYKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX21x ZF9tYW5hZ2VyX3Y5LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFn ZXJfdjkuYwo+IGluZGV4IGFkNWM5ZjguLmY1ZmMzNjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRrZmQva2ZkX21xZF9tYW5hZ2VyX3Y5LmMKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXJfdjkuYwo+IEBAIC00MSw2ICs0MSwzMSBA QCBzdGF0aWMgaW5saW5lIHN0cnVjdCB2OV9zZG1hX21xZCAqZ2V0X3NkbWFfbXFkKHZvaWQgKm1x ZCkKPiAgICAgICAgIHJldHVybiAoc3RydWN0IHY5X3NkbWFfbXFkICopbXFkOwo+ICB9Cj4KPiAr c3RhdGljIHZvaWQgdXBkYXRlX2N1X21hc2soc3RydWN0IG1xZF9tYW5hZ2VyICptbSwgdm9pZCAq bXFkLAo+ICsgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBxdWV1ZV9wcm9wZXJ0aWVzICpx KQo+ICt7Cj4gKyAgICAgICBzdHJ1Y3QgdjlfbXFkICptOwo+ICsgICAgICAgdWludDMyX3Qgc2Vf bWFza1s0XSA9IHswfTsgLyogNCBpcyB0aGUgbWF4ICMgb2YgU0VzICovCj4gKwo+ICsgICAgICAg aWYgKHEtPmN1X21hc2tfY291bnQgPT0gMCkKPiArICAgICAgICAgICAgICAgcmV0dXJuOwo+ICsK PiArICAgICAgIG1xZF9zeW1tZXRyaWNhbGx5X21hcF9jdV9tYXNrKG1tLAo+ICsgICAgICAgICAg ICAgICBxLT5jdV9tYXNrLCBxLT5jdV9tYXNrX2NvdW50LCBzZV9tYXNrKTsKPiArCj4gKyAgICAg ICBtID0gZ2V0X21xZChtcWQpOwo+ICsgICAgICAgbS0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFkX21n bXRfc2UwID0gc2VfbWFza1swXTsKPiArICAgICAgIG0tPmNvbXB1dGVfc3RhdGljX3RocmVhZF9t Z210X3NlMSA9IHNlX21hc2tbMV07Cj4gKyAgICAgICBtLT5jb21wdXRlX3N0YXRpY190aHJlYWRf bWdtdF9zZTIgPSBzZV9tYXNrWzJdOwo+ICsgICAgICAgbS0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFk X21nbXRfc2UzID0gc2VfbWFza1szXTsKPiArCj4gKyAgICAgICBwcl9kZWJ1ZygidXBkYXRlIGN1 IG1hc2sgdG8gJSN4ICUjeCAlI3ggJSN4XG4iLAo+ICsgICAgICAgICAgICAgICBtLT5jb21wdXRl X3N0YXRpY190aHJlYWRfbWdtdF9zZTAsCj4gKyAgICAgICAgICAgICAgIG0tPmNvbXB1dGVfc3Rh dGljX3RocmVhZF9tZ210X3NlMSwKPiArICAgICAgICAgICAgICAgbS0+Y29tcHV0ZV9zdGF0aWNf dGhyZWFkX21nbXRfc2UyLAo+ICsgICAgICAgICAgICAgICBtLT5jb21wdXRlX3N0YXRpY190aHJl YWRfbWdtdF9zZTMpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgaW50IGluaXRfbXFkKHN0cnVjdCBtcWRf bWFuYWdlciAqbW0sIHZvaWQgKiptcWQsCj4gICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0 IGtmZF9tZW1fb2JqICoqbXFkX21lbV9vYmosIHVpbnQ2NF90ICpnYXJ0X2FkZHIsCj4gICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHF1ZXVlX3Byb3BlcnRpZXMgKnEpCj4gQEAgLTE5OCw2 ICsyMjMsOCBAQCBzdGF0aWMgaW50IHVwZGF0ZV9tcWQoc3RydWN0IG1xZF9tYW5hZ2VyICptbSwg dm9pZCAqbXFkLAo+ICAgICAgICAgaWYgKG1tLT5kZXYtPmN3c3JfZW5hYmxlZCAmJiBxLT5jdHhf c2F2ZV9yZXN0b3JlX2FyZWFfYWRkcmVzcykKPiAgICAgICAgICAgICAgICAgbS0+Y3BfaHFkX2N0 eF9zYXZlX2NvbnRyb2wgPSAwOwo+Cj4gKyAgICAgICB1cGRhdGVfY3VfbWFzayhtbSwgbXFkLCBx KTsKPiArCj4gICAgICAgICBxLT5pc19hY3RpdmUgPSAocS0+cXVldWVfc2l6ZSA+IDAgJiYKPiAg ICAgICAgICAgICAgICAgICAgICAgICBxLT5xdWV1ZV9hZGRyZXNzICE9IDAgJiYKPiAgICAgICAg ICAgICAgICAgICAgICAgICBxLT5xdWV1ZV9wZXJjZW50ID4gMCAmJgo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFkX21hbmFnZXJfdmkuYyBiL2RyaXZlcnMv Z3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRfbWFuYWdlcl92aS5jCj4gaW5kZXggODllNDI0Mi4u YjgxZmRhMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfbXFk X21hbmFnZXJfdmkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9tcWRf bWFuYWdlcl92aS5jCj4gQEAgLTQzLDYgKzQzLDMxIEBAIHN0YXRpYyBpbmxpbmUgc3RydWN0IHZp X3NkbWFfbXFkICpnZXRfc2RtYV9tcWQodm9pZCAqbXFkKQo+ICAgICAgICAgcmV0dXJuIChzdHJ1 Y3Qgdmlfc2RtYV9tcWQgKiltcWQ7Cj4gIH0KPgo+ICtzdGF0aWMgdm9pZCB1cGRhdGVfY3VfbWFz ayhzdHJ1Y3QgbXFkX21hbmFnZXIgKm1tLCB2b2lkICptcWQsCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHF1ZXVlX3Byb3BlcnRpZXMgKnEpCj4gK3sKPiArICAgICAgIHN0cnVjdCB2 aV9tcWQgKm07Cj4gKyAgICAgICB1aW50MzJfdCBzZV9tYXNrWzRdID0gezB9OyAvKiA0IGlzIHRo ZSBtYXggIyBvZiBTRXMgKi8KPiArCj4gKyAgICAgICBpZiAocS0+Y3VfbWFza19jb3VudCA9PSAw KQo+ICsgICAgICAgICAgICAgICByZXR1cm47Cj4gKwo+ICsgICAgICAgbXFkX3N5bW1ldHJpY2Fs bHlfbWFwX2N1X21hc2sobW0sCj4gKyAgICAgICAgICAgICAgIHEtPmN1X21hc2ssIHEtPmN1X21h c2tfY291bnQsIHNlX21hc2spOwo+ICsKPiArICAgICAgIG0gPSBnZXRfbXFkKG1xZCk7Cj4gKyAg ICAgICBtLT5jb21wdXRlX3N0YXRpY190aHJlYWRfbWdtdF9zZTAgPSBzZV9tYXNrWzBdOwo+ICsg ICAgICAgbS0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2UxID0gc2VfbWFza1sxXTsKPiAr ICAgICAgIG0tPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlMiA9IHNlX21hc2tbMl07Cj4g KyAgICAgICBtLT5jb21wdXRlX3N0YXRpY190aHJlYWRfbWdtdF9zZTMgPSBzZV9tYXNrWzNdOwo+ ICsKPiArICAgICAgIHByX2RlYnVnKCJVcGRhdGUgY3UgbWFzayB0byAlI3ggJSN4ICUjeCAlI3hc biIsCj4gKyAgICAgICAgICAgICAgIG0tPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlMCwK PiArICAgICAgICAgICAgICAgbS0+Y29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2UxLAo+ICsg ICAgICAgICAgICAgICBtLT5jb21wdXRlX3N0YXRpY190aHJlYWRfbWdtdF9zZTIsCj4gKyAgICAg ICAgICAgICAgIG0tPmNvbXB1dGVfc3RhdGljX3RocmVhZF9tZ210X3NlMyk7Cj4gK30KPiArCj4g IHN0YXRpYyBpbnQgaW5pdF9tcWQoc3RydWN0IG1xZF9tYW5hZ2VyICptbSwgdm9pZCAqKm1xZCwK PiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qga2ZkX21lbV9vYmogKiptcWRfbWVtX29i aiwgdWludDY0X3QgKmdhcnRfYWRkciwKPiAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg cXVldWVfcHJvcGVydGllcyAqcSkKPiBAQCAtMTk2LDYgKzIyMSw4IEBAIHN0YXRpYyBpbnQgX191 cGRhdGVfbXFkKHN0cnVjdCBtcWRfbWFuYWdlciAqbW0sIHZvaWQgKm1xZCwKPiAgICAgICAgICAg ICAgICAgICAgICAgICBhdGNfYml0IDw8IENQX0hRRF9DVFhfU0FWRV9DT05UUk9MX19BVENfX1NI SUZUIHwKPiAgICAgICAgICAgICAgICAgICAgICAgICBtdHlwZSA8PCBDUF9IUURfQ1RYX1NBVkVf Q09OVFJPTF9fTVRZUEVfX1NISUZUOwo+Cj4gKyAgICAgICB1cGRhdGVfY3VfbWFzayhtbSwgbXFk LCBxKTsKPiArCj4gICAgICAgICBxLT5pc19hY3RpdmUgPSAocS0+cXVldWVfc2l6ZSA+IDAgJiYK PiAgICAgICAgICAgICAgICAgICAgICAgICBxLT5xdWV1ZV9hZGRyZXNzICE9IDAgJiYKPiAgICAg ICAgICAgICAgICAgICAgICAgICBxLT5xdWV1ZV9wZXJjZW50ID4gMCAmJgo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJpdi5oIGIvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRrZmQva2ZkX3ByaXYuaAo+IGluZGV4IGNhODMyNTQuLmY5NzE3MTAgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3ByaXYuaAo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcml2LmgKPiBAQCAtNDIyLDYgKzQyMiw5IEBAIHN0 cnVjdCBxdWV1ZV9wcm9wZXJ0aWVzIHsKPiAgICAgICAgIHVpbnQzMl90IGN0bF9zdGFja19zaXpl Owo+ICAgICAgICAgdWludDY0X3QgdGJhX2FkZHI7Cj4gICAgICAgICB1aW50NjRfdCB0bWFfYWRk cjsKPiArICAgICAgIC8qIFJlbGV2YW50IGZvciBDVSAqLwo+ICsgICAgICAgdWludDMyX3QgY3Vf bWFza19jb3VudDsgLyogTXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyICovCj4gKyAgICAgICB1aW50 MzJfdCAqY3VfbWFzazsKPiAgfTsKPgo+ICAvKioKPiBAQCAtODcyLDYgKzg3NSw4IEBAIGludCBw cW1fY3JlYXRlX3F1ZXVlKHN0cnVjdCBwcm9jZXNzX3F1ZXVlX21hbmFnZXIgKnBxbSwKPiAgaW50 IHBxbV9kZXN0cm95X3F1ZXVlKHN0cnVjdCBwcm9jZXNzX3F1ZXVlX21hbmFnZXIgKnBxbSwgdW5z aWduZWQgaW50IHFpZCk7Cj4gIGludCBwcW1fdXBkYXRlX3F1ZXVlKHN0cnVjdCBwcm9jZXNzX3F1 ZXVlX21hbmFnZXIgKnBxbSwgdW5zaWduZWQgaW50IHFpZCwKPiAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgcXVldWVfcHJvcGVydGllcyAqcCk7Cj4gK2ludCBwcW1fc2V0X2N1X21hc2so c3RydWN0IHByb2Nlc3NfcXVldWVfbWFuYWdlciAqcHFtLCB1bnNpZ25lZCBpbnQgcWlkLAo+ICsg ICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBxdWV1ZV9wcm9wZXJ0aWVzICpwKTsKPiAgc3Ry dWN0IGtlcm5lbF9xdWV1ZSAqcHFtX2dldF9rZXJuZWxfcXVldWUoc3RydWN0IHByb2Nlc3NfcXVl dWVfbWFuYWdlciAqcHFtLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCBxaWQpOwo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1ka2ZkL2tmZF9wcm9jZXNzX3F1ZXVlX21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1ka2ZkL2tmZF9wcm9jZXNzX3F1ZXVlX21hbmFnZXIuYwo+IGluZGV4IGViNGU1 ZmIuLmM4Y2FkOWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2Zk X3Byb2Nlc3NfcXVldWVfbWFuYWdlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRr ZmQva2ZkX3Byb2Nlc3NfcXVldWVfbWFuYWdlci5jCj4gQEAgLTMyNSw2ICszMjUsOCBAQCBpbnQg cHFtX2Rlc3Ryb3lfcXVldWUoc3RydWN0IHByb2Nlc3NfcXVldWVfbWFuYWdlciAqcHFtLCB1bnNp Z25lZCBpbnQgcWlkKQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXR2YWwgIT0gLUVU SU1FKQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBlcnJfZGVzdHJveV9x dWV1ZTsKPiAgICAgICAgICAgICAgICAgfQo+ICsgICAgICAgICAgICAgICBrZnJlZShwcW4tPnEt PnByb3BlcnRpZXMuY3VfbWFzayk7Cj4gKyAgICAgICAgICAgICAgIHBxbi0+cS0+cHJvcGVydGll cy5jdV9tYXNrID0gTlVMTDsKPiAgICAgICAgICAgICAgICAgdW5pbml0X3F1ZXVlKHBxbi0+cSk7 Cj4gICAgICAgICB9Cj4KPiBAQCAtMzY1LDYgKzM2NywzNCBAQCBpbnQgcHFtX3VwZGF0ZV9xdWV1 ZShzdHJ1Y3QgcHJvY2Vzc19xdWV1ZV9tYW5hZ2VyICpwcW0sIHVuc2lnbmVkIGludCBxaWQsCj4g ICAgICAgICByZXR1cm4gMDsKPiAgfQo+Cj4gK2ludCBwcW1fc2V0X2N1X21hc2soc3RydWN0IHBy b2Nlc3NfcXVldWVfbWFuYWdlciAqcHFtLCB1bnNpZ25lZCBpbnQgcWlkLAo+ICsgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBxdWV1ZV9wcm9wZXJ0aWVzICpwKQo+ICt7Cj4gKyAgICAgICBp bnQgcmV0dmFsOwo+ICsgICAgICAgc3RydWN0IHByb2Nlc3NfcXVldWVfbm9kZSAqcHFuOwo+ICsK PiArICAgICAgIHBxbiA9IGdldF9xdWV1ZV9ieV9xaWQocHFtLCBxaWQpOwo+ICsgICAgICAgaWYg KCFwcW4pIHsKPiArICAgICAgICAgICAgICAgcHJfZGVidWcoIk5vIHF1ZXVlICVkIGV4aXN0cyBm b3IgdXBkYXRlIG9wZXJhdGlvblxuIiwgcWlkKTsKPiArICAgICAgICAgICAgICAgcmV0dXJuIC1F RkFVTFQ7Cj4gKyAgICAgICB9Cj4gKwo+ICsgICAgICAgLyogRnJlZSB0aGUgb2xkIENVIG1hc2sg bWVtb3J5IGlmIGl0IGlzIGFscmVhZHkgYWxsb2NhdGVkLCB0aGVuCj4gKyAgICAgICAgKiBhbGxv Y2F0ZSBtZW1vcnkgZm9yIHRoZSBuZXcgQ1UgbWFzay4KPiArICAgICAgICAqLwo+ICsgICAgICAg a2ZyZWUocHFuLT5xLT5wcm9wZXJ0aWVzLmN1X21hc2spOwo+ICsKPiArICAgICAgIHBxbi0+cS0+ cHJvcGVydGllcy5jdV9tYXNrX2NvdW50ID0gcC0+Y3VfbWFza19jb3VudDsKPiArICAgICAgIHBx bi0+cS0+cHJvcGVydGllcy5jdV9tYXNrID0gcC0+Y3VfbWFzazsKPiArCj4gKyAgICAgICByZXR2 YWwgPSBwcW4tPnEtPmRldmljZS0+ZHFtLT5vcHMudXBkYXRlX3F1ZXVlKHBxbi0+cS0+ZGV2aWNl LT5kcW0sCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwcW4tPnEpOwo+ICsgICAgICAgaWYgKHJldHZhbCAhPSAwKQo+ICsgICAgICAgICAg ICAgICByZXR1cm4gcmV0dmFsOwo+ICsKPiArICAgICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICBz dHJ1Y3Qga2VybmVsX3F1ZXVlICpwcW1fZ2V0X2tlcm5lbF9xdWV1ZSgKPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHByb2Nlc3NfcXVldWVfbWFuYWdlciAq cHFtLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgcWlkKQo+IC0tCj4gMi43LjQKPgoKClRoaXMgcGF0Y2ggaXM6CkFja2VkLWJ5OiBPZGVkIEdh YmJheSA8b2RlZC5nYWJiYXlAZ21haWwuY29tPgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwphbWQtZ2Z4IG1haWxpbmcgbGlzdAphbWQtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2FtZC1nZngK