From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 2AA42A0487 for ; Sun, 28 Jul 2019 06:19:42 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 6B3C21BFC5; Sun, 28 Jul 2019 06:19:41 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 8CB961BFB7 for ; Sun, 28 Jul 2019 06:19:39 +0200 (CEST) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x6S4JcqV022268; Sat, 27 Jul 2019 21:19:38 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=hU+Qp1ltgQPDuwNo4adawr85fMfqKa56FBowj6gQpjY=; b=aLPxtFxjuobhJjsFMihgKM0XfER7VtHDBUXXhNhti9JlNZnos5X20rryTwptlP7GK1zU 9Vhyx+kEQJEUiS4X5L2bGX4X4lZ6OIw0VZPXXfaIHa1zRJQgYK5e2sJ0H14V4LgVm8mv WXuRXp8+RtvcZtFKDz8jsVgiL5EX5UR1zpFaSYespS0mLpmxHYUFjCXPg2f22saSHVtn fi5gQl5F240huVr6JBrmLgVsuSUQMqGlmOfvcybXZUBEc6Z+RbCNxQj6nCOEM7NNxlSi pAKqx4pnr8dpgXXvrr2mHjEFIw8NCxLzJTIWVR6sMZlPnBN/qFu7hB32xEpvo/Ev6sxf Jg== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0b-0016f401.pphosted.com with ESMTP id 2u0p4ktcg7-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Sat, 27 Jul 2019 21:19:38 -0700 Received: from SC-EXCH04.marvell.com (10.93.176.84) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Sat, 27 Jul 2019 21:19:37 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (104.47.40.52) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Sat, 27 Jul 2019 21:19:36 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m52r1BftLXkGl1PXT+ougkzzvJ+V1+iLDFEQFgukbnHyeQ2El3d639olyy3F1WUJlSOJivPBsRAVxEAI8X92NBOLEHSSqB2onsEqPAJpqf0o4fGEMwFursJQy5HMx9Y/xrNDrUo5gmiQOTK0ZTiSywOUzLOMBgysxl7tOwqNjC477baIG4pJuKFlL4eDi2iYdOx1u0ZODOHoyuYAMGd/0J3ry7EFS41rdgUDTt8PElc7XLv3A7AE+wJLpeidCLANZl4cw4p9o/GUIZeuGWianxDckavieciXeozYb/T7TcVT/1+jd0UGqY0Z+709ctZvhkaTPuwUHCsJbqcdDNg5gQ== 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=hU+Qp1ltgQPDuwNo4adawr85fMfqKa56FBowj6gQpjY=; b=jQngRcrm1EnkLRx327LcYWWtOHQRqKdQ2AeGHdehS54ztRiepKHlC1GayBBvXijvd0BSA6W9CNCvAdmdX7xvvRjc4rKDtLwfJuTYS95yYHC1itTIvFMUu6V9dbZqsJAyt0CuRaz9Xqlsea+D/UgPA/nSYQTQGQ9eUqMdKOkX56ZN5J3GA5zhmnAfImKfHVS4qU7H2Fbntd+w20P7QzX2tFuR4wcQxXydeP5pA9cdvskq/cpX90LJlGLQERMUme7z2PRL8B3tjPwLR+72VigX2IY6uEscY9lbAOAhkG4X04l5Lh2RmUxgUbk1N+h8O05hXDE3ce+2yrig4oSxCGxtGw== ARC-Authentication-Results: i=1; mx.microsoft.com 1;spf=pass smtp.mailfrom=marvell.com;dmarc=pass action=none header.from=marvell.com;dkim=pass header.d=marvell.com;arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector2-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hU+Qp1ltgQPDuwNo4adawr85fMfqKa56FBowj6gQpjY=; b=jRjyA6BT00E349gzsr8ihWWDga70mkS+Ib/fU9OnfhcvFKf7wS/G/M6NMvEiA+3/nKtY1ViiLX6fB/XOzQ1ft56d63GA2sOtxfwQ1svI1OPQz9aE5F/m68D5qaCrlGyWhyLRFiuU5oZtZaMRy2iw/JtMyDloqMWj3dELNXrJQqA= Received: from CH2PR18MB3381.namprd18.prod.outlook.com (52.132.246.204) by CH2PR18MB3303.namprd18.prod.outlook.com (52.132.245.221) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2115.10; Sun, 28 Jul 2019 04:19:35 +0000 Received: from CH2PR18MB3381.namprd18.prod.outlook.com ([fe80::189c:3889:b207:8922]) by CH2PR18MB3381.namprd18.prod.outlook.com ([fe80::189c:3889:b207:8922%5]) with mapi id 15.20.2115.005; Sun, 28 Jul 2019 04:19:35 +0000 From: Vamsi Krishna Attunuru To: David Marchand CC: dev , Thomas Monjalon , "Jerin Jacob Kollanukkaran" , Aaron Conole Thread-Topic: [EXT] Re: [PATCH v3 1/1] app/test: fix --socket-mem option in eal flag autotest Thread-Index: AQHVOH0d35WzgPLmJUe+zOzDhAjovabc/jkAgAKFpGA= Date: Sun, 28 Jul 2019 04:19:35 +0000 Message-ID: References: <20190711051532.21054-1-vattunuru@marvell.com> <20190712064320.8106-1-vattunuru@marvell.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [103.227.98.232] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d8c4818c-7a39-462a-5540-08d71312cc31 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:CH2PR18MB3303; x-ms-traffictypediagnostic: CH2PR18MB3303: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:962; x-forefront-prvs: 01128BA907 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(346002)(39830400003)(396003)(376002)(366004)(136003)(51914003)(199004)(189003)(13464003)(52536014)(7696005)(66066001)(446003)(966005)(4326008)(478600001)(26005)(486006)(66946007)(6116002)(11346002)(5660300002)(74316002)(476003)(30864003)(54906003)(3846002)(256004)(316002)(186003)(33656002)(8676002)(81166006)(81156014)(66476007)(102836004)(71200400001)(99286004)(6506007)(86362001)(71190400001)(66556008)(53936002)(14454004)(53546011)(66446008)(6436002)(64756008)(25786009)(8936002)(76176011)(55016002)(6246003)(9686003)(229853002)(7736002)(76116006)(305945005)(6916009)(68736007)(2906002)(6306002); DIR:OUT; SFP:1101; SCL:1; SRVR:CH2PR18MB3303; H:CH2PR18MB3381.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: M+MFTcz+/islXl/JrPoTG0ZhTMTEZ/LZC4hnAW4iIm2bu8VOZZevA2ZKDq2vMgMbJApcuIY/fr5Rwza9Fh1SzRE5ITAs5AD02CsEQ+MaEAv78Ovcv4OkkL/ZPYx4FTJcaYKCfK8NODh4yarH51Qp7xv0EP0oioCeLW6ytQt6QvPDsrZwBoYC3cOr6C+rqSNS0UAjkX7SfBYWSStBY9WsfI8zk2vZjcN8p24Kym0B7GYNq9mkEppVCbsS90Q3C+EdpEcWvDOXu9/JFrAJNqB4jMQ9Wv1Ld2ubQLsjPvPAACsJLRkdhA0VU9MG2oam/jAYrK+9z4JZz+mvO/sZpVN2etfZ5ZQXI9ZrEEojOF5GKVpujDAdjm7bLSas5c3j1Tb/I8Ffgn8z94pT2gusYLVJewnO5FQAWf4WLEvTwIQcwlo= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: d8c4818c-7a39-462a-5540-08d71312cc31 X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jul 2019 04:19:35.0969 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: vattunuru@marvell.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR18MB3303 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:5.22.84,1.0.8 definitions=2019-07-28_01:2019-07-26,2019-07-28 signatures=0 Subject: Re: [dpdk-dev] [EXT] Re: [PATCH v3 1/1] app/test: fix --socket-mem option in eal flag autotest X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRGF2aWQgTWFyY2hh bmQgPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+DQo+IFNlbnQ6IEZyaWRheSwgSnVseSAyNiwg MjAxOSA3OjEwIFBNDQo+IFRvOiBWYW1zaSBLcmlzaG5hIEF0dHVudXJ1IDx2YXR0dW51cnVAbWFy dmVsbC5jb20+DQo+IENjOiBkZXYgPGRldkBkcGRrLm9yZz47IFRob21hcyBNb25qYWxvbiA8dGhv bWFzQG1vbmphbG9uLm5ldD47IEplcmluDQo+IEphY29iIEtvbGxhbnVra2FyYW4gPGplcmluakBt YXJ2ZWxsLmNvbT47IEFhcm9uIENvbm9sZQ0KPiA8YWNvbm9sZUByZWRoYXQuY29tPg0KPiBTdWJq ZWN0OiBbRVhUXSBSZTogW1BBVENIIHYzIDEvMV0gYXBwL3Rlc3Q6IGZpeCAtLXNvY2tldC1tZW0g b3B0aW9uIGluIGVhbCBmbGFnDQo+IGF1dG90ZXN0DQo+IA0KPiBFeHRlcm5hbCBFbWFpbA0KPiAN Cj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KPiBIZWxsbywNCj4gDQo+IE9uIEZyaSwgSnVsIDEyLCAyMDE5IGF0 IDg6NDMgQU0gPHZhdHR1bnVydUBtYXJ2ZWxsLmNvbT4gd3JvdGU6DQo+ID4NCj4gPiBGcm9tOiBW YW1zaSBBdHR1bnVydSA8dmF0dHVudXJ1QG1hcnZlbGwuY29tPg0KPiA+DQo+ID4gZWFsIGZsYWcg YXV0b3Rlc3QgZmFpbHMgd2hlbiBtdWx0aXBsZSBtZW0gc2l6ZSBmbGFncyBhcmUgcGFzc2VkIHRv DQo+ID4gLS1zb2NrZXQtbWVtIG9wdGlvbiBpcnJlc3BlY3RpdmUgb2YgUlRFX01BWF9OVU1BX05P REVTLg0KPiA+DQo+ID4gUGF0Y2ggZml4ZXMgLS1zb2NrZXQtbWVtIG9wdGlvbiBieSBzZXR0aW5n IGVub3VnaCBudW1iZXJzIG9mIG51bWEgbm9kZQ0KPiA+IG1lbSBmbGFncyBiYXNlZCBvbiBSVEVf TUFYX05VTUFfTk9ERVMgY29uZmlnLg0KPiA+DQo+ID4gRml4ZXM6IDQ1ZjFiNmU4NjgwYSAoImFw cDogYWRkIG5ldyB0ZXN0cyBvbiBlYWwgZmxhZ3MiKQ0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTog VmFtc2kgQXR0dW51cnUgPHZhdHR1bnVydUBtYXJ2ZWxsLmNvbT4NCj4gPiAtLS0NCj4gPiBWMyBj aGFuZ2VzOg0KPiA+ICogUGFzcyBidWZmZXIgc2l6ZSBpbmZvIHRvIHBvcHVsYXRlIHNvY2tldCBt ZW0gcm91dGluZSB3aGljaCBzdHJsY3B5DQo+ID4gcmVxdWlyZXMuDQo+ID4NCj4gPiBWMiBjaGFu Z2VzOg0KPiA+ICogQWRkIHJvdXRpbmUgdG8gcG9wdWxhdGUgLS1zb2NrZXQtbWVtIG9wdGlvbiBh bmQgdXNlIGl0IHRvIGZvcm0gdmFsaWQNCj4gPiBhbmQgaW52YWxpZCB0ZXN0IGNvbW1hbmRzLg0K PiA+DQo+ID4gIGFwcC90ZXN0L3Rlc3RfZWFsX2ZsYWdzLmMgfCAxMjENCj4gPiArKysrKysrKysr KysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gIDEgZmlsZSBjaGFuZ2Vk LCA3MSBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQg YS9hcHAvdGVzdC90ZXN0X2VhbF9mbGFncy5jIGIvYXBwL3Rlc3QvdGVzdF9lYWxfZmxhZ3MuYw0K PiA+IGluZGV4IDY3MmNhMGEuLjA1M2Q2OTQgMTAwNjQ0DQo+ID4gLS0tIGEvYXBwL3Rlc3QvdGVz dF9lYWxfZmxhZ3MuYw0KPiA+ICsrKyBiL2FwcC90ZXN0L3Rlc3RfZWFsX2ZsYWdzLmMNCj4gPiBA QCAtMTI1MCwxMiArMTI1MCw0NiBAQCB0ZXN0X2ZpbGVfcHJlZml4KHZvaWQpDQo+ID4gICAgICAg ICByZXR1cm4gMDsNCj4gPiAgfQ0KPiA+DQo+ID4gK3N0YXRpYyB2b2lkDQo+ID4gK3BvcHVsYXRl X3NvY2tldF9tZW1fcGFyYW0oaW50IG51bV9zb2NrZXRzLCBjb25zdCBjaGFyICptZW0sDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKmJ1Ziwgc2l6ZV90IGJ1Zl9zaXplKSB7DQo+ ID4gKyAgICAgICBjaGFyIHRtcFtTT0NLRVRfTUVNX1NUUkxFTl07DQo+IA0KPiBZb3UgZG9uJ3Qg bmVlZCB0aGlzIHRlbXAgYnVmZmVyLg0KPiANCj4gPiArICAgICAgIGludCBpOw0KPiA+ICsNCj4g PiArICAgICAgIHNucHJpbnRmKGJ1ZiwgU09DS0VUX01FTV9TVFJMRU4sICItLXNvY2tldC1tZW09 Iik7DQo+IA0KPiBidWYgaXMgYnVmX3NpemUgbGFyZ2UsIG5vdCBTT0NLRVRfTUVNX1NUUkxFTi4N Cj4gDQo+IA0KPiA+ICsNCj4gPiArICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fc29ja2V0cyA7 IGkrKykgew0KPiA+ICsgICAgICAgICAgICAgICBzbnByaW50Zih0bXAsIHNpemVvZih0bXApLCAi JXMlcyIsIGJ1ZiwgbWVtKTsNCj4gPiArICAgICAgICAgICAgICAgc3RybGNweShidWYsIHRtcCwg YnVmX3NpemUpOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgaWYgKG51bV9zb2NrZXRzICsg MSAtIGkgPiAxKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgc25wcmludGYodG1wLCBz aXplb2YodG1wKSwgIiVzLCIsIGJ1Zik7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgc3Ry bGNweShidWYsIHRtcCwgYnVmX3NpemUpOw0KPiA+ICsgICAgICAgICAgICAgICB9DQo+ID4gKyAg ICAgICB9DQo+ID4gK30NCj4gPiArDQo+IA0KPiANCj4gSG93IGFib3V0IHRoZSBmb2xsb3dpbmc6 DQo+IA0KPiAvKiBUaGlzIGZ1bmN0aW9uIHdyaXRlcyBpbiBwYXNzZWQgYnVmIHBvaW50ZXIgYSB2 YWxpZCAtLXNvY2tldC1tZW09IG9wdGlvbg0KPiAgKiBmb3IgbnVtX3NvY2tldHMgdGhlbiBjb25j YXRlbmF0ZXMgdGhlIHByb3ZpZGVkIHN1ZmZpeCBzdHJpbmcuDQo+ICAqDQo+ICAqIEV4YW1wbGUg Zm9yIG51bV9zb2NrZXRzIDQsIG1lbSAiMiIsIHN1ZmZpeCAicGxvcCINCj4gICogLS1zb2NrZXQt bWVtPTIsMiwyLDJwbG9wDQo+ICAqLw0KPiBzdGF0aWMgdm9pZA0KPiBwb3B1bGF0ZV9zb2NrZXRf bWVtX3BhcmFtKGludCBudW1fc29ja2V0cywgY29uc3QgY2hhciAqbWVtLA0KPiAgICAgICAgICAg ICAgICAgY29uc3QgY2hhciAqc3VmZml4LCBjaGFyICpidWYsIHNpemVfdCBidWZfc2l6ZSkgew0K PiAgICAgICAgIHVuc2lnbmVkIGludCBvZmZzZXQgPSAwOw0KPiAgICAgICAgIGludCB3cml0dGVu Ow0KPiAgICAgICAgIGludCBpOw0KPiANCj4gICAgICAgICB3cml0dGVuID0gc25wcmludGYoJmJ1 ZltvZmZzZXRdLCBidWZfc2l6ZSAtIG9mZnNldCwgIi0tc29ja2V0LW1lbT0iKTsNCj4gICAgICAg ICBpZiAod3JpdHRlbiA8IDAgfHwgd3JpdHRlbiArIG9mZnNldCA+PSBidWZfc2l6ZSkNCj4gICAg ICAgICAgICAgICAgIHJldHVybjsNCj4gICAgICAgICBvZmZzZXQgKz0gd3JpdHRlbjsNCj4gDQo+ ICAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bV9zb2NrZXRzIC0gMTsgaSsrKSB7DQo+ICAgICAg ICAgICAgICAgICB3cml0dGVuID0gc25wcmludGYoJmJ1ZltvZmZzZXRdLCBidWZfc2l6ZSAtIG9m ZnNldCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgIiVzLCIsIG1lbSk7DQo+ICAgICAgICAg ICAgICAgICBpZiAod3JpdHRlbiA8IDAgfHwgd3JpdHRlbiArIG9mZnNldCA+PSBidWZfc2l6ZSkN Cj4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiAgICAgICAgICAgICAgICAgb2Zm c2V0ICs9IHdyaXR0ZW47DQo+ICAgICAgICAgfQ0KPiANCj4gICAgICAgICB3cml0dGVuID0gc25w cmludGYoJmJ1ZltvZmZzZXRdLCBidWZfc2l6ZSAtIG9mZnNldCwgIiVzJXMiLCBtZW0sDQo+ICAg ICAgICAgICAgICAgICBzdWZmaXgpOw0KPiAgICAgICAgIGlmICh3cml0dGVuIDwgMCB8fCB3cml0 dGVuICsgb2Zmc2V0ID49IGJ1Zl9zaXplKQ0KPiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiAg ICAgICAgIG9mZnNldCArPSB3cml0dGVuOw0KPiB9DQo+IA0KPiBTZWUgYmVsb3cgZm9yIHVzYWdl Lg0KPiANCj4gDQo+IA0KPiA+ICAvKg0KPiA+ICAgKiBUZXN0cyBmb3IgY29ycmVjdCBoYW5kbGlu ZyBvZiAtbSBhbmQgLS1zb2NrZXQtbWVtIGZsYWdzDQo+ID4gICAqLw0KPiA+ICBzdGF0aWMgaW50 DQo+ID4gIHRlc3RfbWVtb3J5X2ZsYWdzKHZvaWQpDQo+ID4gIHsNCj4gPiArICAgICAgIGNoYXIg YnVmW1NPQ0tFVF9NRU1fU1RSTEVOXTsgLyogdG8gYXZvaWQgY29weWluZyBzdHJpbmcgb250bw0K PiA+ICsgaXRzZWxmICovDQo+IA0KPiBZb3UgZG9uJ3QgbmVlZCB0aGlzIHRlbXAgYnVmZmVyLg0K PiANCj4gDQo+ID4gKw0KPiA+ICsjaWZkZWYgUlRFX0VYRUNfRU5WX0ZSRUVCU0QNCj4gPiArICAg ICAgIGludCBudW1fc29ja2V0cyA9IDE7DQo+ID4gKyNlbHNlDQo+ID4gKyAgICAgICBpbnQgbnVt X3NvY2tldHMgPSBSVEVfTUlOKGdldF9udW1iZXJfb2Zfc29ja2V0cygpLA0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIFJURV9NQVhfTlVNQV9OT0RFUyk7ICNlbmRpZg0KPiA+ICsNCj4gPiAr ICAgICAgIGlmIChudW1fc29ja2V0cyA8PSAwKSB7DQo+ID4gKyAgICAgICAgICAgICAgIHByaW50 ZigiRXJyb3IgLSBjYW5ub3QgZ2V0IG51bWJlciBvZiBzb2NrZXRzIVxuIik7DQo+ID4gKyAgICAg ICAgICAgICAgIHJldHVybiAtMTsNCj4gPiArICAgICAgIH0NCj4gPiArDQo+ID4gICNpZmRlZiBS VEVfRVhFQ19FTlZfRlJFRUJTRA0KPiA+ICAgICAgICAgLyogQlNEIHRhcmdldCBkb2Vzbid0IHN1 cHBvcnQgcHJlZml4ZXMgYXQgdGhpcyBwb2ludCAqLw0KPiA+ICAgICAgICAgY29uc3QgY2hhciAq IHByZWZpeCA9ICIiOw0KPiA+IEBAIC0xMjc3LDg1ICsxMzExLDcyIEBAIHRlc3RfbWVtb3J5X2Zs YWdzKHZvaWQpDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgIi0tZmlsZS1wcmVmaXg9IiBt ZW10ZXN0LCAiLW0iLA0KPiA+IERFRkFVTFRfTUVNX1NJWkV9Ow0KPiA+DQo+ID4gICAgICAgICAv KiB2YWxpZCAoemVybykgLS1zb2NrZXQtbWVtIGZsYWcgKi8NCj4gPiArICAgICAgIGNoYXIgYXJn Ml9zb2NrZXRfbWVtW1NPQ0tFVF9NRU1fU1RSTEVOXTsNCj4gPiArICAgICAgIHBvcHVsYXRlX3Nv Y2tldF9tZW1fcGFyYW0obnVtX3NvY2tldHMgLSAxLCAiMCIsIGJ1Ziwgc2l6ZW9mKGJ1ZikpOw0K PiA+ICsgICAgICAgc25wcmludGYoYXJnMl9zb2NrZXRfbWVtLCBzaXplb2YoYXJnMl9zb2NrZXRf bWVtKSwgIiVzJXMiLA0KPiA+ICsgYnVmLCAiMCIpOw0KPiANCj4gV2l0aCB0aGUgcHJvcG9zZWQg cG9wdWxhdGVfc29ja2V0X21lbV9wYXJhbSwgaXQgYmVjb21lczoNCj4gDQo+ICAgICAgICAgcG9w dWxhdGVfc29ja2V0X21lbV9wYXJhbShudW1fc29ja2V0cywgIjAiLCAiIiwNCj4gICAgICAgICAg ICAgICAgICAgICAgICAgYXJnMl9zb2NrZXRfbWVtLCBzaXplb2YoYXJnMl9zb2NrZXRfbWVtKSk7 DQo+IA0KPiA+ICAgICAgICAgY29uc3QgY2hhciAqYXJndjJbXSA9IHtwcmduYW1lLA0KPiA+IC0g ICAgICAgICAgICAgICAgICAgICAgICItLWZpbGUtcHJlZml4PSIgbWVtdGVzdCwgIi0tc29ja2V0 LW1lbT0wLDAsMCwwIn07DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIi0tZmlsZS1wcmVm aXg9IiBtZW10ZXN0LCBhcmcyX3NvY2tldF9tZW19Ow0KPiA+DQo+ID4gICAgICAgICAvKiBpbnZh bGlkIChpbmNvbXBsZXRlKSAtLXNvY2tldC1tZW0gZmxhZyAqLw0KPiA+ICsgICAgICAgY2hhciBh cmczX3NvY2tldF9tZW1bU09DS0VUX01FTV9TVFJMRU5dOw0KPiA+ICsgICAgICAgcG9wdWxhdGVf c29ja2V0X21lbV9wYXJhbShudW1fc29ja2V0cyAtIDEsICIyIiwgYnVmLA0KPiA+ICsgc2l6ZW9m KGJ1ZikpOw0KPiANCj4gV2hhdCBoYXBwZW5zIHdoZW4gbnVtX3NvY2tldCA9PSAxPw0KPiANCj4g V2l0aCB0aGUgcHJvcG9zZWQgcG9wdWxhdGVfc29ja2V0X21lbV9wYXJhbSwgaXQgd291bGQgYmVj b21lOg0KPiANCj4gICAgICAgICBwb3B1bGF0ZV9zb2NrZXRfbWVtX3BhcmFtKG51bV9zb2NrZXRz IC0gMSwgIjIiLCAiLCIsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGFyZzNfc29ja2V0X21l bSwgc2l6ZW9mKGFyZzNfc29ja2V0X21lbSkpOw0KPiANCj4gQnV0IHdlIG5lZWQgdG8gZW5zdXJl IHRoYXQgd2UgaGF2ZSBhdCBsZWFzdCB0d28gc29ja2V0cyBiZWZvcmUgc3RhcnRpbmcgdGhlDQo+ IHRlc3Qgb24gYXJndjMuDQo+IA0KPiANCj4gPiArICAgICAgIHNucHJpbnRmKGFyZzNfc29ja2V0 X21lbSwgc2l6ZW9mKGFyZzNfc29ja2V0X21lbSksICIlcyVzIiwNCj4gPiArIGJ1ZiwgIjIsIik7 DQo+ID4gICAgICAgICBjb25zdCBjaGFyICphcmd2M1tdID0ge3ByZ25hbWUsDQo+ID4gLSAgICAg ICAgICAgICAgICAgICAgICAgIi0tZmlsZS1wcmVmaXg9IiBtZW10ZXN0LCAiLS1zb2NrZXQtbWVt PTIsMiwifTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAiLS1maWxlLXByZWZpeD0iIG1l bXRlc3QsIGFyZzNfc29ja2V0X21lbX07DQo+ID4NCj4gPiAgICAgICAgIC8qIGludmFsaWQgKG1p eGVkIHdpdGggaW52YWxpZCBkYXRhKSAtLXNvY2tldC1tZW0gZmxhZyAqLw0KPiA+ICsgICAgICAg Y2hhciBhcmc0X3NvY2tldF9tZW1bU09DS0VUX01FTV9TVFJMRU5dOw0KPiA+ICsgICAgICAgcG9w dWxhdGVfc29ja2V0X21lbV9wYXJhbShudW1fc29ja2V0cyAtIDEsICIyIiwgYnVmLCBzaXplb2Yo YnVmKSk7DQo+ID4gKyAgICAgICBzbnByaW50Zihhcmc0X3NvY2tldF9tZW0sIHNpemVvZihhcmc0 X3NvY2tldF9tZW0pLCAiJXMlcyIsDQo+ID4gKyBidWYsICJGcmVkIik7DQo+ID4gICAgICAgICBj b25zdCBjaGFyICphcmd2NFtdID0ge3ByZ25hbWUsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAg ICAgIi0tZmlsZS1wcmVmaXg9IiBtZW10ZXN0LCAiLS1zb2NrZXQtbWVtPTIsMixGcmVkIn07DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIi0tZmlsZS1wcmVmaXg9IiBtZW10ZXN0LCBhcmc0 X3NvY2tldF9tZW19Ow0KPiANCj4gSWRlbSBhcmd2My4NCj4gDQo+ID4NCj4gPiAgICAgICAgIC8q IGludmFsaWQgKHdpdGggbnVtZXJpYyB2YWx1ZSBhcyBsYXN0IGNoYXJhY3RlcikgLS1zb2NrZXQt bWVtDQo+ID4gZmxhZyAqLw0KPiA+ICsgICAgICAgY2hhciBhcmc1X3NvY2tldF9tZW1bU09DS0VU X01FTV9TVFJMRU5dOw0KPiA+ICsgICAgICAgcG9wdWxhdGVfc29ja2V0X21lbV9wYXJhbShudW1f c29ja2V0cyAtIDEsICIyIiwgYnVmLCBzaXplb2YoYnVmKSk7DQo+ID4gKyAgICAgICBzbnByaW50 Zihhcmc1X3NvY2tldF9tZW0sIHNpemVvZihhcmc1X3NvY2tldF9tZW0pLA0KPiA+ICsgICAgICAg ICAgICAgICAiJXMlcyIsIGJ1ZiwgIkZyZWQwIik7DQo+ID4gICAgICAgICBjb25zdCBjaGFyICph cmd2NVtdID0ge3ByZ25hbWUsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgIi0tZmlsZS1w cmVmaXg9IiBtZW10ZXN0LCAiLS1zb2NrZXQtbWVtPTIsMixGcmVkMCJ9Ow0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICItLWZpbGUtcHJlZml4PSIgbWVtdGVzdCwgYXJnNV9zb2NrZXRfbWVt fTsNCj4gDQo+IElkZW0gYXJndjMuDQo+IA0KPiA+DQo+ID4gICAgICAgICAvKiBpbnZhbGlkICh3 aXRoIGVtcHR5IHNvY2tldCkgLS1zb2NrZXQtbWVtIGZsYWcgKi8NCj4gPiArICAgICAgIGNoYXIg YXJnNl9zb2NrZXRfbWVtW1NPQ0tFVF9NRU1fU1RSTEVOXTsNCj4gPiArICAgICAgIHBvcHVsYXRl X3NvY2tldF9tZW1fcGFyYW0obnVtX3NvY2tldHMgLSAxLCAiMiIsIGJ1Ziwgc2l6ZW9mKGJ1Zikp Ow0KPiA+ICsgICAgICAgc25wcmludGYoYXJnNl9zb2NrZXRfbWVtLCBzaXplb2YoYXJnNl9zb2Nr ZXRfbWVtKSwgIiVzJXMiLA0KPiA+ICsgYnVmLCAiLCwiKTsNCj4gPiAgICAgICAgIGNvbnN0IGNo YXIgKmFyZ3Y2W10gPSB7cHJnbmFtZSwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAiLS1m aWxlLXByZWZpeD0iIG1lbXRlc3QsICItLXNvY2tldC1tZW09MiwsMiJ9Ow0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICItLWZpbGUtcHJlZml4PSIgbWVtdGVzdCwgYXJnNl9zb2NrZXRfbWVt fTsNCj4gDQo+IEhlcmUsIHRoaXMgdGVzdCByZXF1aXJlcyBhdCBsZWFzdCAzIHNvY2tldHMgc28g dGhhdCB3ZSBjYW4gdGVzdCBhdCBtaW5pbXVtIDIsLDIuDQo+IA0KPiANCj4gPg0KPiA+ICAgICAg ICAgLyogaW52YWxpZCAobnVsbCkgLS1zb2NrZXQtbWVtIGZsYWcgKi8NCj4gPiAgICAgICAgIGNv bnN0IGNoYXIgKmFyZ3Y3W10gPSB7cHJnbmFtZSwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAiLS1maWxlLXByZWZpeD0iIG1lbXRlc3QsICItLXNvY2tldC1tZW09In07DQo+ID4NCj4gPiAg ICAgICAgIC8qIHZhbGlkIC0tc29ja2V0LW1lbSBzcGVjaWZpZWQgdG9nZXRoZXIgd2l0aCAtbSBm bGFnICovDQo+ID4gKyAgICAgICBjaGFyIGFyZzhfc29ja2V0X21lbVtTT0NLRVRfTUVNX1NUUkxF Tl07DQo+ID4gKyAgICAgICBwb3B1bGF0ZV9zb2NrZXRfbWVtX3BhcmFtKG51bV9zb2NrZXRzIC0g MSwgIjIiLCBidWYsIHNpemVvZihidWYpKTsNCj4gPiArICAgICAgIHNucHJpbnRmKGFyZzhfc29j a2V0X21lbSwgc2l6ZW9mKGFyZzhfc29ja2V0X21lbSksICIlcyVzIiwNCj4gPiArIGJ1ZiwgIjIi KTsNCj4gPiAgICAgICAgIGNvbnN0IGNoYXIgKmFyZ3Y4W10gPSB7cHJnbmFtZSwNCj4gPiAtICAg ICAgICAgICAgICAgICAgICAgICAiLS1maWxlLXByZWZpeD0iIG1lbXRlc3QsICItbSIsIERFRkFV TFRfTUVNX1NJWkUsICItLQ0KPiBzb2NrZXQtbWVtPTIsMiJ9Ow0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICItLWZpbGUtcHJlZml4PSIgbWVtdGVzdCwgIi1tIiwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICBERUZBVUxUX01FTV9TSVpFLCBhcmc4X3NvY2tldF9tZW19Ow0KPiA+DQo+ ID4gICAgICAgICAvKiBjb25zdHJ1Y3QgYW4gaW52YWxpZCBzb2NrZXQgbWFzayB3aXRoIDIgbWVn cyBvbiBlYWNoIHNvY2tldCBwbHVzDQo+ID4gICAgICAgICAgKiBleHRyYSAyIG1lZ3Mgb24gc29j a2V0IHRoYXQgZG9lc24ndCBleGlzdCBvbiBjdXJyZW50IHN5c3RlbSAqLw0KPiA+ICAgICAgICAg Y2hhciBpbnZhbGlkX3NvY2tldF9tZW1bU09DS0VUX01FTV9TVFJMRU5dOw0KPiA+IC0gICAgICAg Y2hhciBidWZbU09DS0VUX01FTV9TVFJMRU5dOyAgICAvKiB0byBhdm9pZCBjb3B5aW5nIHN0cmlu ZyBvbnRvDQo+IGl0c2VsZiAqLw0KPiA+IC0NCj4gPiAtI2lmZGVmIFJURV9FWEVDX0VOVl9GUkVF QlNEDQo+ID4gLSAgICAgICBpbnQgaSwgbnVtX3NvY2tldHMgPSAxOw0KPiA+IC0jZWxzZQ0KPiA+ IC0gICAgICAgaW50IGksIG51bV9zb2NrZXRzID0gUlRFX01JTihnZXRfbnVtYmVyX29mX3NvY2tl dHMoKSwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBSVEVfTUFYX05VTUFfTk9ERVMpOw0K PiA+IC0jZW5kaWYNCj4gPiAtDQo+ID4gLSAgICAgICBpZiAobnVtX3NvY2tldHMgPD0gMCkgew0K PiA+IC0gICAgICAgICAgICAgICBwcmludGYoIkVycm9yIC0gY2Fubm90IGdldCBudW1iZXIgb2Yg c29ja2V0cyFcbiIpOw0KPiA+IC0gICAgICAgICAgICAgICByZXR1cm4gLTE7DQo+ID4gLSAgICAg ICB9DQo+ID4gLQ0KPiA+IC0gICAgICAgc25wcmludGYoaW52YWxpZF9zb2NrZXRfbWVtLCBzaXpl b2YoaW52YWxpZF9zb2NrZXRfbWVtKSwgIi0tc29ja2V0LQ0KPiBtZW09Iik7DQo+ID4gLQ0KPiA+ IC0gICAgICAgLyogYWRkIG9uZSBleHRyYSBzb2NrZXQgKi8NCj4gPiAtICAgICAgIGZvciAoaSA9 IDA7IGkgPCBudW1fc29ja2V0cyArIDE7IGkrKykgew0KPiA+IC0gICAgICAgICAgICAgICBzbnBy aW50ZihidWYsIHNpemVvZihidWYpLCAiJXMlcyIsIGludmFsaWRfc29ja2V0X21lbSwNCj4gREVG QVVMVF9NRU1fU0laRSk7DQo+ID4gLSAgICAgICAgICAgICAgIHN0cmxjcHkoaW52YWxpZF9zb2Nr ZXRfbWVtLCBidWYsIHNpemVvZihpbnZhbGlkX3NvY2tldF9tZW0pKTsNCj4gPiAtDQo+ID4gLSAg ICAgICAgICAgICAgIGlmIChudW1fc29ja2V0cyArIDEgLSBpID4gMSkgew0KPiA+IC0gICAgICAg ICAgICAgICAgICAgICAgIHNucHJpbnRmKGJ1Ziwgc2l6ZW9mKGJ1ZiksICIlcywiLCBpbnZhbGlk X3NvY2tldF9tZW0pOw0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIHN0cmxjcHkoaW52YWxp ZF9zb2NrZXRfbWVtLCBidWYsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplb2YoaW52YWxpZF9zb2NrZXRfbWVtKSk7DQo+ID4gLSAgICAgICAgICAgICAgIH0NCj4gPiAt ICAgICAgIH0NCj4gPiAtDQo+ID4gLSAgICAgICAvKiBjb25zdHJ1Y3QgYSB2YWxpZCBzb2NrZXQg bWFzayB3aXRoIDIgbWVncyBvbiBlYWNoIGV4aXN0aW5nIHNvY2tldCAqLw0KPiA+IC0gICAgICAg Y2hhciB2YWxpZF9zb2NrZXRfbWVtW1NPQ0tFVF9NRU1fU1RSTEVOXTsNCj4gPiAtDQo+ID4gLSAg ICAgICBzbnByaW50Zih2YWxpZF9zb2NrZXRfbWVtLCBzaXplb2YodmFsaWRfc29ja2V0X21lbSks ICItLXNvY2tldC0NCj4gbWVtPSIpOw0KPiA+IC0NCj4gPiAtICAgICAgIC8qIGFkZCBvbmUgZXh0 cmEgc29ja2V0ICovDQo+ID4gLSAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtX3NvY2tldHM7IGkr Kykgew0KPiA+IC0gICAgICAgICAgICAgICBzbnByaW50ZihidWYsIHNpemVvZihidWYpLCAiJXMl cyIsIHZhbGlkX3NvY2tldF9tZW0sDQo+IERFRkFVTFRfTUVNX1NJWkUpOw0KPiA+IC0gICAgICAg ICAgICAgICBzdHJsY3B5KHZhbGlkX3NvY2tldF9tZW0sIGJ1Ziwgc2l6ZW9mKHZhbGlkX3NvY2tl dF9tZW0pKTsNCj4gPiAtDQo+ID4gLSAgICAgICAgICAgICAgIGlmIChudW1fc29ja2V0cyAtIGkg PiAxKSB7DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgc25wcmludGYoYnVmLCBzaXplb2Yo YnVmKSwgIiVzLCIsIHZhbGlkX3NvY2tldF9tZW0pOw0KPiA+IC0gICAgICAgICAgICAgICAgICAg ICAgIHN0cmxjcHkodmFsaWRfc29ja2V0X21lbSwgYnVmLA0KPiA+IC0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2l6ZW9mKHZhbGlkX3NvY2tldF9tZW0pKTsNCj4gPiAtICAgICAgICAg ICAgICAgfQ0KPiA+IC0gICAgICAgfQ0KPiA+ICsgICAgICAgcG9wdWxhdGVfc29ja2V0X21lbV9w YXJhbShudW1fc29ja2V0cywgREVGQVVMVF9NRU1fU0laRSwNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBidWYsIHNpemVvZihidWYpKTsNCj4gPiArICAgICAgIHNucHJpbnRm KGludmFsaWRfc29ja2V0X21lbSwgc2l6ZW9mKGludmFsaWRfc29ja2V0X21lbSksDQo+ID4gKyAg ICAgICAgICAgICAgICIlcyVzIiwgYnVmLCBERUZBVUxUX01FTV9TSVpFKTsNCj4gDQo+IFRoZSBj b21tZW50IHNheXMgeW91IHdhbnQgdG8gZ2VuZXJhdGUgYSBzdHJpbmcgd2l0aCAyTSBwZXIgc29j a2V0LCBub3QNCj4gREVGQVVMVF9NRU1fU0laRS4NCj4gDQo+ID4NCj4gPiAgICAgICAgIC8qIGlu dmFsaWQgLS1zb2NrZXQtbWVtIGZsYWcgKHdpdGggZXh0cmEgc29ja2V0KSAqLw0KPiA+ICAgICAg ICAgY29uc3QgY2hhciAqYXJndjlbXSA9IHtwcmduYW1lLA0KPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICItLWZpbGUtcHJlZml4PSIgbWVtdGVzdCwgaW52YWxpZF9zb2NrZXRfbWVtfTsNCj4g Pg0KPiA+ICsgICAgICAgLyogY29uc3RydWN0IGEgdmFsaWQgc29ja2V0IG1hc2sgd2l0aCAyIG1l Z3Mgb24gZWFjaCBleGlzdGluZyBzb2NrZXQgKi8NCj4gPiArICAgICAgIGNoYXIgdmFsaWRfc29j a2V0X21lbVtTT0NLRVRfTUVNX1NUUkxFTl07DQo+ID4gKyAgICAgICBwb3B1bGF0ZV9zb2NrZXRf bWVtX3BhcmFtKG51bV9zb2NrZXRzIC0gMSwgREVGQVVMVF9NRU1fU0laRSwNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBidWYsIHNpemVvZihidWYpKTsNCj4gPiArICAgICAg IHNucHJpbnRmKHZhbGlkX3NvY2tldF9tZW0sIHNpemVvZih2YWxpZF9zb2NrZXRfbWVtKSwNCj4g PiArICAgICAgICAgICAgICAgIiVzJXMiLCBidWYsIERFRkFVTFRfTUVNX1NJWkUpOw0KPiA+ICsN Cj4gDQo+IElkZW0gMk0sIG5vdCBERUZBVUxUX01FTV9TSVpFLg0KPiANCj4gDQo+ID4gICAgICAg ICAvKiB2YWxpZCAtLXNvY2tldC1tZW0gZmxhZyAqLw0KPiA+ICAgICAgICAgY29uc3QgY2hhciAq YXJndjEwW10gPSB7cHJnbmFtZSwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAiLS1maWxl LXByZWZpeD0iIG1lbXRlc3QsIHZhbGlkX3NvY2tldF9tZW19Ow0KPiA+IC0tDQo+ID4gMi44LjQN Cj4gPg0KPiANCj4gSSBwcmVwYXJlZCBhIHBhdGNoIHdpdGggbXkgY29tbWVudHMgYWRkcmVzc2Vk LCBjYW4geW91IGhhdmUgYSBsb29rID8NCj4gaHR0cHM6Ly9naXRodWIuY29tL2RhdmlkLQ0KPiBt YXJjaGFuZC9kcGRrL2NvbW1pdC9hNzhiNzU3MmE0MDI1NzlkNzc1ZjFkMDYyMmQxNDU0ZWIzNmUw YWQ0DQoNClRoYW5rcyBmb3IgdGhlIGNvbW1lbnRzIGFuZCBuZXcgcGF0Y2gsIHJldmlld2VkIGFu ZCB2ZXJpZmllZCBpdC4NClBhdGNoIGxvb2tzIGdvb2QgdG8gbWUuDQoNClJldmlld2VkLWJ5OiBW YW1zaSBBdHR1bnVydSA8dmF0dHVudXJ1QG1hcnZlbGwuY29tPg0KVGVzdGVkLWJ5OiBWYW1zaSBB dHR1bnVydSA8dmF0dHVudXJ1QG1hcnZlbGwuY29tPg0KDQo+IA0KPiBUaGFua3MuDQo+IA0KPiAN Cj4gLS0NCj4gRGF2aWQgTWFyY2hhbmQNCg==