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 D1810A04FF; Thu, 31 Mar 2022 15:38:37 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6FD44410FA; Thu, 31 Mar 2022 15:38:37 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80070.outbound.protection.outlook.com [40.107.8.70]) by mails.dpdk.org (Postfix) with ESMTP id B722B4014F for ; Thu, 31 Mar 2022 15:38:35 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O4WHOaN7bjzAlyYiAjHwXIa6FP9BsSqP6tLdMUtZK6Z+1Xg821GJldpyJfH5WgQ8ngny82rPahJdUU94swoty25r1pVx7xIkxvHwzwja3nLLKdckdJZoa188lYjjSXBQeNw2tS7T8Nnr9U4TFgX65S2LRgrK0oGYgDViUcymwt6Od5havtSNmbSOZEGuLbBKmX5chYuBLd6y0+rN+iR8g6gkNCJKWvNTU9yPpGvYgx80INpan9o+lvkGTFaEO/SprxE82FXPwzM9qa3p8zmWUmYDPYC9Ig/81xcqKWjjqK7w15YVsv6izwW8BHW3vlfZ3o81ObgYfpu8SZ4Wp0WNew== 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=9PXYMOps5nfLD9p+DNr28LJA4lWT8N2+7rLa6BlG1gE=; b=THoBc1dgEQbjKXGrosXTaW+iEDlp4+DQnCE9M7DjM/sylwpY4PzoGGrFYqdTknt4DmlRM4GmEWnWSK/A0JQ2h6lrJ5D2RyvWXB3lb5IxIGote0Edvx7RlDZTYM6cbdu3pC974AtnGsLQeWg2p/Us2l99Sfcac4xZHbtKArEEGdl7gjkDCKwl/ttPYgkb+wvNmODjtdelvzDlF4I8citS2q/rWJ2JkQ6duwJKidaRLlX105rx8bc+QTBNXy0XU217yXGWFtS0tkpFw/yTvJ6oWxJfK8wsZhv0VdQDGuAhdKNtlgNtO81Jf0T6dzIDQK9LmhJ5DN/GiqKq3ERXU5rqFQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9PXYMOps5nfLD9p+DNr28LJA4lWT8N2+7rLa6BlG1gE=; b=n8cOrWlv2XPfKN4yewSOvV6jXbE+oBWKAlmqxS3vlb0Hpd/fKBS9te2vkk/b56hrpYX8sm67bN59z/Cxa5YVTIM/W+Q+7n30u1GZw091H99614x+BcdOQ6gmOCnT5Lt65feJxc1AKK9jdAvxTtDRh6yy0ziDJvUaWwZkFpoLed4= Received: from DB7PR07MB5978.eurprd07.prod.outlook.com (2603:10a6:10:80::15) by AM0PR07MB3971.eurprd07.prod.outlook.com (2603:10a6:208:46::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5123.21; Thu, 31 Mar 2022 13:38:34 +0000 Received: from DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::8058:d193:21b1:4715]) by DB7PR07MB5978.eurprd07.prod.outlook.com ([fe80::8058:d193:21b1:4715%6]) with mapi id 15.20.5123.021; Thu, 31 Mar 2022 13:38:33 +0000 From: =?utf-8?B?TWF0dGlhcyBSw7ZubmJsb20=?= To: Ola Liljedahl , "dev@dpdk.org" CC: Thomas Monjalon , David Marchand , Onar Olsen , "Honnappa.Nagarahalli@arm.com" , "nd@arm.com" , "konstantin.ananyev@intel.com" , "mb@smartsharesystems.com" , "stephen@networkplumber.org" Subject: Re: [PATCH v2] eal: add seqlock Thread-Topic: [PATCH v2] eal: add seqlock Thread-Index: AQHYREI+kT+uv97lukSNh7J9kuxXh6zZHjuAgAAWB4CAAEx1AA== Date: Thu, 31 Mar 2022 13:38:33 +0000 Message-ID: References: <98CBD80474FA8B44BF855DF32C47DC35D86F84@smartserver.smartshare.dk> <20220330142602.108061-1-mattias.ronnblom@ericsson.com> <3888e595-de18-3cf0-707b-309b153c2b02@ericsson.com> <37d60d0f-9911-7692-cdb6-62cd5da540ac@arm.com> In-Reply-To: <37d60d0f-9911-7692-cdb6-62cd5da540ac@arm.com> Accept-Language: en-US, sv-SE Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 3bc99c64-7bcb-47ed-7b61-08da131bc06d x-ms-traffictypediagnostic: AM0PR07MB3971: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: F2nGBZZWDCeFn4PPKKE1jtllBZ9ooX4GwZZjG/ffDzGSzciqcCGj8LU+HTVQliCHDFKNh3HgQUH3Za+bX8xcFIqb0PtCvZDPTj/iLd3klgCnncvoB6t3yjWseQJe5c5XsZ3jJw+sTBsJlQkpjS25gd65A5EXPESkzsBfxaBHlCDouy7Cfpgr8WYBUXU2UPsifpd1LqFwmqhJdNNxfb5im4QSifeghQPSKioPnfTU9VAJcLV9HPWXoyk7DNHKEtbs0W6eJlQUNQMosBV6qTUblthPZ56Iyw8vGXPOTXQiAvYFRq3KSRi4xyZkW2pYAMT/wNXLsCZW4jJZ5zQgiPxuqU5gRvKo5KQ1YvyIt/I/0Ax3GpjoLEPj602oQ0IAvMhdAHMZ0yZNcPpWzs8VTWXODz/gXvf5fJHjhHlTb5oBmUF/89ECiMC7cOYNk0/SqMdJwJMOppWXNUZXFD76pDeOPCFs+Gru7caETrIQSXZo/9Ifk4eMM/F8hSX5X2s2h6y8fIYu/zr5i42uDzHBrab/OhSnselED/bezFEaTU9leYIe0iHyZw5JQaa5NHIvLgKiJ7MmLczOZ6d0L9TmnqKsjoiBzH3hS8cukPgQ11axh7uRULTSRctH8udjmLFLwd2WJiE2IziSBqv8InDn1dDwyDJSP2zNuseuJfqatoD2GRjjoGAYdwo6vtMCLUkpPFdSYL2l89uHkiiESkwkUGT5gqTd76Xw2JV0JCItwDB00AggadqwxCejfPCXJ9r/MXbgS11Hpom9lZtAEBJYs2fb/g== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB7PR07MB5978.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(2616005)(6486002)(76116006)(66946007)(83380400001)(64756008)(5660300002)(38070700005)(4326008)(66476007)(66556008)(86362001)(8936002)(8676002)(91956017)(31696002)(508600001)(66574015)(66446008)(6506007)(31686004)(2906002)(26005)(36756003)(122000001)(186003)(82960400001)(316002)(85202003)(54906003)(85182001)(6512007)(38100700002)(71200400001)(53546011)(110136005)(43740500002)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Mm5hcFF2bGE2bGZjVXAyTXJ2STloV3o1UHhwUGFYVUw1OVNzOWp6a1l1K3Jl?= =?utf-8?B?cllURDlST29aZFUxTHZvd1U4cFhTbTlTVWFKRDdLVCthRDhhR3Z6bXR3SHE3?= =?utf-8?B?dHFFbVhLSnZFbWNPOTR1VGZoRGNmaGxHV1QzcjNDNzBiUk45bUFuL010YVp4?= =?utf-8?B?MkRsRU44cms0U0JWOTBkaFVKMW83ckZJWEpOTmhpdVpjQVA3T2RjMTYrY3Js?= =?utf-8?B?ZU9JM1VIdTYrRVY5Tkd0REZiT3dyQVgxQVl3V1JzNnR4MWRyMEtEM056RzBm?= =?utf-8?B?UllpWUwvWmlPUmdwZmlzcGNJSVFXU3NFaHNlcE1USTlaNHN6bi9DMFRQaU5Q?= =?utf-8?B?bVNTS0FCMEJxdGtZT2dKZ3Q3T2t0Z0RQYWlnUTBLM1FocHEyZ0UxeU1KS0Vw?= =?utf-8?B?YUVHN1V6NmY1bFdpdHRObHFjSUwxNTg2VGNWczlOSEkvVCtrSmptRStnQkRy?= =?utf-8?B?NWVDTE9RNHZocGxwZEtJeGdWTnh4ZVJJRTRyYWhQQjBtbjc3MGVvdHlwZm1W?= =?utf-8?B?ME8vYi9UNnRjWkdEQ1FxclBiZ0tDaGlocHNoajhqa2hNYk5yT2FHUkxmZ2RJ?= =?utf-8?B?VTU0RE42cllyUFVXNlhXOXdybnhIT2ovdkZyOEIyaE11V0JrN3lVQ0xBSkdm?= =?utf-8?B?S1Q3N0RsR1RvU005KzFCSzlFK09yd1BXbnhrZVhpeThucUtYUStWMGFsVVp4?= =?utf-8?B?dTdoMXNPTDFFd0NQUlJYTTBRM2dSVCtNRktMdTFHYUZBNnJISzgxTFRLaU5l?= =?utf-8?B?YnIvdHgwN01UbnFaMmM2cGJkaUlLNU4vbjhIWXg3RVJRSlZzckhZRjYydGt3?= =?utf-8?B?b2UwTmlnQzVXVXRWcVJwQ1N6K1lyMHZFaWxZWFUvbnBZQ1c3cGFKNTZhK0lw?= =?utf-8?B?K0pUYnREd2tJRkhqVWNHT3J5VGVvRW5pMStkVFVaSk85UDRyaURvbTZyR2lk?= =?utf-8?B?NGNXMHZmY2EvMnpPYTVvclc2L0FGTDJRU1QwOTZvRFJuUWFuaDJSZDQzR3J5?= =?utf-8?B?MFBMNHJWNm41OXlmMVg3ZzY5RnA2UGtXc2VNWEdOZG9ZTlZQS09hMFYzQmtL?= =?utf-8?B?Mm1zMjRSZWVzcUM3S1dKdWJNNUF1ZXVvVUpNODd1Q1JVdldiQVg1K05WSjg4?= =?utf-8?B?N1VnNGhSSnlkTnBBMDNxOFdLSk9zdk10cGRRamdZRTcxL3h4Rm9pbDV6UWF6?= =?utf-8?B?aDJSRU1Qd0lTRER6ZDFwN1Y0aVQvZ1lOTVE5N2Nhb0ZtZnpJTXNJeDFUOWV3?= =?utf-8?B?UEVXV2E0Z0gwOTZJQkZRMGxTV0VBdWU0NFRkTWJ0VTNEeE53cDVFQkQ1ZDVn?= =?utf-8?B?SmE4UGRSQkI3QzZOeEh4amFsalR0TjFQWnA2bjMranVYbThBYzNQaGRuWHJU?= =?utf-8?B?REpsZExoVE9ERnowUmF3dFpkb1hOQVpNTWlEZjlzQmhLN2RIcmZPbDRPZVZG?= =?utf-8?B?UjJ0SFVFWElCY1hXUXJvY2oxaUNMWTZ5blEzeGJ6aStCOWVEU0tJRVB5V25E?= =?utf-8?B?NTQ3d3JXeDVHb0wwRFZUeHFYVDNzNzBISGVEVkVEQlZXTnpETVpURTg0em5o?= =?utf-8?B?UXJwemlCTkdjRUV1V1N4MzlFY2RudkIwS1VjMEp2eGRma0c1Qkt4TGVTQllC?= =?utf-8?B?YnZxbElRZGVTanIvNDFGdnZkMUt5ZlQrUXVZMkEvV0NsTDA1RVQydVZGWWdZ?= =?utf-8?B?clpRWEE1WitUS3EzWjh3bWxVOVJhVEgxTXBwWWhVRGpCMmhYcERpMFIxYTZN?= =?utf-8?B?NWthWXNrS1RiRkxNd0pXSkdjamxvVjRMMldvMnhCc2tNamZlSnJvTk40OGhN?= =?utf-8?B?RjNIZmpLMG1NVi9laE9sV0pHcEx5LzF4Wm1LODhlaXBScmxaRDdHejRzQzRC?= =?utf-8?B?THRNMnZEQnVlMmI3aXltdEZYNGZKdVZUWlFlaWVsWXAyVUhQSXVPZm1ZbXBK?= =?utf-8?B?TStlN2I2VnZYOEViNjR5Z3FjcTdReDFPSEJZM2NqdUl1R3QxV2ErNzdrL1F5?= =?utf-8?B?K0dFVE1BM2JiNGNuTzkxUlBYekVwSW5Ka3FqNldQbitxLzdMUnVFY0t4dmVt?= =?utf-8?B?eUtLZHh6eWE4QXZhTmJPL0NhWkFFcGh0RU1qcWVoeStvdmdTbk5hSThOa0Rr?= =?utf-8?B?YWdOWit3Y0I3eEE0QnNONCswMmZ5YlpFOUZ4Wkl2M2k4MmJFMHI3Q2VrbmpC?= =?utf-8?B?TWdqMkhWL2hmR0NmcVZmQTlyQkc2YUdnYmdsbjNzOEVxck93NG5EaitYZC9h?= =?utf-8?B?TXVYejBtK2srMjN2T2lxdWsvZHRUNGQ4RkgyK3lublRhbEppc0Z2TEZaMHNi?= =?utf-8?B?VTZSRWxTak9rTmIweWxncW12aUl1YzNYZC9hTFQ4aWZBK0JXN0s2UmZjQUhP?= =?utf-8?Q?F1UX+ydcaHdrx1ms=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: ericsson.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DB7PR07MB5978.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3bc99c64-7bcb-47ed-7b61-08da131bc06d X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Mar 2022 13:38:33.6979 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: n3GXANmzB47Pe2/DH1FGOnw8aeAqjCRIuBng9VJWhe6GR0D0JoXeEv+Z5fAkeMFD/Sndl8TXmzr4u6ndC6ljOHWP6bmiu32/AnEiTqMITy0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR07MB3971 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 T24gMjAyMi0wMy0zMSAxMTowNCwgT2xhIExpbGplZGFobCB3cm90ZToNCj4gDQo+IE9uIDMvMzEv MjIgMDk6NDYsIE1hdHRpYXMgUsO2bm5ibG9tIHdyb3RlOg0KPj4gT24gMjAyMi0wMy0zMCAxNjoy NiwgTWF0dGlhcyBSw7ZubmJsb20gd3JvdGU6DQo+Pj4gQSBzZXF1ZW5jZSBsb2NrIChzZXFsb2Nr KSBpcyBzeW5jaHJvbml6YXRpb24gcHJpbWl0aXZlIHdoaWNoIGFsbG93cw0KPj4+IGZvciBkYXRh LXJhY2UgZnJlZSwgbG93LW92ZXJoZWFkLCBoaWdoLWZyZXF1ZW5jeSByZWFkcywgZXNwZWNpYWxs eSBmb3INCj4+PiBkYXRhIHN0cnVjdHVyZXMgc2hhcmVkIGFjcm9zcyBtYW55IGNvcmVzIGFuZCB3 aGljaCBhcmUgdXBkYXRlZCB3aXRoDQo+Pj4gcmVsYXRpdmVseSBpbmZyZXF1ZW50bHkuDQo+Pj4N Cj4+Pg0KPj4NCj4+IDxzbmlwPg0KPj4NCj4+IFNvbWUgcXVlc3Rpb25zIEkgaGF2ZToNCj4+DQo+ PiBJcyBhIHZhcmlhbnQgb2YgdGhlIHNlcWxvY2sgd2l0aG91dCB0aGUgc3BpbmxvY2sgcmVxdWly ZWQ/IFRoZSByZWFzb24gSQ0KPj4gbGVmdCBzdWNoIG91dCB3YXMgdGhhdCBJIHRob3VnaHQgdGhh dCBpbiBtb3N0IGNhc2VzIHdoZXJlIG9ubHkgYSBzaW5nbGUNCj4+IHdyaXRlciBpcyB1c2VkIChv ciBzZXJpYWxpemF0aW9uIGlzIGV4dGVybmFsIHRvIHRoZSBzZXFsb2NrKSwgdGhlDQo+PiBzcGlu bG9jayBvdmVyaGVhZCBpcyBuZWdsaWdpYmxlLCBzaW5jZSB1cGRhdGVzIGFyZSByZWxhdGl2ZWx5 IGluZnJlcXVlbnQuDQo+IFlvdSBjYW4gY29tYmluZSB0aGUgc3BpbmxvY2sgYW5kIHRoZSBzZXF1 ZW5jZSBudW1iZXIuIE9kZCBzZXF1ZW5jZSANCj4gbnVtYmVyIG1lYW5zIHRoZSBzZXFsb2NrIGlz IGJ1c3kuIFRoYXQgd291bGQgcmVwbGFjZSBhIG5vbi1hdG9taWMgUk1XIG9mIA0KPiB0aGUgc2Vx dWVuY2UgbnVtYmVyIHdpdGggYW4gYXRvbWljIFJNVyBDQVMgYW5kIGF2b2lkIHRoZSBzcGluIGxv Y2sgDQo+IGF0b21pYyBSTVcgb3BlcmF0aW9uLiBOb3Qgc3VyZSBob3cgbXVjaCBpdCBoZWxwcy4N Cj4gDQo+Pg0KPj4gU2hvdWxkIHRoZSBydGVfc2VxbG9ja19yZWFkX3JldHJ5KCkgYmUgY2FsbGVk IHJ0ZV9zZXFsb2NrX3JlYWRfZW5kKCksIG9yDQo+PiBzb21lIHRoaXJkIGFsdGVybmF0aXZlPyBJ IHdhbnRlZCB0byBtYWtlIGNsZWFyIGl0J3Mgbm90IGp1c3QgYSAicmVsZWFzZQ0KPj4gdGhlIGxv Y2siIGZ1bmN0aW9uLiBZb3UgY291bGQgdXNlDQo+PiB0aGV8fHxfX2F0dHJpYnV0ZV9fKCh3YXJu X3VudXNlZF9yZXN1bHQpKSBhbm5vdGF0aW9uIHRvIG1ha2UgY2xlYXIgdGhlDQo+PiByZXR1cm4g dmFsdWUgY2Fubm90IGJlIGlnbm9yZWQsIGFsdGhvdWdoIEknbSBub3Qgc3VyZSBEUERLIGV2ZXIg dXNlIHRoYXQNCj4+IGF0dHJpYnV0ZS4NCj4gV2UgaGF2ZSB0byBkZWNpZGUgaG93IHRvIHVzZSB0 aGUgc2VxbG9jayBBUEkgZnJvbSB0aGUgYXBwbGljYXRpb24gDQo+IHBlcnNwZWN0aXZlLg0KPiBZ b3VyIGN1cnJlbnQgcHJvcG9zYWw6DQo+IGRvIHsNCj4gIMKgwqDCoCBzbiA9IHJ0ZV9zZXFsb2Nr X3JlYWRfYmVnaW4oJnNlcWxvY2spDQo+ICDCoMKgwqAgLy9yZWFkIHByb3RlY3RlZCBkYXRhDQo+ IH0gd2hpbGUgKHJ0ZV9zZXFsb2NrX3JlYWRfcmV0cnkoJnNlcWxvY2ssIHNuKSk7DQo+IA0KPiBv ciBwZXJoYXBzDQo+IHNuID0gcnRlX3NlcWxvY2tfcmVhZF9sb2NrKCZzZXFsb2NrKTsNCj4gZG8g ew0KPiAgwqDCoMKgIC8vcmVhZCBwcm90ZWN0ZWQgZGF0YQ0KPiB9IHdoaWxlICghcnRlX3NlcWxv Y2tfcmVhZF90cnl1bmxvY2soJnNlcWxvY2ssICZzbikpOw0KPiANCj4gVHJ5dW5sb2NrIHNob3Vs ZCBzaWduYWwgdG8gdGhlIHVzZXIgdGhhdCB0aGUgdW5sb2NrIG9wZXJhdGlvbiBtaWdodCBub3Qg DQo+IHN1Y2NlZWQgYW5kIHNvbWV0aGluZyBuZWVkcyB0byBiZSByZXBlYXRlZC4NCj4gDQoNCkkg bGlrZSB0aGF0IHlvdXIgcHJvcG9zYWwgaXMgY29uc2lzdGVudCB3aXRoIHJ3bG9jayBBUEksIGFs dGhvdWdoIEkgdGVuZCANCnRvIHRoaW5rIGFib3V0IGEgc2VxbG9jayBtb3JlIGxpa2UgYW4gYXJi aXRyYXJ5LXNpemUgYXRvbWljIGxvYWQvc3RvcmUsIA0Kd2hlcmUgYmVnaW4oKSBpcyB0aGUgYmVn aW5uaW5nIG9mIHRoZSByZWFkIHRyYW5zYWN0aW9uLg0KDQpXaGF0IEkgZG9uJ3QgbGlrZSBzbyBt dWNoIHdpdGggInRyeXVubG9jayIgaXMgdGhhdCBpdCdzIG5vdCBvYnZpb3VzIHdoYXQgDQpyZXR1 cm4gdHlwZSBhbmQgdmFsdWVzIGl0IHNob3VsZCBoYXZlLiBJIHNlZW0gbm90IHRvIGJlIHRoZSBv bmx5IG9uZSANCndoaWNoIHN1ZmZlcnMgZnJvbSBhIGxhY2sgb2YgaW50dWl0aW9uIGhlcmUsIHNp bmNlIHRoZSBEUERLIHNwaW5sb2NrIA0KdHJ5bG9jaygpIGZ1bmN0aW9uIHJldHVybnMgJzEnIGlu IGNhc2UgbG9jayBpcyB0YWtlbiAodXNpbmcgYW4gaW50LCBidXQgDQp0cmVhdGluZyBpdCBsaWtl IGEgYm9vbCksIHdoaWxlIHRoZSByd2xvY2sgZXF1aXZhbGVudCByZXR1cm5zICcwJyAoYWxzbyAN CmludCwgYnV0IHRyZWF0aW5nIGl0IGFzIGFuIGVycm9yIGNvZGUpLg0KDQoibG9jayIgYWxzbyBz dWdnZXN0cyB5b3UgcHJldmVudCBzb21ldGhpbmcgZnJvbSBvY2N1cnJpbmcsIHdoaWNoIGlzIG5v dCANCnRoZSBjYXNlIG9uIHRoZSByZWFkZXIgc2lkZS4gQSBjYWxsaW5nIGFwcGxpY2F0aW9uIGFs c28gbmVlZCBub3QgY2FsbCANCnRoZSByZWFkZXIgdW5sb2NrIChvciByZXRyeSkgZnVuY3Rpb24g Zm9yIGFsbCBzZXFsb2NrcyBpdCBoYXMgbG9ja2VkLCANCmFsdGhvdWdoIEkgZG9uJ3Qgc2VlIGEg cG9pbnQgd2h5IGl0IHdvdWxkbid0LiAoSSBkb24ndCBzZWUgd2h5IGEgDQpyZWFkLXNpZGUgY3Jp dGljYWwgc2VjdGlvbiBzaG91bGQgY29udGFpbiBtdWNoIGxvZ2ljIGF0IGFsbCwgc2luY2UgeW91 IA0KY2FuJ3QgYWN0IG9uIHRoZSBqdXN0LXJlYWQgZGF0YS4pDQo=