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=-6.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS 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 C6AD0C742C7 for ; Fri, 12 Jul 2019 15:19:55 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (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 7876C206B8 for ; Fri, 12 Jul 2019 15:19:55 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="n/tFf4nV" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7876C206B8 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=amd.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:50498 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hlxL0-0005Sy-L6 for qemu-devel@archiver.kernel.org; Fri, 12 Jul 2019 11:19:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:59101) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hlxKm-0004x8-KO for qemu-devel@nongnu.org; Fri, 12 Jul 2019 11:19:42 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hlxKk-0007OX-Ig for qemu-devel@nongnu.org; Fri, 12 Jul 2019 11:19:40 -0400 Received: from mail-eopbgr820051.outbound.protection.outlook.com ([40.107.82.51]:5208 helo=NAM01-SN1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hlxKi-0007MW-Rr for qemu-devel@nongnu.org; Fri, 12 Jul 2019 11:19:37 -0400 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iTx+BaeX0xAsGf2waH+CcCSgLPzVqaqwkYQEVEj4MKLQrfKhD6AhzTAVoPlRgF5ZKCdgYbmGmRfrhgex1ZRlVzWrQ9nU6AwuWcY41qtUN2jfCsvi0tJ9Q7hnV/XA4zcMKofWt/rEDkMcpVflViKGobZxmB5L4EEuuYYYYnDQOZnpacV7CgnsSrxzz7bMPh03xdJz2+g47LWU+avaayYVNBuNnvnTxRQRKNqmmgQ6LgCnCX33DhkyLOhK2eKlbkxO4YipA1vitZjkTTswJc0TtojksE8HO0S8z5bX4e7yCSDmBTZ3eh3lavT4b3l3G7UPjKxhhKBwD3t6jnOrhOwvaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NM5uQkbr1G41hX8zfcihcZRq3uuTQV7X/PygesfKaEk=; b=aNL3iWv+yL93Zro6AFVFW1mDqErTvKFyX8+Z54eDFbgdB004Wdw52hvUoJgsubHcoscZpyRW38QUewoymrcQhRW1jm7w47IBYl8UextIZjUFKhEJaB91sUKffMBVNKZfD9H3lDKT7WWb0iXtYK9ySElwc7CDIrhWwapho9txFy7o5sj2dEPQp7cjimIhTMtRavvlWjW+gb0FApF06/UmVH0EOBZQ3mSbYcMcUmPLZm+l4dTURgk80wyqHHZocngpDOVVYfWLjCjqbk4weFAvnVTt837Nr3eSgWykgK/OZAl5ZQHmBFS4qawc1PD48B5vVCIuF95knLySDiRusEE0tQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=amd.com;dmarc=pass action=none header.from=amd.com;dkim=pass header.d=amd.com;arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amdcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NM5uQkbr1G41hX8zfcihcZRq3uuTQV7X/PygesfKaEk=; b=n/tFf4nVX5kBD/btHSFwDBSiogn7gNl4maj1x/A3X+ikYNQ+CUSGhvqKu1GaaGEIztMXIHkITWv40v1QgWxgM8ufZGsLQ7ydwd91pnTIWCx2wUJDZSzrekxtNIbLhL2eaHgIt4eqh1isa4HqUrGMqW0ikk/tj/qh2o3FqsVZODQ= Received: from DM6PR12MB2682.namprd12.prod.outlook.com (20.176.116.31) by DM6PR12MB3484.namprd12.prod.outlook.com (20.178.199.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2073.10; Fri, 12 Jul 2019 15:19:34 +0000 Received: from DM6PR12MB2682.namprd12.prod.outlook.com ([fe80::bc1a:a30d:9da2:1cdd]) by DM6PR12MB2682.namprd12.prod.outlook.com ([fe80::bc1a:a30d:9da2:1cdd%6]) with mapi id 15.20.2073.008; Fri, 12 Jul 2019 15:19:34 +0000 From: "Singh, Brijesh" To: "Dr. David Alan Gilbert" Thread-Topic: [PATCH v2 09/13] target/i386: sev: add support to encrypt the outgoing page Thread-Index: AQHVN11IaqK7FcbkLkWZ1Xb4sWP7gKbGzm+AgABNPwA= Date: Fri, 12 Jul 2019 15:19:34 +0000 Message-ID: <3cd9d79a-eb9b-e935-79d0-268098752235@amd.com> References: <20190710202219.25939-1-brijesh.singh@amd.com> <20190710202219.25939-10-brijesh.singh@amd.com> <20190712104303.GD2730@work-vm> In-Reply-To: <20190712104303.GD2730@work-vm> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SN4PR0401CA0041.namprd04.prod.outlook.com (2603:10b6:803:2a::27) To DM6PR12MB2682.namprd12.prod.outlook.com (2603:10b6:5:4a::31) authentication-results: spf=none (sender IP is ) smtp.mailfrom=brijesh.singh@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [165.204.77.1] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3740e9d9-47dc-42ce-8d22-08d706dc5825 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:DM6PR12MB3484; x-ms-traffictypediagnostic: DM6PR12MB3484: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:207; x-forefront-prvs: 00963989E5 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(366004)(396003)(39860400002)(376002)(346002)(136003)(199004)(189003)(4326008)(7736002)(305945005)(25786009)(36756003)(66066001)(52116002)(76176011)(31686004)(316002)(186003)(102836004)(2906002)(53546011)(6506007)(386003)(26005)(54906003)(6116002)(3846002)(66946007)(5660300002)(8676002)(11346002)(446003)(229853002)(66556008)(66446008)(66476007)(6512007)(486006)(86362001)(6916009)(478600001)(6246003)(81166006)(81156014)(64756008)(8936002)(256004)(14444005)(6486002)(476003)(2616005)(31696002)(6436002)(71190400001)(71200400001)(14454004)(68736007)(30864003)(99286004)(53936002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR12MB3484; H:DM6PR12MB2682.namprd12.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: NtPnFvMXMz5IOPRXGQ6puBV3/RUabWvMURLjXdhEhBwAVMd2yfPbjEFM5zS9YdHAE6ZRfW2Psf3rgeEJ/gYKueDQp3eVm1l8gbb/vVWPLv3G0jPnZ1KFllsx5zfSxE3vF66l47yn8ogf1waLnhXA7emp4fdOWm4qX+1por+qe5vUvA5gSXkJb93SJd9wK+L6CyrgIGZwVFWvU3GbqLYgjId1aqt0Lbq3YE+aKIIySaTHWXBIeXGMllAWJDE8JN0qmwW/h1ZeHuhzPL7vfsoYVI0jV/0QbG7+JopnCHs1R6mdExPjHaZSF8HB9/nvLE7ibsIE2bEvvh/rZf62HvcnwCUQIQjNhz7RPgnJCFte4ptJmhXfX0PKGqOQq1JvsG5RGgSMP2EVLMcVvkhCyxHV0s92cEpiNELWDG1RrUaXCeA= Content-Type: text/plain; charset="utf-8" Content-ID: <269ADD4EBD74F641A7033084D2D15E95@namprd12.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3740e9d9-47dc-42ce-8d22-08d706dc5825 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jul 2019 15:19:34.0420 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: sbrijesh@amd.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3484 X-detected-operating-system: by eggs.gnu.org: Windows 7 or 8 [fuzzy] X-Received-From: 40.107.82.51 Subject: Re: [Qemu-devel] [PATCH v2 09/13] target/i386: sev: add support to encrypt the outgoing page X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "pbonzini@redhat.com" , "Lendacky, Thomas" , "Singh, Brijesh" , "qemu-devel@nongnu.org" , "ehabkost@redhat.com" Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" DQoNCk9uIDcvMTIvMTkgNTo0MyBBTSwgRHIuIERhdmlkIEFsYW4gR2lsYmVydCB3cm90ZToNCj4g KiBTaW5naCwgQnJpamVzaCAoYnJpamVzaC5zaW5naEBhbWQuY29tKSB3cm90ZToNCj4+IFRoZSBz ZXZfc2F2ZV9vdXRnb2luZ19wYWdlKCkgcHJvdmlkZSB0aGUgaW1wbGVtZW50YXRpb24gdG8gZW5j cnlwdCB0aGUNCj4+IGd1ZXN0IHByaXZhdGUgcGFnZXMgZHVyaW5nIHRoZSB0cmFuc2l0LiBUaGUg cm91dGluZXMgdXNlcyB0aGUgU0VORF9TVEFSVA0KPj4gY29tbWFuZCB0byBjcmVhdGUgdGhlIG91 dGdvaW5nIGVuY3J5cHRpb24gY29udGV4dCBvbiB0aGUgZmlyc3QgY2FsbCB0aGVuDQo+PiB1c2Vz IHRoZSBTRU5EX1VQREFURV9EQVRBIGNvbW1hbmQgdG8gZW5jcnlwdCB0aGUgZGF0YSBiZWZvcmUg d3JpdGluZyBpdA0KPj4gdG8gdGhlIHNvY2tldC4gV2hpbGUgZW5jcnlwdGluZyB0aGUgZGF0YSBT RU5EX1VQREFURV9EQVRBIHByb2R1Y2VzIHNvbWUNCj4+IG1ldGFkYXRhIChlLmcgTUFDLCBJViku IFRoZSBtZXRhZGF0YSBpcyBhbHNvIHNlbnQgdG8gdGhlIHRhcmdldCBtYWNoaW5lLg0KPj4gQWZ0 ZXIgbWlncmF0aW9uIGlzIGNvbXBsZXRlZCwgd2UgaXNzdWUgdGhlIFNFTkRfRklOSVNIIGNvbW1h bmQgdG8gdHJhbnNpdGlvbg0KPj4gdGhlIFNFViBndWVzdCBzdGF0ZSBmcm9tIHNlbmRpbmcgdG8g dW5ydW5uYWJsZSBzdGF0ZS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBCcmlqZXNoIFNpbmdoIDxi cmlqZXNoLnNpbmdoQGFtZC5jb20+DQo+PiAtLS0NCj4+ICAgYWNjZWwva3ZtL2t2bS1hbGwuYyAg ICAgIHwgICAxICsNCj4+ICAgdGFyZ2V0L2kzODYvc2V2LmMgICAgICAgIHwgMjI5ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPj4gICB0YXJnZXQvaTM4Ni9zZXZfaTM4 Ni5oICAgfCAgIDIgKw0KPj4gICB0YXJnZXQvaTM4Ni90cmFjZS1ldmVudHMgfCAgIDMgKw0KPj4g ICA0IGZpbGVzIGNoYW5nZWQsIDIzNSBpbnNlcnRpb25zKCspDQo+Pg0KPj4gZGlmZiAtLWdpdCBh L2FjY2VsL2t2bS9rdm0tYWxsLmMgYi9hY2NlbC9rdm0va3ZtLWFsbC5jDQo+PiBpbmRleCBjOTM1 ZTkzNjZjLi5hOWZiNDQ3MjQ4IDEwMDY0NA0KPj4gLS0tIGEvYWNjZWwva3ZtL2t2bS1hbGwuYw0K Pj4gKysrIGIvYWNjZWwva3ZtL2t2bS1hbGwuYw0KPj4gQEAgLTE3OTIsNiArMTc5Miw3IEBAIHN0 YXRpYyBpbnQga3ZtX2luaXQoTWFjaGluZVN0YXRlICptcykNCj4+ICAgICAgICAgICB9DQo+PiAg IA0KPj4gICAgICAgICAgIGt2bV9zdGF0ZS0+bWVtY3J5cHRfZW5jcnlwdF9kYXRhID0gc2V2X2Vu Y3J5cHRfZGF0YTsNCj4+ICsgICAgICAgIGt2bV9zdGF0ZS0+bWVtY3J5cHRfc2F2ZV9vdXRnb2lu Z19wYWdlID0gc2V2X3NhdmVfb3V0Z29pbmdfcGFnZTsNCj4+ICAgICAgIH0NCj4+ICAgDQo+PiAg ICAgICByZXQgPSBrdm1fYXJjaF9pbml0KG1zLCBzKTsNCj4+IGRpZmYgLS1naXQgYS90YXJnZXQv aTM4Ni9zZXYuYyBiL3RhcmdldC9pMzg2L3Nldi5jDQo+PiBpbmRleCA2YzkwMmQwYmU4Li4yOGIz NmM4MDM1IDEwMDY0NA0KPj4gLS0tIGEvdGFyZ2V0L2kzODYvc2V2LmMNCj4+ICsrKyBiL3Rhcmdl dC9pMzg2L3Nldi5jDQo+PiBAQCAtMjcsNiArMjcsOCBAQA0KPj4gICAjaW5jbHVkZSAic3lzZW11 L3N5c2VtdS5oIg0KPj4gICAjaW5jbHVkZSAidHJhY2UuaCINCj4+ICAgI2luY2x1ZGUgIm1pZ3Jh dGlvbi9ibG9ja2VyLmgiDQo+PiArI2luY2x1ZGUgIm1pZ3JhdGlvbi9xZW11LWZpbGUuaCINCj4+ ICsjaW5jbHVkZSAibWlncmF0aW9uL21pc2MuaCINCj4+ICAgDQo+PiAgICNkZWZpbmUgREVGQVVM VF9HVUVTVF9QT0xJQ1kgICAgMHgxIC8qIGRpc2FibGUgZGVidWcgKi8NCj4+ICAgI2RlZmluZSBE RUZBVUxUX1NFVl9ERVZJQ0UgICAgICAiL2Rldi9zZXYiDQo+PiBAQCAtNzE4LDYgKzcyMCwzOSBA QCBzZXZfdm1fc3RhdGVfY2hhbmdlKHZvaWQgKm9wYXF1ZSwgaW50IHJ1bm5pbmcsIFJ1blN0YXRl IHN0YXRlKQ0KPj4gICAgICAgfQ0KPj4gICB9DQo+PiAgIA0KPj4gK3N0YXRpYyB2b2lkDQo+PiAr c2V2X3NlbmRfZmluaXNoKHZvaWQpDQo+PiArew0KPj4gKyAgICBpbnQgcmV0LCBlcnJvcjsNCj4+ ICsNCj4+ICsgICAgdHJhY2Vfa3ZtX3Nldl9zZW5kX2ZpbmlzaCgpOw0KPj4gKyAgICByZXQgPSBz ZXZfaW9jdGwoc2V2X3N0YXRlLT5zZXZfZmQsIEtWTV9TRVZfU0VORF9GSU5JU0gsIDAsICZlcnJv cik7DQo+PiArICAgIGlmIChyZXQpIHsNCj4+ICsgICAgICAgIGVycm9yX3JlcG9ydCgiJXM6IExB VU5DSF9GSU5JU0ggcmV0PSVkIGZ3X2Vycm9yPSVkICclcyciLA0KPiANCj4gd2h5IExBVU5DSD8N Cg0KDQpJdHMgdHlwby4gSSB3aWxsIGZpeCBpbiBuZXh0IHJldi4NCg0KDQo+IA0KPj4gKyAgICAg ICAgICAgICAgICAgICAgIF9fZnVuY19fLCByZXQsIGVycm9yLCBmd19lcnJvcl90b19zdHIoZXJy b3IpKTsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICBzZXZfc2V0X2d1ZXN0X3N0YXRlKFNFVl9T VEFURV9SVU5OSU5HKTsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIHZvaWQNCj4+ICtzZXZfbWln cmF0aW9uX3N0YXRlX25vdGlmaWVyKE5vdGlmaWVyICpub3RpZmllciwgdm9pZCAqZGF0YSkNCj4+ ICt7DQo+PiArICAgIE1pZ3JhdGlvblN0YXRlICpzID0gZGF0YTsNCj4+ICsNCj4+ICsgICAgaWYg KG1pZ3JhdGlvbl9oYXNfZmluaXNoZWQocykgfHwNCj4+ICsgICAgICAgIG1pZ3JhdGlvbl9pbl9w b3N0Y29weV9hZnRlcl9kZXZpY2VzKHMpIHx8DQo+PiArICAgICAgICBtaWdyYXRpb25faGFzX2Zh aWxlZChzKSkgew0KPj4gKyAgICAgICAgaWYgKHNldl9jaGVja19zdGF0ZShTRVZfU1RBVEVfU0VO RF9VUERBVEUpKSB7DQo+PiArICAgICAgICAgICAgc2V2X3NlbmRfZmluaXNoKCk7DQo+PiArICAg ICAgICB9DQo+IA0KPiBJIGRvbid0IHF1aXRlIHVuZGVyc3RhbmQgU0VWX1NFTkRfRklOSVNIOyBp cyBpdCBqdXN0IHRlcm1pbmF0aW5nIHRoZQ0KPiBtaWdyYXRpb24gcHJvY2VzcyBvciBpcyBpdCBh Y3R1YWxseSBtYWtpbmcgdGhlIFZNIHVucnVubmFibGU/DQo+IEknbSBpbnRlcmVzdGVkIGluIHdo YXQgdGhlIGJlaGF2aW91ciBpcyBvbiBhIGZhaWxlZCBtaWdyYXRpb24gLSBkbw0KPiB3ZSBsb3Nl IGJvdGggVk1zIG9yIGRvIHdlIHBvdGVudGlhbHlsIGhhdmUgYSBtZW1vcnkgY2xvbmU/DQo+IChO ZWl0aGVyIGFyZSBwcmV0dHkhKQ0KPiANCg0KDQpUaGUgU0VWX1NFTkRfRklOSVNIIHdpbGwgbWFr ZSB0aGUgVk0gdW5ydW5uYWJsZS4gU28gYmFzaWNhbGx5IGENCmZhaWxlZCBtaWdyYXRpb24gd2ls bCByZXN1bHQgYm90aCBWTXMgdW5ydW5uYWJsZS4gVGhlIFNFViBGVyBjb21tYW5kcw0KYXJlIGRl c2lnbmVkIGluIHRoYXQgd2F5IHRvIHByZXZlbnQgdGhlIG1lbW9yeSBjbG9uZS4NCg0KDQo+PiAr ICAgIH0NCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIE5vdGlmaWVyIHNldl9taWdyYXRpb25fc3Rh dGVfbm90aWZ5ID0gew0KPj4gKyAgICAubm90aWZ5ID0gc2V2X21pZ3JhdGlvbl9zdGF0ZV9ub3Rp ZmllciwNCj4+ICt9Ow0KPj4gKw0KPj4gICB2b2lkICoNCj4+ICAgc2V2X2d1ZXN0X2luaXQoY29u c3QgY2hhciAqaWQpDQo+PiAgIHsNCj4+IEBAIC04MDQsNiArODM5LDcgQEAgc2V2X2d1ZXN0X2lu aXQoY29uc3QgY2hhciAqaWQpDQo+PiAgICAgICByYW1fYmxvY2tfbm90aWZpZXJfYWRkKCZzZXZf cmFtX25vdGlmaWVyKTsNCj4+ICAgICAgIHFlbXVfYWRkX21hY2hpbmVfaW5pdF9kb25lX25vdGlm aWVyKCZzZXZfbWFjaGluZV9kb25lX25vdGlmeSk7DQo+PiAgICAgICBxZW11X2FkZF92bV9jaGFu Z2Vfc3RhdGVfaGFuZGxlcihzZXZfdm1fc3RhdGVfY2hhbmdlLCBzKTsNCj4+ICsgICAgYWRkX21p Z3JhdGlvbl9zdGF0ZV9jaGFuZ2Vfbm90aWZpZXIoJnNldl9taWdyYXRpb25fc3RhdGVfbm90aWZ5 KTsNCj4+ICAgDQo+PiAgICAgICByZXR1cm4gczsNCj4+ICAgZXJyOg0KPj4gQEAgLTgzNiw2ICs4 NzIsMTk5IEBAIHZvaWQgc2V2X3NldF9taWdyYXRlX2luZm8oY29uc3QgY2hhciAqcGRoLCBjb25z dCBjaGFyICpwbGF0X2NlcnQsDQo+PiAgICAgICBzLT5hbWRfY2VydCA9IGdfYmFzZTY0X2RlY29k ZShhbWRfY2VydCwgJnMtPmFtZF9jZXJ0X2xlbik7DQo+PiAgIH0NCj4+ICAgDQo+PiArc3RhdGlj IGludA0KPj4gK3Nldl9nZXRfc2VuZF9zZXNzaW9uX2xlbmd0aCh2b2lkKQ0KPj4gK3sNCj4+ICsg ICAgaW50IHJldCwgZndfZXJyID0gMDsNCj4+ICsgICAgc3RydWN0IGt2bV9zZXZfc2VuZF9zdGFy dCAqc3RhcnQ7DQo+PiArDQo+PiArICAgIHN0YXJ0ID0gZ19uZXcwKHN0cnVjdCBrdm1fc2V2X3Nl bmRfc3RhcnQsIDEpOw0KPiANCj4gVGhlc2UgYXJlIHRpbnkgc3RydWN0dXJlczsgdGhleSBtYXkg YXMgd2VsbCBiZSBvbiB0aGUgc3RhY2sgcmF0aGVyIHRoYW4NCj4gYWxsb2NhdGluZy9mcmVlaW5n IHRoZW0uDQoNCg0KTm90ZWQuDQoNCg0KPiANCj4+ICsgICAgcmV0ID0gc2V2X2lvY3RsKHNldl9z dGF0ZS0+c2V2X2ZkLCBLVk1fU0VWX1NFTkRfU1RBUlQsIHN0YXJ0LCAmZndfZXJyKTsNCj4+ICsg ICAgaWYgKGZ3X2VyciAhPSBTRVZfUkVUX0lOVkFMSURfTEVOKSB7DQo+PiArICAgICAgICByZXQg PSAtMTsNCj4+ICsgICAgICAgIGVycm9yX3JlcG9ydCgiJXM6IGZhaWxlZCB0byBnZXQgc2Vzc2lv biBsZW5ndGggcmV0PSVkIGZ3X2Vycm9yPSVkICclcyciLA0KPj4gKyAgICAgICAgICAgICAgICAg ICAgIF9fZnVuY19fLCByZXQsIGZ3X2VyciwgZndfZXJyb3JfdG9fc3RyKGZ3X2VycikpOw0KPj4g KyAgICAgICAgZ290byBlcnI7DQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgcmV0ID0gc3RhcnQt PnNlc3Npb25fbGVuOw0KPj4gK2VycjoNCj4+ICsgICAgZ19mcmVlKHN0YXJ0KTsNCj4+ICsgICAg cmV0dXJuIHJldDsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGljIGludA0KPj4gK3Nldl9zZW5kX3N0 YXJ0KFNFVlN0YXRlICpzLCBRRU1VRmlsZSAqZiwgdWludDY0X3QgKmJ5dGVzX3NlbnQpDQo+PiAr ew0KPj4gKyAgICBnc2l6ZSBwZGhfbGVuID0gMCwgcGxhdF9jZXJ0X2xlbjsNCj4+ICsgICAgaW50 IHNlc3Npb25fbGVuLCByZXQsIGZ3X2Vycm9yOw0KPj4gKyAgICBzdHJ1Y3Qga3ZtX3Nldl9zZW5k X3N0YXJ0ICpzdGFydDsNCj4+ICsgICAgZ3VjaGFyICpwZGggPSBOVUxMLCAqcGxhdF9jZXJ0ID0g TlVMTCwgKnNlc3Npb24gPSBOVUxMOw0KPj4gKw0KPj4gKyAgICBpZiAoIXMtPnJlbW90ZV9wZGgg fHwgIXMtPnJlbW90ZV9wbGF0X2NlcnQpIHsNCj4+ICsgICAgICAgIGVycm9yX3JlcG9ydCgiJXM6 IG1pc3NpbmcgcmVtb3RlIFBESCBvciBQTEFUX0NFUlQiLCBfX2Z1bmNfXyk7DQo+PiArICAgICAg ICByZXR1cm4gMTsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICBzdGFydCA9IGdfbmV3MChzdHJ1 Y3Qga3ZtX3Nldl9zZW5kX3N0YXJ0LCAxKTsNCj4+ICsNCj4+ICsgICAgc3RhcnQtPnBkaF9jZXJ0 X3VhZGRyID0gKHVuc2lnbmVkIGxvbmcpIHMtPnJlbW90ZV9wZGg7DQo+PiArICAgIHN0YXJ0LT5w ZGhfY2VydF9sZW4gPSBzLT5yZW1vdGVfcGRoX2xlbjsNCj4+ICsNCj4+ICsgICAgc3RhcnQtPnBs YXRfY2VydF91YWRkciA9ICh1bnNpZ25lZCBsb25nKXMtPnJlbW90ZV9wbGF0X2NlcnQ7DQo+PiAr ICAgIHN0YXJ0LT5wbGF0X2NlcnRfbGVuID0gcy0+cmVtb3RlX3BsYXRfY2VydF9sZW47DQo+PiAr DQo+PiArICAgIHN0YXJ0LT5hbWRfY2VydF91YWRkciA9ICh1bnNpZ25lZCBsb25nKXMtPmFtZF9j ZXJ0Ow0KPiANCj4gU2hvdWxkIHRoZXNlIGFjdHVhbGx5IGJlIGNhc2UgdmlhIGEgdWludDY0X3Qg PyBUaGV5J3JlIGV4cGxpY2l0bHkNCj4gNjRiaXQgLSB5b3UgbWlnaHQgaGF2ZSB0byBnbyB2aWEg YSB1aW50cHRyX3QgdG8gbWFrZSBzb21lIGNvbXBpbGVycw0KPiBoYXBweT8NCj4gDQoNCk5vdGVk Lg0KDQo+PiArICAgIHN0YXJ0LT5hbWRfY2VydF9sZW4gPSBzLT5hbWRfY2VydF9sZW47DQo+PiAr DQo+PiArICAgIC8qIGdldCB0aGUgc2Vzc2lvbiBsZW5ndGggKi8NCj4+ICsgICAgc2Vzc2lvbl9s ZW4gPSBzZXZfZ2V0X3NlbmRfc2Vzc2lvbl9sZW5ndGgoKTsNCj4+ICsgICAgaWYgKHNlc3Npb25f bGVuIDwgMCkgew0KPj4gKyAgICAgICAgcmV0ID0gMTsNCj4+ICsgICAgICAgIGdvdG8gZXJyOw0K Pj4gKyAgICB9DQo+PiArDQo+PiArICAgIHNlc3Npb24gPSBnX25ldzAoZ3VjaGFyLCBzZXNzaW9u X2xlbik7DQo+PiArICAgIHN0YXJ0LT5zZXNzaW9uX3VhZGRyID0gKHVuc2lnbmVkIGxvbmcpc2Vz c2lvbjsNCj4+ICsgICAgc3RhcnQtPnNlc3Npb25fbGVuID0gc2Vzc2lvbl9sZW47DQo+PiArDQo+ PiArICAgIC8qIEdldCBvdXIgUERIIGNlcnRpZmljYXRlICovDQo+PiArICAgIHJldCA9IHNldl9n ZXRfcGRoX2luZm8ocy0+c2V2X2ZkLCAmcGRoLCAmcGRoX2xlbiwNCj4+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAmcGxhdF9jZXJ0LCAmcGxhdF9jZXJ0X2xlbik7DQo+PiArICAgIGlmIChy ZXQpIHsNCj4+ICsgICAgICAgIGVycm9yX3JlcG9ydCgiRmFpbGVkIHRvIGdldCBvdXIgUERIIGNl cnQiKTsNCj4+ICsgICAgICAgIGdvdG8gZXJyOw0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIHRy YWNlX2t2bV9zZXZfc2VuZF9zdGFydChzdGFydC0+cGRoX2NlcnRfdWFkZHIsIHN0YXJ0LT5wZGhf Y2VydF9sZW4sDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydC0+cGxhdF9j ZXJ0X3VhZGRyLCBzdGFydC0+cGxhdF9jZXJ0X2xlbiwNCj4+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0YXJ0LT5hbWRfY2VydF91YWRkciwgc3RhcnQtPmFtZF9jZXJ0X2xlbik7DQo+ PiArDQo+PiArICAgIHJldCA9IHNldl9pb2N0bChzLT5zZXZfZmQsIEtWTV9TRVZfU0VORF9TVEFS VCwgc3RhcnQsICZmd19lcnJvcik7DQo+PiArICAgIGlmIChyZXQgPCAwKSB7DQo+PiArICAgICAg ICBlcnJvcl9yZXBvcnQoIiVzOiBTRU5EX1NUQVJUIHJldD0lZCBmd19lcnJvcj0lZCAnJXMnIiwN Cj4+ICsgICAgICAgICAgICAgICAgX19mdW5jX18sIHJldCwgZndfZXJyb3IsIGZ3X2Vycm9yX3Rv X3N0cihmd19lcnJvcikpOw0KPj4gKyAgICAgICAgZ290byBlcnI7DQo+PiArICAgIH0NCj4+ICsN Cj4+ICsgICAgcWVtdV9wdXRfYmUzMihmLCBzdGFydC0+cG9saWN5KTsNCj4+ICsgICAgcWVtdV9w dXRfYmUzMihmLCBwZGhfbGVuKTsNCj4+ICsgICAgcWVtdV9wdXRfYnVmZmVyKGYsICh1aW50OF90 ICopcGRoLCBwZGhfbGVuKTsNCj4+ICsgICAgcWVtdV9wdXRfYmUzMihmLCBzdGFydC0+c2Vzc2lv bl9sZW4pOw0KPj4gKyAgICBxZW11X3B1dF9idWZmZXIoZiwgKHVpbnQ4X3QgKilzdGFydC0+c2Vz c2lvbl91YWRkciwgc3RhcnQtPnNlc3Npb25fbGVuKTsNCj4+ICsgICAgKmJ5dGVzX3NlbnQgPSAx MiArIHBkaF9sZW4gKyBzdGFydC0+c2Vzc2lvbl9sZW47DQo+PiArDQo+PiArICAgIHNldl9zZXRf Z3Vlc3Rfc3RhdGUoU0VWX1NUQVRFX1NFTkRfVVBEQVRFKTsNCj4+ICsNCj4+ICtlcnI6DQo+PiAr ICAgIGdfZnJlZShzdGFydCk7DQo+PiArICAgIGdfZnJlZShwZGgpOw0KPj4gKyAgICBnX2ZyZWUo cGxhdF9jZXJ0KTsNCj4+ICsgICAgcmV0dXJuIHJldDsNCj4+ICt9DQo+PiArDQo+PiArc3RhdGlj IGludA0KPj4gK3Nldl9zZW5kX2dldF9wYWNrZXRfbGVuKGludCAqZndfZXJyKQ0KPj4gK3sNCj4+ ICsgICAgaW50IHJldDsNCj4+ICsgICAgc3RydWN0IGt2bV9zZXZfc2VuZF91cGRhdGVfZGF0YSAq dXBkYXRlOw0KPj4gKw0KPj4gKyAgICB1cGRhdGUgPSBnX21hbGxvYzAoc2l6ZW9mKCp1cGRhdGUp KTsNCj4+ICsgICAgaWYgKCF1cGRhdGUpIHsNCj4+ICsgICAgICAgIHJldHVybiAtMTsNCj4+ICsg ICAgfQ0KPj4gKw0KPj4gKyAgICByZXQgPSBzZXZfaW9jdGwoc2V2X3N0YXRlLT5zZXZfZmQsIEtW TV9TRVZfU0VORF9VUERBVEVfREFUQSwgdXBkYXRlLCBmd19lcnIpOw0KPj4gKyAgICBpZiAoKmZ3 X2VyciAhPSBTRVZfUkVUX0lOVkFMSURfTEVOKSB7DQo+PiArICAgICAgICByZXQgPSAtMTsNCj4+ ICsgICAgICAgIGVycm9yX3JlcG9ydCgiJXM6IGZhaWxlZCB0byBnZXQgc2Vzc2lvbiBsZW5ndGgg cmV0PSVkIGZ3X2Vycm9yPSVkICclcyciLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgX19mdW5j X18sIHJldCwgKmZ3X2VyciwgZndfZXJyb3JfdG9fc3RyKCpmd19lcnIpKTsNCj4+ICsgICAgICAg IGdvdG8gZXJyOw0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIHJldCA9IHVwZGF0ZS0+aGRyX2xl bjsNCj4+ICsNCj4+ICtlcnI6DQo+PiArICAgIGdfZnJlZSh1cGRhdGUpOw0KPj4gKyAgICByZXR1 cm4gcmV0Ow0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgaW50DQo+PiArc2V2X3NlbmRfdXBkYXRl X2RhdGEoU0VWU3RhdGUgKnMsIFFFTVVGaWxlICpmLCB1aW50OF90ICpwdHIsIHVpbnQzMl90IHNp emUsDQo+PiArICAgICAgICAgICAgICAgICAgICAgdWludDY0X3QgKmJ5dGVzX3NlbnQpDQo+PiAr ew0KPj4gKyAgICBpbnQgcmV0LCBmd19lcnJvcjsNCj4+ICsgICAgZ3VjaGFyICp0cmFuczsNCj4+ ICsgICAgc3RydWN0IGt2bV9zZXZfc2VuZF91cGRhdGVfZGF0YSAqdXBkYXRlOw0KPj4gKw0KPj4g KyAgICAvKiBJZiB0aGlzIGlzIGZpcnN0IGNhbGwgdGhlbiBxdWVyeSB0aGUgcGFja2V0IGhlYWRl ciBieXRlcyBhbmQgYWxsb2NhdGUNCj4+ICsgICAgICogdGhlIHBhY2tldCBidWZmZXIuDQo+PiAr ICAgICAqLw0KPj4gKyAgICBpZiAoIXMtPnNlbmRfcGFja2V0X2hkcikgew0KPj4gKyAgICAgICAg cy0+c2VuZF9wYWNrZXRfaGRyX2xlbiA9IHNldl9zZW5kX2dldF9wYWNrZXRfbGVuKCZmd19lcnJv cik7DQo+PiArICAgICAgICBpZiAocy0+c2VuZF9wYWNrZXRfaGRyX2xlbiA8IDEpIHsNCj4+ICsg ICAgICAgICAgICBlcnJvcl9yZXBvcnQoIiVzOiBTRU5EX1VQREFURSBmd19lcnJvcj0lZCAnJXMn IiwNCj4+ICsgICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBmd19lcnJvciwgZndfZXJyb3Jf dG9fc3RyKGZ3X2Vycm9yKSk7DQo+PiArICAgICAgICAgICAgcmV0dXJuIDE7DQo+PiArICAgICAg ICB9DQo+PiArDQo+PiArICAgICAgICBzLT5zZW5kX3BhY2tldF9oZHIgPSBnX25ldyhnY2hhciwg cy0+c2VuZF9wYWNrZXRfaGRyX2xlbik7DQo+IA0KPiBXaGVuIGRvZXMgdGhpcyBnZXQgZnJlZWQ/ DQo+IA0KDQpBaCwgd2UgY291bGQgZnJlZSBpdCBpbiBTRU5EX0ZJTklTSCB0byBhdm9pZCBsZWFr aW5nLg0KDQoNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICB1cGRhdGUgPSBnX25ldzAoc3RydWN0 IGt2bV9zZXZfc2VuZF91cGRhdGVfZGF0YSwgMSk7DQo+PiArDQo+PiArICAgIC8qIGFsbG9jYXRl IHRyYW5zcG9ydCBidWZmZXIgKi8NCj4+ICsgICAgdHJhbnMgPSBnX25ldyhndWNoYXIsIHNpemUp Ow0KPj4gKw0KPj4gKyAgICB1cGRhdGUtPmhkcl91YWRkciA9ICh1bnNpZ25lZCBsb25nKXMtPnNl bmRfcGFja2V0X2hkcjsNCj4+ICsgICAgdXBkYXRlLT5oZHJfbGVuID0gcy0+c2VuZF9wYWNrZXRf aGRyX2xlbjsNCj4+ICsgICAgdXBkYXRlLT5ndWVzdF91YWRkciA9ICh1bnNpZ25lZCBsb25nKXB0 cjsNCj4+ICsgICAgdXBkYXRlLT5ndWVzdF9sZW4gPSBzaXplOw0KPj4gKyAgICB1cGRhdGUtPnRy YW5zX3VhZGRyID0gKHVuc2lnbmVkIGxvbmcpdHJhbnM7DQo+PiArICAgIHVwZGF0ZS0+dHJhbnNf bGVuID0gc2l6ZTsNCj4+ICsNCj4+ICsgICAgdHJhY2Vfa3ZtX3Nldl9zZW5kX3VwZGF0ZV9kYXRh KHB0ciwgdHJhbnMsIHNpemUpOw0KPj4gKw0KPj4gKyAgICByZXQgPSBzZXZfaW9jdGwocy0+c2V2 X2ZkLCBLVk1fU0VWX1NFTkRfVVBEQVRFX0RBVEEsIHVwZGF0ZSwgJmZ3X2Vycm9yKTsNCj4+ICsg ICAgaWYgKHJldCkgew0KPj4gKyAgICAgICAgZXJyb3JfcmVwb3J0KCIlczogU0VORF9VUERBVEVf REFUQSByZXQ9JWQgZndfZXJyb3I9JWQgJyVzJyIsDQo+PiArICAgICAgICAgICAgICAgIF9fZnVu Y19fLCByZXQsIGZ3X2Vycm9yLCBmd19lcnJvcl90b19zdHIoZndfZXJyb3IpKTsNCj4+ICsgICAg ICAgIGdvdG8gZXJyOw0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIHFlbXVfcHV0X2JlMzIoZiwg dXBkYXRlLT5oZHJfbGVuKTsNCj4+ICsgICAgcWVtdV9wdXRfYnVmZmVyKGYsICh1aW50OF90ICop dXBkYXRlLT5oZHJfdWFkZHIsIHVwZGF0ZS0+aGRyX2xlbik7DQo+PiArICAgICpieXRlc19zZW50 ID0gNCArIHVwZGF0ZS0+aGRyX2xlbjsNCj4+ICsNCj4+ICsgICAgcWVtdV9wdXRfYmUzMihmLCB1 cGRhdGUtPnRyYW5zX2xlbik7DQo+PiArICAgIHFlbXVfcHV0X2J1ZmZlcihmLCAodWludDhfdCAq KXVwZGF0ZS0+dHJhbnNfdWFkZHIsIHVwZGF0ZS0+dHJhbnNfbGVuKTsNCj4+ICsgICAgKmJ5dGVz X3NlbnQgKz0gKDQgKyB1cGRhdGUtPnRyYW5zX2xlbik7DQo+PiArDQo+PiArZXJyOg0KPj4gKyAg ICBnX2ZyZWUodHJhbnMpOw0KPj4gKyAgICBnX2ZyZWUodXBkYXRlKTsNCj4+ICsgICAgcmV0dXJu IHJldDsNCj4+ICt9DQo+PiArDQo+PiAraW50IHNldl9zYXZlX291dGdvaW5nX3BhZ2Uodm9pZCAq aGFuZGxlLCBRRU1VRmlsZSAqZiwgdWludDhfdCAqcHRyLA0KPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQzMl90IHN6LCB1aW50NjRfdCAqYnl0ZXNfc2VudCkNCj4+ICt7DQo+PiAr ICAgIFNFVlN0YXRlICpzID0gc2V2X3N0YXRlOw0KPj4gKw0KPj4gKyAgICAvKg0KPj4gKyAgICAg KiBJZiB0aGlzIGlzIGEgZmlyc3QgYnVmZmVyIHRoZW4gY3JlYXRlIG91dGdvaW5nIGVuY3J5cHRp b24gY29udGV4dA0KPj4gKyAgICAgKiBhbmQgd3JpdGUgb3VyIFBESCwgcG9saWN5IGFuZCBzZXNz aW9uIGRhdGEuDQo+PiArICAgICAqLw0KPj4gKyAgICBpZiAoIXNldl9jaGVja19zdGF0ZShTRVZf U1RBVEVfU0VORF9VUERBVEUpICYmDQo+PiArICAgICAgICBzZXZfc2VuZF9zdGFydChzLCBmLCBi eXRlc19zZW50KSkgew0KPj4gKyAgICAgICAgZXJyb3JfcmVwb3J0KCJGYWlsZWQgdG8gY3JlYXRl IG91dGdvaW5nIGNvbnRleHQiKTsNCj4+ICsgICAgICAgIHJldHVybiAxOw0KPj4gKyAgICB9DQo+ PiArDQo+PiArICAgIHJldHVybiBzZXZfc2VuZF91cGRhdGVfZGF0YShzLCBmLCBwdHIsIHN6LCBi eXRlc19zZW50KTsNCj4+ICt9DQo+PiArDQo+PiAgIHN0YXRpYyB2b2lkDQo+PiAgIHNldl9yZWdp c3Rlcl90eXBlcyh2b2lkKQ0KPj4gICB7DQo+PiBkaWZmIC0tZ2l0IGEvdGFyZ2V0L2kzODYvc2V2 X2kzODYuaCBiL3RhcmdldC9pMzg2L3Nldl9pMzg2LmgNCj4+IGluZGV4IDNmMzQ0OWIzNDYuLjJm ZGNhNTE5MGQgMTAwNjQ0DQo+PiAtLS0gYS90YXJnZXQvaTM4Ni9zZXZfaTM4Ni5oDQo+PiArKysg Yi90YXJnZXQvaTM4Ni9zZXZfaTM4Ni5oDQo+PiBAQCAtODgsNiArODgsOCBAQCBzdHJ1Y3QgU0VW U3RhdGUgew0KPj4gICAgICAgc2l6ZV90IHJlbW90ZV9wbGF0X2NlcnRfbGVuOw0KPj4gICAgICAg Z3VjaGFyICphbWRfY2VydDsNCj4+ICAgICAgIHNpemVfdCBhbWRfY2VydF9sZW47DQo+PiArICAg IGdjaGFyICpzZW5kX3BhY2tldF9oZHI7DQo+PiArICAgIHNpemVfdCBzZW5kX3BhY2tldF9oZHJf bGVuOw0KPj4gICB9Ow0KPj4gICANCj4+ICAgdHlwZWRlZiBzdHJ1Y3QgU0VWU3RhdGUgU0VWU3Rh dGU7DQo+PiBkaWZmIC0tZ2l0IGEvdGFyZ2V0L2kzODYvdHJhY2UtZXZlbnRzIGIvdGFyZ2V0L2kz ODYvdHJhY2UtZXZlbnRzDQo+PiBpbmRleCA3ODljNzAwZDRhLi5iNDE1MTZjZjlmIDEwMDY0NA0K Pj4gLS0tIGEvdGFyZ2V0L2kzODYvdHJhY2UtZXZlbnRzDQo+PiArKysgYi90YXJnZXQvaTM4Ni90 cmFjZS1ldmVudHMNCj4+IEBAIC0xNSwzICsxNSw2IEBAIGt2bV9zZXZfbGF1bmNoX3N0YXJ0KGlu dCBwb2xpY3ksIHZvaWQgKnNlc3Npb24sIHZvaWQgKnBkaCkgInBvbGljeSAweCV4IHNlc3Npb24N Cj4+ICAga3ZtX3Nldl9sYXVuY2hfdXBkYXRlX2RhdGEodm9pZCAqYWRkciwgdWludDY0X3QgbGVu KSAiYWRkciAlcCBsZW4gMHglIiBQUkl1NjQNCj4+ICAga3ZtX3Nldl9sYXVuY2hfbWVhc3VyZW1l bnQoY29uc3QgY2hhciAqdmFsdWUpICJkYXRhICVzIg0KPj4gICBrdm1fc2V2X2xhdW5jaF9maW5p c2godm9pZCkgIiINCj4+ICtrdm1fc2V2X3NlbmRfc3RhcnQodWludDY0X3QgcGRoLCBpbnQgbDEs IHVpbnQ2NF90IHBsYXQsIGludCBsMiwgdWludDY0X3QgYW1kLCBpbnQgbDMpICJwZGggMHglIiBQ Ukl4NjQgIiBsZW4gJWQgcGxhdCAweCUiIFBSSXg2NCAiIGxlbiAlZCBhbWQgMHglIiBQUkl4NjQg IiBsZW4gJWQiDQo+PiAra3ZtX3Nldl9zZW5kX3VwZGF0ZV9kYXRhKHZvaWQgKnNyYywgdm9pZCAq ZHN0LCBpbnQgbGVuKSAiZ3Vlc3QgJXAgdHJhbnMgJXAgbGVuICVkIg0KPj4gK2t2bV9zZXZfc2Vu ZF9maW5pc2godm9pZCkgIiINCj4+IC0tIA0KPj4gMi4xNy4xDQo+Pg0KPiAtLQ0KPiBEci4gRGF2 aWQgQWxhbiBHaWxiZXJ0IC8gZGdpbGJlcnRAcmVkaGF0LmNvbSAvIE1hbmNoZXN0ZXIsIFVLDQo+ IA0K