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 6BCFBA0C4D; Mon, 4 Oct 2021 13:37:45 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4DE7941354; Mon, 4 Oct 2021 13:37:45 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2061.outbound.protection.outlook.com [40.107.223.61]) by mails.dpdk.org (Postfix) with ESMTP id 91E434134D for ; Mon, 4 Oct 2021 13:37:43 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RJqEALSsHEw+vgqo9px5k3qMovUlL2wdJhblS5ARSPRx1k8PmI+I4+zKEzCqfT5Tv72MBHtJtwW5n1B8ghK6JeB4bnKMa01aVU1iljm0I+kv82mBFUhVb1ujC6o9Tc1ebR3e/vOroYGRrDD4BAk0BRLrjHOF3SB73rpVIGHq9x6pbjODLYTIBLlNdKGCGTtyx/x0TCuWLsdJj/wHoCzO/RRhoZztoVyfk+SgjFp5YGP2KuiWWl64tZb6INoimyzoPtHZaC+5UGLCHcleP48GC3eQjbANu9oHVwLCVVDnN5hNc6zYOaIbNVWe0fTy9oXVBa55KPQABwEaFKHh+7rDiA== 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=+JlV0seS3WT9MO+Lb7P16A/G+xkdtN3liSv6HOdVNu8=; b=ARLDDIyyZVC3g0xM02Zevw9XWbNNOMz33DRzXhH0/sFhCKysdR4+u2xpSuhakwN64YZo7MBObpUk4b4Vv1DO/W2NUAVAEHVH1VaH/aKm6o8XWkjcwwc825Qx5fCgdNC7oJJopPl/kHUkSKD1Si8PaCvjssqGkFgaeSBPIpGrDi0lCdgoPETw9BNLmpsf2LgIBTyDAxeafXCU7sKk+NriXskEM6VTmbFVNLp6ET3nlTtI5mkS3v6tF6Ls2DkP+oHWOf21wa5cvbCwXjQIijW3bqAD2yRDmj+/tpVz9bkgFHuXQretv5NLf6vwR4E0/EAa+OPapi6yMvxW6Oq4igCrQw== 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=+JlV0seS3WT9MO+Lb7P16A/G+xkdtN3liSv6HOdVNu8=; b=uknpPFQbzuQz6mB4ToJMPph+IZMYqLLZWDm5oT9NX9KEuaHM51XhFol9oHHymOy1Vx9Kmi2/bhRnme0lpHMf3kp3juwLZIvGs9lxe28+iJRmZb/phqbRBTjszGOf6tdeYj5I8FaGXm+Egg4rW3/T+CuB6gArYfMDSr1NBxVQuyAcTTpuM9ZYzzOjeGtFf2GnloMRm5NC7YPZF+pXqIWb7E97Ht3nU6mkX3HcaJyF1QA3ZbTy7AO2PcTOpm2VSu9tn8PY/+lcOQYopdM+GgipjF+Dr4Ub0rWpsmjmcFPziIy7I5gCAsJmmCUEnCPdjma0c2suXLjl2+UygPNulrKarA== Received: from DM8PR12MB5400.namprd12.prod.outlook.com (2603:10b6:8:3b::12) by DM8PR12MB5398.namprd12.prod.outlook.com (2603:10b6:8:3f::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4566.19; Mon, 4 Oct 2021 11:37:42 +0000 Received: from DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::d03d:1f75:ca20:6a32]) by DM8PR12MB5400.namprd12.prod.outlook.com ([fe80::d03d:1f75:ca20:6a32%5]) with mapi id 15.20.4566.022; Mon, 4 Oct 2021 11:37:42 +0000 From: Ori Kam To: Ivan Malov , Andrew Rybchenko , Xiaoyun Li , NBU-Contact-Thomas Monjalon , Ferruh Yigit CC: "dev@dpdk.org" Thread-Topic: [PATCH v1 02/12] ethdev: add eswitch port item to flow API Thread-Index: AQHXtsrq3m61at/Ih0W5n/zl4hs4qKvBLmeggABn7YCAADNicIAA6EKAgAABbgA= Date: Mon, 4 Oct 2021 11:37:42 +0000 Message-ID: References: <20210907125157.3843-1-ivan.malov@oktetlabs.ru> <20211001134716.1608857-1-andrew.rybchenko@oktetlabs.ru> <20211001134716.1608857-3-andrew.rybchenko@oktetlabs.ru> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: 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: 41ea63c3-0a2e-42ae-ea9a-08d9872b607f x-ms-traffictypediagnostic: DM8PR12MB5398: x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: EI4XS6+xnsg2Tw4i8L551krSpEZltKs+yb6Ml920BkkhYjdBPFyGF0UnOXJ1ukkXvUpozQQHkTLqCuYdAOb4sAX7hjvzgqO5sRYrfJqsHIPkdJfvqxPnyd4RIYEB21WNEAUIEvpyqI6RB+Tls6gmiPJS4vAXTAVpFBUWzEKIcKIdeBbcokWiWL4a7/qc7Mo3WLrd2AnyOxXPOv44hzn3kEhi1LOP4sv5p/q1ZxvqFciNVTwEGtKN2uZGGiWmnHDUlVVh4hAnnAFpMgN+8veg8HOiWuzx1bvsJi+XfvVTv9N9QQPGPCt75RH3u5kTQglQqSnY4G676O8xhgnxhDOQjGl0JAVydkQMQY1mtOluCn40jvYKc5SrJDC9eUDBkdRIXGrTR6bu4+ITO+nOnjTo5HDiJAbsp7E6GkO5uNA6mB5oRcRNp3WAhbqtLbeiNDrEDG4Z50EFmkYh/4HDhQ9Pp0BVNLyeKihCc3gBtAfFv2iG4NPspCFSFM/faMnaNrQ0E0AVyPHoFHyY6PdwWELkstRewW37EvD25jvhKjRFrc71VPWnt6r09vZkJDIFCXV8xI8v+YZa9AdhWhHEN7HJcikJI2h0m53d/sjOrjnLu73fSw0xbE3zNCUqAVoqcxiSgizdY1xnTCgeyrRGhMduL8waAPaMa/aXgTCe4VXK7jUvA577c1GJgrO9B4Mnl80oBtRdVAbZ1wT7+vQsqz8ZxA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR12MB5400.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(4326008)(38100700002)(110136005)(55016002)(316002)(9686003)(86362001)(2906002)(52536014)(5660300002)(186003)(508600001)(30864003)(122000001)(7696005)(53546011)(6506007)(38070700005)(8936002)(8676002)(83380400001)(66446008)(64756008)(66556008)(76116006)(71200400001)(66476007)(66946007)(33656002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NnV0MU1DMDNDdVZycUFrR0dXUDI5Y29lUzJHWis3SWJwUjRMNGxsalpESWhu?= =?utf-8?B?a1o5aHROK2gvak45dndRTE5GajYvbmNMMnVSVFFMWERMamVoVXdKK29hNWli?= =?utf-8?B?SE1GWDFZaUlMWHVqYkY0TVFYOUYwSUUvY1ZreEJGanc5emxLcUxMMEJ0QXhx?= =?utf-8?B?Y2E2TUlseThTU0o3cXFZZWhKOHRMUEVBdDZlbVFvUlhtTG1RQU8vOXF6K29S?= =?utf-8?B?bGJBMGJ3UmpOMHB2ems1OEVuSXV1N0ZwaHc4eUtITEZiN3ZROHcvaEhIbFRM?= =?utf-8?B?a0NEUFFFd3h6STFmTTdnU0t1SktnN2w3SFIzdVdnWkZIcERnUXdjN0pvY0x0?= =?utf-8?B?bnZkTGRKcWhhbjJpSmFJM0g3cGdQdTluMWpHb1pwMTJhblZIQlNKbXU4THJl?= =?utf-8?B?Tm80SXU2S3R1M3JnM2plcUExMHBwaDhjTmRGUkExNWhwZGtUZkhhT3Z0QXNE?= =?utf-8?B?Z214RGRyb25WWEFiai9XU29ZeUR0UFJMUW5KV1F4MEh0dDh6Y1dJMy9ta1JI?= =?utf-8?B?cmpvOEdRR0pDZGJrcmZjNUlscTFHTmtOSXJ2UnhQbGVPOElObmxoWkFMb0N0?= =?utf-8?B?MnpsWm56WEV2dHRadTNGeC9mQnpqakpuWUt1QVZ2NzBJSUJIeHdYM051d0hN?= =?utf-8?B?ZklWalk0RkUzUWh3c2x0WkZOeEx2dmlBdU9IRUVCOG5YbVpucmpBUkh4VGov?= =?utf-8?B?bE02YVVTTElGRm5MZ29KNTFPU3hlQjhicC9rVVk0OVl2cTl2YWhXY3hsT3RW?= =?utf-8?B?N2I2SmpsbUh5YzNpQnVLZXpvNGNHQWpBNUROV3N5Zm5MQ2VFV2tHNjlkQ2s1?= =?utf-8?B?YUhwRFltand6bVpNd3hBejI2TkNENmpHMjVyUDhtdUFqZzNKV3BmU3hwN1cr?= =?utf-8?B?RFYzRlZoTUJscCtRejF1S0ZDZkVkQWVrTS9ZSE9zQlpGYXRmSCszcWx5TUVa?= =?utf-8?B?cW5jWXRhMVlHQndiRjN3WW8wRWh2dmZUekIzRHdrTkVsbTBxVHc0bitlTUVI?= =?utf-8?B?aUYzNUVLZ3dWZVlyaVluTFB6aWxoZWlmUnBGK1crTWJDOU5HVEFnanZqZlM3?= =?utf-8?B?eDd2TlZOSTJ1aDZSdG8xWjkxbWNsZnBZMXc2Rkl3d1BKYWJFNzdZYmVxS2k0?= =?utf-8?B?MlJFNnlOQS9nRmRMZDZrOElKTWJMeTdMc014TldrSzNWejBHZGpBN0NpVWdI?= =?utf-8?B?ejBaaC8xL0tlNU1ldTBHZ2xUbEwvSEY3YUJVcTRQQjMrT3ZucHk4VGpsejdq?= =?utf-8?B?dTdTZCtabkhCMENFY1RmNHpJZitlWnFlWlZHd3dKWTgvZGtVcXBsejZqcVgv?= =?utf-8?B?NmlvYkU0N0wyTTJ3a0YrTmdBT0hXZjhIc1ppVk5hZkZqWElMZUQ3QlBNbzR6?= =?utf-8?B?eDlER0FtRkdjTWs2d3ltUWNjeGMweGJRck96aEMvZUhsVFFERkVXMTNwU3o3?= =?utf-8?B?b1VGTkxSS3daLzZGMUJmc3k0eVhRaitrZ2d6d2FVb3BTZ2E0dVFBZXpGemxH?= =?utf-8?B?K3J1NnpLWUduTTJPbUF4Uk9MZDV1K0RnODdYaWM3dEtDMFhwZUtmSGhldjYv?= =?utf-8?B?SG5uT1NZbzQ2YzNsbTByRTZpbVo3UVlzMDJyeFhHVDdBU0Vtc2NGcHhRd3Zr?= =?utf-8?B?dWNNdncvSzNvMzhpZGxCZ2Z2a1Y3ZzhpNlRWOURZR1NNQlROVDNaUGcyZW40?= =?utf-8?B?MndIN2xuSWdSN093dlpXaXBoR3ptUE0vKzJYUkJydElUNHlQZk5vL3Z6QWhD?= =?utf-8?B?bmhWSm4wOW9YRFQrWlFHb1lFeGF4VmtTY0MvaVpRRFdZRTYxRHhmVHVwMWJh?= =?utf-8?B?VDdxaDI1empBbTJnVHEwYS9LRmd5ZTZKcDY2aC9Wem44amJ5aEhBc1NQRE1u?= =?utf-8?Q?fhuA/lTm7wpfJ?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR12MB5400.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 41ea63c3-0a2e-42ae-ea9a-08d9872b607f X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Oct 2021 11:37:42.1228 (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: fSibCcuvAbzPcRYTpkDotu70LPp1GCpydxMj+h7K05xtpsPEt/2VtFoasq3Z5yuWCOUDaPNVa2sVWvKWkoikuw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM8PR12MB5398 Subject: Re: [dpdk-dev] [PATCH v1 02/12] ethdev: add eswitch port item to flow API 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" SGkgSXZhbiwNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBJdmFuIE1h bG92IDxJdmFuLk1hbG92QG9rdGV0bGFicy5ydT4NCj4gU2VudDogTW9uZGF5LCBPY3RvYmVyIDQs IDIwMjEgMjowNiBQTQ0KPiBDYzogZGV2QGRwZGsub3JnDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0gg djEgMDIvMTJdIGV0aGRldjogYWRkIGVzd2l0Y2ggcG9ydCBpdGVtIHRvIGZsb3cgQVBJDQo+IA0K PiBIaSBPcmksDQo+IA0KPiBPbiAwNC8xMC8yMDIxIDA4OjQ1LCBPcmkgS2FtIHdyb3RlOg0KPiA+ IEhpIEl2YW4sDQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJv bTogSXZhbiBNYWxvdiA8SXZhbi5NYWxvdkBva3RldGxhYnMucnU+DQo+ID4+IFNlbnQ6IFN1bmRh eSwgT2N0b2JlciAzLCAyMDIxIDk6MTEgUE0NCj4gPj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MSAw Mi8xMl0gZXRoZGV2OiBhZGQgZXN3aXRjaCBwb3J0IGl0ZW0gdG8gZmxvdw0KPiA+PiBBUEkNCj4g Pj4NCj4gPj4NCj4gPj4NCj4gPj4gT24gMDMvMTAvMjAyMSAxNTo0MCwgT3JpIEthbSB3cm90ZToN Cj4gPj4+IEhpIEFuZHJldyBhbmQgSXZhbiwNCj4gPj4+DQo+ID4+Pj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPj4+PiBGcm9tOiBBbmRyZXcgUnliY2hlbmtvIDxhbmRyZXcucnliY2hl bmtvQG9rdGV0bGFicy5ydT4NCj4gPj4+PiBTZW50OiBGcmlkYXksIE9jdG9iZXIgMSwgMjAyMSA0 OjQ3IFBNDQo+ID4+Pj4gU3ViamVjdDogW1BBVENIIHYxIDAyLzEyXSBldGhkZXY6IGFkZCBlc3dp dGNoIHBvcnQgaXRlbSB0byBmbG93IEFQSQ0KPiA+Pj4+DQo+ID4+Pj4gRnJvbTogSXZhbiBNYWxv diA8aXZhbi5tYWxvdkBva3RldGxhYnMucnU+DQo+ID4+Pj4NCj4gPj4+PiBGb3IgdXNlIHdpdGgg InRyYW5zZmVyIiBmbG93cy4gU3VwcG9zZWQgdG8gbWF0Y2ggdHJhZmZpYyBlbnRlcmluZw0KPiA+ Pj4+IHRoZSBlLXN3aXRjaCBmcm9tIHRoZSBleHRlcm5hbCB3b3JsZCAobmV0d29yaywgZ3Vlc3Rz KSB2aWEgdGhlIHBvcnQNCj4gPj4+PiB3aGljaCBpcyBsb2dpY2FsbHkgY29ubmVjdGVkIHdpdGgg dGhlIGdpdmVuIGV0aGRldi4NCj4gPj4+Pg0KPiA+Pj4+IE11c3Qgbm90IGJlIGNvbWJpbmVkIHdp dGggYXR0cmlidXRlcyAiaW5ncmVzcyIgLyAiZWdyZXNzIi4NCj4gPj4+Pg0KPiA+Pj4+IFRoaXMg aXRlbSBpcyBtZWFudCB0byB1c2UgdGhlIHNhbWUgc3RydWN0dXJlIGFzIGV0aGRldiBpdGVtLg0K PiA+Pj4+DQo+ID4+Pg0KPiA+Pj4gSW4gY2FzZSB0aGUgYXBwIGlzIG5vdCB3b3JraW5nIHdpdGgg cmVwcmVzZW50b3JzLCBtZWFuaW5nIGVhY2gNCj4gPj4+IHN3aXRjaCBwb3J0IGlzIG1hcHBlZCB0 byBldGhkZXYuDQo+ID4+PiBib3RoIGl0ZW1zIChldGhkZXYgYW5kIGVzd2l0Y2ggcG9ydCApIGhh dmUgdGhlIHNhbWUgbWVhbmluZz8NCj4gPj4NCj4gPj4gTm8uIEV0aGRldiBtZWFucyBldGhkZXYs IGFuZCBlLXN3aXRjaCBwb3J0IGlzIHRoZSBwb2ludCB3aGVyZSB0aGlzDQo+ID4+IGV0aGRldiBp cyBwbHVnZ2VkIHRvLiBGb3IgZXhhbXBsZSwgInRyYW5zZmVyICsgRVNXSVRDSF9QT1JUIiBmb3Ig YQ0KPiA+PiByZWd1bGFyIFBGIGV0aGRldiB0eXBpY2FsbHkgbWVhbnMgdGhlIG5ldHdvcmsgcG9y dCAobWF5YmUgeW91IGNhbg0KPiA+PiByZWNhbGwgdGhlIGlkZWEgdGhhdCBhIFBGIGV0aGRldiAi cmVwcmVzZW50cyIgdGhlIG5ldHdvcmsgcG9ydCBpdCdzDQo+IGFzc29jaWF0ZWQgd2l0aCkuDQo+ ID4+DQo+ID4+IEkgYmVsaWV2ZSwgdGhhdCBkaWFncmFtcyB3aGljaCB0aGVzZSBwYXRjaGVzIGFk ZCB0bw0KPiA+PiAiZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdCIgbWF5IGNvbWUg aW4gaGFuZHkgdG8gdW5kZXJzdGFuZA0KPiA+PiB0aGUgbWVhbmluZy4gQWxzbywgeW91IGNhbiB0 YWtlIGEgbG9vayBhdCBvdXIgbGFyZ2VyIGRpYWdyYW0gZnJvbSB0aGUNCj4gPj4gU2VwIDE0IGdh dGhlcmluZy4NCj4gPj4NCj4gPg0KPiA+IExldHMgbG9vayBhdCB0aGUgZm9sbG93aW5nIHN5c3Rl bToNCj4gPiBFLVN3aXRjaCBoYXMgMyBwb3J0cyAtIFBGLCBWRjEsIFZGMg0KPiA+IFRoZSBwb3J0 cyBhcmUgZGlzdHJpYnV0ZWQgYXMgZm9sbG93czoNCj4gPiBEUERLIGFwcGxpY2F0aW9uOg0KPiA+ IGV0aGRldigwKSBwZiwNCj4gPiBldGhkZXYoMSkgcmVwcmVzZW50b3IgdG8gVkYxDQo+ID4gZXRo ZGV2KDIpIHJlcHJlc2VudG9yIHRvIFZGMg0KPiA+IGV0aGRldigzKSBWRjENCj4gPg0KPiA+IFZN Og0KPiA+IFZGMg0KPiA+DQo+ID4gQXMgd2Uga25vdyBhbGwgcmVwcmVzZW50b3JzIGFyZSByZWFs eSBjb25uZWN0ZWQgdG8gdGhlIFBGKGF0IGxlYXN0IGluDQo+ID4gdGhpcyBleGFtcGxlKQ0KPiAN Cj4gVGhpcyBleGFtcGxlIHRyaWVzIHRvIHNheSB0aGF0IHRoZSBlLXN3aXRjaCBoYXMgMyBwb3J0 cyBpbiB0b3RhbCwgYW5kLCBnaXZlbg0KPiB5b3VyIGV4cGxhbmF0aW9uLCBvbmUgbWF5IGluZGVl ZCBhZ3JlZSB0aGF0ICppbiB0aGlzIGV4YW1wbGUqIHJlcHJlc2VudG9ycw0KPiByZS11c2UgZS1z d2l0Y2ggcG9ydCBvZiBldGhkZXY9MCAod2l0aCBzb21lIG1ldGFkYXRhIHRvIGRpc3Rpbmd1aXNo DQo+IHBhY2tldHMsIGV0Yy4pLiBCdXQgb25lIGNhbiBoYXJkbHkgYXNzdW1lIHRoYXQgKmFsbCog cmVwcmVzZW50b3JzIHdpdGggYW55DQo+IHZlbmRvcidzIE5JQyBhcmUgY29ubmVjdGVkIHRvIHRo ZSBlLXN3aXRjaCB0aGUgc2FtZSB3YXkuIEl0J3MgdmVuZG9yDQo+IHNwZWNpZmljLiBXZWxsLCBh dCBsZWFzdCwgYXBwbGljYXRpb25zIGRvbid0IGhhdmUgdGhpcyBrbm93bGVkZ2UgYW5kIGRvbid0 IG5lZWQNCj4gdG8uDQo+IA0KPiA+DQo+ID4gU28gbWF0Y2hpbmcgb24gZXRoZGV2KDMpICBtZWFu cyBtYXRjaGluZyBvbiB0cmFmZmljIHNlbnQgZnJvbSBEUERLIHBvcnQNCj4gMyByaWdodD8NCj4g DQo+IEl0ZW0gRVRIREVWIChldGhkZXZfaWQ9MykgbWF0Y2hlcyB0cmFmZmljIHNlbnQgYnkgRFBE SyBwb3J0IDMuIExvb2tzIGxpa2UNCj4gd2UncmUgb24gdGhlIHNhbWUgcGFnZSBoZXJlLg0KPiAN Cg0KR29vZC4NCg0KPiA+IEFuZCBtYXRjaGluZyBvbiBlc3dpdGNoX3BvcnQoMykgbWVhbnMgbWF0 Y2hpbmcgaW4gdHJhZmZpYyB0aGF0IGdvZXMNCj4gPiBpbnRvIFZGMSB3aGljaCBpcyB0aGUgc2Ft ZSB0cmFmZmljIGFzIGV0aGRldigzKSByaWdodD8NCj4gDQo+IEkgZGlkbid0IGNhdGNoIHRoZSB0 aG91Z2h0IGFib3V0ICJ0aGUgc2FtZSB0cmFmZmljIi4gRGlyZWN0aW9uIGlzIG5vdCB0aGUgc2Ft ZS4NCj4gSXRlbSBFU1dJVENIX1BPUlQgKGV0aGRldl9pZD0zKSBtYXRjaGVzIHRyYWZmaWMgc2Vu dCBieSBEUERLIHBvcnQgMS4NCj4gDQpUaGlzIGlzIHRoZSBjcml0aWNhbCBwYXJ0IGZvciBteSB1 bmRlcnN0YW5kaW5nLg0KTWF0Y2hpbmcgb24gZXRoZGV2X2lkKDMpIG1lYW5zIG1hdGNoaW5nIG9u IHRyYWZmaWMgdGhhdCBpcyBjb21pbmcgZnJvbSBEUERLIHBvcnQzLg0KU28gZnJvbSBFLVN3aXRj aCB2aWV3IHBvaW50IGl0IGlzIHRyYWZmaWMgdGhhdCBnb2VzIGludG8gVkYxPw0KV2hpbGUgbWF0 Y2hpbmcgb24gRS1Td2l0Y2hfcG9ydCgzKSBtZWFucyBtYXRjaGluZyBvbiB0cmFmZmljIGNvbWlu ZyBmcm9tIFZGMT8NCg0KQW5kIGJ5IHRoZSBzYW1lIGxvZ2ljIG1hdGNoaW5nIG9uIGV0aGRldl9p ZCgxKSBtZWFucyBtYXRjaGluZyBvbiB0YWZmaWMgdGhhdCB3YXMgc2VudA0KZnJvbSBEUERLIHBv cnQgMSBhbmQgbWF0Y2hpbmcgb24gRS1Td2l0Y2hfcG9ydCgxKSBtZWFucyBtYXRjaGluZyBvbiB0 cmFmZmljIGNvbWluZyBmcm9tDQpWRjEgDQoNClNvIGluIHRoaXMgY2FzZSBlc3dpdGNoX3BvcnQo MykgaXMgZXF1YWwgb3QgZXN3aXRjaF9wb3J0KDEpIHJpZ2h0Pw0KV2hpbGUgZXRoZGV2KDEpIGlz IG5vdCBlcXVhbCB0byBldGhkZXYoMykNCg0KQW5kIGp1c3QgdG8gY29tcGxldGUgdGhlIHBpY3R1 cmUsIG1hdGNoaW5nIG9uIGV0aGRldigyKSB3aWxsIHJlc3VsdCBpbiB0cmFmZmljDQpjb21pbmcg ZnJvbSB0aGUgZHBkayBwb3J0IGFuZCBtYXRjaGluZyBvbiBlc3dpdGNoX3BvcnQoMikgd2lsbCBt YXRjaA0Kb24gdHJhZmZpYyBjb21pbmcgZnJvbSBWRjINCg0KPiBZZXMsIGluIHRoaXMgY2FzZSBu ZWl0aGVyIG9mIHRoZSBwb3J0cyAoMSwgMykgaXMgdHJ1bHkgImV4dGVybmFsIiAodGhleSBib3Ro DQo+IGludGVyZmFjZSB0aGUgRFBESyBhcHBsaWNhdGlvbiksIGJ1dCwgdGhlIHRoaW5nIGlzLCB0 aGV5J3JlICJleHRlcm5hbCIgKnRvIGVhY2gNCj4gb3RoZXIqIGluIHRoZSBzZW5zZSB0aGF0IHRo ZXkgc2l0IGF0IHRoZSBvcHBvc2l0ZSBlbmRzIG9mIHRoZSB3aXJlLg0KPiANCj4gPg0KPiA+IE1h dGNoaW5nIG9uIGV0aGRldigxKSBtZWFucyBtYXRjaGluZyBvbiB0aGUgUEYgcG9ydCBpbiB0aGUg RS1Td2l0Y2ggYnV0DQo+IHdpdGggc29tZQ0KPiA+IG1ldGFkYXRhIHRoYXQgbWFya3MgdGhlIHRy YWZmaWMgYXMgY29taW5nIGZyb20gRFBESyBwb3J0IDEgYW5kIG5vdCBmcm9tDQo+IFZGMSBFLVN3 aXRjaA0KPiA+IHBvcnQgcmlnaHQ/DQo+IA0KPiBUaGF0J3MgdmVuZG9yIHNwZWNpZmljLiBUaGUg YXBwbGljYXRpb24gZG9lc24ndCBoYXZlIHRvIGtub3cgaG93IGV4YWN0bHkNCj4gdGhpcyBwYXJ0 aWN1bGFyIGV0aGRldiBpcyBjb25uZWN0ZWQgdG8gdGhlIGUtc3dpdGNoIC0gd2hldGhlciBpdCBy ZS11c2VzDQo+IHRoZSBQRidzIGUtc3dpdGNoIHBvcnQgb3IgaGFzIGl0cyBvd24uIFRoZSBlLXN3 aXRjaCBwb3J0IHRoYXQgY29ubmVjdHMNCj4gdGhlIGV0aGRldiB3aXRoIHRoZSBlLXN3aXRjaCBp cyBqdXN0IGFzc3VtZWQgdG8gZXhpc3QgbG9naWNhbGx5Lg0KPiANCj4gPg0KPiA+IFdoaWxlIG1h dGNoaW5nIG9uIGVzd2l0Y2hfcG9ydCgyKSBtZWFucyBtYXRjaGluZyBvbiB0cmFmZmljIGNvbWlu ZyBmcm9tDQo+IHRoZSBWTSByaWdodD8NCj4gDQo+IFJpZ2h0Lg0KPiANCg0KSSB0aGluayB0aGUg bXkgYWJvdmUgcXVlc3Rpb24gd2lsbCBjbGVhciBldmVyeXRoaW5nIGZvciBtZS4NCg0KPiA+DQo+ ID4+Pg0KPiA+Pj4+IFNpZ25lZC1vZmYtYnk6IEl2YW4gTWFsb3YgPGl2YW4ubWFsb3ZAb2t0ZXRs YWJzLnJ1Pg0KPiA+Pj4+IFNpZ25lZC1vZmYtYnk6IEFuZHJldyBSeWJjaGVua28gPGFuZHJldy5y eWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+Pj4+IC0tLQ0KPiA+Pj4+ICAgIGFwcC90ZXN0LXBt ZC9jbWRsaW5lX2Zsb3cuYyAgICAgICAgICAgICAgICAgfCAyNw0KPiArKysrKysrKysrKysrKysr KysrKysNCj4gPj4+PiAgICBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0ICAgICAg ICAgIHwgMjIgKysrKysrKysrKysrKysrKysNCj4gPj4+PiAgICBkb2MvZ3VpZGVzL3JlbF9ub3Rl cy9yZWxlYXNlXzIxXzExLnJzdCAgICAgIHwgIDIgKy0NCj4gPj4+PiAgICBkb2MvZ3VpZGVzL3Rl c3RwbWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0IHwgIDQgKysrDQo+ID4+Pj4gICAgbGliL2V0 aGRldi9ydGVfZmxvdy5jICAgICAgICAgICAgICAgICAgICAgICB8ICAxICsNCj4gPj4+PiAgICBs aWIvZXRoZGV2L3J0ZV9mbG93LmggICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysrKysrKyst DQo+ID4+Pj4gICAgNiBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9u cygtKQ0KPiA+Pj4+DQo+ID4+Pj4gZGlmZiAtLWdpdCBhL2FwcC90ZXN0LXBtZC9jbWRsaW5lX2Zs b3cuYyBiL2FwcC90ZXN0LQ0KPiA+PiBwbWQvY21kbGluZV9mbG93LmMNCj4gPj4+PiBpbmRleCBl MDViMGQ4M2QyLi4xODhkMGVlMzlkIDEwMDY0NA0KPiA+Pj4+IC0tLSBhL2FwcC90ZXN0LXBtZC9j bWRsaW5lX2Zsb3cuYw0KPiA+Pj4+ICsrKyBiL2FwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cuYw0K PiA+Pj4+IEBAIC0zMDgsNiArMzA4LDggQEAgZW51bSBpbmRleCB7DQo+ID4+Pj4gICAgCUlURU1f UE9MX1BPTElDWSwNCj4gPj4+PiAgICAJSVRFTV9FVEhERVYsDQo+ID4+Pj4gICAgCUlURU1fRVRI REVWX0lELA0KPiA+Pj4+ICsJSVRFTV9FU1dJVENIX1BPUlQsDQo+ID4+Pj4gKwlJVEVNX0VTV0lU Q0hfUE9SVF9FVEhERVZfSUQsDQo+ID4+Pg0KPiA+Pj4gTGlrZSBteSBjb21tZW50IGZyb20gcHJl dmlvdXMgcGF0Y2gsIEknbSBub3Qgc3VyZSB0aGUgY29ycmVjdA0KPiA+Pj4gdGVybSBmb3IgRVRI REVWIGlzIElEIGlzIHNob3VsZCBiZSBwb3J0Lg0KPiA+Pg0KPiA+PiBQbGVhc2Ugc2VlIG15IHJl cGx5IGluIHRoZSBwcmV2aW91cyB0aHJlYWQuICJldGhkZXYiIGhlcmUgaXMgYW4NCj4gPj4gImFu Y2hvciIsIGEgImJlYWNvbiIgb2Ygc29ydHMgd2hpY2ggYWxsb3dzIGVpdGhlciB0byByZWZlciBu YW1lbHkgdG8NCj4gPj4gdGhpcyBldGhkZXYgb3IgdG8gdGhlIGUtc3dpdGNoIHBvcnQgYXNzb2Np YXRlZCB3aXRoIGl0Lg0KPiA+Pg0KPiA+Pj4NCj4gPj4+Pg0KPiA+Pj4+ICAgIAkvKiBWYWxpZGF0 ZS9jcmVhdGUgYWN0aW9ucy4gKi8NCj4gPj4+PiAgICAJQUNUSU9OUywNCj4gPj4+PiBAQCAtMTAw Myw2ICsxMDA1LDcgQEAgc3RhdGljIGNvbnN0IGVudW0gaW5kZXggbmV4dF9pdGVtW10gPSB7DQo+ ID4+Pj4gICAgCUlURU1fSU5URUdSSVRZLA0KPiA+Pj4+ICAgIAlJVEVNX0NPTk5UUkFDSywNCj4g Pj4+PiAgICAJSVRFTV9FVEhERVYsDQo+ID4+Pj4gKwlJVEVNX0VTV0lUQ0hfUE9SVCwNCj4gPj4+ PiAgICAJRU5EX1NFVCwNCj4gPj4+PiAgICAJWkVSTywNCj4gPj4+PiAgICB9Ow0KPiA+Pj4+IEBA IC0xMzc3LDYgKzEzODAsMTIgQEAgc3RhdGljIGNvbnN0IGVudW0gaW5kZXggaXRlbV9ldGhkZXZb XSA9IHsNCj4gPj4+PiAgICAJWkVSTywNCj4gPj4+PiAgICB9Ow0KPiA+Pj4+DQo+ID4+Pj4gK3N0 YXRpYyBjb25zdCBlbnVtIGluZGV4IGl0ZW1fZXN3aXRjaF9wb3J0W10gPSB7DQo+ID4+Pj4gKwlJ VEVNX0VTV0lUQ0hfUE9SVF9FVEhERVZfSUQsDQo+ID4+Pj4gKwlJVEVNX05FWFQsDQo+ID4+Pj4g KwlaRVJPLA0KPiA+Pj4+ICt9Ow0KPiA+Pj4+ICsNCj4gPj4+PiAgICBzdGF0aWMgY29uc3QgZW51 bSBpbmRleCBuZXh0X2FjdGlvbltdID0gew0KPiA+Pj4+ICAgIAlBQ1RJT05fRU5ELA0KPiA+Pj4+ ICAgIAlBQ1RJT05fVk9JRCwNCj4gPj4+PiBAQCAtMzYzMiw2ICszNjQxLDIxIEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgdG9rZW4gdG9rZW5fbGlzdFtdID0gew0KPiA+Pj4+ICAgIAkJCSAgICAgaXRl bV9wYXJhbSksDQo+ID4+Pj4gICAgCQkuYXJncyA9IEFSR1MoQVJHU19FTlRSWShzdHJ1Y3QgcnRl X2Zsb3dfaXRlbV9ldGhkZXYsDQo+ID4+IGlkKSksDQo+ID4+Pj4gICAgCX0sDQo+ID4+Pj4gKwlb SVRFTV9FU1dJVENIX1BPUlRdID0gew0KPiA+Pj4+ICsJCS5uYW1lID0gImVzd2l0Y2hfcG9ydCIs DQo+ID4+Pj4gKwkJLmhlbHAgPSAibWF0Y2ggdHJhZmZpYyBhdCBlLXN3aXRjaCBnb2luZyBmcm9t IHRoZSBleHRlcm5hbCBwb3J0DQo+ID4+Pj4gYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBldGhk ZXYiLA0KPiA+Pj4NCj4gPj4+IE1pc3NpbmcgdGhlIHdvcmQgbG9naWNhbGx5IHNpbmNlIGlmIHdl IGFyZSB0YWxraW5nIGFib3V0IHJlcHJlc2VudG9yIHRoZQ0KPiA+PiBjb25uZWN0ZWQgcG9ydA0K PiA+Pj4gaXMgdGhlIFBGIHdoaWxlIHdlIHdhbnQgdG8gbWF0Y2ggdHJhZmZpYyBvbiBvbmUgb2Yg dGhlIEZWcy4NCj4gPj4NCj4gPj4gRG9lc24ndCB0aGUgd29yZCAiZXh0ZXJuYWwiIHNheSBpdCBh bGw/DQo+ID4+DQo+ID4+IFJlcHJlc2VudG9yIEV0aGRldiA8LS0+IEFkbWluIGV0aGRldidzIFBG IDwtLT4gRS1Td2l0Y2ggPC0tPiBWRg0KPiA+PiAoZXh0ZXJuYWwgLyB0aGUgbW9zdCByZW1vdGUg ZW5kcG9pbnQpLg0KPiA+Pg0KPiA+DQo+ID4gVW50aWwgdGhlIGxhc3QgY29tbWVudCBFeHRlcm5h bCBoYWQgdG90YWxseSBkaWZmZXJlbnQgbWVhbmluZyB0byBtZS4NCj4gPiBJIHRoaW5rIHlvdSBz aG91bGQgYWRkIHNvbWUgcGxhY2UgdGhlIG1lYW5pbmcgb2YgZXh0ZXJuYWwgb3IgdXNlDQo+ID4g dGhlIG1vc3QgcmVtb3RlIGVuZHBvaW50Lg0KPiANCj4gV2UnbGwga2VlcCB0aGlzIGluIG1pbmQu IEdpdmVuIHlvdXIgYWJvdmUgZXhhbXBsZSAod2hlbiBib3RoIFZGIGFuZCBpdHMNCj4gcmVwcmVz ZW50b3IpIGFyZSBwbHVnZ2VkIHRvIHRoZSBEUERLIGFwcGxpY2F0aW9uLCAiZXh0ZXJuYWwiIG1h eSBzb3VuZCBhDQo+IGJpdCBvZmYsIGJ1dCBtYXliZSBpdCBjYW4gYmUgcmV0YWluZWQgYW5kIGp1 c3QgY2xhcmlmaWVkIGFzIHRoZSAibW9zdA0KPiByZW1vdGUgZW5kcG9pbnQiIGluIHRoZSBlLXN3 aXRjaCB3aXRoIHJlc3BlY3QgdG8gdGhlIGV0aGRldiBpbiBxdWVzdGlvbi4NCj4gDQoNCisxIHRv IHRoZSBtb3N0IHJlbW90ZSBvciBmaW5kaW5nIGRpZmZlcmVudCB3b3JkaW5nLg0KDQo+ID4NCj4g Pj4+DQo+ID4+Pj4gKwkJLnByaXYgPSBQUklWX0lURU0oRVNXSVRDSF9QT1JULA0KPiA+Pj4+ICsJ CQkJICBzaXplb2Yoc3RydWN0IHJ0ZV9mbG93X2l0ZW1fZXRoZGV2KSksDQo+ID4+Pj4gKwkJLm5l eHQgPSBORVhUKGl0ZW1fZXN3aXRjaF9wb3J0KSwNCj4gPj4+PiArCQkuY2FsbCA9IHBhcnNlX3Zj LA0KPiA+Pj4+ICsJfSwNCj4gPj4+PiArCVtJVEVNX0VTV0lUQ0hfUE9SVF9FVEhERVZfSURdID0g ew0KPiA+Pj4+ICsJCS5uYW1lID0gImV0aGRldl9pZCIsDQo+ID4+Pj4gKwkJLmhlbHAgPSAiZXRo ZGV2IElEIiwNCj4gPj4+PiArCQkubmV4dCA9IE5FWFQoaXRlbV9lc3dpdGNoX3BvcnQsDQo+ID4+ Pj4gTkVYVF9FTlRSWShDT01NT05fVU5TSUdORUQpLA0KPiA+Pj4+ICsJCQkgICAgIGl0ZW1fcGFy YW0pLA0KPiA+Pj4+ICsJCS5hcmdzID0gQVJHUyhBUkdTX0VOVFJZKHN0cnVjdCBydGVfZmxvd19p dGVtX2V0aGRldiwNCj4gPj4gaWQpKSwNCj4gPj4+PiArCX0sDQo+ID4+Pj4gICAgCS8qIFZhbGlk YXRlL2NyZWF0ZSBhY3Rpb25zLiAqLw0KPiA+Pj4+ICAgIAlbQUNUSU9OU10gPSB7DQo+ID4+Pj4g ICAgCQkubmFtZSA9ICJhY3Rpb25zIiwNCj4gPj4+PiBAQCAtODM3MCw2ICs4Mzk0LDkgQEAgZmxv d19pdGVtX2RlZmF1bHRfbWFzayhjb25zdCBzdHJ1Y3QNCj4gPj4+PiBydGVfZmxvd19pdGVtICpp dGVtKQ0KPiA+Pj4+ICAgIAljYXNlIFJURV9GTE9XX0lURU1fVFlQRV9FVEhERVY6DQo+ID4+Pj4g ICAgCQltYXNrID0gJnJ0ZV9mbG93X2l0ZW1fZXRoZGV2X21hc2s7DQo+ID4+Pj4gICAgCQlicmVh azsNCj4gPj4+PiArCWNhc2UgUlRFX0ZMT1dfSVRFTV9UWVBFX0VTV0lUQ0hfUE9SVDoNCj4gPj4+ PiArCQltYXNrID0gJnJ0ZV9mbG93X2l0ZW1fZXRoZGV2X21hc2s7DQo+ID4+Pj4gKwkJYnJlYWs7 DQo+ID4+Pg0KPiA+Pj4gTm90IHN1cmUgbWF5YmUgbWVyZ2VkIHRoZSB0d28gY2FzZXM/DQo+ID4+ DQo+ID4+IEEgbm9ibGUgaWRlYS4NCj4gPj4NCj4gPj4+DQo+ID4+Pj4gICAgCWRlZmF1bHQ6DQo+ ID4+Pj4gICAgCQlicmVhazsNCj4gPj4+PiAgICAJfQ0KPiA+Pj4+IGRpZmYgLS1naXQgYS9kb2Mv Z3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0DQo+ID4+Pj4gYi9kb2MvZ3VpZGVzL3Byb2df Z3VpZGUvcnRlX2Zsb3cucnN0DQo+ID4+Pj4gaW5kZXggYWI2MjhkOTEzOS4uMjkyYmI0MjQxMCAx MDA2NDQNCj4gPj4+PiAtLS0gYS9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcnRlX2Zsb3cucnN0DQo+ ID4+Pj4gKysrIGIvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3J0ZV9mbG93LnJzdA0KPiA+Pj4+IEBA IC0xNDYwLDYgKzE0NjAsMjggQEAgVXNlIHRoaXMgd2l0aCBhdHRyaWJ1dGUgKip0cmFuc2Zlcioq Lg0KPiBBdHRyaWJ1dGVzDQo+ID4+Pj4gKippbmdyZXNzKiogYW5kDQo+ID4+Pj4gICAgICAgfCBg YG1hc2tgYCB8IGBgaWRgYCAgIHwgemVyb2VkIGZvciB3aWxkY2FyZCBtYXRjaCB8DQo+ID4+Pj4g ICAgICAgKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r DQo+ID4+Pj4NCj4gPj4+PiArSXRlbTogYGBFU1dJVENIX1BPUlRgYA0KPiA+Pj4+ICteXl5eXl5e Xl5eXl5eXl5eXl5eXl5eDQo+ID4+Pj4gKw0KPiA+Pj4+ICtNYXRjaGVzIHRyYWZmaWMgYXQgZS1z d2l0Y2ggZ29pbmcgZnJvbSB0aGUgZXh0ZXJuYWwgcG9ydCBhc3NvY2lhdGVkDQo+ID4+Pj4gK3dp dGggdGhlIGdpdmVuIGV0aGRldiwgZm9yIGV4YW1wbGUsIHRyYWZmaWMgZnJvbSBuZXQuIHBvcnQg b3IgZ3Vlc3QuDQo+ID4+Pg0KPiA+Pj4gTWF5YmUgcmVwbGFjZSBleHRlcm5hbCB3aXRoIGUtc3dp dGNoPw0KPiA+Pg0KPiA+PiBUaGUgd29yZCAiZS1zd2l0Y2giIGlzIGFscmVhZHkgaGVyZS4gQmFz aWNhbGx5LCBhbGwgImV4dGVybmFsIiBwb3J0cyBhcmUNCj4gPj4gImUtc3dpdGNoIGV4dGVybmFs IHBvcnRzIiA9IHBvcnRzIHdoaWNoIGNvbm5lY3QgdGhlIGUtc3dpdGNoIHdpdGgNCj4gPj4gbm9u LURQREsgd29ybGQ6IG5ldHdvcmsgcG9ydHMsIFZGcyBwYXNzZWQgdG8gZ3Vlc3RzLCBldGMuDQo+ ID4+DQo+ID4NCj4gPiBQbGVhc2Ugc2VlIGNvbW1lbnQgYWJvdmUsIHRoZSB3b3JkIGV4dGVybmFs IGlzIG5vdCBjbGVhcmx5IGRlZmluZWQuID4NCj4gPj4+DQo+ID4+Pj4gKw0KPiA+Pj4+ICs6Og0K PiA+Pj4+ICsNCj4gPj4+PiArICAgKiAgICAoRXRoZGV2KSB+fn5+fn5+fn5+fn4gKEludGVybmFs IFBvcnQpIH5+fn4gW10gPDw8PCAoRXh0ZXJuYWwNCj4gPj4gUG9ydCkNCj4gPj4+PiArICAgKiAg ICA6ICBTVyAgICAgICAgICAgICAgICAgOiAgIExvZ2ljYWwgICAgICAgICAgICAgICAgICAgIE5l dCAvIEd1ZXN0IDoNCj4gPj4+PiArICAgKiAgICA6ICAgICAgICAgICAgICAgICAgICAgOiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoNCj4gPj4+PiArICAgKiAgICB8 IC0tLS0gUE1EIExheWVyIC0tLS0gfCAtLS0tLS0tLS0tLS0gRS1Td2l0Y2ggTGF5ZXIgLS0tLS0t LS0tLS0tIHwNCj4gPj4+PiArICAgKg0KPiA+Pj4+ICsgICAqICAgIFtdIHNob3dzIHRoZSBlZmZl Y3RpdmUgKCJ0cmFuc2ZlciIpIHN0YW5kcG9pbnQsIHRoZSBtYXRjaCBlbmdpbmU7DQo+ID4+Pj4g KyAgICogICAgPDwgc2hvd3MgdGhlIHRyYWZmaWMgZmxvdyBpbiBxdWVzdGlvbiBoaXR0aW5nIHRo ZSBtYXRjaCBlbmdpbmU7DQo+ID4+Pj4gKyAgICogICAgfn4gc2hvd3MgbG9naWNhbCBpbnRlcmNv bm5lY3RzIGJldHdlZW4gdGhlIGVuZHBvaW50cy4NCj4gPj4+PiArDQo+ID4+Pg0KPiA+Pj4gSSdt IG5vdCBzdXJlIEkgdW5kZXJzdGFuZCB0aGlzIGRpYWdyYW0uDQo+ID4+DQo+ID4+IFRoYW5rcyBm b3IgdGhlIGZlZWRiYWNrLiBJIGhhdmUgbm8gd2F5IHdpdGggZHJhd2luZyBmYW5jeSBkaWFncmFt cywgc28NCj4gPj4gdGhpcyBvbmUgbWF5IG5vdCBiZSBpZGVhbCwgeWVzLiBCdXQgY291bGQgeW91 IHBsZWFzZSBlbGFib3JhdGUgb24geW91cg0KPiA+PiBjb25jZXJucy4gTWF5YmUgeW91IHVuZGVy c3RhbmQgaXQgdGhlIHJpZ2h0IHdheSBidXQganVzdCB1bnN1cmUuIElmIHlvdQ0KPiA+PiBkZXNj cmliZSB3aGF0IHlvdSBzZWUgd2hlbiBsb29raW5nIGF0IHRoZSBkaWFncmFtLCBJJ2xsIGJlIGFi bGUgdG8NCj4gPj4gZWl0aGVyIGNvbmZpcm0geW91ciB2aXNpb24gb3IgZGVidW5rIGFueSBtaXN1 bmRlcnN0YW5kaW5nIGFuZCBwb3NzaWJseQ0KPiA+PiBpbXByb3ZlIHRoZSBkcmF3aW5nLg0KPiA+ Pg0KPiA+DQo+ID4NCj4gPiBJIHdpbGwgdHJ5LA0KPiA+IEV0aGRldiBpcyB0aGUgcG9ydCB0aGF0 IHRoZSBhcHBsaWNhdGlvbiBzZWVzIGluIERQREsgcmlnaHQ/DQo+IA0KPiBFeGFjdGx5Lg0KPiAN Cj4gPiBJbnRlcm5hbCBwb3J0IGlzIHdoYXQgdGhlIFBNRCBzZWVzLCBmb3IgZXhhbXBsZSBpbiBj YXNlIG9mIHJlcHJlc2VudG9yIGl0DQo+IHdpbGwgc2VlIHRoZSBQRiBwb3J0Lg0KPiANCj4gVmVu ZG9yLXNwZWNpZmljLCBidXQsIHllcywgbGV0J3MgYXNzdW1lIHRoYXQuDQo+IA0KPiA+IEV4dGVy bmFsIChhbHNvIGR1ZSB0byBhIGRyYXdpbmcgaW4gb25lIG9mIHlvdXIgY29tbWVudHMpIGlzIHRo ZSBFLVN3aXRjaA0KPiBlbmQgcG9pbnQuDQo+ID4gU28gdGhpcyBkcmF3aW5nIHNob3dzIHRoYXQg dGhlIGFwcCBzZWxlY3QgdGhlIGV4dGVybmFsIHBvcnQgdGhhdCBpcw0KPiBjb25uZWN0ZWQgdG8g dGhlDQo+ID4gaW50ZXJuYWwgcG9ydCB3aGljaCBpcyBjb25uZWN0ZWQgdG8gdGhlIGV0aGRldiBw b3J0Pw0KPiANCj4gU28gd2hhdCdzIHRoZSBwcm9ibGVtPw0KPiANCj4gRXRoZGV2IC0tLS0tIEUt c3dpdGNoIHBvcnQgQSAtLSAuLi4gLS0tIEUtc3dpdGNoIHBvcnQgQi0tLS0tLSBWRg0KPiANCj4g U28sIHNheWluZyAidHJhbnNmZXIgKyBFU1dJVENIX1BPUlQiIGhlcmUgaW1wbGllcyB0aGUgZS1z d2l0Y2ggcG9ydCBCLg0KPiBIb3cgZG8gd2UgbmFtZSBpdD8gIkV4dGVybmFsIj8gIlRoZSBtb3N0 IHJlbW90ZSI/IEFueSBvdGhlciBvcHRpb25zPw0KPiANCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBP cmkNCj4gPj4+DQo+ID4+Pj4gK1VzZSB0aGlzIHdpdGggYXR0cmlidXRlICoqdHJhbnNmZXIqKi4g QXR0cmlidXRlcyAqKmluZ3Jlc3MqKiBhbmQNCj4gPj4+PiArKiplZ3Jlc3MqKiAoYEF0dHJpYnV0 ZTogVHJhZmZpYyBkaXJlY3Rpb25gXykgbXVzdCBub3QgYmUgdXNlZC4NCj4gPj4+PiArDQo+ID4+ Pj4gK1RoaXMgaXRlbSBpcyBtZWFudCB0byB1c2UgdGhlIHNhbWUgc3RydWN0dXJlIGFzIGBJdGVt OiBFVEhERVZgXy4NCj4gPj4+PiArDQo+ID4+Pj4gICAgQWN0aW9ucw0KPiA+Pj4+ICAgIH5+fn5+ fn4NCj4gPj4+Pg0KPiA+Pj4+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9yZWxl YXNlXzIxXzExLnJzdA0KPiA+Pj4+IGIvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yMV8x MS5yc3QNCj4gPj4+PiBpbmRleCA5MTYzMWFkYjRlLi5iMmIyN2RlM2YwIDEwMDY0NA0KPiA+Pj4+ IC0tLSBhL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjFfMTEucnN0DQo+ID4+Pj4gKysr IGIvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8yMV8xMS5yc3QNCj4gPj4+PiBAQCAtMTY3 LDcgKzE2Nyw3IEBAIEFQSSBDaGFuZ2VzDQo+ID4+Pj4gICAgICAgQWxzbywgbWFrZSBzdXJlIHRv IHN0YXJ0IHRoZSBhY3R1YWwgdGV4dCBhdCB0aGUgbWFyZ2luLg0KPiA+Pj4+DQo+ID4+ID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPj4+ Pg0KPiA+Pj4+IC0qIGV0aGRldjogQWRkZWQgaXRlbSBgYEVUSERFVmBgIHRvIGZsb3cgQVBJLg0K PiA+Pj4+ICsqIGV0aGRldjogQWRkZWQgaXRlbXMgYGBFVEhERVZgYCwgYGBFU1dJVENIX1BPUlRg YCB0byBmbG93IEFQSS4NCj4gPj4+Pg0KPiA+Pj4+ICAgICogY3J5cHRvZGV2OiBUaGUgQVBJIHJ0 ZV9jcnlwdG9kZXZfcG1kX2lzX3ZhbGlkX2RldiBpcyBtb2RpZmllZCB0bw0KPiA+Pj4+ICAgICAg cnRlX2NyeXB0b2Rldl9pc192YWxpZF9kZXYgYXMgaXQgY2FuIGJlIHVzZWQgYnkgdGhlIGFwcGxp Y2F0aW9uIGFzDQo+IGRpZmYgLS0NCj4gPj4gZ2l0DQo+ID4+Pj4gYS9kb2MvZ3VpZGVzL3Rlc3Rw bWRfYXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0DQo+ID4+Pj4gYi9kb2MvZ3VpZGVzL3Rlc3RwbWRf YXBwX3VnL3Rlc3RwbWRfZnVuY3MucnN0DQo+ID4+Pj4gaW5kZXggNmQ1ZGU1NDU3Yy4uOWE1YzJh MmQ4MiAxMDA2NDQNCj4gPj4+PiAtLS0gYS9kb2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rlc3Rw bWRfZnVuY3MucnN0DQo+ID4+Pj4gKysrIGIvZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0 cG1kX2Z1bmNzLnJzdA0KPiA+Pj4+IEBAIC0zODI0LDYgKzM4MjQsMTAgQEAgVGhpcyBzZWN0aW9u IGxpc3RzIHN1cHBvcnRlZCBwYXR0ZXJuIGl0ZW1zDQo+IGFuZA0KPiA+Pj4+IHRoZWlyIGF0dHJp YnV0ZXMsIGlmIGFueS4NCj4gPj4+Pg0KPiA+Pj4+ICAgICAgLSBgYGlkIHt1bnNpZ25lZH1gYDog ZXRoZGV2IElEDQo+ID4+Pj4NCj4gPj4+PiArLSBgYGVzd2l0Y2hfcG9ydGBgOiBtYXRjaCB0cmFm ZmljIGF0IGUtc3dpdGNoIGdvaW5nIGZyb20gdGhlIGV4dGVybmFsDQo+ID4+Pj4gK3BvcnQgYXNz b2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBldGhkZXYNCj4gPj4+PiArDQo+ID4+Pj4gKyAgLSBgYGV0 aGRldl9pZCB7dW5zaWduZWR9YGA6IGV0aGRldiBJRA0KPiA+Pj4+ICsNCj4gPj4+PiAgICBBY3Rp b25zIGxpc3QNCj4gPj4+PiAgICBeXl5eXl5eXl5eXl4NCj4gPj4+Pg0KPiA+Pj4+IGRpZmYgLS1n aXQgYS9saWIvZXRoZGV2L3J0ZV9mbG93LmMgYi9saWIvZXRoZGV2L3J0ZV9mbG93LmMgaW5kZXgN Cj4gPj4+PiA4NGViNjFjYjZjLi5jNGFlYTU2MjVmIDEwMDY0NA0KPiA+Pj4+IC0tLSBhL2xpYi9l dGhkZXYvcnRlX2Zsb3cuYw0KPiA+Pj4+ICsrKyBiL2xpYi9ldGhkZXYvcnRlX2Zsb3cuYw0KPiA+ Pj4+IEBAIC0xMDEsNiArMTAxLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBydGVfZmxvd19kZXNj X2RhdGENCj4gPj4+PiBydGVfZmxvd19kZXNjX2l0ZW1bXSA9IHsNCj4gPj4+PiAgICAJTUtfRkxP V19JVEVNKElOVEVHUklUWSwgc2l6ZW9mKHN0cnVjdCBydGVfZmxvd19pdGVtX2ludGVncml0eSkp LA0KPiA+Pj4+ICAgIAlNS19GTE9XX0lURU0oQ09OTlRSQUNLLCBzaXplb2YodWludDMyX3QpKSwN Cj4gPj4+PiAgICAJTUtfRkxPV19JVEVNKEVUSERFViwgc2l6ZW9mKHN0cnVjdCBydGVfZmxvd19p dGVtX2V0aGRldikpLA0KPiA+Pj4+ICsJTUtfRkxPV19JVEVNKEVTV0lUQ0hfUE9SVCwgc2l6ZW9m KHN0cnVjdA0KPiA+Pj4+IHJ0ZV9mbG93X2l0ZW1fZXRoZGV2KSksDQo+ID4+Pj4gICAgfTsNCj4g Pj4+Pg0KPiA+Pj4+ICAgIC8qKiBHZW5lcmF0ZSBmbG93X2FjdGlvbltdIGVudHJ5LiAqLw0KPiA+ Pj4+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2L3J0ZV9mbG93LmggYi9saWIvZXRoZGV2L3J0ZV9m bG93LmggaW5kZXgNCj4gPj4+PiA4ODA1MDIwOThlLi4xYTdlNGMyZTNkIDEwMDY0NA0KPiA+Pj4+ IC0tLSBhL2xpYi9ldGhkZXYvcnRlX2Zsb3cuaA0KPiA+Pj4+ICsrKyBiL2xpYi9ldGhkZXYvcnRl X2Zsb3cuaA0KPiA+Pj4+IEBAIC01ODMsNiArNTgzLDE2IEBAIGVudW0gcnRlX2Zsb3dfaXRlbV90 eXBlIHsNCj4gPj4+PiAgICAJICogQHNlZSBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbV9ldGhkZXYNCj4g Pj4+PiAgICAJICovDQo+ID4+Pj4gICAgCVJURV9GTE9XX0lURU1fVFlQRV9FVEhERVYsDQo+ID4+ Pj4gKw0KPiA+Pj4+ICsJLyoqDQo+ID4+Pj4gKwkgKiBbTUVUQV0NCj4gPj4+PiArCSAqDQo+ID4+ Pj4gKwkgKiBNYXRjaGVzIHRyYWZmaWMgYXQgZS1zd2l0Y2ggZ29pbmcgZnJvbSB0aGUgZXh0ZXJu YWwgcG9ydCBhc3NvY2lhdGVkDQo+ID4+Pj4gKwkgKiB3aXRoIHRoZSBnaXZlbiBldGhkZXYsIGZv ciBleGFtcGxlLCB0cmFmZmljIGZyb20gbmV0LiBwb3J0IG9yIGd1ZXN0Lg0KPiA+Pj4+ICsJICoN Cj4gPj4+PiArCSAqIEBzZWUgc3RydWN0IHJ0ZV9mbG93X2l0ZW1fZXRoZGV2DQo+ID4+Pj4gKwkg Ki8NCj4gPj4+PiArCVJURV9GTE9XX0lURU1fVFlQRV9FU1dJVENIX1BPUlQsDQo+ID4+Pj4gICAg fTsNCj4gPj4+Pg0KPiA+Pj4+ICAgIC8qKg0KPiA+Pj4+IEBAIC0xODEzLDcgKzE4MjMsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IHJ0ZV9mbG93X2l0ZW1fY29ubnRyYWNrDQo+ID4+Pj4gcnRlX2Zs b3dfaXRlbV9jb25udHJhY2tfbWFzayA9IHsNCj4gPj4+PiAgICAgKiBAYiBFWFBFUklNRU5UQUw6 IHRoaXMgc3RydWN0dXJlIG1heSBjaGFuZ2Ugd2l0aG91dCBwcmlvciBub3RpY2UNCj4gPj4+PiAg ICAgKg0KPiA+Pj4+ICAgICAqIFByb3ZpZGVzIGFuIGV0aGRldiBJRCBmb3IgdXNlIHdpdGggaXRl bXMgd2hpY2ggYXJlIGFzIGZvbGxvd3M6DQo+ID4+Pj4gLSAqIFJURV9GTE9XX0lURU1fVFlQRV9F VEhERVYuDQo+ID4+Pj4gKyAqIFJURV9GTE9XX0lURU1fVFlQRV9FVEhERVYsDQo+ID4+Pj4gUlRF X0ZMT1dfSVRFTV9UWVBFX0VTV0lUQ0hfUE9SVC4NCj4gPj4+PiAgICAgKi8NCj4gPj4+PiAgICBz dHJ1Y3QgcnRlX2Zsb3dfaXRlbV9ldGhkZXYgew0KPiA+Pj4+ICAgIAl1aW50MTZfdCBpZDsgLyoq PCBFdGhkZXYgSUQgKi8NCj4gPj4+PiAtLQ0KPiA+Pj4+IDIuMzAuMg0KPiA+Pj4NCj4gPj4+IEJl c3QsDQo+ID4+PiBPcmkNCj4gPj4+DQo+ID4+DQo+ID4+IC0tDQo+ID4+IEl2YW4gTQ0KPiANCj4g LS0NCj4gSXZhbiBNDQoNClRoYW5rcywNCk9yaQ0K