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 B6387A0A0A; Thu, 3 Jun 2021 11:18:12 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9B61640E78; Thu, 3 Jun 2021 11:18:12 +0200 (CEST) Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam08on2051.outbound.protection.outlook.com [40.107.100.51]) by mails.dpdk.org (Postfix) with ESMTP id AD76F40DF6 for ; Thu, 3 Jun 2021 11:18:10 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d+C0DUmrOkcYW2B1msg9bZKhsi3SpFBp5jKLEzx0YubBK2li/7NZ+NYUZ8nE/FGoONQrUMYGaYi8W4vcUYwIKPnXcXbMXG+xk/b/04vRJiG6GEOPYmFhemShel6z/Vuj0pXGeoSARI8Jm32MVh1XiAc9FNwWLiJis3vKzeWXg4e1tEt9+3tG78GKn12WCQG8qp9r6xhP+unGdtrnkU//4v9NJ5Lq6mcvdahDampu9CV6rAfIfYfv8ftvNt2faOsrnctjZFEcpaa44TrX+cYXiemrt+58dKQ8q3leWs4XzFXacf0RZ0i0xMuJ6jHcsH0so0zg9nMCf6Mj9XNFJF/vRQ== 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-SenderADCheck; bh=F9fQK+ChF4xlpb3O2e+MGQpOaYiM/JR/Ph/ALbtRyYQ=; b=N2eQSwipDTRKHbfuwlpxO3Ipm8425M+rwvSpwzFg35IIn6VZ1dwIjZGekadp1A1VkvVg5Gxmn95oxBkQL96opIuJV4ldLwjTjAw1guaatYJ4zxRGSCgyBmIX4SFdEX76HxcnVQCtlXfT76KH0lef9n2hX96enTr2rHtnCccXFJ2ThW1D/4BpesFYK7LwaGvK7GAh3Wgy3R4ToG7AEFC0O64UUUZhGM1PCRFzoQ9JDtqAjzcNz8Bs8ONzhX3sLTuOOkrvSGpVqU+d1pVj06704j/cpuIX5g3/5hlBRb2AZL/5V5Rj/zp3TLF06o+8DdtsfKRa3tCbYa72VYq8D/k3Ng== 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=F9fQK+ChF4xlpb3O2e+MGQpOaYiM/JR/Ph/ALbtRyYQ=; b=DI1yEmN83gowXisLAtGzsLMSUYiDM9fQODj0zz/nbszXlfjrv4fKNUEpJf12bVkq2KmqBtAWgTLnnak0v32Fy6hF81Gb9JEKURvQnATVBrtPXNuCIrneUipJtjLJFLj7o4yTCn8tleZvRUl5XEzJ88CysgV1GELgODHDf4uqzuXj4+04KfqzBw3X32JSGNMYP8/MnEU7KrZq9MfVNwPimo1Z0HvRi8es14RKvwhSp9+9RkSLYUZ7oYsYsyo9+7u1nc8P4afDMYAe9PWCZwhGlFt2WWeXOeLEpydcbhIT7ERCX2gKNDTnR1ZycTUo45NPtTPBKGxkHxQEa0uJob/RMw== Received: from BL1PR12MB5335.namprd12.prod.outlook.com (2603:10b6:208:317::19) by BL1PR12MB5335.namprd12.prod.outlook.com (2603:10b6:208:317::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4195.23; Thu, 3 Jun 2021 09:18:05 +0000 Received: from BL1PR12MB5335.namprd12.prod.outlook.com ([fe80::6130:4ca:e5b6:4a36]) by BL1PR12MB5335.namprd12.prod.outlook.com ([fe80::6130:4ca:e5b6:4a36%9]) with mapi id 15.20.4195.023; Thu, 3 Jun 2021 09:18:05 +0000 From: Ori Kam To: Ivan Malov , Eli Britstein , Andrew Rybchenko , Ilya Maximets , "dev@dpdk.org" CC: Smadar Fuks , Hyong Youb Kim , Kishore Padmanabha , Ajit Khaparde , Jerin Jacob , John Daley , NBU-Contact-Thomas Monjalon , Ferruh Yigit Thread-Topic: [RFC PATCH] ethdev: clarify flow action PORT ID semantics Thread-Index: AQHXV50lg80QLCnE3keWtdcfvEbvkKsAk72AgAAUzQCAAU0JcA== Date: Thu, 3 Jun 2021 09:18:05 +0000 Message-ID: References: <20210601111420.5549-1-ivan.malov@oktetlabs.ru> <8c4f559e-3430-e2d5-1199-f1d4f4a8546d@ovn.org> <9ed06b56-26e1-5812-e357-81147e699b3b@nvidia.com> <11ed17c8-a3f4-3fcb-b11f-7c4ee903b991@oktetlabs.ru> <4e53dced-2e88-3fde-f2b7-cb2e1368c1c8@nvidia.com> <4447be7e-ce2a-a7a0-68e3-1de22a46cf80@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-originating-ip: [147.236.145.254] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1f58fff8-8ee4-4e1e-5024-08d926707edb x-ms-traffictypediagnostic: BL1PR12MB5335: 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:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /+fEOWFDTNWmKy1VCuUgren0Vz8DK9HnMNeyVP8dBRVP40qdkOtZKWfmI26aKh3uwu+tLsHynjRuFG2jiTzVgfU6igkUgTQpGUtF8lVQ8bZAm+FM+djkcOsY2njrd/dCvHO9GpIuRb+Dok2oGLyTKz9yljcLfEtlTZ5k1BTPXQ8qsAzykdakPscmKJPWxpgaeGQ8DAGnpCgS5+yeuJhB/E74CxVOwfDe+Yu6kKM3nW6L28wDaEBagpyybbz+t6+UXjYy0iIAQHhnfpG1h5LKWlJ6CL77oAL6A8z40D3aZxCqsSKsawoyjPceeCUyaMxnRS7dkx7WudCfK71ah+DCnmeVWgOxxVsxFyF8ounKJ49ZsqW5C89SRPaMAtolzj7aFQfdZxMvfOgQKbbN30MBbUobrPIRPYe8DILAP1o0zUvfo8Np6PVhaLx4xnwyE4Bj6l2oeZvpWCqLTcB2t0Tmuu3XRBCasNSrH3Ql3QNH/vNq1QWY4T2JJtUq1fVWbQM5clO/TdPb4g+GHFPEL9Ja2zUpfZzY3dKr/V+D0UR/o1KplVQ7ikrGYUSsCipZMaHRX4/jWtjXDrEgZJECxUBTNZVYUcOFASmVr9KCKp+1zr8G2Wwj2oVhcowVLcpYF1lRUSwP7xfa7Cwhy6dkHmvGIiIA6yPBMWOHpdAIdkUxt/HMvBtl1axGPVqLYi5tNr0A/t3faWEWdnAHIRZyotiUO6kdRO1J8zVZBfG4UWcOLY/KddHapfBOt27lCecNboHNrvnQ1SEV2YEviM4yiLiGbg== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL1PR12MB5335.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(396003)(346002)(136003)(376002)(366004)(8676002)(5660300002)(186003)(66556008)(478600001)(26005)(9686003)(53546011)(66446008)(64756008)(8936002)(2906002)(30864003)(52536014)(66476007)(55016002)(38100700002)(122000001)(86362001)(7416002)(4326008)(66946007)(6506007)(316002)(76116006)(7696005)(110136005)(54906003)(83380400001)(71200400001)(966005)(33656002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?bExERTU4L3FpRUJuSUp0S3dWVkk0aHRhdjVPbDNMNytrMzhOMWU5NnZTRUo4?= =?utf-8?B?dDhyOTVtd3E2NFMwWW4vMkl3RmxIWGsyMkw1eVlHMUtTNHVZRjY4YnRYd1Iz?= =?utf-8?B?NTMrY1FrUXlFL2pEZDVJV1FTdTYybE1hc1VBSlhlS0kydzVvQUMvZUkxTDNs?= =?utf-8?B?L2NnMnhVQnduRnNVZzBVcHAzWk1NeUlSY2tmOEVnZVlDWXB4MFlwWGVOMytX?= =?utf-8?B?a0tBSy9OWDVwTEhsU1BKcFA5TGM5dUMvZFgzTk9OWXd6ZXVtWHowdnl1VTdp?= =?utf-8?B?WDZMUjlSQUgwY2VHMzdZRVJRVDM5N0p6WTJITko0dHU0bGFuRDdkSnNXQ3Ju?= =?utf-8?B?LzVGTFMxUytBaEoreEJuVEZjUHRETW9BL2lqQkFKdHUzenpjaUxYMkxlZ1FO?= =?utf-8?B?djVaMHphRFZDaWRaRENZVUU4WlRYM2lQSmR5Skswb2FsdTRVamR2OXhpMjJR?= =?utf-8?B?c1Z0VnAwNVh5N1BFNE5zblN3SERZYkhFSEpsb2VTd0p2OGs4T2RmS2lUQzEz?= =?utf-8?B?MFNvNDVCRXFMMXZ0ZElKYVgvRDFZTlhPbVlHdzkwbWZtcEFMZmRvRm9keWZv?= =?utf-8?B?UTRiWDhsUXRlMHk1TWp0VDF2RmpacmoxUnU3ZE1XelZnc2h4Q2NWMk1JWG53?= =?utf-8?B?RlVLQXZ0YVQwNk5IUEZnKzNwWTI4WmRhNmRweFk3NVErODNKaE0vNEF6Nm5F?= =?utf-8?B?ZzlndzY1ODVPR3g5YzlmNVNaN3l5RjlMdWNQWTlxOG94M2NXSXhwQ0pvLzZT?= =?utf-8?B?UWYxWlI1eWJkVkFkM1pzMkpyZ2F6NU9HRzU5RENIOGRqQjJLQksyNUJaVmdl?= =?utf-8?B?cDFnWkw0OElMcXpmbDExV3JlMWdacTUzcVJiT0tsZUFtWHMwMURuS3VZNndQ?= =?utf-8?B?WGNFMURUdVZJMFo4WkVWaWNWcC85RG9ZYVdMWkYwanpxMXlzV1VHNy9QSzQr?= =?utf-8?B?alo5UmllWFVqNzY3a09TbFBHSm9VVHdib3FJZ3g2RktIeXZUaDllVUp0TWpi?= =?utf-8?B?bGFUekhseW13NStwd0N4TnF1S1hUdjNGbHRRVGx3aytvWUExZEw0dVZaUE1D?= =?utf-8?B?UWFTZlJ3WDg1MmhmeUJyaDZaL3J6eENhYmRWYnBHZ3lBZEl4d3dCNFV6aDRL?= =?utf-8?B?QzFvNjZhSk5MVzVlMGZ2L0VQaWxCNUNkVkR2K3Mxci9URkFVU2Zxc3FFc0t5?= =?utf-8?B?anFrTUhFVGQxZnlLSlRpSFh6T1RLYzdVNjhYYXlaZFM2UFdSWnZuM2tZRkF5?= =?utf-8?B?dDlwTldKOVFlcWxHRGVFY1BnWURiOHpQODluYlJKZDdhZk9SbzhFZzNLWVA2?= =?utf-8?B?WldEb2pHREZwM1JzOVoyclNOU09TQW1nWTU4bFo4NFkwVGxiZnZkREdVTlFQ?= =?utf-8?B?bDhVZU9FQUpqVkJZNmRvWmppemlQa3VuVk9nQzlKcXA2dGVEaFRaODBlWVNM?= =?utf-8?B?b2hRK3NyTUJkUnUvNFZrYkpoUzl5eUF3RHNvdGRxdG5Vbm82bit3VU1EeTA0?= =?utf-8?B?OHczYnFlMElXTmxncXNldHduWERlUmFvbFIxVXA0SDB5MHBtWjAyb0x4RHBV?= =?utf-8?B?WHZNemxXdGVBbE8yRVorNFBQaEd1U3RyampZd0w3eHNHaG5FSkwyWEFVWDh0?= =?utf-8?B?S0x5ZGtlN1dCZzk5UEF4K0NhWmIrQlZVK0pYWUswR01vNzRXYW9xRjdwTWhE?= =?utf-8?B?L0NIWTcwQ3Z4djQxdkwyWGJib3YyMjZZT0hPeEtSUktJU09jTW9TRzI0T3Z3?= =?utf-8?Q?ETQgmqhcC5q0XksifDO1vBraCXjeQBeyVuctJmd?= 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: BL1PR12MB5335.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1f58fff8-8ee4-4e1e-5024-08d926707edb X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Jun 2021 09:18:05.4517 (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: HFzKPNfVTTUUNu1sAXXCvgJmJL5l1yexDWaDiGmMKC9RGB/uu3O5hAh4URT0CJXWsTEcgu3EovvKM0D5uhvR0A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5335 Subject: Re: [dpdk-dev] [RFC PATCH] ethdev: clarify flow action PORT ID semantics 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" SGkgQWxsLA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEl2YW4gTWFs b3YgPEl2YW4uTWFsb3ZAb2t0ZXRsYWJzLnJ1Pg0KPiANCj4gT24gMDIvMDYvMjAyMSAxNDoyMSwg RWxpIEJyaXRzdGVpbiB3cm90ZToNCj4gPg0KPiA+IE9uIDYvMi8yMDIxIDE6NTAgUE0sIEFuZHJl dyBSeWJjaGVua28gd3JvdGU6DQo+ID4+IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlvbiBvcGVu aW5nIGxpbmtzIG9yIGF0dGFjaG1lbnRzDQo+ID4+DQo+ID4+DQo+ID4+IE9uIDYvMi8yMSAxMjo1 NyBQTSwgRWxpIEJyaXRzdGVpbiB3cm90ZToNCj4gPj4+IE9uIDYvMS8yMDIxIDU6NTMgUE0sIEFu ZHJldyBSeWJjaGVua28gd3JvdGU6DQo+ID4+Pj4gRXh0ZXJuYWwgZW1haWw6IFVzZSBjYXV0aW9u IG9wZW5pbmcgbGlua3Mgb3IgYXR0YWNobWVudHMNCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4gT24g Ni8xLzIxIDU6NDQgUE0sIEVsaSBCcml0c3RlaW4gd3JvdGU6DQo+ID4+Pj4+IE9uIDYvMS8yMDIx IDU6MzUgUE0sIEFuZHJldyBSeWJjaGVua28gd3JvdGU6DQo+ID4+Pj4+PiBFeHRlcm5hbCBlbWFp bDogVXNlIGNhdXRpb24gb3BlbmluZyBsaW5rcyBvciBhdHRhY2htZW50cw0KPiA+Pj4+Pj4NCj4g Pj4+Pj4+DQo+ID4+Pj4+PiBPbiA2LzEvMjEgNDoyNCBQTSwgRWxpIEJyaXRzdGVpbiB3cm90ZToN Cj4gPj4+Pj4+PiBPbiA2LzEvMjAyMSAzOjEwIFBNLCBJbHlhIE1heGltZXRzIHdyb3RlOg0KPiA+ Pj4+Pj4+PiBFeHRlcm5hbCBlbWFpbDogVXNlIGNhdXRpb24gb3BlbmluZyBsaW5rcyBvciBhdHRh Y2htZW50cw0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBPbiA2LzEvMjEgMTox NCBQTSwgSXZhbiBNYWxvdiB3cm90ZToNCj4gPj4+Pj4+Pj4+IEJ5IGl0cyB2ZXJ5IG5hbWUsIGFj dGlvbiBQT1JUX0lEIG1lYW5zIHRoYXQgcGFja2V0cyBoaXQgYW4NCj4gPj4+Pj4+Pj4+IGV0aGRl diB3aXRoIHRoZSBnaXZlbiBEUERLIHBvcnQgSUQuIEF0IGxlYXN0IHRoZSBjdXJyZW50DQo+ID4+ Pj4+Pj4+PiBjb21tZW50cyBkb24ndCBzdGF0ZSB0aGUgb3Bwb3NpdGUuDQo+ID4+Pj4+Pj4+PiBU aGF0IHNhaWQsIHNpbmNlIHBvcnQgcmVwcmVzZW50b3JzIGhhZCBiZWVuIGFkb3B0ZWQsDQo+ID4+ Pj4+Pj4+PiBhcHBsaWNhdGlvbnMgbGlrZSBPdlMgaGF2ZSBiZWVuIG1pc3VzaW5nIHRoZSBhY3Rp b24uIFRoZXkNCj4gPj4+Pj4+Pj4+IG1pc3JlYWQgaXRzIHB1cnBvc2UgYXMgc2VuZGluZyBwYWNr ZXRzIHRvIHRoZSBvcHBvc2l0ZSBlbmQgb2YNCj4gPj4+Pj4+Pj4+IHRoZSAid2lyZSIgcGx1Z2dl ZCB0byB0aGUgZ2l2ZW4gZXRoZGV2LCBmb3IgZXhhbXBsZSwNCj4gPj4+Pj4+Pj4+IHJlZGlyZWN0 aW5nIHBhY2tldHMgdG8gdGhlIFZGIGl0c2VsZiByYXRoZXIgdGhhbiB0byBpdHMNCj4gPj4+Pj4+ Pj4+IHJlcHJlc2VudG9yIGV0aGRldi4NCg0KU29ycnkgYnV0IE9WUyBnb3QgaXQgcmlnaHQsIHRo aXMgaXMgdGhlIGlkZWEgdG8gc2VuZCBwYWNrZXQgdG8gdGhlIFZGIG5vdCB0byB0aGUgcmVwcmVz ZW50b3IsIA0KSSB0aGluayB0aGF0IG91ciBmaXJzdCBkaXNjdXNzaW9uIHNob3VsZCBiZSB3aGF0 IGlzIGEgcmVwcmVzZW50b3IsDQpJIGtub3cgdGhhdCB0aGVyZSBhcmUgYSBsb3QgdGhyZWFkcyBh Ym91dCBpdCBidXQgaXQgaXMgc3RlZWwgdW5jbGVhci4gIA0KDQpGcm9tIG15IHVuZGVyc3RhbmRp bmcgcmVwcmVzZW50b3IgaXMgYSBzaGFkb3cgb2YgYSBWRg0KVGhpcyBzaGFkb3cgaGFzIHR3byBm dW5jdGlvbmFsaXRpZXM6DQoxLiBkYXRhDQpJdCBzaG91bGQgcmVjZWl2ZSBhbnkgcGFja2V0IHRo YXQgd2FzIHNlbnQgZnJvbSB0aGUgVkYgYW5kIHdhcyBub3QNCnJvdXRlZCB0byBhbnkgb3RoZXIg ZGVzdGluYXRpb24uIEFuZCB2aXNlIHZlcnNhIGFueSB0cmFmZmljIHNlbnQgb24gdGhlIHJlcHJl c2VudG9yLg0Kc2hvdWxkIGFycml2ZSB0byB0aGUgY29ycmVzcG9uZGluZyBWRi4NCldoYXQgdXNl IGNhc2UgZG8geW91IHNlZSBmb3Igc2VuZGluZyBhIHBhY2tldCB0byB0aGUgcmVwcmVzZW50b3I/ DQoNCjIuIGNvbnRyb2wNCmFsbG93IHRvIG1vZGlmeSB0aGUgVkYgZnJvbSBEUERLIGFwcGxpY2F0 aW9uLg0KDQpSZWdhcmRpbmcgdGhlIDEgcG9pbnQgb2YgdGhlIGRhdGEsIEkgZG9uJ3Qgc2VlIGFu eSBzZW5zZSBpZiByb3V0aW5nIHRyYWZmaWMgdG8gcmVwcmVzZW50b3IuDQpXaGlsZSBvbiBwb2lu dCAyIGNvbnRyb2wgdGhlaXIgbWF5YmUgc29tZSBjYXNlcyB0aGF0IHdlIHdhbnQgdG8gY29uZmln dXJlIHRoZSByZXByZXNlbnRvciBpdHNlbGYNCmFuZCBub3QgdGhlIFZGIGZvciBleGFtcGxlIGNo YW5naW5nIG10dS4NCg0KPiA+Pj4+Pj4+Pj4gQW5vdGhlciBleGFtcGxlOiBPdlMgcmVsaWVzIG9u IHRoaXMgYWN0aW9uIHdpdGggdGhlIGFkbWluIFBGJ3MNCj4gPj4+Pj4+Pj4+IGV0aGRldiBwb3J0 IElEIHNwZWNpZmllZCBpbiBpdCBpbiBvcmRlciB0byBzZW5kIG9mZmxvYWRlZA0KPiA+Pj4+Pj4+ Pj4gcGFja2V0cyB0byB0aGUgcGh5c2ljYWwgcG9ydC4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ PiBTaW5jZSB0aGVyZSBtaWdodCBiZSBhcHBsaWNhdGlvbnMgd2hpY2ggdXNlIHRoaXMgYWN0aW9u IGluIGl0cw0KPiA+Pj4+Pj4+Pj4gdmFsaWQgc2Vuc2UsIG9uZSBjYW4ndCBqdXN0IGNoYW5nZSB0 aGUgZG9jdW1lbnRhdGlvbiB0bw0KPiA+Pj4+Pj4+Pj4gZ3JlZW5saWdodCB0aGUgb3Bwb3NpdGUg bWVhbmluZy4NCj4gPj4+Pj4+Pj4+IFRoaXMgcGF0Y2ggYWRkcyBhbiBleHBsaWNpdCBiaXQgdG8g dGhlIGFjdGlvbiBjb25maWd1cmF0aW9uDQo+ID4+Pj4+Pj4+PiB3aGljaCB3aWxsIGxldCBhcHBs aWNhdGlvbnMsIGRlcGVuZGluZyBvbiB0aGVpciBuZWVkcywNCj4gPj4+Pj4+Pj4+IGxldmVyYWdl IHRoZSB0d28gbWVhbmluZ3MgcHJvcGVybHkuDQo+ID4+Pj4+Pj4+PiBBcHBsaWNhdGlvbnMgbGlr ZSBPdlMsIGFzIHdlbGwgYXMgUE1Ecywgd2lsbCBoYXZlIHRvIGJlDQo+ID4+Pj4+Pj4+PiBjb3Jy ZWN0ZWQgd2hlbiB0aGUgcGF0Y2ggaGFzIGJlZW4gYXBwbGllZC4gQnV0IHRoZSBpbXByb3ZlZA0K PiA+Pj4+Pj4+Pj4gY2xhcml0eSBvZiB0aGUgYWN0aW9uIGlzIHdvcnRoIGl0Lg0KPiA+Pj4+Pj4+ Pj4NCj4gPj4+Pj4+Pj4+IFRoZSBwcm9wb3NlZCBjaGFuZ2UgaXMgbm90IHRoZSBvbmx5IG9wdGlv bi4gT25lIGNvdWxkIGF2b2lkDQo+ID4+Pj4+Pj4+PiBjaGFuZ2VzIGluIE92UyBhbmQgUE1EcyBp ZiB0aGUgbmV3IGNvbmZpZ3VyYXRpb24gZmllbGQgaGFkIHRoZQ0KPiA+Pj4+Pj4+Pj4gb3Bwb3Np dGUgbWVhbmluZywgd2l0aCB0aGUgYWN0aW9uIGl0c2VsZiBtZWFuaW5nIGRlbGl2ZXJ5IHRvDQo+ ID4+Pj4+Pj4+PiB0aGUgcmVwcmVzZW50ZWQgcG9ydCBhbmQgbm90IHRvIERQREsgb25lLg0KPiA+ Pj4+Pj4+Pj4gQWx0ZXJuYXRpdmVseSwgb25lIGNvdWxkIGRlZmluZSBhIGJyYW5kIG5ldyBhY3Rp b24gd2l0aCB0aGUNCj4gPj4+Pj4+Pj4+IHNhaWQgYmVoYXZpb3VyLg0KPiA+Pj4+Pj4+IEl0IGRv ZXNuJ3QgbWFrZSBhbnkgc2Vuc2UgdG8gYXR0YWNoIHRoZSBWRiBpdHNlbGYgdG8gT1ZTLCBidXQN Cj4gPj4+Pj4+PiBvbmx5IGl0cyByZXByZXNlbnRvci4NCj4gPj4+Pj4+IE92UyBpcyBub3QgdGhl IG9ubHkgRFBESyBhcHBsaWNhdGlvbi4NCj4gPj4+Pj4gVHJ1ZS4gSXQgaXMganVzdCB0aGUgZm9j dXMgb2YgdGhpcyBjb21taXQgbWVzc2FnZSBpcyBPVlMuDQo+ID4+Pj4+Pj4gRm9yIHRoZSBQRiwg d2hlbiBpbiBzd2l0Y2hkZXYgbW9kZSwgaXQgaXMgdGhlICJ1cGxpbmsNCj4gPj4+Pj4+PiByZXBy ZXNlbnRvciIsIHNvIGl0IGlzIGFsc28gYSByZXByZXNlbnRvci4NCj4gPj4+Pj4+IFN0cmljdGx5 IHNwZWFraW5nIGl0IGlzIG5vdCBhIHJlcHJlc2VudG9yIGZyb20gRFBESyBwb2ludCBvZg0KPiA+ Pj4+Pj4gdmlldy4gRS5nLiByZXByZXNlbnRvcnMgaGF2ZSBjb3JyZXNwb25kaW5nIGZsYWcgc2V0 IHdoaWNoIGlzDQo+ID4+Pj4+PiBkZWZpbml0ZWx5IGNsZWFyIGluIHRoZSBjYXNlIG9mIFBGLg0K PiA+Pj4+PiBUaGlzIGlzIHRoZSBwZXItUE1EIHJlc3BvbnNpYmlsaXR5LiBUaGUgQVBJIHNob3Vs ZCBub3QgY2FyZS4NCj4gPj4+Pj4+PiBUaGF0IHNhaWQsIE9WUyBkb2VzIG5vdCBjYXJlIG9mIHRo ZSB0eXBlIG9mIHRoZSBwb3J0LiBJdCBkb2Vzbid0DQo+ID4+Pj4+Pj4gbWF0dGVyIGlmIGl0J3Mg YW4gInVwc3RyZWFtIiBvciBub3QsIG9yIGlmIGl0J3MgYSByZXByZXNlbnRvciBvcg0KPiA+Pj4+ Pj4+IG5vdC4NCj4gPj4+Pj4+IFllcywgaXQgaXMgY2xlYXIsIGJ1dCBsZXQncyBwdXQgT3ZTIGFz aWRlLiBMZXQncyBjb25zaWRlciBhIERQREsNCj4gPj4+Pj4+IGFwcGxpY2F0aW9uIHdoaWNoIGhh cyBhIG51bWJlciBvZiBldGhkZXYgcG9ydC4gU29tZSBtYXkgYmVsb25nIHRvDQo+ID4+Pj4+PiBz aW5nbGUgc3dpdGNoIGRvbWFpbiwgc29tZSBtYXkgYmUgZnJvbSBkaWZmZXJlbnQgc3dpdGNoIGRv bWFpbnMNCj4gPj4+Pj4+IChpLmUuIGRpZmZlcmVudCBOSUNzKS4gQ2FuIEkgdXNlIFBPUlRfSUQg YWN0aW9uIHRvIHJlZGlyZWN0DQo+ID4+Pj4+PiBpbmdyZXNzIHRyYWZmaWMgdG8gYSBzcGVjaWZp ZWQgZXRoZGV2IHBvcnQgdXNpbmcgUE9SVF9JRCBhY3Rpb24/DQo+ID4+Pj4+PiBJdCBsb29rcyBs aWtlIG5vLCBidXQgSU1ITyBpdCBpcyB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgUE9SVF9JRA0KPiA+ Pj4+Pj4gYWN0aW9uLg0KPiA+Pj4+PiBMZXQncyBzZXBhcmF0ZSBBUEkgZnJvbSBpbXBsZW1lbnRh dGlvbi4gQnkgQVBJIHBvaW50IG9mIHZpZXcsIHllcywNCj4gPj4+Pj4gdGhlIHVzZXIgbWF5IHJl cXVlc3QgaXQuIE5vdGhpbmcgd3Jvbmcgd2l0aCBpdC4NCj4gPj4+Pj4NCj4gPj4+Pj4gwqAgRnJv bSBpbXBsZW1lbnRhdGlvbiBwb2ludCBvZiB2aWV3IC0geWVzLCBpdCBtaWdodCBmYWlsLCBidXQg bm90DQo+ID4+Pj4+IGZvciBzdXJlLCBldmVuIGlmIG9uIGRpZmZlcmVudCBOSUNzLiBNYXliZSB0 aGUgSFcgb2YgYSBjZXJ0YWluDQo+ID4+Pj4+IHZlbmRvciBoYXMgdGhlIGNhcGFiaWxpdHkgdG8g ZG8gaXQ/DQo+ID4+Pj4+DQo+ID4+Pj4+IFdlIGNhbid0IGtub3csIHNvIEkgdGhpbmsgdGhlIEFQ SSBzaG91bGQgYWxsb3cgaXQuDQo+ID4+Pj4gSG9sZCBvbi4gV2hhdCBzaG91bGQgaXQgYWxsb3c/ IEl0IGlzIHR3byBvcHBvc2l0ZSBtZWFuaW5nczoNCj4gPj4+PiDCoMKgIDEuIERpcmVjdCB0cmFm ZmljIHRvIERQREsgZXRoZGV2IHBvcnQgc3BlY2lmaWVkIHVzaW5nIElEIHRvIGJlDQo+ID4+Pj4g wqDCoMKgwqDCoCByZWNlaXZlZCBhbmQgcHJvY2Vzc2VkIGJ5IHRoZSBEUERLIGFwcGxpY2F0aW9u Lg0KPiA+Pj4+IMKgwqAgMi4gRGlyZWN0IHRyYWZmaWMgdG8gYW4gdXBzdHJlYW0gcG9ydCByZXBy ZXNlbnRlZCBieSB0aGUNCj4gPj4+PiDCoMKgwqDCoMKgIERQREsgcG9ydC4NCj4gPj4+Pg0KPiA+ Pj4+IFRoZSBwYXRjaCB0cmllcyB0byBhZGRyZXNzIHRoZSBhbWJpZ3VpdHksIG1pc3VzZSBpdCBp biBPdlMgKGZyb20gbXkNCj4gPj4+PiBwb2ludCBvZiB2aWV3IGluIGFjY29yZGFuY2Ugd2l0aCB0 aGUgYWN0aW9uIGRvY3VtZW50YXRpb24pLA0KPiA+Pj4+IG1pcy1pbXBsZW1lbnRhdGlvbiBpbiBh IG51bWJlciBvZiBQTURzICh0byB3b3JrIGluIE92UykgYW5kIHRyaWVzDQo+ID4+Pj4gdG8gc29y dCBpdCBvdXQgd2l0aCBhbiBleHBsYW5hdGlvbiB3aHkgcHJvcG9zZWQgZGlyZWN0aW9uIGlzDQo+ ID4+Pj4gY2hvc2VuLiBJIHJlYWxpemUgdGhhdCBpdCBjb3VsZCBiZSBwYWluZnVsLCBidXQgSU1I TyBpdCBpcyB0aGUgYmVzdA0KPiA+Pj4+IG9wdGlvbiBoZXJlLiBZZXMsIGl0IGlzIGEgcG9pbnQg dG8gZGlzY3Vzcy4NCj4gPj4+Pg0KPiA+Pj4+IFRvIHN0YXJ0IHdpdGggd2Ugc2hvdWxkIGFncmVl IHRoYXQgdGhhdCBwcm9ibGVtIGV4aXN0cy4NCj4gPj4+PiBTZWNvbmQsIHdlIHNob3VsZCBhZ3Jl ZSBvbiBkaXJlY3Rpb24gaG93IHRvIHNvbHZlIGl0Lg0KPiA+Pj4gSSBhZ3JlZS4gU3VwcG9zZSBw b3J0IDAgaXMgdGhlIFBGLCBhbmQgcG9ydCAxIGlzIGEgVkYgcmVwcmVzZW50b3IuDQo+ID4+Pg0K PiA+Pj4gSUlVQywgdGhlcmUgYXJlIHR3byBvcHRpb25zOg0KPiA+Pj4NCj4gPj4+IDEuIGZsb3cg Y3JlYXRlIDEgaW5ncmVzcyB0cmFuc2ZlciBwYXR0ZXJuIGV0aCAvIGVuZCBhY3Rpb24gcG9ydF9p ZA0KPiA+Pj4gaWQgMCB1cHN0cmVhbSAxIC8gZW5kDQo+ID4+Pg0KDQpXaGF0IGlzIHRoZSBtZWFu aW5nIG9mIHVwc3RyZWFtIGlmIEkgd2FudCB0byBzZW5kIHRyYWZmaWMgYmV0d2VlbiBWRnM/DQoN Cj4gPj4+IDIuIGZsb3cgY3JlYXRlIDEgaW5ncmVzcyB0cmFuc2ZlciBwYXR0ZXJuIGV0aCAvIGVu ZCBhY3Rpb24gcG9ydF9pZA0KPiA+Pj4gaWQgMCB1cHN0cmVhbSAwIC8gZW5kDQo+ID4+Pg0KPiA+ Pj4gWzFdIGlzIHRoZSBzYW1lIGJlaGF2aW9yIGFzIHRvZGF5Lg0KPiA+Pj4NCj4gPj4+IFsyXSBp cyBhIG5ldyBiZWhhdmlvciwgdGhlIHBhY2tldCByZWNlaXZlZCBieSBwb3J0IDAgYXMgaWYgaXQN Cj4gPj4+IGFycml2ZWQgZnJvbSB0aGUgd2lyZS4NCj4gPj4+DQo+ID4+PiBUaGVuLCBsZXQncyBo YXZlIG1vcmU6DQo+ID4+Pg0KPiA+Pj4gMy4gZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHRyYW5zZmVy IHBhdHRlcm4gZXRoIC8gZW5kIGFjdGlvbiBwb3J0X2lkDQo+ID4+PiBpZCAxIHVwc3RyZWFtIDEg LyBlbmQNCj4gPj4+DQo+ID4+PiA0LiBmbG93IGNyZWF0ZSAwIGluZ3Jlc3MgdHJhbnNmZXIgcGF0 dGVybiBldGggLyBlbmQgYWN0aW9uIHBvcnRfaWQNCj4gPj4+IGlkIDEgdXBzdHJlYW0gMCAvIGVu ZA0KPiA+Pj4NCj4gPj4+IGlmIHdlIGhhdmUgWzJdIGFuZCBbNF0sIHRoZSBwYWNrZXQgZ29pbmcg ZnJvbSB0aGUgVkYgd2lsbCBoaXQgWzJdLA0KPiA+Pj4gdGhlbiBoaXQgWzRdIGFuZCB0aGVuIFsy XSBhZ2FpbiBpbiBhbiBlbmRsZXNzIGxvb3A/DQo+ID4+IEFzIEkgdW5kZXJzdGFuZCBQT1JUX0lE IGlzIGEgZmF0ZSBhY3Rpb24uIFNvLCBubyBtb3JlIGxvb2t1cHMgYXJlDQo+ID4+IGRvbmUuIElm IHRoZSBwYWNrZXQgaXMgbG9vcCBiYWNrIGZyb20gYXBwbGljYXRpb25zLCBsb29wIGlzIHBvc3Np YmxlLg0KPiA+DQo+ID4gSSByZWZlcnJlZCBhIEhXIGxvb3AsIG5vdCBTVy4gRm9yIGV4YW1wbGUg d2l0aCBKVU1QIGFjdGlvbiAoYWxzbyBmYXRlKToNCj4gPg0KPiA+IGZsb3cgY3JlYXRlIDAgZ3Jv dXAgMCBpbmdyZXNzIHRyYW5zZmVyIHBhdHRlcm4gZXRoIC8gZW5kIGFjdGlvbiBqdW1wDQo+ID4g Z3JvdXAgMSAvIGVuZA0KPiA+DQo+ID4gZmxvdyBjcmVhdGUgMCBncm91cCAxIGluZ3Jlc3MgdHJh bnNmZXIgcGF0dGVybiBldGggLyBlbmQgYWN0aW9uIGp1bXANCj4gPiBncm91cCAwIC8gZW5kDQo+ ID4NCj4gPj4NCj4gPj4gSW4gZmFjdCwgaXQgaXMgYSBnb29kIHF1ZXN0aW9uIGlmICJmbG93IGNy ZWFyZSAwIGluZ3Jlc3MgdHJhbnNmZXIiIG9yDQo+ID4+ICJmbG93IGNyZWF0ZSAxIGluZ3Jlc3Mg dHJhbnNmZXIiIGFzc3VtZSBhbnkgaW1wbGljaXQgZmlsdGVyaW5nLiBJDQo+ID4+IGFsd2F5cyB0 aG91Z2h0IHRoYXQgbm8uDQoNClRoaXMgaXMgYSBtYXR0ZXIgZm9yIGRpc2N1c3Npb24gYnV0IGN1 cnJlbnRseSB3ZSBkbyBoYXZlIGltcGxpY2l0IGZpbHRlcmluZyANCm9uIHRoZSBzb3VyY2UgVkYN Cg0KPiA+PiBpLmUuIGlmIHdlIGhhdmUgdHdvIG5ldHdvcmsgcG9ydHMgcnVsZSBsaWtlDQo+ID4+ IMKgwqAgZmxvdyBjcmVhdGUgMCBpbmdyZXNzIHRyYW5zZmVyIHBhdHRlcm4gZXRoIC8gZW5kIFwN Cj4gPj4gwqDCoMKgwqDCoMKgwqAgYWN0aW9uIHBvcnRfaWQgaWQgMSB1cHN0cmVhbSAxIC8gZW5k IHdpbGwgbWF0Y2ggcGFja2V0cw0KPiA+PiBpbmNvbWluZyBmcm9tIGFueSBwb3J0IGludG8gdGhl IHN3aXRjaCAobmV0d29yayBwb3J0IDAsIG5ldHdvcmsgcG9ydA0KPiA+PiAxLCBWRiBvciBQRiBp dHNlbGYgKD8/PykpLg0KPiA+PiBUaGUgdG9waWMgYWxzbyByZXF1aXJlcyBleHBsaWNpdCBjbGFy aWZpY2F0aW9uLg0KPiA+IHJ0ZV9mbG93IGlzIHBvcnQgYmFzZWQuIEl0IGltcGxpY2l0bHkgZmls dGVycyBvbmx5IHBhY2tldHMgZm9yIHRoZQ0KPiA+IHByb3ZpZGVkIHBvcnQgKDApLg0KPiA+DQo+ ID4gTWF5YmUgbmVlZCB0byBjbGFyaWZ5IGRvY3VtZW50YXRpb24gYW5kIGhhdmUgYSAibm8gZmls dGVyaW5nIiBBUEkgaWYNCj4gPiBuZWVkZWQuDQoNCk1heWJlDQoNCj4gDQo+IFdlJ3ZlIGNvbWUg YWNyb3NzIHRoZSBmb2xsb3dpbmcgYml0cyBpbiB0aGUgY3VycmVudCBkb2N1bWVudGF0aW9uIHdp dGgNCj4gcmVzcGVjdCB0byBhdHRyaWJ1dGUgInRyYW5zZmVyIiwgcXVvdGU6DQo+IA0KPiAiSW5z dGVhZCBvZiBzaW1wbHkgbWF0Y2hpbmcgdGhlIHByb3BlcnRpZXMgb2YgdHJhZmZpYyBhcyBpdCB3 b3VsZCBhcHBlYXIgb24gYQ0KPiBnaXZlbiBEUERLIHBvcnQgSUQsIGVuYWJsaW5nIHRoaXMgYXR0 cmlidXRlIHRyYW5zZmVycyBhIGZsb3cgcnVsZSB0byB0aGUgbG93ZXN0DQo+IHBvc3NpYmxlIGxl dmVsIG9mIGFueSBkZXZpY2UgZW5kcG9pbnRzIGZvdW5kIGluIHRoZSBwYXR0ZXJuLg0KPiANCj4g V2hlbiBzdXBwb3J0ZWQsIHRoaXMgZWZmZWN0aXZlbHkgZW5hYmxlcyBhbiBhcHBsaWNhdGlvbiB0 byByZXJvdXRlIHRyYWZmaWMgbm90DQo+IG5lY2Vzc2FyaWx5IGludGVuZGVkIGZvciBpdCAoZS5n LiBjb21pbmcgZnJvbSBvciBhZGRyZXNzZWQgdG8gZGlmZmVyZW50DQo+IHBoeXNpY2FsIHBvcnRz LCBWRnMgb3IgYXBwbGljYXRpb25zKSBhdCB0aGUgZGV2aWNlIGxldmVsIi4NCj4gDQo+IChodHRw czovL2RvYy5kcGRrLm9yZy9ndWlkZXMvcHJvZ19ndWlkZS9ydGVfZmxvdy5odG1sI2F0dHJpYnV0 ZXMpDQo+IA0KPiBTaW5jZSBhY3Rpb24gUE9SVF9JRCBoYXJkbHkgbWFrZXMgc2Vuc2Ugd2l0aG91 dCBhdHRyaWJ1dGUgInRyYW5zZmVyIg0KPiAodW5sZXNzIGl0IGRvZXNuJ3QgcG9pbnQgdG8gdGhl IHNhbWUgZXRoZGV2IGFzIHRoZSBvbmUgdXNlZCB0byBzdWJtaXQgdGhlDQo+IGZsb3cpLCB0aGlz IHBhcmFncmFwaCBlZmZlY3RpdmVseSBzdGF0ZXMgdGhhdCBpbiB0aGlzIHBhcnRpY3VsYXIgY2Fz ZSBBUEkNCj4gImZsb3dfY3JlYXRlIiBpcyBub3QgKG5lY2Vzc2FyaWx5KSBwb3J0LWJhc2VkLg0K PiANCkknbSBub3Qgc3VyZSBJIHVuZGVyc3RhbmQgd2hhdCB5b3UgbWVhbiBwb3J0IGJhc2VkLg0K DQo+ID4NCj4gPj4gUEYgaXRzZWxmIGlzIHJlYWxseSBhIGhhcmQgcXVlc3Rpb24gYmVjYXVzZSBv ZiAiaW5ncmVzcyINCj4gPj4gc2luY2UgdHJhZmZpYyBmcm9tIFBGIGlzIGEgdHJhZmZpYyBmcm9t IERQREsgYXBwbGljYXRpb24gYW5kIGl0IGlzDQo+ID4+IGVncmVzcywgbm90IGluZ3Jlc3MuDQo+ ID4NCj4gPiBJbmdyZXNzIG1lYW5zIHRoZSBkaXJlY3Rpb24uIEhpdCBvbiBwYWNrZXRzIG90aGVy d2lzZSBwcm92aWRlZCB0byB0aGUNCj4gPiBTVyBieSBydGVfZXRoX3J4X2J1cnN0KCkuDQo+ID4N Cj4gPiBTYW1lIGdvZXMgZm9yIHRoZSBQRi4gUGFja2V0cyBieSBydGVfZXRoX3J4X2J1cnN0IGFy ZSB0aGUgb25lcw0KPiA+IGFycml2aW5nIGZyb20gdGhlIHdpcmUsIHNvIGluZ3Jlc3MgaXMgdGhh dCBkaXJlY3Rpb24gYW5kIGVncmVzcyBpcyBmcm9tIHRoZQ0KPiBhcHAuDQo+ID4NCj4gPj4NCj4g Pj4gSSB0aGluayB0aGF0IHBvcnQgSUQgdXNlZCB0byBjcmVhdGVkIGZsb3cgcnVsZSBzaG91bGQg bm90IGFwcGx5IGFueQ0KPiA+PiBmaWx0ZXJpbmcgaW4gdGhlIGNhc2Ugb2YgdHJhbnNmZXIgc2lu Y2Ugd2UgaGF2ZSBjb3JyZXNwb25kaW5nIGl0ZW1zDQo+ID4+IHRvIGRvIGl0IGV4cGxpY2l0bHku IElmIHdlIGRvIGl0IGltcGxpY2l0bHkgYXMgd2VsbCwgd2UgbmVlZCBzb21lDQo+ID4+IHByaW9y aXRpZXMgYW5kIGEgd2F5IHRvIGF2b2lkIGltcGxpY2l0IHJ1bGVzIHdoaWNoIG1ha2VzIHRoaW5n cyBtdWNoDQo+ID4+IGhhcmRlciB0byB1bmRlcnN0YW5kIGFuZCBpbXBsZW1lbnQuDQo+ID4NCg0K SSBhZ3JlZSB3aXRoIHlvdXIgcG9pbnQsIEkgdGhpbmsgdGhlIGFwcGxpY2F0aW9uIHNob3VsZCBz dGF0ZSBleGFjdGx5IHdoYXQgaXQgd2FudHMuDQoNCkJlc3QsDQpPcmkNCj4gPiBJZiAidXBzdHJl YW0gMCIgbWVhbnMgd2hhdCBJIHRob3VnaHQgaXQgbWVhbnMgKGNvbW1lbnRzPykgbWF5YmUgYQ0K PiA+IGJldHRlciB3YXkgdG8gZG8gaXQgaXMgZXhwb3NlIGFub3RoZXIgcG9ydCBmb3IgdGhhdCwg c28gdGhlcmUgd2lsbCBiZSAyICJQRiINCj4gPiBwb3J0cyAtIG9uZSBhcyB0aGUgd2lyZSByZXBy ZXNlbnRvciBhbmQgdGhlIG90aGVyIG9uZSBhcyB0aGUgIlBGIiAob3INCj4gPiBjbGVhcmVyIG5h bWluZy4uLikuDQo+ID4NCj4gPiBUaGlzIHdvdWxkIGJlIGEgdmVuZG9yIGRlY2lzaW9uLCBhbmQg dGhlcmUgd291bGQgYmUgbm8gbmVlZCB0byBjaGFuZ2UNCj4gPiBQT1JUX0lEIEFQSS4NCj4gPg0K PiA+Pg0KPiA+Pj4gSWYgdGhpcyBpcyB5b3VyIG1lYW5pbmcsIG1heWJlIHdoYXQgeW91IGFyZSBs b29raW5nIGZvciBpcyBhbiBhY3Rpb24NCj4gPj4+IHRvIGNoYW5nZSB0aGUgaW5fcG9ydCBhbmQg Y29udGludWUgcHJvY2Vzc2luZz8NCj4gPj4+DQo+ID4+PiBQbGVhc2UgY29tbWVudCBvbiB0aGUg ZXhhbXBsZXMgSSBnYXZlIG9yIGNsYXJpZnkgdGhlIHVzZSBjYXNlIHlvdQ0KPiA+Pj4gYXJlIHRy eWluZyB0byBkby4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gVGhhbmtzLA0KPiA+Pj4NCj4gPj4+IEVs aQ0KPiA+Pj4NCj4gPj4+Pj4+Pj4gV2UgaGFkIGFscmVhZHkgdmVyeSBzaW1pbGFyIGRpc2N1c3Np b25zIHJlZ2FyZGluZyB0aGUNCj4gPj4+Pj4+Pj4gdW5kZXJzdGFuZGluZyBvZiB3aGF0IHRoZSBy ZXByZXNlbnRvciByZWFsbHkgaXMgZnJvbSB0aGUgRFBESw0KPiA+Pj4+Pj4+PiBBUEkncyBwb2lu dCBvZiB2aWV3LCBhbmQgdGhlIGxhc3QgdGltZSwgSUlVQywgaXQgd2FzIGNvbmNsdWRlZA0KPiA+ Pj4+Pj4+PiBieSBhIHRlY2guIGJvYXJkIHRoYXQgcmVwcmVzZW50b3Igc2hvdWxkIGJlIGEgImdo b3N0IG9mIGEgVkYiLA0KPiA+Pj4+Pj4+PiBpLmUuIERQREsgQVBJcyBzaG91bGQgYXBwbHkgY29u ZmlndXJhdGlvbiBieSBkZWZhdWx0IHRvIFZGIGFuZA0KPiA+Pj4+Pj4+PiBub3QgdG8gdGhlIHJl cHJlc2VudG9yIGRldmljZToNCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4NCj4gaHR0cHM6Ly9wYXRj aGVzLmRwZGsub3JnL3Byb2plY3QvZHBkay9jb3Zlci8yMDE5MTAyOTE4NTA1MS4zMjIwDQo+ID4+ Pj4+Pj4+IDMtMS10aG9tYXNAbW9uamFsb24ubmV0LyMxMDQzNzYNCj4gPj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gVGhpcyB3YXNuJ3QgZW5m b3JjZWQgdGhvdWdoLCBJSVVDLCBmb3IgZXhpc3RpbmcgY29kZSBhbmQNCj4gPj4+Pj4+Pj4gc2Vt YW50aWNzIGlzIHN0aWxsIG1peGVkLg0KPiA+Pj4+Pj4+IEkgYW0gbm90IHN1cmUgaG93IHRoaXMg aXMgcmVsYXRlZC4NCj4gPj4+Pj4+Pj4gSSBzdGlsbCB0aGluayB0aGF0IGNvbmZpZ3VyYXRpb24g c2hvdWxkIGJlIGFwcGxpZWQgdG8gVkYsIGFuZA0KPiA+Pj4+Pj4+PiB0aGUgc2FtZSBhcHBsaWVz IHRvIHJ0ZV9mbG93IEFQSS7CoCBJTUhPLCBhdmVyYWdlIGFwcGxpY2F0aW9uDQo+ID4+Pj4+Pj4+ IHNob3VsZCBub3QgY2FyZSBpZiBkZXZpY2UgaXMgYSBWRiBpdHNlbGYgb3IgaXRzIHJlcHJlc2Vu dG9yLg0KPiA+Pj4+Pj4+PiBFdmVyeXRoaW5nIHNob3VsZCB3b3JrIGV4YWN0bHkgdGhlIHNhbWUu DQo+ID4+Pj4+Pj4+IEkgdGhpbmsgdGhpcyBtYXRjaGVzIHdpdGggdGhlIG9yaWdpbmFsIGlkZWEv ZGVzaWduIG9mIHRoZQ0KPiA+Pj4+Pj4+PiBzd2l0Y2hkZXYgZnVuY3Rpb25hbGl0eSBpbiB0aGUg bGludXgga2VybmVsIGFuZCBhbHNvIG1hdGNoZXMNCj4gPj4+Pj4+Pj4gd2l0aCBob3cgdGhlIGF2 ZXJhZ2UgdXNlciB0aGlua3MgYWJvdXQgcmVwcmVzZW50b3IgZGV2aWNlcy4NCj4gPj4+Pj4+PiBS aWdodC4gVGhpcyBpcyB0aGUgd2F5IHJlcHJlc2VudG9ycyB3b3JrLiBJdCBpcyBmdWxseSBhbGln bmVkDQo+ID4+Pj4+Pj4gd2l0aCBjb25maWd1cmF0aW9uIG9mIE9WUy1rZXJuZWwuDQo+ID4+Pj4+ Pj4+IElmIHNvbWUgc3BlY2lmaWMgdXNlLWNhc2UgcmVxdWlyZXMgdG8gZGlzdGluZ3Vpc2ggVkYg ZnJvbSB0aGUNCj4gPj4+Pj4+Pj4gcmVwcmVzZW50b3IsIHRoZXJlIHNob3VsZCBwcm9iYWJseSBi ZSBhIHNlcGFyYXRlIHNwZWNpYWwNCj4gPj4+Pj4+Pj4gQVBJL2ZsYWcgZm9yIHRoYXQuDQo+ID4+ Pj4+Pj4+DQo+ID4+Pj4+Pj4+IEJlc3QgcmVnYXJkcywgSWx5YSBNYXhpbWV0cy4NCj4gDQo+IC0t DQo+IEl2YW4gTQ0K