From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.groups.io with SMTP id smtpd.web11.4895.1608158275094077627 for ; Wed, 16 Dec 2020 14:37:55 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=TS08F15C; spf=pass (domain: redhat.com, ip: 216.205.24.124, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1608158274; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Z2YoPgJUwEyukdPEj3ZC3uR6xhQne3aAlQCde1B6MYU=; b=TS08F15Cwitz2H01pbN2HbbdkPz/ONbCRu7Z7nZ1Mn9MTBPcX8xKUjObhV/o2kwJi91sDO zB6y8gNL1QU0yDI3AfEptALoSoTAkxXezj/BkilG5c2tRU0LRPwdsVqChcC0DzP0VTX9ns IDaDF03j6/lDLSjb3UtrV3qGuqNH56c= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-27-E697Va0fMD-38jPQTgV5Vw-1; Wed, 16 Dec 2020 17:37:52 -0500 X-MC-Unique: E697Va0fMD-38jPQTgV5Vw-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 308A259; Wed, 16 Dec 2020 22:37:51 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-114-152.ams2.redhat.com [10.36.114.152]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9169660C9C; Wed, 16 Dec 2020 22:37:46 +0000 (UTC) From: "Laszlo Ersek" To: devel@edk2.groups.io, virtio-fs@redhat.com, lersek@redhat.com Cc: Ard Biesheuvel , Jordan Justen , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [edk2 PATCH 41/48] OvmfPkg/VirtioFsDxe: implement the wrapper function for FUSE_RENAME2 Date: Wed, 16 Dec 2020 22:11:18 +0100 Message-Id: <20201216211125.19496-42-lersek@redhat.com> In-Reply-To: <20201216211125.19496-1-lersek@redhat.com> References: <20201216211125.19496-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=lersek@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 QWRkIHRoZSBWaXJ0aW9Gc0Z1c2VSZW5hbWUoKSBmdW5jdGlvbiwgZm9yIHNlbmRpbmcgdGhlIEZV U0VfUkVOQU1FMgpjb21tYW5kIHRvIHRoZSBWaXJ0aW8gRmlsZXN5c3RlbSBkZXZpY2UuCgpDYzog QXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGFybS5jb20+CkNjOiBKb3JkYW4gSnVzdGVu IDxqb3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPgpDYzogUGhpbGlwcGUgTWF0aGlldS1EYXVkw6kg PHBoaWxtZEByZWRoYXQuY29tPgpSZWY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9z aG93X2J1Zy5jZ2k/aWQ9MzA5NwpTaWduZWQtb2ZmLWJ5OiBMYXN6bG8gRXJzZWsgPGxlcnNla0By ZWRoYXQuY29tPgotLS0KIE92bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1ZpcnRpb0Zz LmggfCAgMTUgKysrCiBPdm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRpb0ZzRHhlLmluZiAgICAgICAg IHwgICAxICsKIE92bWZQa2cvVmlydGlvRnNEeGUvVmlydGlvRnNEeGUuaCAgICAgICAgICAgfCAg IDkgKysKIE92bWZQa2cvVmlydGlvRnNEeGUvRnVzZVJlbmFtZS5jICAgICAgICAgICAgfCAxMzEg KysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTU2IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9WaXJ0aW9Gcy5o IGIvT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvVmlydGlvRnMuaAppbmRleCAwYjdi M2ZmODBlZGQuLjBiMmVkNzAxMDA0NiAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9JbmNsdWRlL0luZHVz dHJ5U3RhbmRhcmQvVmlydGlvRnMuaAorKysgYi9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFu ZGFyZC9WaXJ0aW9Gcy5oCkBAIC0xMzYsMTYgKzEzNiwyMSBAQCB0eXBlZGVmIHN0cnVjdCB7CiAg ICgoTmFtZWxlbikgPT0gMCB8fCAoTmFtZWxlbikgPiBTSVpFXzRLQiA/ICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQogICAgKFVJTlROKTAgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KICAgIEFMSUdOX1ZBTFVFICggICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICAgIHNpemVv ZiAoVklSVElPX0ZTX0ZVU0VfRElSRU5UUExVU19SRVNQT05TRSkgKyAoVUlOVE4pKE5hbWVsZW4p LCBcDQogICAgICBzaXplb2YgKFVJTlQ2NCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXA0KICAgICAgKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCiAgICApDQogDQorLy8NCisvLyBG bGFncyBmb3IgVmlydGlvRnNGdXNlT3BSZW5hbWUyLg0KKy8vDQorI2RlZmluZSBWSVJUSU9fRlNf RlVTRV9SRU5BTUUyX1JFUV9GX05PUkVQTEFDRSBCSVQwDQorDQogLy8NCiAvLyBGVVNFIG9wZXJh dGlvbiBjb2Rlcy4NCiAvLw0KIHR5cGVkZWYgZW51bSB7DQogICBWaXJ0aW9Gc0Z1c2VPcExvb2t1 cCAgICAgID0gIDEsDQogICBWaXJ0aW9Gc0Z1c2VPcEZvcmdldCAgICAgID0gIDIsDQogICBWaXJ0 aW9Gc0Z1c2VPcEdldEF0dHIgICAgID0gIDMsDQogICBWaXJ0aW9Gc0Z1c2VPcE1rRGlyICAgICAg ID0gIDksDQpAQCAtMTU5LDE2ICsxNjQsMTcgQEAgdHlwZWRlZiBlbnVtIHsKICAgVmlydGlvRnNG dXNlT3BGc3luYyAgICAgICA9IDIwLA0KICAgVmlydGlvRnNGdXNlT3BGbHVzaCAgICAgICA9IDI1 LA0KICAgVmlydGlvRnNGdXNlT3BJbml0ICAgICAgICA9IDI2LA0KICAgVmlydGlvRnNGdXNlT3BP cGVuRGlyICAgICA9IDI3LA0KICAgVmlydGlvRnNGdXNlT3BSZWxlYXNlRGlyICA9IDI5LA0KICAg VmlydGlvRnNGdXNlT3BGc3luY0RpciAgICA9IDMwLA0KICAgVmlydGlvRnNGdXNlT3BDcmVhdGUg ICAgICA9IDM1LA0KICAgVmlydGlvRnNGdXNlT3BSZWFkRGlyUGx1cyA9IDQ0LA0KKyAgVmlydGlv RnNGdXNlT3BSZW5hbWUyICAgICA9IDQ1LA0KIH0gVklSVElPX0ZTX0ZVU0VfT1BDT0RFOw0KIA0K ICNwcmFnbWEgcGFjayAoMSkNCiAvLw0KIC8vIFJlcXVlc3QtcmVzcG9uc2UgaGVhZGVycyBjb21t b24gdG8gYWxsIHJlcXVlc3QgdHlwZXMuDQogLy8NCiB0eXBlZGVmIHN0cnVjdCB7DQogICBVSU5U MzIgTGVuOw0KQEAgLTM5MywxMSArMzk5LDIwIEBAIHR5cGVkZWYgc3RydWN0IHsKIHR5cGVkZWYg c3RydWN0IHsNCiAgIFZJUlRJT19GU19GVVNFX05PREVfUkVTUE9OU0UgICAgICAgTm9kZVJlc3A7 DQogICBWSVJUSU9fRlNfRlVTRV9BVFRSSUJVVEVTX1JFU1BPTlNFIEF0dHJSZXNwOw0KICAgVUlO VDY0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlSWQ7DQogICBVSU5UNjQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIENvb2tpZUZvck5leHRFbnRyeTsNCiAgIFVJTlQzMiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTmFtZWxlbjsNCiAgIFVJTlQzMiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVHlwZTsNCiB9IFZJUlRJT19GU19GVVNFX0RJUkVOVFBMVVNfUkVTUE9O U0U7DQorDQorLy8NCisvLyBIZWFkZXIgZm9yIFZpcnRpb0ZzRnVzZU9wUmVuYW1lMi4NCisvLw0K K3R5cGVkZWYgc3RydWN0IHsNCisgIFVJTlQ2NCBOZXdEaXI7DQorICBVSU5UMzIgRmxhZ3M7DQor ICBVSU5UMzIgUGFkZGluZzsNCit9IFZJUlRJT19GU19GVVNFX1JFTkFNRTJfUkVRVUVTVDsNCiAj cHJhZ21hIHBhY2sgKCkNCiANCiAjZW5kaWYgLy8gVklSVElPX0ZTX0hfDQpkaWZmIC0tZ2l0IGEv T3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5pbmYgYi9Pdm1mUGtnL1ZpcnRpb0ZzRHhl L1ZpcnRpb0ZzRHhlLmluZgppbmRleCAyYzE0NWRhNWY1YWUuLjlkY2NkN2Q2YTllZiAxMDA2NDQK LS0tIGEvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5pbmYKKysrIGIvT3ZtZlBrZy9W aXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5pbmYKQEAgLTkwLDE2ICs5MCwxNyBAQCBbU291cmNlc10K ICAgRnVzZUluaXQuYw0KICAgRnVzZUxvb2t1cC5jDQogICBGdXNlTWtEaXIuYw0KICAgRnVzZU9w ZW4uYw0KICAgRnVzZU9wZW5EaXIuYw0KICAgRnVzZU9wZW5PckNyZWF0ZS5jDQogICBGdXNlUmVh ZC5jDQogICBGdXNlUmVsZWFzZS5jDQorICBGdXNlUmVuYW1lLmMNCiAgIEZ1c2VTdGF0RnMuYw0K ICAgRnVzZVVubGluay5jDQogICBGdXNlV3JpdGUuYw0KICAgSGVscGVycy5jDQogICBTaW1wbGVG c0Nsb3NlLmMNCiAgIFNpbXBsZUZzRGVsZXRlLmMNCiAgIFNpbXBsZUZzRmx1c2guYw0KICAgU2lt cGxlRnNHZXRJbmZvLmMNCmRpZmYgLS1naXQgYS9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRpb0Zz RHhlLmggYi9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRpb0ZzRHhlLmgKaW5kZXggMTMyYTYzNDAw NTI3Li45MzM0ZTU0MzRjNTEgMTAwNjQ0Ci0tLSBhL092bWZQa2cvVmlydGlvRnNEeGUvVmlydGlv RnNEeGUuaAorKysgYi9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRpb0ZzRHhlLmgKQEAgLTM5MSwx NiArMzkxLDI1IEBAIEVGSV9TVEFUVVMKIFZpcnRpb0ZzRnVzZU9wZW5PckNyZWF0ZSAoDQogICBJ TiBPVVQgVklSVElPX0ZTICpWaXJ0aW9GcywNCiAgIElOICAgICBVSU5UNjQgICAgUGFyZW50Tm9k ZUlkLA0KICAgSU4gICAgIENIQVI4ICAgICAqTmFtZSwNCiAgICAgIE9VVCBVSU5UNjQgICAgKk5v ZGVJZCwNCiAgICAgIE9VVCBVSU5UNjQgICAgKkZ1c2VIYW5kbGUNCiAgICk7DQogDQorRUZJX1NU QVRVUw0KK1ZpcnRpb0ZzRnVzZVJlbmFtZSAoDQorICBJTiBPVVQgVklSVElPX0ZTICpWaXJ0aW9G cywNCisgIElOICAgICBVSU5UNjQgICAgT2xkUGFyZW50Tm9kZUlkLA0KKyAgSU4gICAgIENIQVI4 ICAgICAqT2xkTmFtZSwNCisgIElOICAgICBVSU5UNjQgICAgTmV3UGFyZW50Tm9kZUlkLA0KKyAg SU4gICAgIENIQVI4ICAgICAqTmV3TmFtZQ0KKyAgKTsNCisNCiAvLw0KIC8vIEVGSV9TSU1QTEVf RklMRV9TWVNURU1fUFJPVE9DT0wgbWVtYmVyIGZ1bmN0aW9ucyBmb3IgdGhlIFZpcnRpbyBGaWxl c3lzdGVtDQogLy8gZHJpdmVyLg0KIC8vDQogDQogRUZJX1NUQVRVUw0KIEVGSUFQSQ0KIFZpcnRp b0ZzT3BlblZvbHVtZSAoDQpkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9GdXNlUmVu YW1lLmMgYi9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL0Z1c2VSZW5hbWUuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmZjOWIyN2NjZjZkNAotLS0gL2Rldi9udWxsCisrKyBi L092bWZQa2cvVmlydGlvRnNEeGUvRnVzZVJlbmFtZS5jCkBAIC0wLDAgKzEsMTMxIEBACisvKiog QGZpbGUNCisgIEZVU0VfUkVOQU1FMiB3cmFwcGVyIGZvciB0aGUgVmlydGlvIEZpbGVzeXN0ZW0g ZGV2aWNlLg0KKw0KKyAgQ29weXJpZ2h0IChDKSAyMDIwLCBSZWQgSGF0LCBJbmMuDQorDQorICBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KKyoqLw0KKw0KKyNp bmNsdWRlIDxMaWJyYXJ5L0Jhc2VMaWIuaD4gLy8gQXNjaWlTdHJTaXplKCkNCisNCisjaW5jbHVk ZSAiVmlydGlvRnNEeGUuaCINCisNCisvKioNCisgIFJlbmFtZSBhIHJlZ3VsYXIgZmlsZSBvciBh IGRpcmVjdG9yeSwgYnkgc2VuZGluZyB0aGUgRlVTRV9SRU5BTUUyIHJlcXVlc3QgdG8NCisgIHRo ZSBWaXJ0aW8gRmlsZXN5c3RlbSBkZXZpY2UuIElmIHRoZSBuZXcgZmlsZW5hbWUgZXhpc3RzLCB0 aGUgcmVxdWVzdCB3aWxsDQorICBmYWlsLg0KKw0KKyAgVGhlIGZ1bmN0aW9uIG1heSBvbmx5IGJl IGNhbGxlZCBhZnRlciBWaXJ0aW9Gc0Z1c2VJbml0U2Vzc2lvbigpIHJldHVybnMNCisgIHN1Y2Nl c3NmdWxseSBhbmQgYmVmb3JlIFZpcnRpb0ZzVW5pbml0KCkgaXMgY2FsbGVkLg0KKw0KKyAgQHBh cmFtW2luLG91dF0gVmlydGlvRnMgICAgIFRoZSBWaXJ0aW8gRmlsZXN5c3RlbSBkZXZpY2UgdG8g c2VuZCB0aGUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGVVNFX1JFTkFNRTIgcmVx dWVzdCB0by4gT24gb3V0cHV0LCB0aGUgRlVTRQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJlcXVlc3QgY291bnRlciAiVmlydGlvRnMtPlJlcXVlc3RJZCIgd2lsbCBoYXZlDQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVlbiBpbmNyZW1lbnRlZC4NCisNCisgIEBwYXJh bVtpbl0gT2xkUGFyZW50Tm9kZUlkICBUaGUgaW5vZGUgbnVtYmVyIG9mIHRoZSBkaXJlY3Rvcnkg aW4gd2hpY2gNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbGROYW1lIHNob3VsZCBi ZSByZW1vdmVkLg0KKw0KKyAgQHBhcmFtW2luXSBPbGROYW1lICAgICAgICAgIFRoZSBzaW5nbGUt Y29tcG9uZW50IGZpbGVuYW1lIHRvIHJlbW92ZSBpbiB0aGUNCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkaXJlY3RvcnkgaWRlbnRpZmllZCBieSBPbGRQYXJlbnROb2RlSWQuDQorDQor ICBAcGFyYW1baW5dIE5ld1BhcmVudE5vZGVJZCAgVGhlIGlub2RlIG51bWJlciBvZiB0aGUgZGly ZWN0b3J5IGluIHdoaWNoDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTmV3TmFtZSBz aG91bGQgYmUgY3JlYXRlZCwgc3VjaCB0aGF0IG9uDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3VjY2Vzc2Z1bCByZXR1cm4sIChOZXdQYXJlbnROb2RlSWQsIE5ld05hbWUpDQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmZXIgdG8gdGhlIHNhbWUgaW5vZGUgYXMgKE9s ZFBhcmVudE5vZGVJZCwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPbGROYW1lKSBk aWQgb24gZW50cnkuDQorDQorICBAcGFyYW1baW5dIE5ld05hbWUgICAgICAgICAgVGhlIHNpbmds ZS1jb21wb25lbnQgZmlsZW5hbWUgdG8gY3JlYXRlIGluIHRoZQ0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRpcmVjdG9yeSBpZGVudGlmaWVkIGJ5IE5ld1BhcmVudE5vZGVJZC4NCisN CisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgIFRoZSBmaWxlIG9yIGRpcmVjdG9yeSBoYXMgYmVlbiBy ZW5hbWVkLg0KKw0KKyAgQHJldHVybiAgICAgICAgICAgICAgVGhlICJlcnJubyIgdmFsdWUgbWFw cGVkIHRvIGFuIEVGSV9TVEFUVVMgY29kZSwgaWYgdGhlDQorICAgICAgICAgICAgICAgICAgICAg ICBWaXJ0aW8gRmlsZXN5c3RlbSBkZXZpY2UgZXhwbGljaXRseSByZXBvcnRlZCBhbiBlcnJvci4N CisNCisgIEByZXR1cm4gICAgICAgICAgICAgIEVycm9yIGNvZGVzIHByb3BhZ2F0ZWQgZnJvbSBW aXJ0aW9Gc1NnTGlzdHNWYWxpZGF0ZSgpLA0KKyAgICAgICAgICAgICAgICAgICAgICAgVmlydGlv RnNGdXNlTmV3UmVxdWVzdCgpLCBWaXJ0aW9Gc1NnTGlzdHNTdWJtaXQoKSwNCisgICAgICAgICAg ICAgICAgICAgICAgIFZpcnRpb0ZzRnVzZUNoZWNrUmVzcG9uc2UoKS4NCisqKi8NCitFRklfU1RB VFVTDQorVmlydGlvRnNGdXNlUmVuYW1lICgNCisgIElOIE9VVCBWSVJUSU9fRlMgKlZpcnRpb0Zz LA0KKyAgSU4gICAgIFVJTlQ2NCAgICBPbGRQYXJlbnROb2RlSWQsDQorICBJTiAgICAgQ0hBUjgg ICAgICpPbGROYW1lLA0KKyAgSU4gICAgIFVJTlQ2NCAgICBOZXdQYXJlbnROb2RlSWQsDQorICBJ TiAgICAgQ0hBUjggICAgICpOZXdOYW1lDQorICApDQorew0KKyAgVklSVElPX0ZTX0ZVU0VfUkVR VUVTVCAgICAgICAgIENvbW1vblJlcTsNCisgIFZJUlRJT19GU19GVVNFX1JFTkFNRTJfUkVRVUVT VCBSZW5hbWUyUmVxOw0KKyAgVklSVElPX0ZTX0lPX1ZFQ1RPUiAgICAgICAgICAgIFJlcUlvVmVj WzRdOw0KKyAgVklSVElPX0ZTX1NDQVRURVJfR0FUSEVSX0xJU1QgIFJlcVNnTGlzdDsNCisgIFZJ UlRJT19GU19GVVNFX1JFU1BPTlNFICAgICAgICBDb21tb25SZXNwOw0KKyAgVklSVElPX0ZTX0lP X1ZFQ1RPUiAgICAgICAgICAgIFJlc3BJb1ZlY1sxXTsNCisgIFZJUlRJT19GU19TQ0FUVEVSX0dB VEhFUl9MSVNUICBSZXNwU2dMaXN0Ow0KKyAgRUZJX1NUQVRVUyAgICAgICAgICAgICAgICAgICAg IFN0YXR1czsNCisNCisgIC8vDQorICAvLyBTZXQgdXAgdGhlIHNjYXR0ZXItZ2F0aGVyIGxpc3Rz Lg0KKyAgLy8NCisgIFJlcUlvVmVjWzBdLkJ1ZmZlciA9ICZDb21tb25SZXE7DQorICBSZXFJb1Zl Y1swXS5TaXplICAgPSBzaXplb2YgQ29tbW9uUmVxOw0KKyAgUmVxSW9WZWNbMV0uQnVmZmVyID0g JlJlbmFtZTJSZXE7DQorICBSZXFJb1ZlY1sxXS5TaXplICAgPSBzaXplb2YgUmVuYW1lMlJlcTsN CisgIFJlcUlvVmVjWzJdLkJ1ZmZlciA9IE9sZE5hbWU7DQorICBSZXFJb1ZlY1syXS5TaXplICAg PSBBc2NpaVN0clNpemUgKE9sZE5hbWUpOw0KKyAgUmVxSW9WZWNbM10uQnVmZmVyID0gTmV3TmFt ZTsNCisgIFJlcUlvVmVjWzNdLlNpemUgICA9IEFzY2lpU3RyU2l6ZSAoTmV3TmFtZSk7DQorICBS ZXFTZ0xpc3QuSW9WZWMgICAgPSBSZXFJb1ZlYzsNCisgIFJlcVNnTGlzdC5OdW1WZWMgICA9IEFS UkFZX1NJWkUgKFJlcUlvVmVjKTsNCisNCisgIFJlc3BJb1ZlY1swXS5CdWZmZXIgPSAmQ29tbW9u UmVzcDsNCisgIFJlc3BJb1ZlY1swXS5TaXplICAgPSBzaXplb2YgQ29tbW9uUmVzcDsNCisgIFJl c3BTZ0xpc3QuSW9WZWMgICAgPSBSZXNwSW9WZWM7DQorICBSZXNwU2dMaXN0Lk51bVZlYyAgID0g QVJSQVlfU0laRSAoUmVzcElvVmVjKTsNCisNCisgIC8vDQorICAvLyBWYWxpZGF0ZSB0aGUgc2Nh dHRlci1nYXRoZXIgbGlzdHM7IGNhbGN1bGF0ZSB0aGUgdG90YWwgdHJhbnNmZXIgc2l6ZXMuDQor ICAvLw0KKyAgU3RhdHVzID0gVmlydGlvRnNTZ0xpc3RzVmFsaWRhdGUgKFZpcnRpb0ZzLCAmUmVx U2dMaXN0LCAmUmVzcFNnTGlzdCk7DQorICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQorICAg IHJldHVybiBTdGF0dXM7DQorICB9DQorDQorICAvLw0KKyAgLy8gUG9wdWxhdGUgdGhlIGNvbW1v biByZXF1ZXN0IGhlYWRlci4NCisgIC8vDQorICBTdGF0dXMgPSBWaXJ0aW9Gc0Z1c2VOZXdSZXF1 ZXN0IChWaXJ0aW9GcywgJkNvbW1vblJlcSwgUmVxU2dMaXN0LlRvdGFsU2l6ZSwNCisgICAgICAg ICAgICAgVmlydGlvRnNGdXNlT3BSZW5hbWUyLCBPbGRQYXJlbnROb2RlSWQpOw0KKyAgaWYgKEVG SV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICByZXR1cm4gU3RhdHVzOw0KKyAgfQ0KKw0KKyAgLy8N CisgIC8vIFBvcHVsYXRlIHRoZSBGVVNFX1JFTkFNRTItc3BlY2lmaWMgZmllbGRzLg0KKyAgLy8N CisgIFJlbmFtZTJSZXEuTmV3RGlyICA9IE5ld1BhcmVudE5vZGVJZDsNCisgIFJlbmFtZTJSZXEu RmxhZ3MgICA9IFZJUlRJT19GU19GVVNFX1JFTkFNRTJfUkVRX0ZfTk9SRVBMQUNFOw0KKyAgUmVu YW1lMlJlcS5QYWRkaW5nID0gMDsNCisNCisgIC8vDQorICAvLyBTdWJtaXQgdGhlIHJlcXVlc3Qu DQorICAvLw0KKyAgU3RhdHVzID0gVmlydGlvRnNTZ0xpc3RzU3VibWl0IChWaXJ0aW9GcywgJlJl cVNnTGlzdCwgJlJlc3BTZ0xpc3QpOw0KKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAg ICByZXR1cm4gU3RhdHVzOw0KKyAgfQ0KKw0KKyAgLy8NCisgIC8vIFZlcmlmeSB0aGUgcmVzcG9u c2UgKGFsbCByZXNwb25zZSBidWZmZXJzIGFyZSBmaXhlZCBzaXplKS4NCisgIC8vDQorICBTdGF0 dXMgPSBWaXJ0aW9Gc0Z1c2VDaGVja1Jlc3BvbnNlICgmUmVzcFNnTGlzdCwgQ29tbW9uUmVxLlVu aXF1ZSwgTlVMTCk7DQorICBpZiAoU3RhdHVzID09IEVGSV9ERVZJQ0VfRVJST1IpIHsNCisgICAg REVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBMYWJlbD1cIiVzXCIgT2xkUGFyZW50Tm9kZUlkPSVM dSBPbGROYW1lPVwiJWFcIiAiDQorICAgICAgIk5ld1BhcmVudE5vZGVJZD0lTHUgTmV3TmFtZT1c IiVhXCIgRXJybm89JWRcbiIsIF9fRlVOQ1RJT05fXywNCisgICAgICBWaXJ0aW9Gcy0+TGFiZWws IE9sZFBhcmVudE5vZGVJZCwgT2xkTmFtZSwgTmV3UGFyZW50Tm9kZUlkLCBOZXdOYW1lLA0KKyAg ICAgIENvbW1vblJlc3AuRXJyb3IpKTsNCisgICAgU3RhdHVzID0gVmlydGlvRnNFcnJub1RvRWZp U3RhdHVzIChDb21tb25SZXNwLkVycm9yKTsNCisgIH0NCisgIHJldHVybiBTdGF0dXM7DQorfQ0K LS0gCjIuMTkuMS4zLmczMDI0N2FhNWQyMDEKCgo=