From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 778F7A0093; Tue, 10 May 2022 20:03:09 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 210F2410EE; Tue, 10 May 2022 20:03:09 +0200 (CEST) Received: from na01-obe.outbound.protection.outlook.com (mail-centralusazon11021027.outbound.protection.outlook.com [52.101.62.27]) by mails.dpdk.org (Postfix) with ESMTP id 7EBCB406B4; Tue, 10 May 2022 20:03:07 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BHm7mLvhW7I9EpF84c0q5s4sZ1YNUrQViD/jvS5GpMrmGYoOtiQXk5y8q/ORKlFoRcjxyV1pNVH5f8byuWc2uBrBoUn6/dxRtxylN1xvaie/M8A7xghH+nhmSOhEAWqFj3ob/5hS8gc+JQ/M81YBzkLwvQi6y+SvkwEfIZNNC42GUFL+yx73lDzqe4+lvf6sH0Y+LY45huaP6ho2OdGw5g0hIz/IfP/TB+r6OWwgeQGvbdL8x9Wqy1fV0xBItQOiQy14s5ERCfX+/eTE2aUcoKJimb5zgCES2XpCfJghF3Vla7p5Q7uZg9LHWbLL5DCQ2hCUYDxdFlNHcwbjciw8jg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YGCHLcsuszTKBjInCY8gWB4+Vd68qKCpXnUrJbpiKwA=; b=i6UQIdUSOCoAvXGgVP9JJzkeqwvs3y6c+dw+OxLAO1DvlEmWaB8+FZwqLqnjo9/b6Bt7M5/SBk8mxV+ye2GSqmJm0uTWl+/7fWYV36WVT2krT0GI8PKfa4AjuzevsrUUQNlVCSbc+LKlyj+VhlLXw6R25ioggI3xAQoa1ugyX/UnMdFuWdaZaBty5CBx014d2kOZ29O3Go9GuRNBU1SNJyNOO5mzW0u8joN1MV9xQknAttIaZJM0ZQaeL3gmb9ehKZSkk+RYjuPZCnIoN6h/VNmQgm6crCXCOE4o45y5AC0FFlXJ48MEcNK1ahEqSsBQ1iq6LUb4tb3LdJbbzp/fRg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YGCHLcsuszTKBjInCY8gWB4+Vd68qKCpXnUrJbpiKwA=; b=WdlXp1j8vzqdGmEX/nb6ElvcvcN0q6dbLyBQ1Buc+PDl2Tbzk1Hn+MS800sbd9SSdwe44cs0jc7WLO4a4AOK5uYZFIKfrNgS8DaJ12xgFhUC4KAsawnknVIf6bLFfdmAQJClBAlM+Qo319XeAmMDFWOYnrCbv7lzYEqdinec0nQ= Received: from PH7PR21MB3263.namprd21.prod.outlook.com (2603:10b6:510:1db::16) by PH7PR21MB3310.namprd21.prod.outlook.com (2603:10b6:510:1db::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.4; Tue, 10 May 2022 18:03:05 +0000 Received: from PH7PR21MB3263.namprd21.prod.outlook.com ([fe80::ddf3:2951:518d:34a5]) by PH7PR21MB3263.namprd21.prod.outlook.com ([fe80::ddf3:2951:518d:34a5%8]) with mapi id 15.20.5273.004; Tue, 10 May 2022 18:03:05 +0000 From: Long Li To: Ferruh Yigit , Stephen Hemminger CC: "longli@linuxonhyperv.com" , "dev@dpdk.org" , Stephen Hemminger , "stable@dpdk.org" Subject: RE: [Patch v2] net/netvsc: report correct stats values Thread-Topic: [Patch v2] net/netvsc: report correct stats values Thread-Index: AQHYP6cEkQRXn4D8yUClXpvX3Nw0c60C8ZcAgAANvACACrUn4IAADUgAgAAB1WCAAAyYAIAADcyQgAEI6ICAAGTiIIABb0UAgAADTACAAATZgIAHHAgggABj9gCAAG3PwA== Date: Tue, 10 May 2022 18:03:05 +0000 Message-ID: References: <1648143948-17821-1-git-send-email-longli@linuxonhyperv.com> <7f51e773-6ded-b736-fb02-5e3b391353b9@xilinx.com> <20220426154524.49502217@hermes.local> <924d7398-6c78-6318-52f3-d671edfc8aad@xilinx.com> <04de7df6-3d4a-21e5-7be5-15f2ef88be16@xilinx.com> <99a629d6-642e-db25-eeaa-a9eceec577cb@xilinx.com> <7809f41b-c21b-5ebe-d830-91015edb0cb8@xilinx.com> <20220505094026.22e74f43@hermes.local> <973e1c08-6fca-7664-72a3-0a25f5b73686@xilinx.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=34b40203-d99c-4c0d-8e80-b9973ee395b9; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2022-05-10T18:02:43Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=microsoft.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 63641c63-abfd-40a0-74c2-08da32af54f3 x-ms-traffictypediagnostic: PH7PR21MB3310:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: gtUrNNiAEcFLJCyuhUY6eqavaZLR5svCpH6wwqAFQLBWDQKQWMLpjeEWau8Wvzh8JAvl95xJv4kssjz0IqpAmHmjhu8gJSR9CkbdhSXHXYYOtmjTTO0AZUrkvORrIL8vd0ahdkqGlagXVZYZzjD+IyWGm4a9BtE++uT5yC+AMtG18HFMfLZZAzauuxNFUot+mCoPt/FCJiGw2LwZuo7+7e0k979Az7qaxRuAow3r6kRDScnwM/lcB+Jzg/gDzyHgefZd07V7F7cRb3jQWkQZc9X+lR2HfMV3MByLLwtD60muZEpUp+e28N0EbEzT3pgTBZpncwf3iVjSHFFCico6V8XgyWWwqeEDz1SWxr655ysdDJ9h5AvKgATTUwmA61TvWJ19q55HRlOmJ1L0fRIDpJkbXUQmJu78BADXWkna4Q0lcmcnbaaMP6WrjNgiNnnEmAU52IaWWtMI0GOl24AdXmhU8ICcL1UfWieSwwrBr5RHAQ98i8KXn0r5zwAfzY4Q31EFRmUv2tfxjmGppi9oxg55Ef1odVwDTcOl1dyfHypDZDVvbL523LhLMeIL7mPMtyp6fOvagqhsh7uJSsLG5Rfl73hTQ2lUJN0fmfUdUbP4/gjpQiKNiEapThop5X94/9YYX5hrvYvCjRl4fScpgnp0wFvdpGLRLjJHriY16luBsPhGsvf407HLKO3U+OhdHUIJCOFg2nyEW5zvStH4OvNHln3yLvS1En/HwTdsOS3uPDG9yxhodinnCDKeC3qD x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH7PR21MB3263.namprd21.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(451199009)(71200400001)(26005)(316002)(9686003)(186003)(52536014)(10290500003)(82960400001)(7696005)(53546011)(82950400001)(5660300002)(38070700005)(38100700002)(508600001)(54906003)(110136005)(8936002)(55016003)(64756008)(66446008)(6506007)(122000001)(8990500004)(83380400001)(33656002)(86362001)(66476007)(66946007)(76116006)(66556008)(2906002)(8676002)(4326008); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZnFZQ1ZKVzVGeXBDeFErMCtjSzlJVG84N2JvcTFMeEFCMkJZbE84UXJsb200?= =?utf-8?B?a3FyYmJSN2hqQ2ZaZEU5TkpRQXVERzErUUt3QTc5NHQvSWRscmZHNXFWV3RZ?= =?utf-8?B?bldzZVNsRXAwMHhhTnpBNUhpT0VPWXhRTHN0V201NUMwdmhrS3YxL1BaeWpk?= =?utf-8?B?RG5qLytLWi9DVE1UdDM5TjV3cmpaZkdHakRiSVlFdDhZYUpBZzB3ZXl5czBM?= =?utf-8?B?eXhlNXBjeklDc21iVEtpUmJkMkl1OUhVeUZ6dmdJYkErVTlNUHNyZUd4N3Ja?= =?utf-8?B?Z1Naa1NLVVRxOFFvdmd4bjc0WjBVdWpVR3RuQVhrYm1ORnBqMVJPTGkxMXFs?= =?utf-8?B?RjdkdnBwblRPUXZHc2RxUVpQTEJ3Y3V3MEpLZlRmVlZseG9NZ1Z3aTNFOUFs?= =?utf-8?B?bk5MSXgvMHJvRm91enpPc0lOQVZ3OW52N1Z5cCtyaHV2WmhCOFZyZ2RmUDla?= =?utf-8?B?K3RTQnhiamJYYjFmZHBhR1ZDMXNxdzhqQzJJbW0xTTJJUEpXWmNzakxTUTRE?= =?utf-8?B?V0tzSkZOeTdKMnBzL0R1N1hQTkdhVU5aSjI0VUxjREp5WEUwMkpJZVlVeHVj?= =?utf-8?B?VS9kb2JjaGQvMlh4RklBZW1ySHFvQUU3Ny9Cd2FYU1ZmN0lqamJoYlJGTWhZ?= =?utf-8?B?dklPMlcySGhtMjJJb0VVb2lyQko0MFZLbTZEQnlsRTVmc2k4OUlzL2tvbWFa?= =?utf-8?B?WjlQRTUvSUtzbGRHY1FkcjBBd1JrMDZEVnFIdHpsb3pYbmppTTdyN0lLZGVL?= =?utf-8?B?a0dUdUhxV0piYW43d3h4RzZKZnUyL2NxbzE2bEZSTk8rZXppb2gzUWxCVDYy?= =?utf-8?B?VGVwNEY0TVJZLzhaS24xL3hMR0RwL1RFYWczVmRUVkkvVE4vWUFnUDNWZkYy?= =?utf-8?B?QWJ5SitXTkdrV2lJLzR3ekM3bTdiQUViYVFyVXQxcmJjTklkWURrMnJpc290?= =?utf-8?B?ek0yd2hkYlZ0Sjdod2ZEL0lsbVhGb0RzckhaZ1QrMUswZXh0YVRMSkhYWXdK?= =?utf-8?B?R3dKUUNJaVlPODF1bjI4OUlKYmxRWlhucEJ3dWExK0pKM01aNWFlSDFSbkNE?= =?utf-8?B?VEtJMTU5NnIxZ2FMN0hCeDZvUm1ZNFBtVXYrMUNSQlFZOUtGbDRVSWJxMWJC?= =?utf-8?B?MFZOZ0p2R29OOXVSS2kvdGhaSEdxdXowS2JLTFFMeHN6anJ0ZndrZUFTVERy?= =?utf-8?B?TDVUNjc5NFZiYzBoWERrSEhtYTA0aGFRTFJuZHhZeEFuSnQ2L0hXdjZGWitP?= =?utf-8?B?OHNIZVhibmJ3bHdzdTF5N2R4SGRiUVdqMkE4Y0JNZVJtSHM4OXczSTdQdFJ3?= =?utf-8?B?eTc4SDRxb1hVU0twSGFkVGNRRFlWK2dyUmlQRDd4ZlV2M0tITWlWaS95VlBj?= =?utf-8?B?YU5vRGtSbndmZkhCbzcyWE9KZjNCakYwdmJiWVU5ZWF2TVNsNWlpT3dkbDRm?= =?utf-8?B?eE5RY3l2Q3Z4QzVNZEJTaUV2cmhJaURlNFJPY090OFJGOWZYVkdiejdzSjZN?= =?utf-8?B?T0xER2J1TFJ1OEtrb0hFMUd5cHNWTUpxbCszOFBXbHRFWWZWYVJ5Yk1aRmI2?= =?utf-8?B?Z3hCVjZocW9kQXZvZGg3SXhVWUNQRmgxMkZEc0xLS3J1NUZBbVZpVElSNEQv?= =?utf-8?B?V0g1UVpuTDBpSmZqK2h5ZkFnUm9pV3B5ZHJqVnVCbzZSS0xsVVVMRXJZL21t?= =?utf-8?B?aGtNY1V1NDRKa1BJd2N4WjJQbkFOVml3eWZnMytXaGQwOVAvZnlsVDNHb0hv?= =?utf-8?B?d2gwdzFvdk1VeDZOSFdDZCtxT2JJVjdOWmNWajNBRERQVFI3b3NQYm96dHc5?= =?utf-8?B?WmY4c0RldUZpUUMvU25WWjVRL1VEWElsMDJRcm5VVmNxckpVSTlBdzJJR0RR?= =?utf-8?B?TDdIWUVrVUROaW04M1pvUWhtbW9sZGVBQ0hWMEZJNzc3WGIxb2N6Y3I5K1dk?= =?utf-8?B?aW84dnBmRVVobzByN28xUmNoc29qdXpjRlBiT2pJQzlOU0I3MUZJNm8vcEJU?= =?utf-8?B?N0NIOEpvRVBPQXhiZk51eXJwcVVxVGptK00ybXV3VCt3blErM3BBNEk0ZjRs?= =?utf-8?B?bzV4NnU1MUNrUUJTWVlWbi9aKytxTGRtemdhUnk3L1g3SkVoMmkycGdndTBW?= =?utf-8?B?MHZPeTRLL0F1cmlCZHZCN3NPV3NDTTVHVGFLTE9HVWlyYjhrb1dsRzhiazZq?= =?utf-8?B?ZnhVWnVwL05kd2ZCaVE0Rkw4RFNaZXVKOVJGQXM0YW4vRitZYS9LREpjdEow?= =?utf-8?B?aXFWV0RxSEdTdWxKaVRLQ293Qk5YanViV015dlo3eVBsRXNsR3Y0ZHp1ZktZ?= =?utf-8?B?MkE2MkcxNGV1Q0gwQ3IzdUdNK3FqckwydzdjRWZSaGVNYWo2Zk5HZz09?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH7PR21MB3263.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 63641c63-abfd-40a0-74c2-08da32af54f3 X-MS-Exchange-CrossTenant-originalarrivaltime: 10 May 2022 18:03:05.1553 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: EN7AWzmLz8P8NcgdGpTpZRSK00K/nXeNkx/RrLtODq49A9ZVxS0VSLqQ+C/mYDvwu6pb2zdaS0P8E+w+gKhxFg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR21MB3310 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PiBTdWJqZWN0OiBSZTogW1BhdGNoIHYyXSBuZXQvbmV0dnNjOiByZXBvcnQgY29ycmVjdCBzdGF0 cyB2YWx1ZXMNCj4gDQo+IE9uIDUvMTAvMjAyMiA2OjMzIEFNLCBMb25nIExpIHdyb3RlOg0KPiA+ PiBTdWJqZWN0OiBSZTogW1BhdGNoIHYyXSBuZXQvbmV0dnNjOiByZXBvcnQgY29ycmVjdCBzdGF0 cyB2YWx1ZXMNCj4gPj4NCj4gPj4gT24gNS81LzIwMjIgNTo0MCBQTSwgU3RlcGhlbiBIZW1taW5n ZXIgd3JvdGU6DQo+ID4+PiBPbiBUaHUsIDUgTWF5IDIwMjIgMTc6Mjg6MzggKzAxMDANCj4gPj4+ IEZlcnJ1aCBZaWdpdCA8ZmVycnVoLnlpZ2l0QHhpbGlueC5jb20+IHdyb3RlOg0KPiA+Pj4NCj4g Pj4+PiBPbiA1LzQvMjAyMiA3OjM4IFBNLCBMb25nIExpIHdyb3RlOg0KPiA+Pj4+Pj4gU3ViamVj dDogUmU6IFtQYXRjaCB2Ml0gbmV0L25ldHZzYzogcmVwb3J0IGNvcnJlY3Qgc3RhdHMgdmFsdWVz DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gT24gNS8zLzIwMjIgOTo0OCBQTSwgTG9uZyBMaSB3cm90ZToN Cj4gPj4+Pj4+Pj4gU3ViamVjdDogUmU6IFtQYXRjaCB2Ml0gbmV0L25ldHZzYzogcmVwb3J0IGNv cnJlY3Qgc3RhdHMgdmFsdWVzDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IE9uIDUvMy8yMDIyIDg6 MTQgUE0sIExvbmcgTGkgd3JvdGU6DQo+ID4+Pj4+Pj4+Pj4gU3ViamVjdDogUmU6IFtQYXRjaCB2 Ml0gbmV0L25ldHZzYzogcmVwb3J0IGNvcnJlY3Qgc3RhdHMNCj4gPj4+Pj4+Pj4+PiB2YWx1ZXMN Cj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IE9uIDUvMy8yMDIyIDc6MTggUE0sIExvbmcgTGkg d3JvdGU6DQo+ID4+Pj4+Pj4+Pj4+PiBTdWJqZWN0OiBSZTogW1BhdGNoIHYyXSBuZXQvbmV0dnNj OiByZXBvcnQgY29ycmVjdCBzdGF0cw0KPiA+Pj4+Pj4+Pj4+Pj4gdmFsdWVzDQo+ID4+Pj4+Pj4+ Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4gT24gVHVlLCAyNiBBcHIgMjAyMiAyMjo1NjoxNCArMDEwMCBG ZXJydWggWWlnaXQNCj4gPj4+Pj4+Pj4+Pj4+IDxmZXJydWgueWlnaXRAeGlsaW54LmNvbT4gd3Jv dGU6DQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4+PiAgICAgICAgIAkJaWYgKGkgPCBS VEVfRVRIREVWX1FVRVVFX1NUQVRfQ05UUlMpIHsNCj4gPj4+Pj4+Pj4+Pj4+Pj4gLQkJCXN0YXRz LT5xX29wYWNrZXRzW2ldID0gdHhxLQ0KPiA+c3RhdHMucGFja2V0czsNCj4gPj4+Pj4+Pj4+Pj4+ Pj4gLQkJCXN0YXRzLT5xX29ieXRlc1tpXSA9IHR4cS0+c3RhdHMuYnl0ZXM7DQo+ID4+Pj4+Pj4+ Pj4+Pj4+ICsJCQlzdGF0cy0+cV9vcGFja2V0c1tpXSArPSB0eHEtDQo+ID4+PiBzdGF0cy5wYWNr ZXRzOw0KPiA+Pj4+Pj4+Pj4+Pj4+PiArCQkJc3RhdHMtPnFfb2J5dGVzW2ldICs9IHR4cS0+c3Rh dHMuYnl0ZXM7DQo+ID4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+PiBUaGlzIGlzIHBlciBx dWV1ZSBzdGF0cywgJ3N0YXRzLT5xX29wYWNrZXRzW2ldJywgaW4gbmV4dA0KPiA+Pj4+Pj4+Pj4+ Pj4+IGl0ZXJhdGlvbiBvZiB0aGUgbG9vcCwgJ2knIHdpbGwgYmUgaW5jcmVhc2VkIGFuZCAndHhx Jw0KPiA+Pj4+Pj4+Pj4+Pj4+IHdpbGwgYmUgdXBkYXRlZCwgc28gYXMgZmFyIGFzIEkgY2FuIHNl ZSB0aGUgYWJvdmUgY2hhbmdlIGhhcyBubw0KPiBhZmZlY3QuDQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+ Pj4+Pj4+Pj4+Pj4gQWdyZWUsIHRoYXQgaXMgd2h5IGl0IHdhcyBqdXN0IGFzc2lnbm1lbnQgb3Jp Z2luYWxseS4NCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4gVGhlIGNvbmRpdGlvbiBoZXJl IGlzIGEgbGl0dGxlIGRpZmZlcmVudC4gTkVUVlNDIGlzIGEgbWFzdGVyDQo+ID4+Pj4+Pj4+Pj4+ IGRldmljZSB3aXRoDQo+ID4+Pj4+Pj4+Pj4gYW5vdGhlciBQTUQgcnVubmluZyBhcyBhIHNsYXZl LiBXaGVuIHJlcG9ydGluZyBzdGF0cyB2YWx1ZXMsDQo+ID4+Pj4+Pj4+Pj4gaXQgbmVlZHMgdG8g YWRkIHRoZSB2YWx1ZXMgZnJvbSB0aGUgc2xhdmUgUE1ELiBUaGUgb3JpZ2luYWwNCj4gPj4+Pj4+ Pj4+PiBjb2RlIGp1c3Qgb3ZlcndyaXRlcyB0aGUgdmFsdWVzIGZyb20gaXRzIHNsYXZlIFBNRC4N Cj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IFdoZXJlIHRoZSBpbml0aWFsIHZhbHVlcyBhcmUg Y29taW5nIGZyb20sICdobl92Zl9zdGF0c19nZXQoKSc/DQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+ Pj4+PiBJZiAnaG5fdmZfc3RhdHNfZ2V0KCknIGZpbGxzIHRoZSBzdGF0cywgd2hhdCBhcmUgdGhl IHZhbHVlcw0KPiA+Pj4+Pj4+Pj4+IGtlcHQgaW4NCj4gPj4+Pj4+Pj4+PiAndHhxLQ0KPiA+Pj4+ Pj4+Pj4gc3RhdHMuKicNCj4gPj4+Pj4+Pj4+PiBpbiBhYm92ZSB1cGRhdGVkIGxvb3A/DQo+ID4+ Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gWWVzLCBobl92Zl9zdGF0c19nZXQoKSBmaWxscyBpbiB0aGUg c3RhdHMgZnJvbSB0aGUgc2xhdmUgUE1ELg0KPiA+Pj4+Pj4+Pj4gdHhxLT5zdGF0cw0KPiA+Pj4+ Pj4+PiB2YWx1ZXMgYXJlIGZyb20gdGhlIG1hc3RlciBQTUQuIFRob3NlIHZhbHVlcyBhcmUgZGlm ZmVyZW50IGFuZA0KPiA+Pj4+Pj4+PiBhY2NvdW50ZWQgc2VwYXJhdGVkIGZyb20gdGhlIHZhbHVl cyBmcm9tIHRoZSBzbGF2ZSBQTUQuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IEkgc2VlLCBzaW5j ZSB0aGlzIGlzIGEgbGl0dGxlIGRpZmZlcmVudCB0aGFuIHdoYXQgbW9zdCBvZiB0aGUNCj4gPj4+ Pj4+Pj4gUE1EcyBkbywgY2FuIHlvdSBwbGVhc2UgcHV0IGEgbGl0dGxlIG1vcmUgaW5mbyB0byB0 aGUgY29tbWl0IGxvZz8NCj4gPj4+Pj4+Pj4gT3IgcGVyaGFwcyBjYW4gYWRkIHNvbWUgY29tbWVu dHMgdG8gdGhlIGNvZGUuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBPaywgd2lsbCBkby4NCj4gPj4+ Pj4+Pg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBBbmQgc3RpbGwgJ3N0YXRzLT5yeF9ub21idWYn IGNoYW5nZSBpcyBub3QgcmVxdWlyZWQgcmlnaHQ/IElmDQo+ID4+Pj4+Pj4+IHNvIGNhbiB5b3Ug cmVtb3ZlIGl0IGluIHRoZSBuZXh0IHZlcnNpb24/DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBJdCBp cyBzdGlsbCBuZWVkZWQuIE5FVFZTQyB1bmNvbmRpdGlvbmFsbHkgY2FsbHMgdGhlIHNsYXZlIFBN RA0KPiA+Pj4+Pj4+IHRvIHJlY2VpdmUNCj4gPj4+Pj4+IHBhY2tldHMsIGV2ZW4gaWYgaXQgY2Fu J3QgYWxsb2NhdGUgYSBtYnVmIHRvIHJlY2VpdmUgYSBzeW50aGV0aWMNCj4gPj4+Pj4+IHBhY2tl dCBpdHNlbGYuIFRoZSBhY2NvdW50aW5nIG9mIHJ4X25vbWJ1ZiBpcyB2YWxpZCBiZWNhdXNlIHRo ZQ0KPiA+Pj4+Pj4gc3ludGhldGljIHBhY2tldHMgKHRvIE5FVFZTQykgYW5kIFZGIHBhY2tldHMg KHRvIHNsYXZlIFBNRCkgYXJlDQo+ID4+Pj4+PiByb3V0ZWQNCj4gPj4gc2VwYXJhdGVseSBmcm9t IEh5cGVyLVYuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gSSBhbSBub3QgcmVmZXJyaW5nIHRvIHRoZSAi Kz0iIHVwZGF0ZSwgbXkgY29tbWVudCB3YXMgYmVjYXVzZQ0KPiA+Pj4+Pj4gJ3N0YXRzLQ0KPiA+ Pj4+Pj4+IHJ4X25vbWJ1ZicgaXMgb3ZlcndyaXR0ZW4gaW4gJ3J0ZV9ldGhfc3RhdHNfZ2V0KCkn IFsxXS4NCj4gPj4+Pj4+IElzIGl0IHN0aWxsIHJlcXVpcmVkPw0KPiA+Pj4+Pg0KPiA+Pj4+PiBZ ZXMsIGl0IGlzIHN0aWxsIG5lZWRlZC4gTkVUVlNDIGNhbGxzIHRoZSBydGVfZXRoX3N0YXRzX2dl dCgpIG9uDQo+ID4+Pj4+IGl0cyBzbGF2ZSBQTUQNCj4gPj4gZmlyc3QsIGFuZCBzdGF0cy0+cnhf bm9tYnVmIGlzIHVwZGF0ZWQgKG92ZXJ3cml0dGVuKSBmb3IgaXRzIHNsYXZlDQo+ID4+IFBNRC4g QWZ0ZSB0aGF0LCBpdCBuZWVkcyB0byBhZGQgdG8gaXRzIG93bg0KPiA+PiBkZXYtPmRhdGEtPnJ4 X21idWZfYWxsb2NfZmFpbGVkIGJhY2sgdG8gc3RhdHMtDQo+ID4+PiByeF9ub21idWYuDQo+ID4+ Pj4+DQo+ID4+Pj4NCj4gPj4+PiBCdXQgaXRzIG93biBzdGF0IGFsc28gd2lsbCBiZSBvdmVyd3Jp dHRlbiAobm90IGluIFBNRCBmdW5jdGlvbiwgYnV0DQo+ID4+Pj4gaW4gZXRoZGV2IGxheWVyKS4N Cj4gPj4+PiAnc3RhdHMtPnJ4X25vbWJ1ZicgYXNzaWdubWVudCBpbiB0aGUgUE1EIHNlZW1zIGhh cyBubyBlZmZlY3QgYW5kDQo+ID4+Pj4gY2FuIGJlIHJlbW92ZWQuDQo+ID4+Pj4NCj4gPj4+PiBJ IGNhbid0IHNlZSBob3cgaXQgaXMgbmVlZGVkLCBjYW4geW91IHBsZWFzZSBwdXQgYSBjYWxsIHN0 YWNrIHRvIGRlc2NyaWJlPw0KPiA+Pj4NCj4gPj4+IFRoaXMgaGVyZToNCj4gPj4+DQo+ID4+Pg0K PiA+Pj4gaW50DQo+ID4+PiBydGVfZXRoX3N0YXRzX2dldCh1aW50MTZfdCBwb3J0X2lkLCBzdHJ1 Y3QgcnRlX2V0aF9zdGF0cyAqc3RhdHMpIHsNCj4gPj4+IAlzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl djsNCj4gPj4+DQo+ID4+PiAJUlRFX0VUSF9WQUxJRF9QT1JUSURfT1JfRVJSX1JFVChwb3J0X2lk LCAtRU5PREVWKTsNCj4gPj4+IAlkZXYgPSAmcnRlX2V0aF9kZXZpY2VzW3BvcnRfaWRdOw0KPiA+ Pj4NCj4gPj4+IAlpZiAoc3RhdHMgPT0gTlVMTCkgew0KPiA+Pj4gCQlSVEVfRVRIREVWX0xPRyhF UlIsICJDYW5ub3QgZ2V0IGV0aGRldiBwb3J0ICV1IHN0YXRzIHRvDQo+ID4+IE5VTExcbiIsDQo+ ID4+PiAJCQlwb3J0X2lkKTsNCj4gPj4+IAkJcmV0dXJuIC1FSU5WQUw7DQo+ID4+PiAJfQ0KPiA+ Pj4NCj4gPj4+IAltZW1zZXQoc3RhdHMsIDAsIHNpemVvZigqc3RhdHMpKTsNCj4gPj4+DQo+ID4+ PiAJUlRFX0ZVTkNfUFRSX09SX0VSUl9SRVQoKmRldi0+ZGV2X29wcy0+c3RhdHNfZ2V0LCAtRU5P VFNVUCk7DQo+ID4+PiAJc3RhdHMtPnJ4X25vbWJ1ZiA9IGRldi0+ZGF0YS0+cnhfbWJ1Zl9hbGxv Y19mYWlsZWQ7DQo+ID4+PiAJcmV0dXJuIGV0aF9lcnIocG9ydF9pZCwgKCpkZXYtPmRldl9vcHMt PnN0YXRzX2dldCkoZGV2LCBzdGF0cykpOyB9DQo+ID4+Pg0KPiA+Pj4gV2lsbCBmaWxsIGluIHJ4 X25vbWJ1ZiBmcm9tIHRoZSBjdXJyZW50IHJ4X21idWZfYWxsb2NfZmFpbGVkLg0KPiA+Pj4gQnV0 IGl0IGhhcHBlbnMgYmVmb3JlIHRoZSBQTUQgc3BlY2lmaWMgc3RhdHMgZnVuY3Rpb24uDQo+ID4+ Pg0KPiA+Pg0KPiA+PiBJIGtlZXAgc2VlaW5nIHRoZSBldGhkZXYgYXNzaWdubWVudCBhcyAqYWZ0 ZXIqIHRoZSBkZXZfb3BzLCBidXQgaXQgaXMNCj4gPj4gbm90IFsxXSwgc28gY29kZSBpcyBPSyBh cyBpdCBpcy4NCj4gPg0KPiA+IEhpIEZlcnJ1aCwNCj4gPg0KPiA+IERvIHlvdSBzdGlsbCB3YW50 IG1lIHRvIHNlbmQgYSB2Mywgb3IgdGhpcyBwYXRjaCBpcyBnb29kIGFzIGl0IGlzPw0KPiA+DQo+ IA0KPiBZZXMgY2FuIHlvdSBwbGVhc2Ugc2VuZCBhIHYzIHdpdGggc29tZSBtb3JlIGRlc2NyaXB0 aW9uIGluIHRoZSBjb21taXQgbG9nIG9uDQo+IHRoZSBzcGVjaWFsIGNhc2UgZm9yIHRoZSBQTUQs IGFuZCBwZXJoYXBzIHNvbWUgY29tbWVudHMgaW4gdGhlIGNvZGUuDQo+IA0KPiBUaGFua3MsDQo+ IEZlcnJ1aA0KDQpZZXMsIHdpbGwgc2VuZCBvdXQgc2hvcnRseS4NCg==