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 8DEE5A0C47; Tue, 12 Oct 2021 13:33:53 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 7887741135; Tue, 12 Oct 2021 13:33:53 +0200 (CEST) Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam07on2059.outbound.protection.outlook.com [40.107.212.59]) by mails.dpdk.org (Postfix) with ESMTP id 51C734112E for ; Tue, 12 Oct 2021 13:33:52 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A4dJ7w/pkWAFtMKgeb4fPR5y8H1+S1MOUVFVcc3l4ILIdCis0ZgjGI4+yKEu5pzWmD3uxBGKfWSe5vi/eWzi20eJBLKDkyp86281G8JHSaoTLPu4ugYZoha3LDBJMgPhT0bzaZzWGMO2eC9bQBVhxaHKovqCUr8jX1hkTz0EGXwHvtKCFtGsShG8sK+PIRfsKWeps8RKZLrZOKwjm0h3CP3WgJmeiXdoGL23xrA5uwHRshurYYMYNI0XkbP3mwpfG5pUlmXBJfiirCK/59MXzumHVUCqWvbCJemhZ2HvdHAeNSFUSiYQelthWqC9R4wa9HxpZtWx4VUJ2fpl3Kvveg== 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=av2qRvTcAeJIW3JTcGez0wnDSUAwlm0EQ3ULmyjhzHc=; b=FA6yn53shQLYfZgAw+zesumCMH0/Q/6VpKa3tj+m/ec8H8/+IgDnGDWiTFuB3SL7qpZI5hTtKIePRW0cLFykIQDsndO4glT6C6YfgmxQ80PZEXPb6t9LUuG6JHltO1QlL8lJ52jzGudMdMjf/4eCtGeyHGxoVHRStFzZvSrtqDLZ0NxwGodTW7HXdkrsks/tZ/V4jWacm9M5ZnDxsPsKzF0AsfWQdVvWbkmPq5pDhVcGJ7aRz2XSQ9OFJGhtl19fWGbBO3nTzwfH5EsOscDPXJkuxQjpKmfwd9mtYrw+h/QuqCNQ5tckap+nncthUGcJKEFSNGTrMl6x2GcJngwqQA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=av2qRvTcAeJIW3JTcGez0wnDSUAwlm0EQ3ULmyjhzHc=; b=BNBNptBO3TDfUs+OmU/t0QGc37clfP11OV4ezMzqd0EIDqfR4AtNJRFKhQ68PnfKTT4A4lpT+NsI//8G+lUX1uG17ruinhEkEh7KKxEWOPf4/PPp34eg4pypBlkaHBVo+7UAqe59twKseap+laYC0cMhdFff0nKccYffU+E/GWeKlCNZYHkrCxRJTTs4diQAVIF3uZuKd3PWkPrBI1JPgBRKblJhG2v1f1KSzNUyJ0LYsSo+xKXUW2NRz0SBKnRl/L0i71iOlm+AjrWBoi9Zi9S8o677rwGTQeeWWEkspbJC9WMxcePUD9iPaIzOAIumqu9kwDimaEgBi0RYqr95Tw== Received: from DM4PR12MB5373.namprd12.prod.outlook.com (2603:10b6:5:39a::17) by DM4PR12MB5199.namprd12.prod.outlook.com (2603:10b6:5:396::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.20; Tue, 12 Oct 2021 11:33:50 +0000 Received: from DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::584f:672a:653f:fe25]) by DM4PR12MB5373.namprd12.prod.outlook.com ([fe80::584f:672a:653f:fe25%5]) with mapi id 15.20.4587.026; Tue, 12 Oct 2021 11:33:50 +0000 From: "Xueming(Steven) Li" To: "andrew.rybchenko@oktetlabs.ru" , "dev@dpdk.org" CC: "jerinjacobk@gmail.com" , NBU-Contact-Thomas Monjalon , Lior Margalit , Slava Ovsiienko , "konstantin.ananyev@intel.com" , "ferruh.yigit@intel.com" Thread-Topic: [PATCH v4 0/6] ethdev: introduce shared Rx queue Thread-Index: AQHXtgthpEJvT1hnv0uKtjd5vS1emqvNwAUAgAA4WgCAAQLkAIAAJIaAgAAjhgCAAAklAIAAAYGA Date: Tue, 12 Oct 2021 11:33:50 +0000 Message-ID: <7ad043bc5d994ee751b7abd093c677ec29a3c37f.camel@nvidia.com> References: <20210727034204.20649-1-xuemingl@nvidia.com> <20210930145602.763969-1-xuemingl@nvidia.com> <8494d5f3-f134-e9d7-d782-dca9a9efaa03@oktetlabs.ru> <5584827eb502362297c71432991be7852438e94b.camel@nvidia.com> <2cfa1d1cf5b7fc01d361b04ec4fdf1500c89c50b.camel@nvidia.com> <6a61a2db-6a55-e857-52df-5fe97b5bd60e@oktetlabs.ru> <88a4a603bb3ca68898fdac21e4a3effd92a1d6e3.camel@nvidia.com> <35b86a0a-3805-582f-85a3-69c3f8907ce0@oktetlabs.ru> In-Reply-To: <35b86a0a-3805-582f-85a3-69c3f8907ce0@oktetlabs.ru> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.40.4 authentication-results: oktetlabs.ru; dkim=none (message not signed) header.d=none;oktetlabs.ru; dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4b9b99d1-5e98-4454-0f37-08d98d7429ad x-ms-traffictypediagnostic: DM4PR12MB5199: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: NHHOyGJ1RkvFjM9HMUaVOLi1YHTv6b3TVlWHFFdoNP5mZgLq3Vs0SwyW23KQH5R+tReVsSRY8kmG5mIG+d739Ao9eT7NRAMmvh9CYClmZV6MAtxWS0xQxpR53yyCLDZWOVKML8qfEkRdJUfA0D8FYiPd5RD7PC8ZVuQPvxI589CDNMNKjtEuE+7AvoywDav4WUHw8nRnoratJooqLVESEnOV4FKiphnR9CO4dDFe1da5L3SBIQwjC/oAglv9yciiunmvT6cgXFJzxKZGxazLi23fool/KPEdioMNz+xQVnbywe12ga+cUNK9L2qVykiUEn7ZXQuUSHkbDbpOY022tQkWJRetU3T7iaKyMlR2KqFViEAMZMLZ2UEAF23mVnANIy47hobEsP47MT7iQOkCPGzyzPlneQr/1sCSymMLyK+Ls9v/DtCwBQZvOBjUI8F2kP8KcgJfnfaYk4UjrWjOBq0mU4TZbQprzhniuEbVDYLvWRXE6qkQsBEhFkuzYNy7k+2eqTtby+Bf4nEjWNPBdDocScqup0IpyVHFeLKrvV68L8UU12C4g4OufWxXYs8Gx2orb+NeRdIgOvdiw4LPzatDlzJc7vGSnJ3i21mye8JlqRXzyERILcfTP/aqsOLXy5Z9obitm36zi3YWdCaLeJ+TDGdwgJS255dBHy8jW2szDIp/qm2OmfYNHu116YrYW5vFK/t8M+UsadnFoIUJsA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR12MB5373.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(2616005)(83380400001)(186003)(53546011)(6506007)(71200400001)(8676002)(30864003)(8936002)(4001150100001)(86362001)(122000001)(38100700002)(26005)(36756003)(66946007)(91956017)(76116006)(5660300002)(508600001)(110136005)(6486002)(54906003)(6512007)(66556008)(66476007)(64756008)(66446008)(4326008)(316002)(2906002)(38070700005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NDhxaUNHR2NEUVQvZGM5b2Z3eUFvanNHQ25jM01uaFM2N2cyUFdGc1l5d2JY?= =?utf-8?B?TUJiY04yL254Yk5qa1pxZzI1ajJVbkNoeG14cUxrRWErNGdFOFJZV2xvQldn?= =?utf-8?B?cVQ0dDlzQmM3cDJsNWV5WndCWEs3NzV3NVB6UlFpRTV6ZUxqaDZpNVNVUnVY?= =?utf-8?B?eitCNmFsZXZkN280ZUtLUVRXcG1JVTZhRVVnM0hCUWtDMEZNMHJHU1M3UXBU?= =?utf-8?B?UE5HSjZKU2NPN3BnNk9IV0lqVmVZZDZ1VitGbkVFNTcyM09tbVZ0Wnc0Um1O?= =?utf-8?B?cGhPVGUza2k3eTJqd0NmVmI5ZHphZGRDUGNhK1Z0d09GUlYrcmk0cGQrakdZ?= =?utf-8?B?dW8xUmFyNzlWSnBNRmdNaXF0aG5QS1YvNWorK2JLNlY1ajNPR0duY1NKSU9s?= =?utf-8?B?anc3V1REbzg2NDlqTmxpekdybGpTYmROSVRSdHdOb2FJZWg0VUxUTFFHZk1E?= =?utf-8?B?UnF5NzhoMlBVbVdlaE9mZUEwUlpoSThDMzBQMGgwYjZQbjhVbVhaN2xhUXhD?= =?utf-8?B?ZjRzekprb1JCV3hBeXlsU2lYdVcyN0lKNk1jMklwSm5mTUhNQTB5WTFlTDlz?= =?utf-8?B?dk9wUDM5NnAySG80RFlVclhyRzVRQ3U5QVNMb1BBRkQvRXZDemxPbHBmeHNW?= =?utf-8?B?OVNZYUV2aHRrQWNScC82TmJRNnhObmZmdVZtYmdVbXJKNkNMemNwOWozOTI0?= =?utf-8?B?RGdrZTNlZ2d3SzJRcU5Xc091UWdSNThySkxCdnljQW55Qlh0d1AxeGtxWmdx?= =?utf-8?B?OXdaOEFwVnlnR2dSSitOQnU0NzJvOHdvVU1jK0ZUdjlNOVNXU0pJUUJVMmIx?= =?utf-8?B?blZhUFFUa2FNYy9iaUk3WkJobkRpSHFNK0E5L0JtSjNObjR0Y1djRGJDdjBL?= =?utf-8?B?QnpKVkxFM0tsWnZjYmNmREZkdWQ0NFlkNEhWRk9GLzRtdXBSMW9SeXVpVkJD?= =?utf-8?B?Vm1oTEM4eGhSb2FzZnlFei90TjNpOFFOajQxZzU3VVhFWnY3bTUxTWNhQjNr?= =?utf-8?B?Q0VIelJqUmxiNGJoakhDbzdEVm9pNHdqa25kUzl3VXZ3a2UrbUZnYXArTVpz?= =?utf-8?B?YUdXbUZ6aXErRFNRcllSVGtKbklLd0dQbG5aMUNFSG4vNkNMMGd3U1VhMVlx?= =?utf-8?B?bk1tb3I2QXYxUWg4aHQzWU1neVBmeXhsSDJ0VTlhNHJ2YjVuTlVNbU1IcDVG?= =?utf-8?B?MXZrWHZZV0NNQWhHV3YwcFlIU1ZIYVAzc0RKTFgzblZnMjFsSVZDUHNDTlNS?= =?utf-8?B?UzQ2MVJLc3lhTmUzbzhqb2xaQ09JajMzSjN3eitlTmt4U2NrTFdsRG4vekVm?= =?utf-8?B?YmtwaS9YL1N2TWhJRFZYM21TM1VtcjROOTUxZDhMZndmeWJ2VkxocUthMEtE?= =?utf-8?B?SzlSNnBLMlRNb1dHeVFmK2R6VFZmRzAvbDFLRUhsaUlXcGZEOHprQVlscTFE?= =?utf-8?B?Y2VXei93OHREYlk5aUw3eFQrTkpuRTNTckNibENKMmdyL2dISlFLenBYYnJF?= =?utf-8?B?cjF0RnRycWwrWThKbHNiaUt3SlVUeGgxNTRNOXRuMjJnUkVZVTZTc1FrY3Nk?= =?utf-8?B?cEIyQ2RkUWlXQldENGRwT0dBWGljVG1mWnAwUlA5cmQ3bllUQVkrTWFGRXl6?= =?utf-8?B?OWZ6WnNPU2RUOGs4enpKK0JidVY5cVpxV1Voa0ZlVHBGNENuUmFBay9qSVFs?= =?utf-8?B?bGZBVlZJbDRCQy80dk9xVElxNTM5aG96em5hdDNIbXEyQXRqWlZubW41Z3pB?= =?utf-8?B?TE0vQklKVXN5bXlRcE9IWFBCY0tMTTZ2QklGREUvSzRySUdTci9lYVNOdHc0?= =?utf-8?B?MVRyQ2Z3cEZwVXY4b3Qydz09?= Content-Type: text/plain; charset="utf-8" Content-ID: <65594EDCB3DAF44B92A0DD47580C66D2@namprd12.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5373.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b9b99d1-5e98-4454-0f37-08d98d7429ad X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Oct 2021 11:33:50.3699 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 2rdiwpmlAlikTi58mXLxlSvIM8ETSVaBnTzxoHN1E1urQXuq/ToX0LQQ+cNg6FaYrELCpZhxUh4pL86B03OGNw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5199 Subject: Re: [dpdk-dev] [PATCH v4 0/6] ethdev: introduce shared Rx queue 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 Sender: "dev" T24gVHVlLCAyMDIxLTEwLTEyIGF0IDE0OjI4ICswMzAwLCBBbmRyZXcgUnliY2hlbmtvIHdyb3Rl Og0KPiBPbiAxMC8xMi8yMSAxOjU1IFBNLCBYdWVtaW5nKFN0ZXZlbikgTGkgd3JvdGU6DQo+ID4g T24gVHVlLCAyMDIxLTEwLTEyIGF0IDExOjQ4ICswMzAwLCBBbmRyZXcgUnliY2hlbmtvIHdyb3Rl Og0KPiA+ID4gT24gMTAvMTIvMjEgOTozNyBBTSwgWHVlbWluZyhTdGV2ZW4pIExpIHdyb3RlOg0K PiA+ID4gPiBPbiBNb24sIDIwMjEtMTAtMTEgYXQgMjM6MTEgKzA4MDAsIFh1ZW1pbmcgTGkgd3Jv dGU6DQo+ID4gPiA+ID4gT24gTW9uLCAyMDIxLTEwLTExIGF0IDE0OjQ5ICswMzAwLCBBbmRyZXcg UnliY2hlbmtvIHdyb3RlOg0KPiA+ID4gPiA+ID4gSGkgWHVlbWluZywNCj4gPiA+ID4gPiA+IA0K PiA+ID4gPiA+ID4gT24gOS8zMC8yMSA1OjU1IFBNLCBYdWVtaW5nIExpIHdyb3RlOg0KPiA+ID4g PiA+ID4gPiBJbiBjdXJyZW50IERQREsgZnJhbWV3b3JrLCBhbGwgUlggcXVldWVzIGlzIHByZS1s b2FkZWQgd2l0aCBtYnVmcyBmb3INCj4gPiA+ID4gPiA+ID4gaW5jb21pbmcgcGFja2V0cy4gV2hl biBudW1iZXIgb2YgcmVwcmVzZW50b3JzIHNjYWxlIG91dCBpbiBhIHN3aXRjaA0KPiA+ID4gPiA+ ID4gPiBkb21haW4sIHRoZSBtZW1vcnkgY29uc3VtcHRpb24gYmVjYW1lIHNpZ25pZmljYW50LiBG dXJ0aGVyIG1vcmUsDQo+ID4gPiA+ID4gPiA+IHBvbGxpbmcgYWxsIHBvcnRzIGxlYWRzIHRvIGhp Z2ggY2FjaGUgbWlzcywgaGlnaCBsYXRlbmN5IGFuZCBsb3cNCj4gPiA+ID4gPiA+ID4gdGhyb3Vn aHB1dHMuDQo+ID4gPiA+ID4gPiA+ICANCj4gPiA+ID4gPiA+ID4gVGhpcyBwYXRjaCBpbnRyb2R1 Y2VzIHNoYXJlZCBSWCBxdWV1ZS4gUEYgYW5kIHJlcHJlc2VudG9ycyB3aXRoIHNhbWUNCj4gPiA+ ID4gPiA+ID4gY29uZmlndXJhdGlvbiBpbiBzYW1lIHN3aXRjaCBkb21haW4gY291bGQgc2hhcmUg UlggcXVldWUgc2V0IGJ5DQo+ID4gPiA+ID4gPiA+IHNwZWNpZnlpbmcgc2hhcmVkIFJ4IHF1ZXVl IG9mZmxvYWRpbmcgZmxhZyBhbmQgc2hhcmluZyBncm91cC4NCj4gPiA+ID4gPiA+ID4gDQo+ID4g PiA+ID4gPiA+IEFsbCBwb3J0cyB0aGF0IFNoYXJlZCBSeCBxdWV1ZSBhY3R1YWxseSBzaGFyZXMg T25lIFJ4IHF1ZXVlIGFuZCBvbmx5DQo+ID4gPiA+ID4gPiA+IHByZS1sb2FkIG1idWZzIHRvIG9u ZSBSeCBxdWV1ZSwgbWVtb3J5IGlzIHNhdmVkLg0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ ID4gUG9sbGluZyBhbnkgcXVldWUgdXNpbmcgc2FtZSBzaGFyZWQgUlggcXVldWUgcmVjZWl2ZXMg cGFja2V0cyBmcm9tIGFsbA0KPiA+ID4gPiA+ID4gPiBtZW1iZXIgcG9ydHMuIFNvdXJjZSBwb3J0 IGlzIGlkZW50aWZpZWQgYnkgbWJ1Zi0+cG9ydC4NCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4g PiA+IE11bHRpcGxlIGdyb3VwcyBpcyBzdXBwb3J0ZWQgYnkgZ3JvdXAgSUQuIFBvcnQgcXVldWUg bnVtYmVyIGluIGEgc2hhcmVkDQo+ID4gPiA+ID4gPiA+IGdyb3VwIHNob3VsZCBiZSBpZGVudGlj YWwuIFF1ZXVlIGluZGV4IGlzIDE6MSBtYXBwZWQgaW4gc2hhcmVkIGdyb3VwLg0KPiA+ID4gPiA+ ID4gPiBBbiBleGFtcGxlIG9mIHBvbGxpbmcgdHdvIHNoYXJlIGdyb3VwczoNCj4gPiA+ID4gPiA+ ID4gICBjb3JlCWdyb3VwCXF1ZXVlDQo+ID4gPiA+ID4gPiA+ICAgMAkwCTANCj4gPiA+ID4gPiA+ ID4gICAxCTAJMQ0KPiA+ID4gPiA+ID4gPiAgIDIJMAkyDQo+ID4gPiA+ID4gPiA+ICAgMwkwCTMN Cj4gPiA+ID4gPiA+ID4gICA0CTEJMA0KPiA+ID4gPiA+ID4gPiAgIDUJMQkxDQo+ID4gPiA+ID4g PiA+ICAgNgkxCTINCj4gPiA+ID4gPiA+ID4gICA3CTEJMw0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ ID4gPiA+ID4gU2hhcmVkIFJYIHF1ZXVlIG11c3QgYmUgcG9sbGVkIG9uIHNpbmdsZSB0aHJlYWQg b3IgY29yZS4gSWYgYm90aCBQRjAgYW5kDQo+ID4gPiA+ID4gPiA+IHJlcHJlc2VudG9yMCBqb2lu ZWQgc2FtZSBzaGFyZSBncm91cCwgY2FuJ3QgcG9sbCBwZjByeHEwIG9uIGNvcmUxIGFuZA0KPiA+ ID4gPiA+ID4gPiByZXAwcnhxMCBvbiBjb3JlMi4gQWN0dWFsbHksIHBvbGxpbmcgb25lIHBvcnQg d2l0aGluIHNoYXJlIGdyb3VwIGlzDQo+ID4gPiA+ID4gPiA+IHN1ZmZpY2llbnQgc2luY2UgcG9s bGluZyBhbnkgcG9ydCBpbiBncm91cCB3aWxsIHJldHVybiBwYWNrZXRzIGZvciBhbnkNCj4gPiA+ ID4gPiA+ID4gcG9ydCBpbiBncm91cC4NCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gSSBhcG9s b2dpemUgdGhhdCBJIGp1bXAgaW4gaW50byB0aGUgcmV2aWV3IHByb2Nlc3MgdGhhdCBsYXRlLg0K PiA+ID4gPiA+IA0KPiA+ID4gPiA+IEFwcHJlY2lhdGUgdGhlIGJvbGQgc3VnZ2VzdGlvbiwgbmV2 ZXIgdG9vIGxhdGUgOikNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gRnJh bmtseSBzcGVha2luZyBJIGRvdWJ0IHRoYXQgaXQgaXMgdGhlIGJlc3QgZGVzaWduIHRvIHNvbHZl DQo+ID4gPiA+ID4gPiB0aGUgcHJvYmxlbS4gWWVzLCBJIGNvbmZpcm0gdGhhdCB0aGUgcHJvYmxl bSBleGlzdHMsIGJ1dCBJDQo+ID4gPiA+ID4gPiB0aGluayB0aGVyZSBpcyBiZXR0ZXIgYW5kIHNp bXBsZXIgd2F5IHRvIHNvbHZlIGl0Lg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBUaGUgcHJv YmxlbSBvZiB0aGUgc3VnZ2VzdGVkIHNvbHV0aW9uIGlzIHRoYXQgaXQgcHV0cyBhbGwNCj4gPiA+ ID4gPiA+IHRoZSBoZWFkYWNoZSBhYm91dCBjb25zaXN0ZW5jeSB0byBhcHBsaWNhdGlvbiBhbmQg UE1Ecw0KPiA+ID4gPiA+ID4gd2l0aG91dCBhbnkgaGVscCBmcm9tIGV0aGRldiBsYXllciB0byBn dWFyYW50ZWUgdGhlDQo+ID4gPiA+ID4gPiBjb25zaXN0ZW5jeS4gQXMgdGhlIHJlc3VsdCBJIGJl bGlldmUgaXQgd2lsbCBiZSBlaXRoZXINCj4gPiA+ID4gPiA+IG1pc3NpbmcvbG9zdCBjb25zaXN0 ZW5jeSBjaGVja3Mgb3IgaHVnZSBkdXBsaWNhdGlvbiBpbg0KPiA+ID4gPiA+ID4gZWFjaCBQTUQg d2hpY2ggc3VwcG9ydHMgdGhlIGZlYXR1cmUuIFNoYXJlZCBSeFFzIG11c3QgYmUNCj4gPiA+ID4g PiA+IGVxdWFsbHkgY29uZmlndXJlZCBpbmNsdWRpbmcgbnVtYmVyIG9mIHF1ZXVlcywgb2ZmbG9h ZHMNCj4gPiA+ID4gPiA+ICh0YWtpbmcgZGV2aWNlIGxldmVsIFJ4IG9mZmxvYWRzIGludG8gYWNj b3VudCksIFJTUw0KPiA+ID4gPiA+ID4gc2V0dGluZ3MgZXRjLiBTbywgYXBwbGljYXRpb25zIG11 c3QgY2FyZSBhYm91dCBpdCBhbmQNCj4gPiA+ID4gPiA+IFBNRHMgKG9yIGV0aGRldiBsYXllcikg bXVzdCBjaGVjayBpdC4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBUaGUgbmFtZSBtaWdodCBiZSBj b25mdXNpbmcsIGhlcmUgaXMgbXkgdW5kZXJzdGFuZGluZzoNCj4gPiA+ID4gPiAxLiBOSUMgIHNo YXJlcyB0aGUgYnVmZmVyIHN1cHBseSBIVyBRIGJldHdlZW4gc2hhcmVkIFJ4UXMgLSBmb3IgbWVt b3J5DQo+ID4gPiA+ID4gMi4gUE1EIHBvbGxzIG9uZSBzaGFyZWQgUnhRIC0gZm9yIGxhdGVuY3kg YW5kIHBlcmZvcm1hbmNlDQo+ID4gPiA+ID4gMy4gTW9zdCBwZXIgcXVldWUgZmVhdHVyZXMgbGlr ZSBvZmZsb2FkcyBhbmQgUlNTIG5vdCBpbXBhY3RlZC4gVGhhdCdzDQo+ID4gPiA+ID4gd2h5IHRo aXMgbm90IG1lbnRpb25lZC4gU29tZSBvZmZsb2FkaW5nIG1pZ2h0IG5vdCBiZWluZyBzdXBwb3J0 ZWQgZHVlDQo+ID4gPiA+ID4gdG8gUE1EIG9yIGh3IGxpbWl0YXRpb24sIG5lZWQgdG8gYWRkIGNo ZWNrIGluIFBNRCBjYXNlIGJ5IGNhc2UuDQo+ID4gPiA+ID4gNC4gTXVsdGlwbGUgZ3JvdXAgaXMg ZGVmaW5lZCBmb3Igc2VydmljZSBsZXZlbCBmbGV4aWJpbGl0eS4gRm9yDQo+ID4gPiA+ID4gZXhh bXBsZSwgUEYgYW5kIFZJUCBjdXN0b21lcidzIGxvYWQgZGlzdHJpYnV0ZWQgdmlhIHF1ZXVlcyBh bmQgZGVkaWNhdGUNCj4gPiA+ID4gPiBjb3Jlcy4gTG93IHByaW9yaXR5IGN1c3RvbWVycyBzaGFy ZSBvbmUgY29yZSB3aXRoIG9uZSBzaGFyZWQgcXVldWUuDQo+ID4gPiA+ID4gbXVsdGlwbGUgZ3Jv dXBzIGVuYWJsZXMgbW9yZSBjb21iaW5hdGlvbi4NCj4gPiA+ID4gPiA1LiBPbmUgcG9ydCBjb3Vs ZCBhc3NpZ24gcXVldWVzIHRvIGRpZmZlcmVudCBncm91cCBmb3IgcG9sbGluZw0KPiA+ID4gPiA+ IGZsZXhpYmlsaXR5LiBGb3IgZXhhbXBsZSBmaXJzdCA0IHF1ZXVlcyBpbiBncm91cCAwIGFuZCBu ZXh0IDQgcXVldWVzIGluDQo+ID4gPiA+ID4gZ3JvdXAxLCBlYWNoIGdyb3VwIGhhdmUgb3RoZXIg bWVtYmVyIHBvcnRzIHdpdGggNCBxdWV1ZXMsIHNvIHRoZSBwb3J0DQo+ID4gPiA+ID4gd2l0aCA4 IHF1ZXVlcyBjb3VsZCBiZSBwb2xsZWQgd2l0aCA4IGNvcmVzIHcvbyBub24tc2hhcmVkIHJ4cSBw ZW5hbHR5LA0KPiA+ID4gPiA+IGluIG90aGVyIHdvcmRzLCBlYWNoIGNvcmUgb25seSBwb2xsIG9u ZSBzaGFyZWQgUnhRLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBUaGUg YWR2YW50YWdlIG9mIHRoZSBzb2x1dGlvbiBpcyB0aGF0IGFueSBkZXZpY2UgbWF5DQo+ID4gPiA+ ID4gPiBjcmVhdGUgZ3JvdXAgYW5kIHN1YnNlcXVlbnQgZGV2aWNlcyBqb2luLiBBYnNlbmNlIG9m DQo+ID4gPiA+ID4gPiBwcmltYXJ5IGRldmljZSBpcyBuaWNlLiBCdXQgZG8gd2UgcmVhbGx5IG5l ZWQgaXQ/DQo+ID4gPiA+ID4gPiBXaWxsIHRoZSBkZXNpZ24gd29yayBpZiBzb21lIHJlcHJlc2Vu dG9ycyBhcmUgY29uZmlndXJlZA0KPiA+ID4gPiA+ID4gdG8gdXNlIHNoYXJlZCBSeFEsIGJ1dCBz b21lIGRvIG5vdD8gVGhlb3JldGljYWxseSBpdA0KPiA+ID4gPiA+ID4gaXMgcG9zc2libGUsIGJ1 dCBjb3VsZCByZXF1aXJlIGV4dHJhIG5vbi10cml2aWFsIGNvZGUNCj4gPiA+ID4gPiA+IG9uIGZh c3QgcGF0aC4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBJZiBtdWx0aXBsZSBncm91cHMsIGFueSBk ZXZpY2UgY291bGQgYmUgaG90LXVucGx1Z2dlZC4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBNaXhl ZCBjb25maWd1cmF0aW9uIGlzIHN1cHBvcnRlZCwgdGhlIG9ubHkgZGlmZmVyZW5jZSBpcyBob3cg dG8gc2V0DQo+ID4gPiA+ID4gbWJ1Zi0+cG9ydC4gU2luY2UgZ3JvdXAgaXMgcGVyIHF1ZXVlLCBt aXhlZCBpcyBiZXR0ZXIgdG8gYmUgc3VwcG9ydGVkLA0KPiA+ID4gPiA+IGRpZG4ndCBzZWUgYW55 IGRpZmZpY3VsdHkgaGVyZS4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBQRE0gY291bGQgc2VsZWN0 IHRvIHN1cHBvcnQgb25seSBncm91cCAwLCBzYW1lIHNldHRpbmdzIGZvciBlYWNoIHJ4cSwNCj4g PiA+ID4gPiB0aGF0IGZpdHMgbW9zdCBzY2VuYXJpby4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ IA0KPiA+ID4gPiA+ID4gQWxzbyBsb29raW5nIGF0IHRoZSBmaXJzdCB0d28gcGF0Y2ggSSBkb24n dCB1bmRlcnN0YW5kDQo+ID4gPiA+ID4gPiBob3cgYXBwbGljYXRpb24gd2lsbCBmaW5kIG91dCB3 aGljaCBkZXZpY2VzIG1heSBzaGFyZQ0KPiA+ID4gPiA+ID4gUnhRcy4gRS5nLiBpZiB3ZSBoYXZl IHR3byBkaWZmZXJlbmNlIE5JQ3Mgd2hpY2ggc3VwcG9ydA0KPiA+ID4gPiA+ID4gc2hhcmluZywg d2UgY2FuIHRyeSB0byBzZXR1cCBvbmx5IG9uZSBncm91cCAwLCBidXQNCj4gPiA+ID4gPiA+IGZp bmFsbHkgd2lsbCBoYXZlIHR3byBkZXZpY2VzIChub3Qgb25lKSB3aGljaCBtdXN0IGJlDQo+ID4g PiA+ID4gPiBwb2xsZWQuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IDEuIFdlIG5lZWQgZXh0 cmEgZmxhZyBpbiBkZXZfaW5mby0+ZGV2X2NhcGENCj4gPiA+ID4gPiA+ICAgIFJURV9FVEhfREVW X0NBUEFfUlhfU0hBUkUgdG8gYWR2ZXJ0aXNlIHRoYXQNCj4gPiA+ID4gPiA+ICAgIHRoZSBkZXZp Y2Ugc3VwcG9ydHMgUnggc2hhcmluZy4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBkZXZfaW5mby0+ cnhfcXVldWVfb2ZmbG9hZF9jYXBhIGNvdWxkIGJlIHVzZWQgaGVyZSwgbm8/DQo+ID4gPiANCj4g PiA+IEl0IGRlcGVuZHMuIEJ1dCB3ZSBkZWZpbml0ZWx5IG5lZWQgYSBmbGFnIHdoaWNoDQo+ID4g PiBzYXlzIHRoYXQgYmVsb3cgcnhfZG9tYWluIG1ha2VzIHNlbnNlLiBJdCBjb3VsZCBiZQ0KPiA+ ID4gZWl0aGVyIFJURV9FVEhfREVWX0NBUEFfUlhfU0hBUkUgb3IgYW4gUnggb2ZmbG9hZA0KPiA+ ID4gY2FwYWJpbGl0eS4NCj4gPiA+IA0KPiA+ID4gVGhlIHF1ZXN0aW9uIGlzIGlmIGl0IGlzIHJl YWxseSBhbiBvZmZsb2FkLiBUaGUgb2ZmbG9hZCBpcw0KPiA+ID4gd2hlbiBzb21ldGhpbmcgY291 bGQgYmUgZG9uZSBieSBIVy9GVyBhbmQgcmVzdWx0IGlzIHByb3ZpZGVkDQo+ID4gPiB0byBTVy4g TWF5IGJlIGl0IGlzIGp1c3QgYSBuaXQgcGlja2luZy4uLg0KPiA+ID4gDQo+ID4gPiBNYXkgYmUg d2UgZG9uJ3QgbmVlZCBhbiBvZmZsb2FkIGF0IGFsbC4gSnVzdCBoYXZlDQo+ID4gPiBSVEVfRVRI X0RFVl9DQVBBX1JYUV9TSEFSRSBhbmQgdXNlIG5vbi16ZXJvIGdyb3VwIElEDQo+ID4gPiBhcyBh IGZsYWcgdGhhdCBhbiBSeFEgc2hvdWxkIGJlIHNoYXJlZCAoemVybyAtIGRlZmF1bHQsDQo+ID4g PiBubyBzaGFyaW5nKS4gZXRoZGV2IGxheWVyIG1heSBjaGVjayBjb25zaXN0ZW5jeSBvbg0KPiA+ ID4gaXRzIGxheWVyIHRvIGVuc3VyZSB0aGF0IHRoZSBkZXZpY2UgY2FwYWJpbGl0eSBpcw0KPiA+ ID4gcmVwb3J0ZWQgaWYgbm9uLXplcm8gZ3JvdXAgaXMgc3BlY2lmaWVkIG9uIHF1ZXVlIHNldHVw Lg0KPiA+ID4gDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IDIuIEkgdGhp bmsgd2UgbmVlZCAicnhfZG9tYWluIiBpbiBkZXZpY2UgaW5mbw0KPiA+ID4gPiA+ID4gICAgKHdo aWNoIHNob3VsZCBiZSB0cmVhdGVkIGluIGJvdW5kYXJpZXMgb2YgdGhlDQo+ID4gPiA+ID4gPiAg ICBzd2l0Y2hfZG9tYWluKSBpZiBhbmQgb25seSBpZg0KPiA+ID4gPiA+ID4gICAgUlRFX0VUSF9E RVZfQ0FQQV9SWF9TSEFSRSBpcyBhZHZlcnRpc2VkLg0KPiA+ID4gPiA+ID4gICAgT3RoZXJ3aXNl IHJ4X2RvbWFpbiB2YWx1ZSBkb2VzIG5vdCBtYWtlIHNlbnNlLg0KPiA+ID4gPiA+IA0KPiA+ID4g PiA+IEkgc2VlLCB0aGlzIHdpbGwgZ2l2ZSBmbGV4aWJpbGl0eSBvZiBkaWZmZXJlbnQgaHcsIHdp bGwgYWRkIGl0Lg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiAoMSkgYW5k ICgyKSB3aWxsIGFsbG93IGFwcGxpY2F0aW9uIHRvIGZpbmQgb3V0IHdoaWNoDQo+ID4gPiA+ID4g PiBkZXZpY2VzIGNhbiBzaGFyZSBSeC4NCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gMy4gUHJp bWFyeSBkZXZpY2UgKHJlcHJlc2VudG9ycyBiYWNraW5nIGRldmljZSkgc2hvdWxkDQo+ID4gPiA+ ID4gPiAgICBhZHZlcnRpc2Ugc2hhcmVkIFJ4USBvZmZsb2FkLiBFbmFibGluZyBvZiB0aGUgb2Zm bG9hZA0KPiA+ID4gPiA+ID4gICAgdGVsbHMgdGhlIGRldmljZSB0byBwcm92aWRlIHBhY2tldHMg dG8gYWxsIGRldmljZSBpbg0KPiA+ID4gPiA+ID4gICAgdGhlIFJ4IGRvbWFpbiB3aXRoIG1idWYt PnBvcnQgZmlsbGVkIGluIGFwcHJvcHJpYXRlbHkuDQo+ID4gPiA+ID4gPiAgICBBbHNvIGl0IGFs bG93cyBhcHAgdG8gaWRlbnRpZnkgcHJpbWFyeSBkZXZpY2UgaW4gdGhlDQo+ID4gPiA+ID4gPiAg ICBSeCBkb21haW4uIFdoZW4gYXBwbGljYXRpb24gZW5hYmxlcyB0aGUgb2ZmbG9hZCwgaXQNCj4g PiA+ID4gPiA+ICAgIG11c3QgZW5zdXJlIHRoYXQgaXQgZG9lcyBub3QgdHJlYXQgdXNlZCBwb3J0 X2lkIGFzIGFuDQo+ID4gPiA+ID4gPiAgICBpbnB1dCBwb3J0X2lkLCBidXQgYWx3YXlzIGNoZWNr IG1idWYtPnBvcnQgZm9yIGVhY2gNCj4gPiA+ID4gPiA+ICAgIHBhY2tldC4NCj4gPiA+ID4gPiA+ IA0KPiA+ID4gPiA+ID4gNC4gQSBuZXcgUnggbW9kZSBzaG91bGQgYmUgaW50cm9kdWNlZCBmb3Ig c2Vjb25kYXJ5DQo+ID4gPiA+ID4gPiAgICBkZXZpY2VzLiBJdCBzaG91bGQgbm90IGFsbG93IHRv IGNvbmZpZ3VyZSBSU1MsIHNwZWNpZnkNCj4gPiA+ID4gPiA+ICAgIGFueSBSeCBvZmZsb2FkcyBl dGMuIGV0aGRldiBtdXN0IGVuc3VyZSBpdC4NCj4gPiA+ID4gPiA+ICAgIEl0IGlzIGFuIG9wZW4g cXVlc3Rpb24gcmlnaHQgbm93IGlmIGl0IHNob3VsZCByZXF1aXJlDQo+ID4gPiA+ID4gPiAgICB0 byBwcm92aWRlIHByaW1hcnkgcG9ydF9pZC4gSW4gdGhlb3J5IHJlcHJlc2VudG9ycw0KPiA+ID4g PiA+ID4gICAgaGF2ZSBpdC4gSG93ZXZlciwgbWF5IGJlIGl0IGlzIG5pY2UgZm9yIGNvbnNpc3Rl bmN5DQo+ID4gPiA+ID4gPiAgICB0byBlbnN1cmUgdGhhdCBhcHBsaWNhdGlvbiBrbm93cyB0aGF0 IGl0IGRvZXMuDQo+ID4gPiA+ID4gPiAgICBJZiBzaGFyZWQgUnggbW9kZSBpcyBzcGVjaWZpZWQg Zm9yIGRldmljZSwgYXBwbGljYXRpb24NCj4gPiA+ID4gPiA+ICAgIGRvZXMgbm90IG5lZWQgdG8g c2V0dXAgUnhRcyBhbmQgYXR0ZW1wdHMgdG8gZG8gaXQNCj4gPiA+ID4gPiA+ICAgIHNob3VsZCBi ZSBkaXNjYXJkZWQgaW4gZXRoZGV2Lg0KPiA+ID4gPiA+ID4gICAgRm9yIGNvbnNpc3RlbmN5IGl0 IGlzIGJldHRlciB0byBlbnN1cmUgdGhhdCBudW1iZXIgb2YNCj4gPiA+ID4gPiA+ICAgIHF1ZXVl cyBtYXRjaC4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBSU1MgYW5kIFJ4IG9mZmxvYWRzIHNob3Vs ZCBiZSBzdXBwb3J0ZWQgYXMgaW5kaXZpZHVhbCwgUE1EIG5lZWRzIHRvDQo+ID4gPiA+ID4gY2hl Y2sgaWYgbm90IHN1cHBvcnRlZC4NCj4gPiA+IA0KPiA+ID4gVGhpbmtpbmcgYSBiaXQgbW9yZSBh Ym91dCBpdCBJIGFncmVlIHRoYXQgUlNTIHNldHRpbmdzIGNvdWxkDQo+ID4gPiBiZSBpbmRpdmlk dWFsLiBPZmZsb2FkIGNvdWxkIGJlIGluZGl2aWR1YWwgYXMgd2VsbCwgYnV0IEknbQ0KPiA+ID4g bm90IHN1cmUgYWJvdXQgYWxsIG9mZmxvYWRzLiBFLmcuIFJ4IHNjYXR0ZXIgd2hpY2ggaXMgcmVs YXRlZA0KPiA+ID4gdG8gUnggYnVmZmVyIHNpemUgKHdoaWNoIGlzIHNoYXJlZCBzaW5jZSBSeCBt ZW1wb29sIGlzIHNoYXJlZCkNCj4gPiA+IHZzIE1UVS4gTWF5IGJlIGl0IGlzIGFjY2VwdGFibGUu IFdlIGp1c3QgbXVzdCBkZWZpbmUgcnVsZXMNCj4gPiA+IHdoYXQgc2hvdWxkIGhhcHBlbiBpZiBv ZmZsb2FkcyBjb250cmFkaWN0IHRvIGVhY2ggb3RoZXIuDQo+ID4gPiBJdCBzaG91bGQgYmUgaGln aGxpZ2h0ZWQgaW4gdGhlIGRlc2NyaXB0aW9uIGluY2x1ZGluZw0KPiA+ID4gZHJpdmVyIGNhbGxi YWNrIHRvIGVuc3VyZSB0aGF0IFBNRCBtYWludGFpbmVycyBhcmUgcmVzcG9uc2libGUNCj4gPiA+ IGZvciBjb25zaXN0ZW5jeSBjaGVja3MuDQo+ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ ICAgIEl0IGlzIGFuIGludGVyZXN0aW5nIHF1ZXN0aW9uIHdoYXQgc2hvdWxkIGhhcHBlbiBpZg0K PiA+ID4gPiA+ID4gICAgcHJpbWFyeSBkZXZpY2UgaXMgcmVjb25maWd1cmVkIGFuZCBzaGFyZWQg UnggaXMNCj4gPiA+ID4gPiA+ICAgIGRpc2FibGVkIG9uIHJlY29uZmlndXJhdGlvbi4NCj4gPiA+ ID4gPiANCj4gPiA+ID4gPiBJIGZlZWwgYmV0dGVyIG5vIHByaW1hcnkgcG9ydC9xdWV1ZSBhc3N1 bXB0aW9uIGluIGNvbmZpZ3VyYXRpb24sIGFsbA0KPiA+ID4gPiA+IG1lbWJlcnMgYXJlIGVxdWFs bHkgdHJlYXRlZCwgZWFjaCBxdWV1ZSBjYW4gam9pbiBvciBxdWl0IHNoYXJlIGdyb3VwLA0KPiA+ ID4gPiA+IHRoYXQncyBpbXBvcnRhbnQgdG8gc3VwcG9ydCBtdWx0aXBsZSBncm91cHMuDQo+ID4g PiANCj4gPiA+IEkgYWdyZWUuIFRoZSBwcm9ibGVtIG9mIG1hbnkgZmxleGlibGUgc29sdXRpb25z IGlzDQo+ID4gPiBjb21wbGV4aXR5IHRvIHN1cHBvcnQuIFdlJ2xsIHNlZSBob3cgaXQgZ29lcy4N Cj4gPiA+IA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA1LiBJZiBzbywg aW4gdGhlb3J5IGltcGxlbWVudGF0aW9uIG9mIHRoZSBSeCBidXJzdA0KPiA+ID4gPiA+ID4gICAg aW4gdGhlIHNlY29uZGFyeSBjb3VsZCBzaW1wbHkgY2FsbCBSeCBidXJzdCBvbg0KPiA+ID4gPiA+ ID4gICAgcHJpbWFyeSBkZXZpY2UuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IEFuZHJldy4N Cj4gPiA+ID4gPiANCj4gPiA+ID4gDQo+ID4gPiA+IEhpIEFuZHJldywNCj4gPiA+ID4gDQo+ID4g PiA+IEkgcmVhbGl6ZWQgdGhhdCB3ZSBhcmUgdGFsa2luZyBkaWZmZXJlbnQgdGhpbmdzLCB0aGlz IGZlYXR1cmUNCj4gPiA+ID4gaW50cm9kdWNlZCAyIFJ4USBzaGFyZToNCj4gPiA+ID4gMS4gU2hh cmUgbWVtcG9vbCB0byBzYXZlIG1lbW9yeQ0KPiA+ID4gPiAyLiBTaGFyZSBwb2xsaW5nIHRvIHNh dmUgbGF0ZW5jeQ0KPiA+ID4gPiANCj4gPiA+ID4gV2hhdCB5b3Ugc3VnZ2VzdGVkIGlzIHJldXNl IGFsbCBSeFEgY29uZmlndXJhdGlvbiBJSVVDLCBtYXliZSB3ZSBzaG91bGQNCj4gPiA+ID4gYnJl YWsgdGhlIGZsYWcgaW50byAzLCBzbyBhcHBsaWNhdGlvbiBjb3VsZCBsZWFybiBQTUQgY2FwYWJp bGl0eSBhbmQNCj4gPiA+ID4gY29uZmlndXJlIGFjY29yZGluZ2x5LCBob3cgZG8geW91IHRoaW5r Pw0KPiA+ID4gPiBSVEVfRVRIX1JYX09GRkxPQURfUlhRX1NIQVJFX1BPT0wNCj4gPiA+IA0KPiA+ ID4gTm90IHN1cmUgdGhhdCBJIHVuZGVyc3RhbmQuIEp1c3Qgc3BlY2lmeSB0aGUgc2FtZSBtZW1w b29sDQo+ID4gPiBvbiBSeCBxdWV1ZSBzZXR1cC4gSXNuJ3QgaXQgc3VmZmljaWVudD8NCj4gPiA+ IA0KPiA+ID4gPiBSVEVfRVRIX1JYX09GRkxPQURfUlhRX1NIQVJFX1BPTEwNCj4gPiA+IA0KPiA+ ID4gSXQgaW1wbGllcyBwb29sIHNoYXJpbmcgaWYgSSdtIG5vdCBtaXN0YWtlbi4gT2YgY291cnNl LA0KPiA+ID4gd2UgY2FuIHBvb2wgbWFueSBkaWZmZXJlbnQgSFcgcXVldWVzIGluIG9uZSBwb2xs LCBidXQgaXQNCj4gPiA+IGhhcmRseSBtYWtlcyBzZW5zZSB0byBjYXJlIHNwZWNpYWxseSBhYm91 dCBpdC4NCj4gPiA+IElNSE8gUnhRIHNoYXJpbmcgaXMgYSBzaGFyaW5nIG9mIHRoZSB1bmRlcmx5 aW5nIEhXIFJ4IHF1ZXVlLg0KPiA+ID4gDQo+ID4gPiA+IFJURV9FVEhfUlhfT0ZGTE9BRF9SWFFf U0hBUkVfQ0ZHIC8vaW1wbGllcyBQT09MIGFuZCBQT0xMDQo+ID4gPiANCj4gPiA+IEl0IGlzIGhh cmRseSBhIGZlYXR1cmUuIFJhdGhlciBhIHBvc3NpYmxlIGxpbWl0YXRpb24uDQo+ID4gDQo+ID4g VGhhbmtzLCB0aGVuIEknZCBkcm9wIHRoaXMgc3VnZ2VzdGlvbiB0aGVuLg0KPiA+IA0KPiA+IEhl cmUgaXMgdGhlIFRPRE8gbGlzdCwgbGV0IG1lIGtub3cgaWYgYW55dGhpbmcgbWlzc2luZzoNCj4g PiAxLiBjaGFuZ2Ugb2ZmbG9hZCBmbGFnIHRvIFJURV9FVEhfREVWX0NBUEFfUlhfU0hBUkUNCj4g DQo+IFJURV9FVEhfREVWX0NBUEFfUlhRX1NIQVJFIHNpbmNlIGl0IGlzIG5vdCBzaGFyaW5nIG9m DQo+IGVudGlyZSBSeCwgYnV0IGp1c3Qgc29tZSBxdWV1ZXMuDQoNCk9LDQoNCj4gDQo+ID4gMi4g UnhRIHNoYXJlIGdyb3VwIGNoZWNrIGluIGV0aGRldg0KPiA+IDMuIGFkZCByeF9kb21haW4gaW50 byBkZXZpY2UgaW5mbw0KDQpTZWVtcyBydGVfZXRoX3N3aXRjaF9pbmZvIGlzIGJldHRlciBwYWxj ZSBmb3IgcnhfZG9tYWluLg0KDQo+ID4gDQo+ID4gPiANCj4gPiA+IEFuZHJldy4NCj4gPiANCj4g DQoNCg==