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.web12.3899.1608154485034633403 for ; Wed, 16 Dec 2020 13:34:45 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=Ag4ZO/k8; 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=1608154484; 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=gDqWLXdrdn3etkaoHMM1Mh8Kb8t/pxouBNnP/Ck7dCo=; b=Ag4ZO/k8bIkXxpMK1aqukWHYRbNnE1uSocV0uRfDWifTKqrTPjl66j9YMFWm4KErYyG2P8 ttoC8M/i0DV9yEy1rik082G4LSdnR0diHeWUZuEsNVOmWvZ/+morfXJSEyzgFtRLq/d1LJ FQtxF5ieedRRgK7IGnSHwxjXrfwSg+o= 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-397-Hm_DG1HaNv6t5phAjwv-Pg-1; Wed, 16 Dec 2020 16:34:41 -0500 X-MC-Unique: Hm_DG1HaNv6t5phAjwv-Pg-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5D771801817; Wed, 16 Dec 2020 21:34:40 +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 AE04E106D5A4; Wed, 16 Dec 2020 21:34:34 +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 11/48] OvmfPkg/VirtioFsDxe: implement EFI_SIMPLE_FILE_SYSTEM_PROTOCOL.OpenVolume() Date: Wed, 16 Dec 2020 22:10:48 +0100 Message-Id: <20201216211125.19496-12-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.22 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 V2l0aCB0aGUgaGVscCBvZiB0aGUgVmlydGlvRnNGdXNlT3BlbkRpcigpIGFuZApWaXJ0aW9Gc0Z1 c2VSZWxlYXNlRmlsZU9yRGlyKCkgZnVuY3Rpb25zIGludHJvZHVjZWQgcHJldmlvdXNseSwgd2Ug Y2FuIG5vdwpvcGVuIGFuZCBjbG9zZSB0aGUgcm9vdCBkaXJlY3RvcnkuIFNvIGxldCdzIGltcGxl bWVudApFRklfU0lNUExFX0ZJTEVfU1lTVEVNX1BST1RPQ09MLk9wZW5Wb2x1bWUoKS4KCk9wZW5W b2x1bWUoKSBjcmVhdGVzIGEgbmV3IEVGSV9GSUxFX1BST1RPQ09MIG9iamVjdCAtLSBhIHJlZmVy ZW5jZSB0byB0aGUKcm9vdCBkaXJlY3Rvcnkgb2YgdGhlIGZpbGVzeXN0ZW0uIFRodXMsIHdlIGhh dmUgdG8gc3RhcnQgdHJhY2tpbmcKcmVmZXJlbmNlcyB0byBFRklfU0lNUExFX0ZJTEVfU1lTVEVN X1BST1RPQ09MLCBsZXN0IHdlIHVuYmluZCB0aGUKdmlydGlvLWZzIGRldmljZSB3aGlsZSBmaWxl cyBhcmUgb3Blbi4KClRoZXJlIGFyZSB0d28gbWV0aG9kcyB0aGF0IHJlbGVhc2UgYW4gRUZJX0ZJ TEVfUFJPVE9DT0wgb2JqZWN0OiB0aGUKQ2xvc2UoKSBhbmQgdGhlIERlbGV0ZSgpIG1lbWJlciBm dW5jdGlvbnMuIEluIHBhcnRpY3VsYXIsIHRoZXkgYXJlIG5vdAphbGxvd2VkIHRvIGZhaWwgd2l0 aCByZWdhcmQgdG8gcmVzb3VyY2UgbWFuYWdlbWVudCAtLSB0aGV5IG11c3QgcmVsZWFzZQpyZXNv dXJjZXMgdW5jb25kaXRpb25hbGx5LiBUaHVzLCBmb3Igcm9sbGluZyBiYWNrIHRoZSByZXNvdXJj ZSBhY2NvdW50aW5nCnRoYXQgd2UgZG8gaW4gRUZJX1NJTVBMRV9GSUxFX1NZU1RFTV9QUk9UT0NP TC5PcGVuVm9sdW1lKCksIHdlIGhhdmUgdG8KaW1wbGVtZW50IHRoZSBmaXJzdCB2ZXJzaW9ucyBv ZiBFRklfRklMRV9QUk9UT0NPTC5DbG9zZSgpIGFuZApFRklfRklMRV9QUk9UT0NPTC5EZWxldGUo KSBpbiB0aGlzIHBhdGNoIGFzIHdlbGwuCgpXaXRoIHRoaXMgcGF0Y2ggYXBwbGllZCwgdGhlIFVF Rkkgc2hlbGwgY2FuIGVudGVyIHRoZSByb290IGRpcmVjdG9yeSBvZgp0aGUgVmlydGlvIEZpbGVz eXN0ZW0gKHN1Y2ggYXMgd2l0aCB0aGUgIkZTMzoiIHNoZWxsIGNvbW1hbmQpLCBhbmQgdGhlCiJE SVIiIHNoZWxsIGNvbW1hbmQgZXhlcmNpc2VzIEZVU0VfT1BFTkRJUiBhbmQgRlVTRV9SRUxFQVNF RElSLCBhY2NvcmRpbmcKdG8gdGhlIHZpcnRpb2ZzZCBsb2cuIFRoZSAiRElSIiBjb21tYW5kIHJl cG9ydHMgdGhlIHJvb3QgZGlyZWN0b3J5IGFzIGlmCml0IHdlcmUgZW1wdHk7IHByb2JhYmx5IGJl Y2F1c2UgYXQgdGhpcyB0aW1lLCB3ZSBvbmx5IGFsbG93IHRoZSBzaGVsbCB0bwpvcGVuIGFuZCB0 byBjbG9zZSB0aGUgcm9vdCBkaXJlY3RvcnksIGJ1dCBub3QgdG8gcmVhZCBpdC4KCkNjOiBBcmQg Qmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT4KQ2M6IEpvcmRhbiBKdXN0ZW4gPGpv cmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+CkNjOiBQaGlsaXBwZSBNYXRoaWV1LURhdWTDqSA8cGhp bG1kQHJlZGhhdC5jb20+ClJlZjogaHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3df YnVnLmNnaT9pZD0zMDk3ClNpZ25lZC1vZmYtYnk6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhh dC5jb20+Ci0tLQogT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvVmlydGlvRnMuaCB8 ICAgNSArCiBPdm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRpb0ZzRHhlLmluZiAgICAgICAgIHwgIDEw ICsrCiBPdm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRpb0ZzRHhlLmggICAgICAgICAgIHwgMTE3ICsr KysrKysrKysrKysrKysrKysrCiBPdm1mUGtnL1ZpcnRpb0ZzRHhlL0RyaXZlckJpbmRpbmcuYyAg ICAgICAgIHwgICA1ICsKIE92bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNDbG9zZS5jICAgICAg ICAgfCAgNDggKysrKysrKysKIE92bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNEZWxldGUuYyAg ICAgICAgfCAgMjkgKysrKysKIE92bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNGbHVzaC5jICAg ICAgICAgfCAgMTggKysrCiBPdm1mUGtnL1ZpcnRpb0ZzRHhlL1NpbXBsZUZzR2V0SW5mby5jICAg ICAgIHwgIDIxICsrKysKIE92bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNHZXRQb3NpdGlvbi5j ICAgfCAgMjAgKysrKwogT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9TaW1wbGVGc09wZW4uYyAgICAgICAg ICB8ICAyMiArKysrCiBPdm1mUGtnL1ZpcnRpb0ZzRHhlL1NpbXBsZUZzT3BlblZvbHVtZS5jICAg IHwgIDU3ICsrKysrKysrKy0KIE92bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNSZWFkLmMgICAg ICAgICAgfCAgMjAgKysrKwogT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9TaW1wbGVGc1NldEluZm8uYyAg ICAgICB8ICAyMSArKysrCiBPdm1mUGtnL1ZpcnRpb0ZzRHhlL1NpbXBsZUZzU2V0UG9zaXRpb24u YyAgIHwgIDIwICsrKysKIE92bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNXcml0ZS5jICAgICAg ICAgfCAgMjAgKysrKwogMTUgZmlsZXMgY2hhbmdlZCwgNDMyIGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9W aXJ0aW9Gcy5oIGIvT3ZtZlBrZy9JbmNsdWRlL0luZHVzdHJ5U3RhbmRhcmQvVmlydGlvRnMuaApp bmRleCBjMTdhNDNjMTYwZTMuLjY3ZmNmOTc1ZThiMiAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9JbmNs dWRlL0luZHVzdHJ5U3RhbmRhcmQvVmlydGlvRnMuaAorKysgYi9Pdm1mUGtnL0luY2x1ZGUvSW5k dXN0cnlTdGFuZGFyZC9WaXJ0aW9Gcy5oCkBAIC03MSwxNiArNzEsMjEgQEAgdHlwZWRlZiBzdHJ1 Y3QgewogLy8gb3V0IGF0IGNvbW1pdCAoYzZmZjIxM2ZlNWI4XikgPSBkNzgwOTJlNDkzN2QgKCJm dXNlOiBmaXggcGFnZSBkZXJlZmVyZW5jZQ0KIC8vIGFmdGVyIGZyZWUiLCAyMDIwLTA5LTE4KTsg dGhhdCBpcywgcmlnaHQgYmVmb3JlIGNvbW1pdCBjNmZmMjEzZmU1YjggKCJmdXNlOg0KIC8vIGFk ZCBzdWJtb3VudCBzdXBwb3J0IHRvIDx1YXBpL2xpbnV4L2Z1c2UuaD4iLCAyMDIwLTA5LTE4KSBp bnRyb2R1Y2VzIEZVU0UNCiAvLyBpbnRlcmZhY2UgdmVyc2lvbiA3LjMyLg0KIC8vDQogI2RlZmlu ZSBWSVJUSU9fRlNfRlVTRV9NQUpPUiAgNw0KICNkZWZpbmUgVklSVElPX0ZTX0ZVU0VfTUlOT1Ig MzENCiANCisvLw0KKy8vIFRoZSBpbm9kZSBudW1iZXIgb2YgdGhlIHJvb3QgZGlyZWN0b3J5Lg0K Ky8vDQorI2RlZmluZSBWSVJUSU9fRlNfRlVTRV9ST09UX0RJUl9OT0RFX0lEIDENCisNCiAvLw0K IC8vIEZVU0Ugb3BlcmF0aW9uIGNvZGVzLg0KIC8vDQogdHlwZWRlZiBlbnVtIHsNCiAgIFZpcnRp b0ZzRnVzZU9wUmVsZWFzZSAgICAgPSAxOCwNCiAgIFZpcnRpb0ZzRnVzZU9wSW5pdCAgICAgICAg PSAyNiwNCiAgIFZpcnRpb0ZzRnVzZU9wT3BlbkRpciAgICAgPSAyNywNCiAgIFZpcnRpb0ZzRnVz ZU9wUmVsZWFzZURpciAgPSAyOSwNCmRpZmYgLS1naXQgYS9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1Zp cnRpb0ZzRHhlLmluZiBiL092bWZQa2cvVmlydGlvRnNEeGUvVmlydGlvRnNEeGUuaW5mCmluZGV4 IDk1YjFhNWE4ZjYwYS4uMjhlNjYwODJlY2ZlIDEwMDY0NAotLS0gYS9Pdm1mUGtnL1ZpcnRpb0Zz RHhlL1ZpcnRpb0ZzRHhlLmluZgorKysgYi9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1ZpcnRpb0ZzRHhl LmluZgpAQCAtODEsMTcgKzgxLDI3IEBAIFtQYWNrYWdlc10KICAgT3ZtZlBrZy9Pdm1mUGtnLmRl Yw0KIA0KIFtTb3VyY2VzXQ0KICAgRHJpdmVyQmluZGluZy5jDQogICBGdXNlSW5pdC5jDQogICBG dXNlT3BlbkRpci5jDQogICBGdXNlUmVsZWFzZS5jDQogICBIZWxwZXJzLmMNCisgIFNpbXBsZUZz Q2xvc2UuYw0KKyAgU2ltcGxlRnNEZWxldGUuYw0KKyAgU2ltcGxlRnNGbHVzaC5jDQorICBTaW1w bGVGc0dldEluZm8uYw0KKyAgU2ltcGxlRnNHZXRQb3NpdGlvbi5jDQorICBTaW1wbGVGc09wZW4u Yw0KICAgU2ltcGxlRnNPcGVuVm9sdW1lLmMNCisgIFNpbXBsZUZzUmVhZC5jDQorICBTaW1wbGVG c1NldEluZm8uYw0KKyAgU2ltcGxlRnNTZXRQb3NpdGlvbi5jDQorICBTaW1wbGVGc1dyaXRlLmMN CiAgIFZpcnRpb0ZzRHhlLmgNCiANCiBbTGlicmFyeUNsYXNzZXNdDQogICBCYXNlTGliDQogICBE ZWJ1Z0xpYg0KICAgTWVtb3J5QWxsb2NhdGlvbkxpYg0KICAgVWVmaUJvb3RTZXJ2aWNlc1RhYmxl TGliDQogICBVZWZpRHJpdmVyRW50cnlQb2ludA0KZGlmZiAtLWdpdCBhL092bWZQa2cvVmlydGlv RnNEeGUvVmlydGlvRnNEeGUuaCBiL092bWZQa2cvVmlydGlvRnNEeGUvVmlydGlvRnNEeGUuaApp bmRleCBhOTk2MjVkMDQ3M2EuLjM0NTc0ZDA1OTZmYyAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9WaXJ0 aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5oCisrKyBiL092bWZQa2cvVmlydGlvRnNEeGUvVmlydGlvRnNE eGUuaApAQCAtMTQsMTYgKzE0LDE5IEBACiAjaW5jbHVkZSA8SW5kdXN0cnlTdGFuZGFyZC9WaXJ0 aW9Gcy5oPiAvLyBWSVJUSU9fRlNfVEFHX0JZVEVTDQogI2luY2x1ZGUgPExpYnJhcnkvRGVidWdM aWIuaD4gICAgICAgICAgLy8gQ1IoKQ0KICNpbmNsdWRlIDxQcm90b2NvbC9TaW1wbGVGaWxlU3lz dGVtLmg+IC8vIEVGSV9TSU1QTEVfRklMRV9TWVNURU1fUFJPVE9DT0wNCiAjaW5jbHVkZSA8UHJv dG9jb2wvVmlydGlvRGV2aWNlLmg+ICAgICAvLyBWSVJUSU9fREVWSUNFX1BST1RPQ09MDQogI2lu Y2x1ZGUgPFVlZmkvVWVmaUJhc2VUeXBlLmg+ICAgICAgICAgLy8gRUZJX0VWRU5UDQogDQogI2Rl ZmluZSBWSVJUSU9fRlNfU0lHIFNJR05BVFVSRV82NCAoJ1YnLCAnSScsICdSJywgJ1QnLCAnSScs ICdPJywgJ0YnLCAnUycpDQogDQorI2RlZmluZSBWSVJUSU9fRlNfRklMRV9TSUcgXA0KKyAgU0lH TkFUVVJFXzY0ICgnVicsICdJJywgJ08nLCAnRicsICdTJywgJ0YnLCAnSScsICdMJykNCisNCiAv Lw0KIC8vIEZpbGVzeXN0ZW0gbGFiZWwgZW5jb2RlZCBpbiBVQ1MtMiwgdHJhbnNmb3JtZWQgZnJv bSB0aGUgVVRGLTggcmVwcmVzZW50YXRpb24NCiAvLyBpbiAiVklSVElPX0ZTX0NPTkZJRy5UYWci LCBhbmQgTlVMLXRlcm1pbmF0ZWQuIE9ubHkgdGhlIHByaW50YWJsZSBBU0NJSSBjb2RlDQogLy8g cG9pbnRzIChVKzAwMjAgdGhyb3VnaCBVKzAwN0UpIGFyZSBzdXBwb3J0ZWQuDQogLy8NCiB0eXBl ZGVmIENIQVIxNiBWSVJUSU9fRlNfTEFCRUxbVklSVElPX0ZTX1RBR19CWVRFUyArIDFdOw0KIA0K IC8vDQpAQCAtNDEsMTYgKzQ0LDE3IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgVUlOVDY0ICAgICAg ICAgICAgICAgICAgICAgICAgICBTaWduYXR1cmU7IC8vIERyaXZlckJpbmRpbmdTdGFydCAgMA0K ICAgVklSVElPX0RFVklDRV9QUk9UT0NPTCAgICAgICAgICAqVmlydGlvOyAgIC8vIERyaXZlckJp bmRpbmdTdGFydCAgMA0KICAgVklSVElPX0ZTX0xBQkVMICAgICAgICAgICAgICAgICBMYWJlbDsg ICAgIC8vIFZpcnRpb0ZzSW5pdCAgICAgICAgMQ0KICAgVUlOVDE2ICAgICAgICAgICAgICAgICAg ICAgICAgICBRdWV1ZVNpemU7IC8vIFZpcnRpb0ZzSW5pdCAgICAgICAgMQ0KICAgVlJJTkcgICAg ICAgICAgICAgICAgICAgICAgICAgICBSaW5nOyAgICAgIC8vIFZpcnRpb1JpbmdJbml0ICAgICAg Mg0KICAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAqUmluZ01hcDsgIC8vIFZpcnRp b1JpbmdNYXAgICAgICAgMg0KICAgVUlOVDY0ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXF1 ZXN0SWQ7IC8vIEZ1c2VJbml0U2Vzc2lvbiAgICAgMQ0KICAgRUZJX0VWRU5UICAgICAgICAgICAg ICAgICAgICAgICBFeGl0Qm9vdDsgIC8vIERyaXZlckJpbmRpbmdTdGFydCAgMA0KKyAgTElTVF9F TlRSWSAgICAgICAgICAgICAgICAgICAgICBPcGVuRmlsZXM7IC8vIERyaXZlckJpbmRpbmdTdGFy dCAgMA0KICAgRUZJX1NJTVBMRV9GSUxFX1NZU1RFTV9QUk9UT0NPTCBTaW1wbGVGczsgIC8vIERy aXZlckJpbmRpbmdTdGFydCAgMA0KIH0gVklSVElPX0ZTOw0KIA0KICNkZWZpbmUgVklSVElPX0ZT X0ZST01fU0lNUExFX0ZTKFNpbXBsZUZzUmVmZXJlbmNlKSBcDQogICBDUiAoU2ltcGxlRnNSZWZl cmVuY2UsIFZJUlRJT19GUywgU2ltcGxlRnMsIFZJUlRJT19GU19TSUcpOw0KIA0KIC8vDQogLy8g U3RydWN0dXJlIGZvciBkZXNjcmliaW5nIGEgY29udGlndW91cyBidWZmZXIsIHBvdGVudGlhbGx5 IG1hcHBlZCBmb3IgVmlydGlvDQpAQCAtOTMsMTYgKzk3LDQ5IEBAIHR5cGVkZWYgc3RydWN0IHsK ICAgVUlOVE4gICAgICAgICAgICAgICBOdW1WZWM7DQogICAvLw0KICAgLy8gVG90YWxTaXplIGlz IGNhbGN1bGF0ZWQgd2hlbiB0aGUgc2NhdHRlci1nYXRoZXIgbGlzdCBpcyBpbml0aWFsbHkNCiAg IC8vIHZhbGlkYXRlZC4NCiAgIC8vDQogICBVSU5UMzIgVG90YWxTaXplOw0KIH0gVklSVElPX0ZT X1NDQVRURVJfR0FUSEVSX0xJU1Q7DQogDQorLy8NCisvLyBQcml2YXRlIGNvbnRleHQgc3RydWN0 dXJlIHRoYXQgZXhwb3NlcyBFRklfRklMRV9QUk9UT0NPTCBvbiB0b3Agb2YgYW4gb3Blbg0KKy8v IEZVU0UgZmlsZSByZWZlcmVuY2UuDQorLy8NCit0eXBlZGVmIHN0cnVjdCB7DQorICBVSU5UNjQg ICAgICAgICAgICBTaWduYXR1cmU7DQorICBFRklfRklMRV9QUk9UT0NPTCBTaW1wbGVGaWxlOw0K KyAgQk9PTEVBTiAgICAgICAgICAgSXNEaXJlY3Rvcnk7DQorICBWSVJUSU9fRlMgICAgICAgICAq T3duZXJGczsNCisgIExJU1RfRU5UUlkgICAgICAgIE9wZW5GaWxlc0VudHJ5Ow0KKyAgLy8NCisg IC8vIEluIHRoZSBGVVNFIHdpcmUgcHJvdG9jb2wsIGV2ZXJ5IHJlcXVlc3QgZXhjZXB0IEZVU0Vf SU5JVCByZWZlcnMgdG8gYQ0KKyAgLy8gZmlsZSwgbmFtZWx5IGJ5IHRoZSAiVklSVElPX0ZTX0ZV U0VfUkVRVUVTVC5Ob2RlSWQiIGZpZWxkOyB0aGF0IGlzLCBieSB0aGUNCisgIC8vIGlub2RlIG51 bWJlciBvZiB0aGUgZmlsZS4gSG93ZXZlciwgc29tZSBvZiB0aGUgRlVTRSByZXF1ZXN0cyB0aGF0 IHdlIG5lZWQNCisgIC8vIGZvciBzb21lIG9mIHRoZSBFRklfRklMRV9QUk9UT0NPTCBtZW1iZXIg ZnVuY3Rpb25zIHJlcXVpcmUgYW4gb3BlbiBmaWxlDQorICAvLyBoYW5kbGUgKmluIGFkZGl0aW9u KiB0byB0aGUgaW5vZGUgbnVtYmVyLiBGb3Igc2ltcGxpY2l0eSwgd2hlbmV2ZXIgYQ0KKyAgLy8g VklSVElPX0ZTX0ZJTEUgb2JqZWN0IGlzIGNyZWF0ZWQsIHByaW1hcmlseSBkZWZpbmVkIGJ5IGl0 cyBOb2RlSWQgZmllbGQsDQorICAvLyB3ZSBhbHNvICpvcGVuKiB0aGUgcmVmZXJlbmNlZCBmaWxl IGF0IG9uY2UsIGFuZCBzYXZlIHRoZSByZXR1cm5lZCBmaWxlDQorICAvLyBoYW5kbGUgaW4gdGhl IEZ1c2VIYW5kbGUgZmllbGQuIFRoaXMgd2F5LCB3aGVuIGFuIEVGSV9GSUxFX1BST1RPQ09MIG1l bWJlcg0KKyAgLy8gZnVuY3Rpb24gbXVzdCBzZW5kIGEgRlVTRSByZXF1ZXN0IHRoYXQgbmVlZHMg dGhlIGZpbGUgaGFuZGxlICppbiBhZGRpdGlvbioNCisgIC8vIHRvIHRoZSBpbm9kZSBudW1iZXIs IEZ1c2VIYW5kbGUgd2lsbCBiZSBhdCBvdXIgZGlzcG9zYWwgYXQgb25jZS4NCisgIC8vDQorICBV SU5UNjQgTm9kZUlkOw0KKyAgVUlOVDY0IEZ1c2VIYW5kbGU7DQorfSBWSVJUSU9fRlNfRklMRTsN CisNCisjZGVmaW5lIFZJUlRJT19GU19GSUxFX0ZST01fU0lNUExFX0ZJTEUoU2ltcGxlRmlsZVJl ZmVyZW5jZSkgXA0KKyAgQ1IgKFNpbXBsZUZpbGVSZWZlcmVuY2UsIFZJUlRJT19GU19GSUxFLCBT aW1wbGVGaWxlLCBWSVJUSU9fRlNfRklMRV9TSUcpOw0KKw0KKyNkZWZpbmUgVklSVElPX0ZTX0ZJ TEVfRlJPTV9PUEVOX0ZJTEVTX0VOVFJZKE9wZW5GaWxlc0VudHJ5UmVmZXJlbmNlKSBcDQorICBD UiAoT3BlbkZpbGVzRW50cnlSZWZlcmVuY2UsIFZJUlRJT19GU19GSUxFLCBPcGVuRmlsZXNFbnRy eSwgXA0KKyAgICBWSVJUSU9fRlNfRklMRV9TSUcpOw0KKw0KIC8vDQogLy8gSW5pdGlhbGl6YXRp b24gYW5kIGhlbHBlciByb3V0aW5lcyBmb3IgdGhlIFZpcnRpbyBGaWxlc3lzdGVtIGRldmljZS4N CiAvLw0KIA0KIEVGSV9TVEFUVVMNCiBWaXJ0aW9Gc0luaXQgKA0KICAgSU4gT1VUIFZJUlRJT19G UyAqVmlydGlvRnMNCiAgICk7DQpAQCAtMTg1LDkgKzIyMiw4OSBAQCBWaXJ0aW9Gc0Z1c2VPcGVu RGlyICgKIA0KIEVGSV9TVEFUVVMNCiBFRklBUEkNCiBWaXJ0aW9Gc09wZW5Wb2x1bWUgKA0KICAg SU4gIEVGSV9TSU1QTEVfRklMRV9TWVNURU1fUFJPVE9DT0wgKlRoaXMsDQogICBPVVQgRUZJX0ZJ TEVfUFJPVE9DT0wgICAgICAgICAgICAgICAqKlJvb3QNCiAgICk7DQogDQorLy8NCisvLyBFRklf RklMRV9QUk9UT0NPTCBtZW1iZXIgZnVuY3Rpb25zIGZvciB0aGUgVmlydGlvIEZpbGVzeXN0ZW0g ZHJpdmVyLg0KKy8vDQorDQorRUZJX1NUQVRVUw0KK0VGSUFQSQ0KK1ZpcnRpb0ZzU2ltcGxlRmls ZUNsb3NlICgNCisgIElOIEVGSV9GSUxFX1BST1RPQ09MICpUaGlzDQorICApOw0KKw0KK0VGSV9T VEFUVVMNCitFRklBUEkNCitWaXJ0aW9Gc1NpbXBsZUZpbGVEZWxldGUgKA0KKyAgSU4gRUZJX0ZJ TEVfUFJPVE9DT0wgKlRoaXMNCisgICk7DQorDQorRUZJX1NUQVRVUw0KK0VGSUFQSQ0KK1ZpcnRp b0ZzU2ltcGxlRmlsZUZsdXNoICgNCisgIElOIEVGSV9GSUxFX1BST1RPQ09MICpUaGlzDQorICAp Ow0KKw0KK0VGSV9TVEFUVVMNCitFRklBUEkNCitWaXJ0aW9Gc1NpbXBsZUZpbGVHZXRJbmZvICgN CisgIElOICAgICBFRklfRklMRV9QUk9UT0NPTCAqVGhpcywNCisgIElOICAgICBFRklfR1VJRCAg ICAgICAgICAqSW5mb3JtYXRpb25UeXBlLA0KKyAgSU4gT1VUIFVJTlROICAgICAgICAgICAgICpC dWZmZXJTaXplLA0KKyAgICAgT1VUIFZPSUQgICAgICAgICAgICAgICpCdWZmZXINCisgICk7DQor DQorRUZJX1NUQVRVUw0KK0VGSUFQSQ0KK1ZpcnRpb0ZzU2ltcGxlRmlsZUdldFBvc2l0aW9uICgN CisgIElOICAgICBFRklfRklMRV9QUk9UT0NPTCAqVGhpcywNCisgICAgIE9VVCBVSU5UNjQgICAg ICAgICAgICAqUG9zaXRpb24NCisgICk7DQorDQorRUZJX1NUQVRVUw0KK0VGSUFQSQ0KK1ZpcnRp b0ZzU2ltcGxlRmlsZU9wZW4gKA0KKyAgSU4gICAgIEVGSV9GSUxFX1BST1RPQ09MICpUaGlzLA0K KyAgICAgT1VUIEVGSV9GSUxFX1BST1RPQ09MICoqTmV3SGFuZGxlLA0KKyAgSU4gICAgIENIQVIx NiAgICAgICAgICAgICpGaWxlTmFtZSwNCisgIElOICAgICBVSU5UNjQgICAgICAgICAgICBPcGVu TW9kZSwNCisgIElOICAgICBVSU5UNjQgICAgICAgICAgICBBdHRyaWJ1dGVzDQorICApOw0KKw0K K0VGSV9TVEFUVVMNCitFRklBUEkNCitWaXJ0aW9Gc1NpbXBsZUZpbGVSZWFkICgNCisgIElOICAg ICBFRklfRklMRV9QUk9UT0NPTCAqVGhpcywNCisgIElOIE9VVCBVSU5UTiAgICAgICAgICAgICAq QnVmZmVyU2l6ZSwNCisgICAgIE9VVCBWT0lEICAgICAgICAgICAgICAqQnVmZmVyDQorICApOw0K Kw0KK0VGSV9TVEFUVVMNCitFRklBUEkNCitWaXJ0aW9Gc1NpbXBsZUZpbGVTZXRJbmZvICgNCisg IElOIEVGSV9GSUxFX1BST1RPQ09MICpUaGlzLA0KKyAgSU4gRUZJX0dVSUQgICAgICAgICAgKklu Zm9ybWF0aW9uVHlwZSwNCisgIElOIFVJTlROICAgICAgICAgICAgIEJ1ZmZlclNpemUsDQorICBJ TiBWT0lEICAgICAgICAgICAgICAqQnVmZmVyDQorICApOw0KKw0KK0VGSV9TVEFUVVMNCitFRklB UEkNCitWaXJ0aW9Gc1NpbXBsZUZpbGVTZXRQb3NpdGlvbiAoDQorICBJTiBFRklfRklMRV9QUk9U T0NPTCAqVGhpcywNCisgIElOIFVJTlQ2NCAgICAgICAgICAgIFBvc2l0aW9uDQorICApOw0KKw0K K0VGSV9TVEFUVVMNCitFRklBUEkNCitWaXJ0aW9Gc1NpbXBsZUZpbGVXcml0ZSAoDQorICBJTiAg ICAgRUZJX0ZJTEVfUFJPVE9DT0wgKlRoaXMsDQorICBJTiBPVVQgVUlOVE4gICAgICAgICAgICAg KkJ1ZmZlclNpemUsDQorICBJTiAgICAgVk9JRCAgICAgICAgICAgICAgKkJ1ZmZlcg0KKyAgKTsN CisNCiAjZW5kaWYgLy8gVklSVElPX0ZTX0RYRV9IXw0KZGlmZiAtLWdpdCBhL092bWZQa2cvVmly dGlvRnNEeGUvRHJpdmVyQmluZGluZy5jIGIvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9Ecml2ZXJCaW5k aW5nLmMKaW5kZXggNGY3N2ZmYWE5OTUzLi5lMjczYzlmMzYyZWIgMTAwNjQ0Ci0tLSBhL092bWZQ a2cvVmlydGlvRnNEeGUvRHJpdmVyQmluZGluZy5jCisrKyBiL092bWZQa2cvVmlydGlvRnNEeGUv RHJpdmVyQmluZGluZy5jCkBAIC05MCwxNiArOTAsMTcgQEAgVmlydGlvRnNCaW5kaW5nU3RhcnQg KAogICB9DQogDQogICBTdGF0dXMgPSBnQlMtPkNyZWF0ZUV2ZW50IChFVlRfU0lHTkFMX0VYSVRf Qk9PVF9TRVJWSUNFUywgVFBMX0NBTExCQUNLLA0KICAgICAgICAgICAgICAgICAgIFZpcnRpb0Zz RXhpdEJvb3QsIFZpcnRpb0ZzLCAmVmlydGlvRnMtPkV4aXRCb290KTsNCiAgIGlmIChFRklfRVJS T1IgKFN0YXR1cykpIHsNCiAgICAgZ290byBVbmluaXRWaXJ0aW9GczsNCiAgIH0NCiANCisgIElu aXRpYWxpemVMaXN0SGVhZCAoJlZpcnRpb0ZzLT5PcGVuRmlsZXMpOw0KICAgVmlydGlvRnMtPlNp bXBsZUZzLlJldmlzaW9uICAgPSBFRklfU0lNUExFX0ZJTEVfU1lTVEVNX1BST1RPQ09MX1JFVklT SU9OOw0KICAgVmlydGlvRnMtPlNpbXBsZUZzLk9wZW5Wb2x1bWUgPSBWaXJ0aW9Gc09wZW5Wb2x1 bWU7DQogDQogICBTdGF0dXMgPSBnQlMtPkluc3RhbGxQcm90b2NvbEludGVyZmFjZSAoJkNvbnRy b2xsZXJIYW5kbGUsDQogICAgICAgICAgICAgICAgICAgJmdFZmlTaW1wbGVGaWxlU3lzdGVtUHJv dG9jb2xHdWlkLCBFRklfTkFUSVZFX0lOVEVSRkFDRSwNCiAgICAgICAgICAgICAgICAgICAmVmly dGlvRnMtPlNpbXBsZUZzKTsNCiAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCiAgICAgZ290 byBDbG9zZUV4aXRCb290Ow0KQEAgLTE0NCwxNiArMTQ1LDIwIEBAIFZpcnRpb0ZzQmluZGluZ1N0 b3AgKAogICAgICAgICAgICAgICAgICAgVGhpcy0+RHJpdmVyQmluZGluZ0hhbmRsZSwgQ29udHJv bGxlckhhbmRsZSwNCiAgICAgICAgICAgICAgICAgICBFRklfT1BFTl9QUk9UT0NPTF9HRVRfUFJP VE9DT0wpOw0KICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KICAgICByZXR1cm4gU3RhdHVz Ow0KICAgfQ0KIA0KICAgVmlydGlvRnMgPSBWSVJUSU9fRlNfRlJPTV9TSU1QTEVfRlMgKFNpbXBs ZUZzKTsNCiANCisgIGlmICghSXNMaXN0RW1wdHkgKCZWaXJ0aW9Gcy0+T3BlbkZpbGVzKSkgew0K KyAgICByZXR1cm4gRUZJX0FDQ0VTU19ERU5JRUQ7DQorICB9DQorDQogICBTdGF0dXMgPSBnQlMt PlVuaW5zdGFsbFByb3RvY29sSW50ZXJmYWNlIChDb250cm9sbGVySGFuZGxlLA0KICAgICAgICAg ICAgICAgICAgICZnRWZpU2ltcGxlRmlsZVN5c3RlbVByb3RvY29sR3VpZCwgU2ltcGxlRnMpOw0K ICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KICAgICByZXR1cm4gU3RhdHVzOw0KICAgfQ0K IA0KICAgU3RhdHVzID0gZ0JTLT5DbG9zZUV2ZW50IChWaXJ0aW9Gcy0+RXhpdEJvb3QpOw0KICAg QVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCmRpZmYgLS1naXQgYS9Pdm1mUGtnL1ZpcnRpb0Zz RHhlL1NpbXBsZUZzQ2xvc2UuYyBiL092bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNDbG9zZS5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDFiYmVhZTIxNDczCi0t LSAvZGV2L251bGwKKysrIGIvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9TaW1wbGVGc0Nsb3NlLmMKQEAg LTAsMCArMSw0OCBAQAorLyoqIEBmaWxlDQorICBFRklfRklMRV9QUk9UT0NPTC5DbG9zZSgpIG1l bWJlciBmdW5jdGlvbiBmb3IgdGhlIFZpcnRpbyBGaWxlc3lzdGVtIGRyaXZlci4NCisNCisgIENv cHlyaWdodCAoQykgMjAyMCwgUmVkIEhhdCwgSW5jLg0KKw0KKyAgU1BEWC1MaWNlbnNlLUlkZW50 aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCisqKi8NCisNCisjaW5jbHVkZSA8TGlicmFyeS9C YXNlTGliLmg+ICAgICAgICAgICAgIC8vIFJlbW92ZUVudHJ5TGlzdCgpDQorI2luY2x1ZGUgPExp YnJhcnkvTWVtb3J5QWxsb2NhdGlvbkxpYi5oPiAvLyBGcmVlUG9vbCgpDQorDQorI2luY2x1ZGUg IlZpcnRpb0ZzRHhlLmgiDQorDQorRUZJX1NUQVRVUw0KK0VGSUFQSQ0KK1ZpcnRpb0ZzU2ltcGxl RmlsZUNsb3NlICgNCisgIElOIEVGSV9GSUxFX1BST1RPQ09MICpUaGlzDQorICApDQorew0KKyAg VklSVElPX0ZTX0ZJTEUgKlZpcnRpb0ZzRmlsZTsNCisgIFZJUlRJT19GUyAgICAgICpWaXJ0aW9G czsNCisNCisgIFZpcnRpb0ZzRmlsZSA9IFZJUlRJT19GU19GSUxFX0ZST01fU0lNUExFX0ZJTEUg KFRoaXMpOw0KKyAgVmlydGlvRnMgICAgID0gVmlydGlvRnNGaWxlLT5Pd25lckZzOw0KKw0KKyAg Ly8NCisgIC8vIEF0IHRoaXMgcG9pbnQsIHRoZSBpbXBsZW1lbnRhdGlvbiBpcyBvbmx5IHN1aXRh YmxlIGZvciBjbG9zaW5nIHRoZQ0KKyAgLy8gVklSVElPX0ZTX0ZJTEUgdGhhdCB3YXMgY3JlYXRl ZCBieSBWaXJ0aW9Gc09wZW5Wb2x1bWUoKS4NCisgIC8vDQorICBBU1NFUlQgKFZpcnRpb0ZzRmls ZS0+SXNEaXJlY3RvcnkpOw0KKyAgQVNTRVJUIChWaXJ0aW9Gc0ZpbGUtPk5vZGVJZCA9PSBWSVJU SU9fRlNfRlVTRV9ST09UX0RJUl9OT0RFX0lEKTsNCisgIC8vDQorICAvLyBDbG9zZSB0aGUgcm9v dCBkaXJlY3RvcnkuDQorICAvLw0KKyAgLy8gSWdub3JlIGFueSBlcnJvcnMsIGJlY2F1c2UgRUZJ X0ZJTEVfUFJPVE9DT0wuQ2xvc2UoKSBpcyByZXF1aXJlZCB0bw0KKyAgLy8gcmVsZWFzZSB0aGUg RUZJX0ZJTEVfUFJPVE9DT0wgb2JqZWN0IHVuY29uZGl0aW9uYWxseS4NCisgIC8vDQorICBWaXJ0 aW9Gc0Z1c2VSZWxlYXNlRmlsZU9yRGlyIChWaXJ0aW9GcywgVmlydGlvRnNGaWxlLT5Ob2RlSWQs DQorICAgIFZpcnRpb0ZzRmlsZS0+RnVzZUhhbmRsZSwgVmlydGlvRnNGaWxlLT5Jc0RpcmVjdG9y eSk7DQorDQorICAvLw0KKyAgLy8gT25lIGZld2VyIGZpbGUgbGVmdCBvcGVuIGZvciB0aGUgb3du ZXIgZmlsZXN5c3RlbS4NCisgIC8vDQorICBSZW1vdmVFbnRyeUxpc3QgKCZWaXJ0aW9Gc0ZpbGUt Pk9wZW5GaWxlc0VudHJ5KTsNCisNCisgIEZyZWVQb29sIChWaXJ0aW9Gc0ZpbGUpOw0KKyAgcmV0 dXJuIEVGSV9TVUNDRVNTOw0KK30NCmRpZmYgLS1naXQgYS9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1Np bXBsZUZzRGVsZXRlLmMgYi9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1NpbXBsZUZzRGVsZXRlLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zMjA5OTIzZDFlNDkKLS0tIC9k ZXYvbnVsbAorKysgYi9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1NpbXBsZUZzRGVsZXRlLmMKQEAgLTAs MCArMSwyOSBAQAorLyoqIEBmaWxlDQorICBFRklfRklMRV9QUk9UT0NPTC5EZWxldGUoKSBtZW1i ZXIgZnVuY3Rpb24gZm9yIHRoZSBWaXJ0aW8gRmlsZXN5c3RlbSBkcml2ZXIuDQorDQorICBDb3B5 cmlnaHQgKEMpIDIwMjAsIFJlZCBIYXQsIEluYy4NCisNCisgIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQorKiovDQorDQorI2luY2x1ZGUgIlZpcnRpb0ZzRHhl LmgiDQorDQorRUZJX1NUQVRVUw0KK0VGSUFQSQ0KK1ZpcnRpb0ZzU2ltcGxlRmlsZURlbGV0ZSAo DQorICBJTiBFRklfRklMRV9QUk9UT0NPTCAqVGhpcw0KKyAgKQ0KK3sNCisgIC8vDQorICAvLyBB dCB0aGlzIHBvaW50LCB0aGUgaW1wbGVtZW50YXRpb24gaXMgb25seSBzdWl0YWJsZSBmb3IgY2xv c2luZyB0aGUNCisgIC8vIFZJUlRJT19GU19GSUxFIHRoYXQgd2FzIGNyZWF0ZWQgYnkgVmlydGlv RnNPcGVuVm9sdW1lKCkuDQorICAvLw0KKyAgLy8gQWN0dWFsbHkgZGVsZXRpbmcgdGhlIHJvb3Qg ZGlyZWN0b3J5IGlzIG5vdCBwb3NzaWJsZSwgc28gd2UncmUgb25seSBnb2luZw0KKyAgLy8gdG8g cmVsZWFzZSByZXNvdXJjZXMsIGFuZCByZXR1cm4gRUZJX1dBUk5fREVMRVRFX0ZBSUxVUkUuDQor ICAvLw0KKyAgLy8gSW4gb3JkZXIgdG8gcmVsZWFzZSByZXNvdXJjZXMsIFZpcnRpb0ZzU2ltcGxl RmlsZUNsb3NlKCkgaXMganVzdCByaWdodA0KKyAgLy8gaGVyZS4NCisgIC8vDQorICBWaXJ0aW9G c1NpbXBsZUZpbGVDbG9zZSAoVGhpcyk7DQorICByZXR1cm4gRUZJX1dBUk5fREVMRVRFX0ZBSUxV UkU7DQorfQ0KZGlmZiAtLWdpdCBhL092bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNGbHVzaC5j IGIvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9TaW1wbGVGc0ZsdXNoLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lNDhkOTIxNDBmNjQKLS0tIC9kZXYvbnVsbAorKysgYi9P dm1mUGtnL1ZpcnRpb0ZzRHhlL1NpbXBsZUZzRmx1c2guYwpAQCAtMCwwICsxLDE4IEBACisvKiog QGZpbGUNCisgIEVGSV9GSUxFX1BST1RPQ09MLkZsdXNoKCkgbWVtYmVyIGZ1bmN0aW9uIGZvciB0 aGUgVmlydGlvIEZpbGVzeXN0ZW0gZHJpdmVyLg0KKw0KKyAgQ29weXJpZ2h0IChDKSAyMDIwLCBS ZWQgSGF0LCBJbmMuDQorDQorICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNl LVBhdGVudA0KKyoqLw0KKw0KKyNpbmNsdWRlICJWaXJ0aW9Gc0R4ZS5oIg0KKw0KK0VGSV9TVEFU VVMNCitFRklBUEkNCitWaXJ0aW9Gc1NpbXBsZUZpbGVGbHVzaCAoDQorICBJTiBFRklfRklMRV9Q Uk9UT0NPTCAqVGhpcw0KKyAgKQ0KK3sNCisgIHJldHVybiBFRklfTk9fTUVESUE7DQorfQ0KZGlm ZiAtLWdpdCBhL092bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNHZXRJbmZvLmMgYi9Pdm1mUGtn L1ZpcnRpb0ZzRHhlL1NpbXBsZUZzR2V0SW5mby5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uNmU4NzA0NjBjMDE0Ci0tLSAvZGV2L251bGwKKysrIGIvT3ZtZlBrZy9W aXJ0aW9Gc0R4ZS9TaW1wbGVGc0dldEluZm8uYwpAQCAtMCwwICsxLDIxIEBACisvKiogQGZpbGUN CisgIEVGSV9GSUxFX1BST1RPQ09MLkdldEluZm8oKSBtZW1iZXIgZnVuY3Rpb24gZm9yIHRoZSBW aXJ0aW8gRmlsZXN5c3RlbSBkcml2ZXIuDQorDQorICBDb3B5cmlnaHQgKEMpIDIwMjAsIFJlZCBI YXQsIEluYy4NCisNCisgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0 ZW50DQorKiovDQorDQorI2luY2x1ZGUgIlZpcnRpb0ZzRHhlLmgiDQorDQorRUZJX1NUQVRVUw0K K0VGSUFQSQ0KK1ZpcnRpb0ZzU2ltcGxlRmlsZUdldEluZm8gKA0KKyAgSU4gICAgIEVGSV9GSUxF X1BST1RPQ09MICpUaGlzLA0KKyAgSU4gICAgIEVGSV9HVUlEICAgICAgICAgICpJbmZvcm1hdGlv blR5cGUsDQorICBJTiBPVVQgVUlOVE4gICAgICAgICAgICAgKkJ1ZmZlclNpemUsDQorICAgICBP VVQgVk9JRCAgICAgICAgICAgICAgKkJ1ZmZlcg0KKyAgKQ0KK3sNCisgIHJldHVybiBFRklfTk9f TUVESUE7DQorfQ0KZGlmZiAtLWdpdCBhL092bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNHZXRQ b3NpdGlvbi5jIGIvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9TaW1wbGVGc0dldFBvc2l0aW9uLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yZjQwZDJiZTI2OTMKLS0tIC9k ZXYvbnVsbAorKysgYi9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1NpbXBsZUZzR2V0UG9zaXRpb24uYwpA QCAtMCwwICsxLDIwIEBACisvKiogQGZpbGUNCisgIEVGSV9GSUxFX1BST1RPQ09MLkdldFBvc2l0 aW9uKCkgbWVtYmVyIGZ1bmN0aW9uIGZvciB0aGUgVmlydGlvIEZpbGVzeXN0ZW0NCisgIGRyaXZl ci4NCisNCisgIENvcHlyaWdodCAoQykgMjAyMCwgUmVkIEhhdCwgSW5jLg0KKw0KKyAgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCisqKi8NCisNCisjaW5jbHVk ZSAiVmlydGlvRnNEeGUuaCINCisNCitFRklfU1RBVFVTDQorRUZJQVBJDQorVmlydGlvRnNTaW1w bGVGaWxlR2V0UG9zaXRpb24gKA0KKyAgSU4gICAgIEVGSV9GSUxFX1BST1RPQ09MICpUaGlzLA0K KyAgICAgT1VUIFVJTlQ2NCAgICAgICAgICAgICpQb3NpdGlvbg0KKyAgKQ0KK3sNCisgIHJldHVy biBFRklfREVWSUNFX0VSUk9SOw0KK30NCmRpZmYgLS1naXQgYS9Pdm1mUGtnL1ZpcnRpb0ZzRHhl L1NpbXBsZUZzT3Blbi5jIGIvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9TaW1wbGVGc09wZW4uYwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmYwZTI0OTE4NDA3OQotLS0gL2Rl di9udWxsCisrKyBiL092bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNPcGVuLmMKQEAgLTAsMCAr MSwyMiBAQAorLyoqIEBmaWxlDQorICBFRklfRklMRV9QUk9UT0NPTC5PcGVuKCkgbWVtYmVyIGZ1 bmN0aW9uIGZvciB0aGUgVmlydGlvIEZpbGVzeXN0ZW0gZHJpdmVyLg0KKw0KKyAgQ29weXJpZ2h0 IChDKSAyMDIwLCBSZWQgSGF0LCBJbmMuDQorDQorICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjog QlNELTItQ2xhdXNlLVBhdGVudA0KKyoqLw0KKw0KKyNpbmNsdWRlICJWaXJ0aW9Gc0R4ZS5oIg0K Kw0KK0VGSV9TVEFUVVMNCitFRklBUEkNCitWaXJ0aW9Gc1NpbXBsZUZpbGVPcGVuICgNCisgIElO ICAgICBFRklfRklMRV9QUk9UT0NPTCAqVGhpcywNCisgICAgIE9VVCBFRklfRklMRV9QUk9UT0NP TCAqKk5ld0hhbmRsZSwNCisgIElOICAgICBDSEFSMTYgICAgICAgICAgICAqRmlsZU5hbWUsDQor ICBJTiAgICAgVUlOVDY0ICAgICAgICAgICAgT3Blbk1vZGUsDQorICBJTiAgICAgVUlOVDY0ICAg ICAgICAgICAgQXR0cmlidXRlcw0KKyAgKQ0KK3sNCisgIHJldHVybiBFRklfTk9fTUVESUE7DQor fQ0KZGlmZiAtLWdpdCBhL092bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNPcGVuVm9sdW1lLmMg Yi9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1NpbXBsZUZzT3BlblZvbHVtZS5jCmluZGV4IGE1YTY2YTI3 ZDg0Yy4uOGMxNDU3YTY4YWFkIDEwMDY0NAotLS0gYS9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1NpbXBs ZUZzT3BlblZvbHVtZS5jCisrKyBiL092bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNPcGVuVm9s dW1lLmMKQEAgLTIsMjUgKzIsODAgQEAKICAgRUZJX1NJTVBMRV9GSUxFX1NZU1RFTV9QUk9UT0NP TC5PcGVuVm9sdW1lKCkgbWVtYmVyIGZ1bmN0aW9uIGZvciB0aGUgVmlydGlvDQogICBGaWxlc3lz dGVtIGRyaXZlci4NCiANCiAgIENvcHlyaWdodCAoQykgMjAyMCwgUmVkIEhhdCwgSW5jLg0KIA0K ICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCiAqKi8NCiAN CisjaW5jbHVkZSA8TGlicmFyeS9CYXNlTGliLmg+ICAgICAgICAgICAgIC8vIEluc2VydFRhaWxM aXN0KCkNCisjaW5jbHVkZSA8TGlicmFyeS9NZW1vcnlBbGxvY2F0aW9uTGliLmg+IC8vIEFsbG9j YXRlUG9vbCgpDQorDQogI2luY2x1ZGUgIlZpcnRpb0ZzRHhlLmgiDQogDQogLyoqDQogICBPcGVu IHRoZSByb290IGRpcmVjdG9yeSBvbiB0aGUgVmlydGlvIEZpbGVzeXN0ZW0uDQogDQogICBSZWZl ciB0byBFRklfU0lNUExFX0ZJTEVfU1lTVEVNX1BST1RPQ09MX09QRU5fVk9MVU1FIGZvciB0aGUg aW50ZXJmYWNlDQogICBjb250cmFjdC4NCiAqKi8NCiBFRklfU1RBVFVTDQogRUZJQVBJDQogVmly dGlvRnNPcGVuVm9sdW1lICgNCiAgIElOICBFRklfU0lNUExFX0ZJTEVfU1lTVEVNX1BST1RPQ09M ICpUaGlzLA0KICAgT1VUIEVGSV9GSUxFX1BST1RPQ09MICAgICAgICAgICAgICAgKipSb290DQog ICApDQogew0KLSAgcmV0dXJuIEVGSV9OT19NRURJQTsNCisgIFZJUlRJT19GUyAgICAgICpWaXJ0 aW9GczsNCisgIFZJUlRJT19GU19GSUxFICpWaXJ0aW9Gc0ZpbGU7DQorICBFRklfU1RBVFVTICAg ICBTdGF0dXM7DQorICBVSU5UNjQgICAgICAgICBSb290RGlySGFuZGxlOw0KKw0KKyAgVmlydGlv RnMgPSBWSVJUSU9fRlNfRlJPTV9TSU1QTEVfRlMgKFRoaXMpOw0KKw0KKyAgVmlydGlvRnNGaWxl ID0gQWxsb2NhdGVQb29sIChzaXplb2YgKlZpcnRpb0ZzRmlsZSk7DQorICBpZiAoVmlydGlvRnNG aWxlID09IE5VTEwpIHsNCisgICAgcmV0dXJuIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTOw0KKyAgfQ0K Kw0KKyAgLy8NCisgIC8vIE9wZW4gdGhlIHJvb3QgZGlyZWN0b3J5Lg0KKyAgLy8NCisgIFN0YXR1 cyA9IFZpcnRpb0ZzRnVzZU9wZW5EaXIgKFZpcnRpb0ZzLCBWSVJUSU9fRlNfRlVTRV9ST09UX0RJ Ul9OT0RFX0lELA0KKyAgICAgICAgICAgICAmUm9vdERpckhhbmRsZSk7DQorICBpZiAoRUZJX0VS Uk9SIChTdGF0dXMpKSB7DQorICAgIGdvdG8gRnJlZVZpcnRpb0ZzRmlsZTsNCisgIH0NCisNCisg IC8vDQorICAvLyBQb3B1bGF0ZSB0aGUgbmV3IFZJUlRJT19GU19GSUxFIG9iamVjdC4NCisgIC8v DQorICBWaXJ0aW9Gc0ZpbGUtPlNpZ25hdHVyZSAgICAgICAgICAgICAgPSBWSVJUSU9fRlNfRklM RV9TSUc7DQorICBWaXJ0aW9Gc0ZpbGUtPlNpbXBsZUZpbGUuUmV2aXNpb24gICAgPSBFRklfRklM RV9QUk9UT0NPTF9SRVZJU0lPTjsNCisgIFZpcnRpb0ZzRmlsZS0+U2ltcGxlRmlsZS5PcGVuICAg ICAgICA9IFZpcnRpb0ZzU2ltcGxlRmlsZU9wZW47DQorICBWaXJ0aW9Gc0ZpbGUtPlNpbXBsZUZp bGUuQ2xvc2UgICAgICAgPSBWaXJ0aW9Gc1NpbXBsZUZpbGVDbG9zZTsNCisgIFZpcnRpb0ZzRmls ZS0+U2ltcGxlRmlsZS5EZWxldGUgICAgICA9IFZpcnRpb0ZzU2ltcGxlRmlsZURlbGV0ZTsNCisg IFZpcnRpb0ZzRmlsZS0+U2ltcGxlRmlsZS5SZWFkICAgICAgICA9IFZpcnRpb0ZzU2ltcGxlRmls ZVJlYWQ7DQorICBWaXJ0aW9Gc0ZpbGUtPlNpbXBsZUZpbGUuV3JpdGUgICAgICAgPSBWaXJ0aW9G c1NpbXBsZUZpbGVXcml0ZTsNCisgIFZpcnRpb0ZzRmlsZS0+U2ltcGxlRmlsZS5HZXRQb3NpdGlv biA9IFZpcnRpb0ZzU2ltcGxlRmlsZUdldFBvc2l0aW9uOw0KKyAgVmlydGlvRnNGaWxlLT5TaW1w bGVGaWxlLlNldFBvc2l0aW9uID0gVmlydGlvRnNTaW1wbGVGaWxlU2V0UG9zaXRpb247DQorICBW aXJ0aW9Gc0ZpbGUtPlNpbXBsZUZpbGUuR2V0SW5mbyAgICAgPSBWaXJ0aW9Gc1NpbXBsZUZpbGVH ZXRJbmZvOw0KKyAgVmlydGlvRnNGaWxlLT5TaW1wbGVGaWxlLlNldEluZm8gICAgID0gVmlydGlv RnNTaW1wbGVGaWxlU2V0SW5mbzsNCisgIFZpcnRpb0ZzRmlsZS0+U2ltcGxlRmlsZS5GbHVzaCAg ICAgICA9IFZpcnRpb0ZzU2ltcGxlRmlsZUZsdXNoOw0KKyAgVmlydGlvRnNGaWxlLT5Jc0RpcmVj dG9yeSAgICAgICAgICAgID0gVFJVRTsNCisgIFZpcnRpb0ZzRmlsZS0+T3duZXJGcyAgICAgICAg ICAgICAgICA9IFZpcnRpb0ZzOw0KKyAgVmlydGlvRnNGaWxlLT5Ob2RlSWQgICAgICAgICAgICAg ICAgID0gVklSVElPX0ZTX0ZVU0VfUk9PVF9ESVJfTk9ERV9JRDsNCisgIFZpcnRpb0ZzRmlsZS0+ RnVzZUhhbmRsZSAgICAgICAgICAgICA9IFJvb3REaXJIYW5kbGU7DQorDQorICAvLw0KKyAgLy8g T25lIG1vcmUgZmlsZSBvcGVuIGZvciB0aGUgZmlsZXN5c3RlbS4NCisgIC8vDQorICBJbnNlcnRU YWlsTGlzdCAoJlZpcnRpb0ZzLT5PcGVuRmlsZXMsICZWaXJ0aW9Gc0ZpbGUtPk9wZW5GaWxlc0Vu dHJ5KTsNCisNCisgICpSb290ID0gJlZpcnRpb0ZzRmlsZS0+U2ltcGxlRmlsZTsNCisgIHJldHVy biBFRklfU1VDQ0VTUzsNCisNCitGcmVlVmlydGlvRnNGaWxlOg0KKyAgRnJlZVBvb2wgKFZpcnRp b0ZzRmlsZSk7DQorDQorICByZXR1cm4gU3RhdHVzOw0KIH0NCmRpZmYgLS1naXQgYS9Pdm1mUGtn L1ZpcnRpb0ZzRHhlL1NpbXBsZUZzUmVhZC5jIGIvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9TaW1wbGVG c1JlYWQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmU3MzdkNWUz MzIwNAotLS0gL2Rldi9udWxsCisrKyBiL092bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNSZWFk LmMKQEAgLTAsMCArMSwyMCBAQAorLyoqIEBmaWxlDQorICBFRklfRklMRV9QUk9UT0NPTC5SZWFk KCkgbWVtYmVyIGZ1bmN0aW9uIGZvciB0aGUgVmlydGlvIEZpbGVzeXN0ZW0gZHJpdmVyLg0KKw0K KyAgQ29weXJpZ2h0IChDKSAyMDIwLCBSZWQgSGF0LCBJbmMuDQorDQorICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KKyoqLw0KKw0KKyNpbmNsdWRlICJWaXJ0 aW9Gc0R4ZS5oIg0KKw0KK0VGSV9TVEFUVVMNCitFRklBUEkNCitWaXJ0aW9Gc1NpbXBsZUZpbGVS ZWFkICgNCisgIElOICAgICBFRklfRklMRV9QUk9UT0NPTCAqVGhpcywNCisgIElOIE9VVCBVSU5U TiAgICAgICAgICAgICAqQnVmZmVyU2l6ZSwNCisgICAgIE9VVCBWT0lEICAgICAgICAgICAgICAq QnVmZmVyDQorICApDQorew0KKyAgcmV0dXJuIEVGSV9OT19NRURJQTsNCit9DQpkaWZmIC0tZ2l0 IGEvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9TaW1wbGVGc1NldEluZm8uYyBiL092bWZQa2cvVmlydGlv RnNEeGUvU2ltcGxlRnNTZXRJbmZvLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi4yMDBiN2ExYmNkMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Pdm1mUGtnL1ZpcnRpb0Zz RHhlL1NpbXBsZUZzU2V0SW5mby5jCkBAIC0wLDAgKzEsMjEgQEAKKy8qKiBAZmlsZQ0KKyAgRUZJ X0ZJTEVfUFJPVE9DT0wuU2V0SW5mbygpIG1lbWJlciBmdW5jdGlvbiBmb3IgdGhlIFZpcnRpbyBG aWxlc3lzdGVtIGRyaXZlci4NCisNCisgIENvcHlyaWdodCAoQykgMjAyMCwgUmVkIEhhdCwgSW5j Lg0KKw0KKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCisq Ki8NCisNCisjaW5jbHVkZSAiVmlydGlvRnNEeGUuaCINCisNCitFRklfU1RBVFVTDQorRUZJQVBJ DQorVmlydGlvRnNTaW1wbGVGaWxlU2V0SW5mbyAoDQorICBJTiBFRklfRklMRV9QUk9UT0NPTCAq VGhpcywNCisgIElOIEVGSV9HVUlEICAgICAgICAgICpJbmZvcm1hdGlvblR5cGUsDQorICBJTiBV SU5UTiAgICAgICAgICAgICBCdWZmZXJTaXplLA0KKyAgSU4gVk9JRCAgICAgICAgICAgICAgKkJ1 ZmZlcg0KKyAgKQ0KK3sNCisgIHJldHVybiBFRklfTk9fTUVESUE7DQorfQ0KZGlmZiAtLWdpdCBh L092bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNTZXRQb3NpdGlvbi5jIGIvT3ZtZlBrZy9WaXJ0 aW9Gc0R4ZS9TaW1wbGVGc1NldFBvc2l0aW9uLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi5lZThjYjFmNGU0NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Pdm1mUGtnL1Zp cnRpb0ZzRHhlL1NpbXBsZUZzU2V0UG9zaXRpb24uYwpAQCAtMCwwICsxLDIwIEBACisvKiogQGZp bGUNCisgIEVGSV9GSUxFX1BST1RPQ09MLlNldFBvc2l0aW9uKCkgbWVtYmVyIGZ1bmN0aW9uIGZv ciB0aGUgVmlydGlvIEZpbGVzeXN0ZW0NCisgIGRyaXZlci4NCisNCisgIENvcHlyaWdodCAoQykg MjAyMCwgUmVkIEhhdCwgSW5jLg0KKw0KKyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0y LUNsYXVzZS1QYXRlbnQNCisqKi8NCisNCisjaW5jbHVkZSAiVmlydGlvRnNEeGUuaCINCisNCitF RklfU1RBVFVTDQorRUZJQVBJDQorVmlydGlvRnNTaW1wbGVGaWxlU2V0UG9zaXRpb24gKA0KKyAg SU4gRUZJX0ZJTEVfUFJPVE9DT0wgKlRoaXMsDQorICBJTiBVSU5UNjQgICAgICAgICAgICBQb3Np dGlvbg0KKyAgKQ0KK3sNCisgIHJldHVybiBFRklfREVWSUNFX0VSUk9SOw0KK30NCmRpZmYgLS1n aXQgYS9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1NpbXBsZUZzV3JpdGUuYyBiL092bWZQa2cvVmlydGlv RnNEeGUvU2ltcGxlRnNXcml0ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uOTBkODJiZDcyMmIxCi0tLSAvZGV2L251bGwKKysrIGIvT3ZtZlBrZy9WaXJ0aW9Gc0R4 ZS9TaW1wbGVGc1dyaXRlLmMKQEAgLTAsMCArMSwyMCBAQAorLyoqIEBmaWxlDQorICBFRklfRklM RV9QUk9UT0NPTC5Xcml0ZSgpIG1lbWJlciBmdW5jdGlvbiBmb3IgdGhlIFZpcnRpbyBGaWxlc3lz dGVtIGRyaXZlci4NCisNCisgIENvcHlyaWdodCAoQykgMjAyMCwgUmVkIEhhdCwgSW5jLg0KKw0K KyAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCisqKi8NCisN CisjaW5jbHVkZSAiVmlydGlvRnNEeGUuaCINCisNCitFRklfU1RBVFVTDQorRUZJQVBJDQorVmly dGlvRnNTaW1wbGVGaWxlV3JpdGUgKA0KKyAgSU4gICAgIEVGSV9GSUxFX1BST1RPQ09MICpUaGlz LA0KKyAgSU4gT1VUIFVJTlROICAgICAgICAgICAgICpCdWZmZXJTaXplLA0KKyAgSU4gICAgIFZP SUQgICAgICAgICAgICAgICpCdWZmZXINCisgICkNCit7DQorICByZXR1cm4gRUZJX05PX01FRElB Ow0KK30NCi0tIAoyLjE5LjEuMy5nMzAyNDdhYTVkMjAxCgoK