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 3CF4842BED; Wed, 31 May 2023 08:19:11 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BEB0340ED7; Wed, 31 May 2023 08:19:10 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mails.dpdk.org (Postfix) with ESMTP id A42BD40A87 for ; Wed, 31 May 2023 08:19:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1685513948; x=1717049948; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=TtWzzo+ZvZKmVmwd0uwmQL3uqQfQIwNm13Ad4Oz2yjo=; b=Ybr59uJbXkicjCyulWMGibdd0azZzCq8DVqHbhd9LcAIkKYc4BcCScCv SFlMj2tVa+FTdFYqptYs8CgiODuLU9CU1RqvNw0mvRI9BxfHoMzORIiTi MEsX+cjfwjPMm9uUw5YhJkcIu8fv9TG6kCEymBHMf9+c70CQbqUjJl/Gu k4P4Hoky9Qjxt2t5Rg2wyTL9n6szzR5paFWKquLz3mChz1KuGA2DUTinC cAqmJCLAqTZhB+xIyJBnoUPY6DkDt8VtsqgAUx81IL6pHJNrOjPqV4hyT 9hXxKu2eERjcsACVAwYPq0+FJsuLJX1pZ5Ck5yApBDWYUepaYNszgPxdt w==; X-IronPort-AV: E=McAfee;i="6600,9927,10726"; a="344655230" X-IronPort-AV: E=Sophos;i="6.00,205,1681196400"; d="scan'208";a="344655230" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 May 2023 23:19:07 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10726"; a="709932039" X-IronPort-AV: E=Sophos;i="6.00,205,1681196400"; d="scan'208";a="709932039" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmsmga007.fm.intel.com with ESMTP; 30 May 2023 23:19:07 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 30 May 2023 23:19:06 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 30 May 2023 23:19:06 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Tue, 30 May 2023 23:19:06 -0700 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.46) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Tue, 30 May 2023 23:19:06 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Qs+9AUhb8URF1ckwha2JjYS1cM1cSvvw88LyVG7w9xi6lwBX3GhD/rHQA3C652HlE/3DCeqHejf7McHoEyKz9LkTXIim64qzBWTvC8m7PdbSrbIlDQX8/0q2oNQfxinibwoefQaS6TSv4QfZuKq5xU9GLBWNh61/Ti0N1lS68keI9VTXLKMNa5RA37ACxLJEecaycUZvad5DTMQjDUDayeRbn/mQgzZCIoSASqTapPOSIu/BAOPs09dkuSPv034v8ICXR9jrkjvNwoN2iguwskkjOlTn6nl5hMsjxSAuJGpiDeMicSaXq6XbQ4jRNdO1Y53YqYbH6jnhZKHv1F/+pg== 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=TtWzzo+ZvZKmVmwd0uwmQL3uqQfQIwNm13Ad4Oz2yjo=; b=Gd2amiN+Pz28gMocmVd12uenRfqQlsY7NmmCpMvlqC/EFWVVHRpk8FpalxJGqD+CPAsGD+ec0gGfTndnSgods7C9Q2KQvcnS2ewwyuwo3EtUbIOZc9eNjJiIONwYsVXwE2qYQwUyKznYKQZreSABIyj2Xvzt341mFw92VY3qgvkz4yyp82+Y3fCy+9pb64ONpQUqY2JThTvtpo1WliUotS0AFzfjy92QJjQpHxCwkYnsOz9K2PfQhfPr3MQtyJ+ZNSnb4ft8u+QDKNWzW1cUszOeJwUcnbZplx65Ih7GEIk/l/ywE6iZdWS0LIWanWoSDvQSvdeeeUEysUCtoHISeQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from SN6PR11MB3504.namprd11.prod.outlook.com (2603:10b6:805:d0::17) by MW4PR11MB5934.namprd11.prod.outlook.com (2603:10b6:303:189::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.24; Wed, 31 May 2023 06:19:04 +0000 Received: from SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::e427:f0a6:8472:d0f6]) by SN6PR11MB3504.namprd11.prod.outlook.com ([fe80::e427:f0a6:8472:d0f6%7]) with mapi id 15.20.6433.020; Wed, 31 May 2023 06:19:03 +0000 From: "Xia, Chenbo" To: Maxime Coquelin , Thomas Monjalon , Eelco Chaudron , "david.marchand@redhat.com" CC: "dev@dpdk.org" Subject: RE: [PATCH v3 4/4] vhost: add device op to offload the interrupt kick Thread-Topic: [PATCH v3 4/4] vhost: add device op to offload the interrupt kick Thread-Index: AQHZiJ9JHpUjrSGgLE+QNrA/lr4mIa9y3NqAgAADvICAACGkgIAA+z2A Date: Wed, 31 May 2023 06:19:02 +0000 Message-ID: References: <168431450017.558450.16680518469610688737.stgit@ebuild.local> <168431455219.558450.14986601389394385835.stgit@ebuild.local> <49ec9930-66b8-fc95-72ad-5cb012ed8635@redhat.com> <16690234.Ash8RoxBsO@thomas> <7f1be920-0318-ae7f-4c2e-cc08b2083f7c@redhat.com> In-Reply-To: <7f1be920-0318-ae7f-4c2e-cc08b2083f7c@redhat.com> Accept-Language: en-US, zh-CN Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN6PR11MB3504:EE_|MW4PR11MB5934:EE_ x-ms-office365-filtering-correlation-id: 3e16898b-9d77-4d2e-4976-08db619eee06 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: T/jLm0vLRySO881/lRfYm+d4dLnVkrDA6ivuHS+zyMrXxvr3VQBULUA1tYDpFibhJKFOy6OEALaGWoKzXZabltrV677qKm6xDb9aTBUXFWK7ElJQW3Z9/Dh6TdieDDCVrTBhww3oqst3ZXdZD4qQzXjonEhBr7Qi2Lo4TkIRLLVdeJ0WAHxagpIsL95EhsGJqlDTl3rikn9OfVwYy+sYSWap9vtWlwB4cPkmtiL067DVwih8p127Stn12aWmlRf91DLkkTeBytlFoQLGmZE8qpbX4YrRXteFeYhj9h8vAaCor7n81L0QFAmjHK2HdaqrXbcIiul7bFDh1aw78Ok+rZ+BF3PiQI3oS+42w5GmhXWS7dJMX4BXog5AxKnvcAWMi7pcE2j3ehbxkD4aZJdPPGeY7O3GMxV8stMbK8Nesr2xYX3mR7h8PuCdIQ5BT+nu1A5HGsrJ1nIqTDDjNthTijOwiJOxQ/5UY+eV3e6C6X/OP7kJZPt7Ubm5/qQA0YshriP7awGh4kDpJaK/10VzAHzZ8PcyzJDqIWq185YZY+rrsmoPvPQVuBPfj5GPdTdGhZ3xhgUqdN0OIR3P1AEc2hWU/r22e434dQrzMJlnal4wP/Y0aKJ/zJdmuwpZlrhj x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN6PR11MB3504.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(376002)(39860400002)(346002)(366004)(136003)(396003)(451199021)(66946007)(66476007)(66446008)(64756008)(66556008)(76116006)(4326008)(8676002)(5660300002)(52536014)(316002)(41300700001)(110136005)(2906002)(8936002)(71200400001)(7696005)(478600001)(55016003)(82960400001)(122000001)(6506007)(26005)(9686003)(186003)(53546011)(83380400001)(33656002)(38070700005)(86362001)(38100700002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?c1ZuNFF6MWJMTWpGdWFMMUpBZmZMSlVpK05rRW1zY2RxMElEb01TOUUzSElX?= =?utf-8?B?Z1psMWVIU1E3dml6d3E4SGl0UE1TT3ZxRFJjWWdTa3N4TU1WVmdqM2pXM3E1?= =?utf-8?B?Z2ZTamRFUHBsMFl2QUR0b285TFVWdjR0djNoTnAzZW5DNytQZWJSVVQ2NEd1?= =?utf-8?B?RDg4b2lEd21FS3VxNDE1cEcwak9NUFAzYm1OQ2tKeDVaT0JEU1NObFJ4SDdx?= =?utf-8?B?cnVhdEVCZ3E2M3podEQ4VUhDZ2tTQk1ac2VaR1dzLzdKV3B3Zm5VdmlvWG16?= =?utf-8?B?QVYxTTdjVXV6SWVGM1NHdklYamhPTGFYNWxiT1N6aC9uRWlKSzJhRXZtV1pm?= =?utf-8?B?ZklyZk0yMTE1Zkc3a2gwakxkMEFhbkMwU0ZmN1c2TU1kNS83dXpxQTRXVEFL?= =?utf-8?B?OG5rYWNFeDR0eHVQMHFDaks1SHdDaTg1cDdqOEh5cDFUeG0vOFF2OGo0dG1y?= =?utf-8?B?OFk2ZVJDdXRKSHBlTUlUYXZlWWN6V2VKa2d2R0ZtQ1RrVW5CYkowSm5wSXQr?= =?utf-8?B?cEhpWVJNZ3dYSW5oNTM0OUhSTWVnT3plT2ovbzVWRVFGbzcxYXNiNERHTy9i?= =?utf-8?B?OGRUMy9JbmVZZmJidDFTVCthQW9tQUwzNFk0R0VYbE1KdmY3S0lIc2hNR1FQ?= =?utf-8?B?RVN1dnhoSEpwdmlIR1FSK09SVFh4V2I4Q3JnWWE0ZzQ0bldhV3RKN0ZZQTl3?= =?utf-8?B?S3M4LzFRaUNlN0wyTkhRR2hUZTJxVjF5SmNKbkduVXB0UU9lWUx2YitaZmxw?= =?utf-8?B?TU55V0ZHM0JkcURKelduemY4UjQ0WDFUZktYTlM0dVg1eEQvVURLUDYyTHUx?= =?utf-8?B?YXlzWnpEdWU2TkRJTU8xQm5jVXdKZm1mWXpFbDRGcUVHRU9RZGFoU3ZMVHF1?= =?utf-8?B?QUVDK0k1UERaMzVaYnB5OFNOQ1FuTHc2ZDJNRWRnWUVKc2o1b0dXZWJiYVlR?= =?utf-8?B?RWpDemJ2QnZpQWhBYmg2TytOQWJOM0tVdkVnOVZSYUdKY3dPeTNDM3VkUmwr?= =?utf-8?B?eC9QNE56RnpsMmt0Y1IrWWx0cnhLdm92WEg2MTVHdFZ6RDR0NnBWZzdKS3Z0?= =?utf-8?B?WDRwUWZnbzZmRXBma3dSUWpLRDNXRXVHRVdDZ0hCQmVweFR2RU14VnpNTXZL?= =?utf-8?B?MDdyUytqdmRZbE1tVzN3UFRUaFdJSWV6MzVVb3I2RXpYTnBhbk1EYUlqVXVE?= =?utf-8?B?S0JpSkY4bWp3OEIyVWZ0OGNRTUlyM1hlQWJGVWRhdlBBR3ZjeEFxd1dYR1po?= =?utf-8?B?TnRLVlg0SmxGVzFGUUpzaVBzNFZObkNFekZkZFFhNTh2bTlnNVo1eGlPUG5E?= =?utf-8?B?cHlNeWFkK0F0V3pOUGJpVlBGcFBMaW9lcHNRN1YrcktUM0dpTExUbmpTcUlC?= =?utf-8?B?TzNKbVRWblk2NFk5bXlWRnZhRnVucjJyVjJ0cnR0cVFXZkJ5d2F1Q3NyakpJ?= =?utf-8?B?U2RVWlNRTVE0dVZRc0UvQmtyMFhneGF6Z29wNGhXNWZIVmlNR05TTUI0dWRa?= =?utf-8?B?RXZKL0JRM3Q4Ykp6aWFsaXlBNDNLaVBkQTZUZXdjbVRTN0hvbGtLYUQ4L2xP?= =?utf-8?B?b0dPR3ZNQUFkUW9yWHA3YkVHTkE1SEpMeTM4NkhuK0I0VXNmUDk5YjNmT2pJ?= =?utf-8?B?anZXd1dYRmZHTXhrOUxCMDY1cW14VmZmRVlzVVhCcDMzU2pLWUFDMHkxMUx1?= =?utf-8?B?VzNiWnlYNVFXbzdHeVJNWXNkL1NBc210d0Eyc3MreXMybzFMTkdSb1FmR2JE?= =?utf-8?B?dHZEbC9zdDR4ZVl6NWRtNkNxQm5zdWFreGcyL3c3bUlNVUR5TFg0ZTFLSy9C?= =?utf-8?B?K3BsUDliakRxUUhyZCtTRXM3ZlJRVmp3Y2QxK0xGUFNFdlZJYnBzQzNEWDZw?= =?utf-8?B?b0ZwM2R3Zk5pRDZuZUJZYnorYWk2S0dEU013N1kvUmMrbGd4bHVZOWVQQUcv?= =?utf-8?B?Vi9CdktpNzNhN290eGFOOXArUVI3SjdaaW5UVDJVcCtoUlRmaDU0T1BlaE95?= =?utf-8?B?Tlp4WG5hQzZ1VUJlMWNKT0R6aEcwTDYzRUQxc3NlQU1DNXAza2lMVE5oVmhk?= =?utf-8?B?cVlUZnhZVTc3SXBNNjQ4V25Sc0VoRURIZm5zeHB3QXJWbzRFcVNLQ1BwaXF1?= =?utf-8?Q?F+YBOrfJVkB+kGuqzBZtqEOD0?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR11MB3504.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3e16898b-9d77-4d2e-4976-08db619eee06 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 May 2023 06:19:02.8680 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 65B9WLTD2vsU9LJ4gfr2tGVw88mDzOKBg81lHwobpKpGFRl8r1u9aQq2KdyU4BDWreOEewiKrcwUMEAugrsecA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR11MB5934 X-OriginatorOrg: intel.com 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 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1h eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBNYXkgMzAsIDIwMjMg MTE6MTcgUE0NCj4gVG86IFRob21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IEVl bGNvIENoYXVkcm9uDQo+IDxlY2hhdWRyb0ByZWRoYXQuY29tPjsgWGlhLCBDaGVuYm8gPGNoZW5i by54aWFAaW50ZWwuY29tPjsNCj4gZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbQ0KPiBDYzogZGV2 QGRwZGsub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjMgNC80XSB2aG9zdDogYWRkIGRldmlj ZSBvcCB0byBvZmZsb2FkIHRoZSBpbnRlcnJ1cHQNCj4ga2ljaw0KPiANCj4gDQo+IA0KPiBPbiA1 LzMwLzIzIDE1OjE2LCBUaG9tYXMgTW9uamFsb24gd3JvdGU6DQo+ID4gMzAvMDUvMjAyMyAxNTow MiwgTWF4aW1lIENvcXVlbGluOg0KPiA+Pg0KPiA+PiBPbiA1LzE3LzIzIDExOjA5LCBFZWxjbyBD aGF1ZHJvbiB3cm90ZToNCj4gPj4+IFRoaXMgcGF0Y2ggYWRkcyBhbiBvcGVyYXRpb24gY2FsbGJh Y2sgd2hpY2ggZ2V0cyBjYWxsZWQgZXZlcnkgdGltZSB0aGUNCj4gPj4+IGxpYnJhcnkgd2FudHMg dG8gY2FsbCBldmVudGZkX3dyaXRlKCkuIFRoaXMgZXZlbnRmZF93cml0ZSgpIGNhbGwgY291bGQN Cj4gPj4+IHJlc3VsdCBpbiBhIHN5c3RlbSBjYWxsLCB3aGljaCBjb3VsZCBwb3RlbnRpYWxseSBi bG9jayB0aGUgUE1EIHRocmVhZC4NCj4gPj4+DQo+ID4+PiBUaGUgY2FsbGJhY2sgZnVuY3Rpb24g Y2FuIGRlY2lkZSB3aGV0aGVyIGl0J3Mgb2sgdG8gaGFuZGxlIHRoZQ0KPiA+Pj4gZXZlbnRmZF93 cml0ZSgpIG5vdyBvciBoYXZlIHRoZSBuZXdseSBpbnRyb2R1Y2VkIGZ1bmN0aW9uLA0KPiA+Pj4g cnRlX3Zob3N0X25vdGlmeV9ndWVzdCgpLCBjYWxsZWQgYXQgYSBsYXRlciB0aW1lLg0KPiA+Pj4N Cj4gPj4+IFRoaXMgY2FuIGJlIHVzZWQgYnkgM3JkIHBhcnR5IGFwcGxpY2F0aW9ucywgbGlrZSBP VlMsIHRvIGF2b2lkIHN5c3RlbQ0KPiA+Pj4gY2FsbHMgYmVpbmcgY2FsbGVkIGFzIHBhcnQgb2Yg dGhlIFBNRCB0aHJlYWRzLg0KPiA+Pj4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6IEVlbGNvIENoYXVk cm9uIDxlY2hhdWRyb0ByZWRoYXQuY29tPg0KPiA+Pj4gLS0tDQo+ID4+PiAgICBsaWIvdmhvc3Qv bWVzb24uYnVpbGQgfCAgICAyICsrDQo+ID4+PiAgICBsaWIvdmhvc3QvcnRlX3Zob3N0LmggfCAg IDIzICsrKysrKysrKysrKysrKysrLQ0KPiA+Pj4gICAgbGliL3Zob3N0L3NvY2tldC5jICAgIHwg ICA2Mw0KPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t DQo+ID4+PiAgICBsaWIvdmhvc3QvdmVyc2lvbi5tYXAgfCAgICA5ICsrKysrKysNCj4gPj4+ICAg IGxpYi92aG9zdC92aG9zdC5jICAgICB8ICAgMzggKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrDQo+ID4+PiAgICBsaWIvdmhvc3Qvdmhvc3QuaCAgICAgfCAgIDU4ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tLS0tDQo+IC0tLS0tLS0NCj4gPj4+ICAgIDYgZmlsZXMgY2hh bmdlZCwgMTcxIGluc2VydGlvbnMoKyksIDIyIGRlbGV0aW9ucygtKQ0KPiA+Pj4NCj4gPj4NCj4g Pj4NCj4gPj4gVGhlIHBhdGNoIGxvb2tzIGdvb2QgdG8gbWUsIGJ1dCB0aGF0J3MgdGhlIGZpcnN0 IHRpbWUgd2UgdXNlIGZ1bmN0aW9uDQo+ID4+IHZlcnNpb25pbmcgaW4gVmhvc3QgbGlicmFyeSwg c28gSSdkIGxpa2UgYW5vdGhlciBwYWlyIG9mIGV5ZXMgdG8gYmUNCj4gc3VyZQ0KPiA+PiBJIGRv bid0IG1pc3MgYW55dGhpbmcuDQo+ID4+DQo+ID4+IFJldmlld2VkLWJ5OiBNYXhpbWUgQ29xdWVs aW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiA+Pg0KPiA+PiBUaG9tYXMsIGRvIHdl IG5lZWQgdG8gbWVudGlvbiBpdCBzb21ld2hlcmUgaW4gdGhlIHJlbGVhc2Ugbm90ZT8NCj4gPg0K PiA+IElmIGNvbXBhdGliaWxpdHkgaXMga2VwdCwgSSB0aGluayB3ZSBkb24ndCBuZWVkIHRvIG1l bnRpb24gaXQuDQo+ID4NCj4gPg0KPiANCj4gVGhhbmtzIFRob21hcyBmb3IgdGhlIGluZm9ybWF0 aW9uLg0KPiANCj4gTWF4aW1lDQoNCkFib3V0IHJlbGVhc2Ugbm90ZSwgZXhjZXB0IHRoZSB2ZXJz aW9uaW5nLCB0aGVyZSBpcyBhbHNvIG9uZSBuZXcgQVBJIGludHJvZHVjZWQNCmluIHRoaXMgcGF0 Y2gsIHNvIHdlIHN0aWxsIG5lZWQgdG8gbWVudGlvbiB0aGlzIGluIHJlbGVhc2Ugbm90ZQ0KDQpU aGFua3MsDQpDaGVuYm8NCg==