From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.groups.io with SMTP id smtpd.web10.4509.1608156634069821965 for ; Wed, 16 Dec 2020 14:10:34 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=KyFfFlqr; spf=pass (domain: redhat.com, ip: 63.128.21.124, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1608156633; 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=2AHJw/7aTHPuVA4Ce00RYNi+TudHGt6LpwZBggNkAi4=; b=KyFfFlqrKW5JQd1dDlInzNYn6CJMozKMuz/kzHPbK/Fs7n1bkR/3scXHlsog2EU2EW/Xa8 HVw0oWFAiOaT/iLmqfTTYGN/S64IpZe2UN+CvZBXbI1DIZwcigEpXmgOwsapzJlIFC8KE6 oG8Fra+SFdUYFdioPE1XaMsoF2daAlc= 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-420-ZCxL6Zi5Mty-CuhO2eid7Q-1; Wed, 16 Dec 2020 17:10:31 -0500 X-MC-Unique: ZCxL6Zi5Mty-CuhO2eid7Q-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0481C800D55; Wed, 16 Dec 2020 22:10:29 +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 490CF1A49B; Wed, 16 Dec 2020 22:10:24 +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 28/48] OvmfPkg/VirtioFsDxe: implement the wrapper function for FUSE_STATFS Date: Wed, 16 Dec 2020 22:11:05 +0100 Message-Id: <20201216211125.19496-29-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.84 on 10.5.11.23 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 QWRkIHRoZSBWaXJ0aW9Gc0Z1c2VTdGF0RnMoKSBmdW5jdGlvbiwgZm9yIHNlbmRpbmcgdGhlIEZV U0VfU1RBVEZTIGNvbW1hbmQKdG8gdGhlIFZpcnRpbyBGaWxlc3lzdGVtIGRldmljZS4KCkNjOiBB cmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT4KQ2M6IEpvcmRhbiBKdXN0ZW4g PGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+CkNjOiBQaGlsaXBwZSBNYXRoaWV1LURhdWTDqSA8 cGhpbG1kQHJlZGhhdC5jb20+ClJlZjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3No b3dfYnVnLmNnaT9pZD0zMDk3ClNpZ25lZC1vZmYtYnk6IExhc3psbyBFcnNlayA8bGVyc2VrQHJl ZGhhdC5jb20+Ci0tLQogT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvVmlydGlvRnMu aCB8ICAxNyArKysrCiBPdm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRpb0ZzRHhlLmluZiAgICAgICAg IHwgICAxICsKIE92bWZQa2cvVmlydGlvRnNEeGUvVmlydGlvRnNEeGUuaCAgICAgICAgICAgfCAg IDcgKysKIE92bWZQa2cvVmlydGlvRnNEeGUvRnVzZVN0YXRGcy5jICAgICAgICAgICAgfCAxMDIg KysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgMTI3IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9WaXJ0aW9Gcy5o IGIvT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvVmlydGlvRnMuaAppbmRleCBlZmNm NTc5NDFjNTkuLjgwMGQzNjUxZTEyYiAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9JbmNsdWRlL0luZHVz dHJ5U3RhbmRhcmQvVmlydGlvRnMuaAorKysgYi9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFu ZGFyZC9WaXJ0aW9Gcy5oCkBAIC0xMTQsMTYgKzExNCwxNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiB0 eXBlZGVmIGVudW0gew0KICAgVmlydGlvRnNGdXNlT3BMb29rdXAgICAgICA9ICAxLA0KICAgVmly dGlvRnNGdXNlT3BGb3JnZXQgICAgICA9ICAyLA0KICAgVmlydGlvRnNGdXNlT3BHZXRBdHRyICAg ICA9ICAzLA0KICAgVmlydGlvRnNGdXNlT3BNa0RpciAgICAgICA9ICA5LA0KICAgVmlydGlvRnNG dXNlT3BVbmxpbmsgICAgICA9IDEwLA0KICAgVmlydGlvRnNGdXNlT3BSbURpciAgICAgICA9IDEx LA0KICAgVmlydGlvRnNGdXNlT3BPcGVuICAgICAgICA9IDE0LA0KKyAgVmlydGlvRnNGdXNlT3BT dGF0RnMgICAgICA9IDE3LA0KICAgVmlydGlvRnNGdXNlT3BSZWxlYXNlICAgICA9IDE4LA0KICAg VmlydGlvRnNGdXNlT3BGc3luYyAgICAgICA9IDIwLA0KICAgVmlydGlvRnNGdXNlT3BGbHVzaCAg ICAgICA9IDI1LA0KICAgVmlydGlvRnNGdXNlT3BJbml0ICAgICAgICA9IDI2LA0KICAgVmlydGlv RnNGdXNlT3BPcGVuRGlyICAgICA9IDI3LA0KICAgVmlydGlvRnNGdXNlT3BSZWxlYXNlRGlyICA9 IDI5LA0KICAgVmlydGlvRnNGdXNlT3BGc3luY0RpciAgICA9IDMwLA0KICAgVmlydGlvRnNGdXNl T3BDcmVhdGUgICAgICA9IDM1LA0KQEAgLTIyOCwxNiArMjI5LDMyIEBAIHR5cGVkZWYgc3RydWN0 IHsKIH0gVklSVElPX0ZTX0ZVU0VfT1BFTl9SRVFVRVNUOw0KIA0KIHR5cGVkZWYgc3RydWN0IHsN CiAgIFVJTlQ2NCBGaWxlSGFuZGxlOw0KICAgVUlOVDMyIE9wZW5GbGFnczsNCiAgIFVJTlQzMiBQ YWRkaW5nOw0KIH0gVklSVElPX0ZTX0ZVU0VfT1BFTl9SRVNQT05TRTsNCiANCisvLw0KKy8vIEhl YWRlciBmb3IgVmlydGlvRnNGdXNlT3BTdGF0RnMuDQorLy8NCit0eXBlZGVmIHN0cnVjdCB7DQor ICBVSU5UNjQgQmxvY2tzOw0KKyAgVUlOVDY0IEJmcmVlOw0KKyAgVUlOVDY0IEJhdmFpbDsNCisg IFVJTlQ2NCBGaWxlczsNCisgIFVJTlQ2NCBGZnJlZTsNCisgIFVJTlQzMiBCc2l6ZTsNCisgIFVJ TlQzMiBOYW1lbGVuOw0KKyAgVUlOVDMyIEZyc2l6ZTsNCisgIFVJTlQzMiBQYWRkaW5nOw0KKyAg VUlOVDMyIFNwYXJlWzZdOw0KK30gVklSVElPX0ZTX0ZVU0VfU1RBVEZTX1JFU1BPTlNFOw0KKw0K IC8vDQogLy8gSGVhZGVyIGZvciBWaXJ0aW9Gc0Z1c2VPcFJlbGVhc2UgYW5kIFZpcnRpb0ZzRnVz ZU9wUmVsZWFzZURpci4NCiAvLw0KIHR5cGVkZWYgc3RydWN0IHsNCiAgIFVJTlQ2NCBGaWxlSGFu ZGxlOw0KICAgVUlOVDMyIEZsYWdzOw0KICAgVUlOVDMyIFJlbGVhc2VGbGFnczsNCiAgIFVJTlQ2 NCBMb2NrT3duZXI7DQpkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4 ZS5pbmYgYi9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRpb0ZzRHhlLmluZgppbmRleCAyMzNjMGM1 YzBmOWEuLjMxODQ0OWRiM2U2MyAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0 aW9Gc0R4ZS5pbmYKKysrIGIvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5pbmYKQEAg LTg5LDE2ICs4OSwxNyBAQCBbU291cmNlc10KICAgRnVzZUdldEF0dHIuYw0KICAgRnVzZUluaXQu Yw0KICAgRnVzZUxvb2t1cC5jDQogICBGdXNlTWtEaXIuYw0KICAgRnVzZU9wZW4uYw0KICAgRnVz ZU9wZW5EaXIuYw0KICAgRnVzZU9wZW5PckNyZWF0ZS5jDQogICBGdXNlUmVsZWFzZS5jDQorICBG dXNlU3RhdEZzLmMNCiAgIEZ1c2VVbmxpbmsuYw0KICAgSGVscGVycy5jDQogICBTaW1wbGVGc0Ns b3NlLmMNCiAgIFNpbXBsZUZzRGVsZXRlLmMNCiAgIFNpbXBsZUZzRmx1c2guYw0KICAgU2ltcGxl RnNHZXRJbmZvLmMNCiAgIFNpbXBsZUZzR2V0UG9zaXRpb24uYw0KICAgU2ltcGxlRnNPcGVuLmMN CmRpZmYgLS1naXQgYS9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRpb0ZzRHhlLmggYi9Pdm1mUGtn L1ZpcnRpb0ZzRHhlL1ZpcnRpb0ZzRHhlLmgKaW5kZXggM2JmNjRjMDE0NmZhLi4wMjljNTY4YjM5 YzcgMTAwNjQ0Ci0tLSBhL092bWZQa2cvVmlydGlvRnNEeGUvVmlydGlvRnNEeGUuaAorKysgYi9P dm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRpb0ZzRHhlLmgKQEAgLTI4NSwxNiArMjg1LDIzIEBAIFZp cnRpb0ZzRnVzZVJlbW92ZUZpbGVPckRpciAoCiBFRklfU1RBVFVTDQogVmlydGlvRnNGdXNlT3Bl biAoDQogICBJTiBPVVQgVklSVElPX0ZTICpWaXJ0aW9GcywNCiAgIElOICAgICBVSU5UNjQgICAg Tm9kZUlkLA0KICAgSU4gICAgIEJPT0xFQU4gICBSZWFkV3JpdGUsDQogICAgICBPVVQgVUlOVDY0 ICAgICpGdXNlSGFuZGxlDQogICApOw0KIA0KK0VGSV9TVEFUVVMNCitWaXJ0aW9Gc0Z1c2VTdGF0 RnMgKA0KKyAgSU4gT1VUIFZJUlRJT19GUyAgICAgICAgICAgICAgICAgICAgICAqVmlydGlvRnMs DQorICBJTiAgICAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgIE5vZGVJZCwNCisgICAg IE9VVCBWSVJUSU9fRlNfRlVTRV9TVEFURlNfUkVTUE9OU0UgKkZpbGVzeXNBdHRyDQorICAgICAp Ow0KKw0KIEVGSV9TVEFUVVMNCiBWaXJ0aW9Gc0Z1c2VSZWxlYXNlRmlsZU9yRGlyICgNCiAgIElO IE9VVCBWSVJUSU9fRlMgKlZpcnRpb0ZzLA0KICAgSU4gICAgIFVJTlQ2NCAgICBOb2RlSWQsDQog ICBJTiAgICAgVUlOVDY0ICAgIEZ1c2VIYW5kbGUsDQogICBJTiAgICAgQk9PTEVBTiAgIElzRGly DQogICApOw0KIA0KZGlmZiAtLWdpdCBhL092bWZQa2cvVmlydGlvRnNEeGUvRnVzZVN0YXRGcy5j IGIvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9GdXNlU3RhdEZzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi5lNzk0Zjg5NzdhNDgKLS0tIC9kZXYvbnVsbAorKysgYi9Pdm1m UGtnL1ZpcnRpb0ZzRHhlL0Z1c2VTdGF0RnMuYwpAQCAtMCwwICsxLDEwMiBAQAorLyoqIEBmaWxl DQorICBGVVNFX1NUQVRGUyB3cmFwcGVyIGZvciB0aGUgVmlydGlvIEZpbGVzeXN0ZW0gZGV2aWNl Lg0KKw0KKyAgQ29weXJpZ2h0IChDKSAyMDIwLCBSZWQgSGF0LCBJbmMuDQorDQorICBTUERYLUxp Y2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KKyoqLw0KKw0KKyNpbmNsdWRl ICJWaXJ0aW9Gc0R4ZS5oIg0KKw0KKy8qKg0KKyAgU2VuZCB0aGUgRlVTRV9TVEFURlMgcmVxdWVz dCB0byB0aGUgVmlydGlvIEZpbGVzeXNlbSBkZXZpY2UsIGZvciByZXRyaWV2aW5nDQorICB0aGUg YXR0cmlidXRlcyBvZiB0aGUgaG9zdC1zaWRlIGZpbGVzeXN0ZW0gdGhhdCBjb250YWlucyBOb2Rl SWQuDQorDQorICBUaGUgZnVuY3Rpb24gbWF5IG9ubHkgYmUgY2FsbGVkIGFmdGVyIFZpcnRpb0Zz RnVzZUluaXRTZXNzaW9uKCkgcmV0dXJucw0KKyAgc3VjY2Vzc2Z1bGx5IGFuZCBiZWZvcmUgVmly dGlvRnNVbmluaXQoKSBpcyBjYWxsZWQuDQorDQorICBAcGFyYW1baW4sb3V0XSBWaXJ0aW9GcyAg VGhlIFZpcnRpbyBGaWxlc3lzdGVtIGRldmljZSB0byBzZW5kIHRoZSBGVVNFX1NUQVRGUw0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QgdG8uIE9uIG91dHB1dCwgdGhlIEZVU0Ug cmVxdWVzdCBjb3VudGVyDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlZpcnRpb0ZzLT5S ZXF1ZXN0SWQiIHdpbGwgaGF2ZSBiZWVuIGluY3JlbWVudGVkLg0KKw0KKyAgQHBhcmFtW2luXSBO b2RlSWQgICAgICAgIFRoZSBpbm9kZSB3aG9zZSBjb250YWluaW5nIGZpbGVzeXN0ZW0gaXMgdG8g YmUNCisgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyaWVkIGZvciBpdHMgYXR0cmlidXRl cy4NCisNCisgIEBwYXJhbVtvdXRdIEZpbGVzeXNBdHRyICBUaGUgVklSVElPX0ZTX0ZVU0VfU1RB VEZTX1JFU1BPTlNFIG9iamVjdCBkZXNjcmliaW5nDQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGhlIGZpbGVzeXN0ZW0gdGhhdCB1bmRlcmxpZXMgTm9kZUlkLg0KKw0KKyAgQHJldHZhbCBF RklfU1VDQ0VTUyAgRmlsZXN5c0F0dHIgaGFzIGJlZW4gZmlsbGVkIGluLg0KKw0KKyAgQHJldHVy biAgICAgICAgICAgICAgVGhlICJlcnJubyIgdmFsdWUgbWFwcGVkIHRvIGFuIEVGSV9TVEFUVVMg Y29kZSwgaWYgdGhlDQorICAgICAgICAgICAgICAgICAgICAgICBWaXJ0aW8gRmlsZXN5c3RlbSBk ZXZpY2UgZXhwbGljaXRseSByZXBvcnRlZCBhbiBlcnJvci4NCisNCisgIEByZXR1cm4gICAgICAg ICAgICAgIEVycm9yIGNvZGVzIHByb3BhZ2F0ZWQgZnJvbSBWaXJ0aW9Gc1NnTGlzdHNWYWxpZGF0 ZSgpLA0KKyAgICAgICAgICAgICAgICAgICAgICAgVmlydGlvRnNGdXNlTmV3UmVxdWVzdCgpLCBW aXJ0aW9Gc1NnTGlzdHNTdWJtaXQoKSwNCisgICAgICAgICAgICAgICAgICAgICAgIFZpcnRpb0Zz RnVzZUNoZWNrUmVzcG9uc2UoKS4NCisqKi8NCitFRklfU1RBVFVTDQorVmlydGlvRnNGdXNlU3Rh dEZzICgNCisgIElOIE9VVCBWSVJUSU9fRlMgICAgICAgICAgICAgICAgICAgICAgKlZpcnRpb0Zz LA0KKyAgSU4gICAgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlSWQsDQorICAg ICBPVVQgVklSVElPX0ZTX0ZVU0VfU1RBVEZTX1JFU1BPTlNFICpGaWxlc3lzQXR0cg0KKyAgICAg KQ0KK3sNCisgIFZJUlRJT19GU19GVVNFX1JFUVVFU1QgICAgICAgIENvbW1vblJlcTsNCisgIFZJ UlRJT19GU19JT19WRUNUT1IgICAgICAgICAgIFJlcUlvVmVjWzFdOw0KKyAgVklSVElPX0ZTX1ND QVRURVJfR0FUSEVSX0xJU1QgUmVxU2dMaXN0Ow0KKyAgVklSVElPX0ZTX0ZVU0VfUkVTUE9OU0Ug ICAgICAgQ29tbW9uUmVzcDsNCisgIFZJUlRJT19GU19JT19WRUNUT1IgICAgICAgICAgIFJlc3BJ b1ZlY1syXTsNCisgIFZJUlRJT19GU19TQ0FUVEVSX0dBVEhFUl9MSVNUIFJlc3BTZ0xpc3Q7DQor ICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAgICBTdGF0dXM7DQorDQorICAvLw0KKyAgLy8g U2V0IHVwIHRoZSBzY2F0dGVyLWdhdGhlciBsaXN0cy4NCisgIC8vDQorICBSZXFJb1ZlY1swXS5C dWZmZXIgPSAmQ29tbW9uUmVxOw0KKyAgUmVxSW9WZWNbMF0uU2l6ZSAgID0gc2l6ZW9mIENvbW1v blJlcTsNCisgIFJlcVNnTGlzdC5Jb1ZlYyAgICA9IFJlcUlvVmVjOw0KKyAgUmVxU2dMaXN0Lk51 bVZlYyAgID0gQVJSQVlfU0laRSAoUmVxSW9WZWMpOw0KKw0KKyAgUmVzcElvVmVjWzBdLkJ1ZmZl ciA9ICZDb21tb25SZXNwOw0KKyAgUmVzcElvVmVjWzBdLlNpemUgICA9IHNpemVvZiBDb21tb25S ZXNwOw0KKyAgUmVzcElvVmVjWzFdLkJ1ZmZlciA9IEZpbGVzeXNBdHRyOw0KKyAgUmVzcElvVmVj WzFdLlNpemUgICA9IHNpemVvZiAqRmlsZXN5c0F0dHI7DQorICBSZXNwU2dMaXN0LklvVmVjICAg ID0gUmVzcElvVmVjOw0KKyAgUmVzcFNnTGlzdC5OdW1WZWMgICA9IEFSUkFZX1NJWkUgKFJlc3BJ b1ZlYyk7DQorDQorICAvLw0KKyAgLy8gVmFsaWRhdGUgdGhlIHNjYXR0ZXItZ2F0aGVyIGxpc3Rz OyBjYWxjdWxhdGUgdGhlIHRvdGFsIHRyYW5zZmVyIHNpemVzLg0KKyAgLy8NCisgIFN0YXR1cyA9 IFZpcnRpb0ZzU2dMaXN0c1ZhbGlkYXRlIChWaXJ0aW9GcywgJlJlcVNnTGlzdCwgJlJlc3BTZ0xp c3QpOw0KKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICByZXR1cm4gU3RhdHVzOw0K KyAgfQ0KKw0KKyAgLy8NCisgIC8vIFBvcHVsYXRlIHRoZSBjb21tb24gcmVxdWVzdCBoZWFkZXIu DQorICAvLw0KKyAgU3RhdHVzID0gVmlydGlvRnNGdXNlTmV3UmVxdWVzdCAoVmlydGlvRnMsICZD b21tb25SZXEsIFJlcVNnTGlzdC5Ub3RhbFNpemUsDQorICAgICAgICAgICAgIFZpcnRpb0ZzRnVz ZU9wU3RhdEZzLCBOb2RlSWQpOw0KKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAgICBy ZXR1cm4gU3RhdHVzOw0KKyAgfQ0KKw0KKyAgLy8NCisgIC8vIFN1Ym1pdCB0aGUgcmVxdWVzdC4N CisgIC8vDQorICBTdGF0dXMgPSBWaXJ0aW9Gc1NnTGlzdHNTdWJtaXQgKFZpcnRpb0ZzLCAmUmVx U2dMaXN0LCAmUmVzcFNnTGlzdCk7DQorICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQorICAg IHJldHVybiBTdGF0dXM7DQorICB9DQorDQorICAvLw0KKyAgLy8gVmVyaWZ5IHRoZSByZXNwb25z ZSAoYWxsIHJlc3BvbnNlIGJ1ZmZlcnMgYXJlIGZpeGVkIHNpemUpLg0KKyAgLy8NCisgIFN0YXR1 cyA9IFZpcnRpb0ZzRnVzZUNoZWNrUmVzcG9uc2UgKCZSZXNwU2dMaXN0LCBDb21tb25SZXEuVW5p cXVlLCBOVUxMKTsNCisgIGlmIChTdGF0dXMgPT0gRUZJX0RFVklDRV9FUlJPUikgew0KKyAgICBE RUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IExhYmVsPVwiJXNcIiBOb2RlSWQ9JUx1IEVycm5vPSVk XG4iLA0KKyAgICAgIF9fRlVOQ1RJT05fXywgVmlydGlvRnMtPkxhYmVsLCBOb2RlSWQsIENvbW1v blJlc3AuRXJyb3IpKTsNCisgICAgU3RhdHVzID0gVmlydGlvRnNFcnJub1RvRWZpU3RhdHVzIChD b21tb25SZXNwLkVycm9yKTsNCisgIH0NCisgIHJldHVybiBTdGF0dXM7DQorfQ0KLS0gCjIuMTku MS4zLmczMDI0N2FhNWQyMDEKCgo=