From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60088.outbound.protection.outlook.com [40.107.6.88]) by dpdk.org (Postfix) with ESMTP id C1D992B9A for ; Mon, 17 Sep 2018 08:29:04 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CPoiE3s6tJIRrT0MwAyi/axXK5vqWgFw2b8BY/PgJSE=; b=fmc0+4oGdCnFad0zuJdHNOES4VwvzQv1MmMS3NX7PXttyURJID9zm8FGEOdNe2bOo85a99DWOGgP+DiB/9VXVm8FiliO1eGS4xRmsQcpel7Fh5hL9sCHHwWixC/aacxlI/REOstRoNjSBHwYU6RA2rv0HIDOP0MRG/kv5wBzXuo= Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com (52.133.41.11) by AM0PR0502MB3811.eurprd05.prod.outlook.com (52.133.47.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1143.18; Mon, 17 Sep 2018 06:29:03 +0000 Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::d0a5:94d3:26eb:92cf]) by AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::d0a5:94d3:26eb:92cf%2]) with mapi id 15.20.1143.017; Mon, 17 Sep 2018 06:29:03 +0000 From: Matan Azrad To: Chas Williams <3chas3@gmail.com> CC: Declan Doherty , Radu Nicolau , "dev@dpdk.org" , Chas Williams Thread-Topic: [dpdk-dev] [PATCH] net/bonding: propagate promiscous mode in mode 4 Thread-Index: AQHUKmQYnEGgR8DEIE6FcI4JuB6VXaSsgUTQgAAb+ACAABLM8IAARbUAgACJ8jCABWicAIAAE2SggAAfL4CAAAVeYIA3itOAgAG3spCAAjFugIAAANCAgATG04CAAObaMA== Date: Mon, 17 Sep 2018 06:29:02 +0000 Message-ID: References: <1533128278-4685-1-git-send-email-radu.nicolau@intel.com> <2eac631f-1402-67b5-04de-1ce161cfcf92@intel.com> <017918fc-70dc-e6d3-6e9f-35bf9bd73fc3@intel.com> In-Reply-To: Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=matan@mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM0PR0502MB3811; 6:UONrkuBP/aO2GuZVCoMVuO7IrOtmiTQ12drr43F8pMTtD9S9bWXYniS+mJac3PdqadTr/jFoZbRnDZ+nGnruTvHe4Qu/6v5PNwsHf6PQemReFqKkm//ccS4Tsk+IT6YmhRRuh7Lbumf4bfYvxZ12xcx9xC+v48BBH5bggH5Tuq4sv4lATAIbEGxy51J1elAxSslGJ0FmSXUbZmeuxK3k+cv1bxEtfQHkfgDAKAkJztSa4C7L4POSstO520H3K+3QMblfp2yRwtc7KAeLeR4dRACb0y+Mn90ixDcxVTNyFyfqLLGVsRuEH9KhFZOgRScYX1oUzpGAmCTwNPYSQX3qByTWshY5QXIKuTSLyFgGZP7LPZbi/+AzjtGoO9j/+iUjw53gjhWNgrwK5fQXHlAAQhSSVUych/b3bGq4BIHej6R0iDMe7T66VWn+sJKZ5tcAGRT70gpyld1ZCaBvwYLwoQ==; 5:20n0KNjaZtxARK0jj6wAL9MkF+to0+rgsgh9eatGRL0sNTwSFzzEPFXpONBoHsHyecnrLGOM9SzlKnqu7mf9/saF/PFOHoI9UhemcSQoCGqGoYVHQeQlU1PQGbpf25J9Nte8LeR3tY6nm4ZhzzybyBl3AQ7V174nfdPGXCogO08=; 7:eaAV7SQ3lpXyWD9A8NUcLjx4YP0uU/N4+B7YpHnBmETOZud+2TKb2tUbVrbLX+OdoPNbrXWdTcq15iHBkuK2JMGam2OP6ibWZ+OMvyJKjZaipPCDStoFY6sIGH07xlyK3KqFYjkx4MN6mI7qsw0Am7U17edPtpt6rycNcqLpGsme9hAgOUFd9/Dy7QwckDtGszR5jmrBlLMtyMoC6e7Jfs+KE0dHmLFuWCS6zFKfWzeLPrCPTbWdhVksvnYf4eXg x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: 1bb9c59f-8665-47ad-bacd-08d61c66dc72 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM0PR0502MB3811; x-ms-traffictypediagnostic: AM0PR0502MB3811: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(278428928389397)(85827821059158); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231355)(944501410)(52105095)(93006095)(93001095)(3002001)(10201501046)(6055026)(149027)(150027)(6041310)(20161123564045)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(201708071742011)(7699050); SRVR:AM0PR0502MB3811; BCL:0; PCL:0; RULEID:; SRVR:AM0PR0502MB3811; x-forefront-prvs: 0798146F16 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(366004)(396003)(346002)(136003)(376002)(199004)(189003)(54094003)(51444003)(2900100001)(105586002)(7696005)(99286004)(5250100002)(106356001)(8936002)(256004)(14444005)(81156014)(81166006)(93886005)(76176011)(97736004)(229853002)(8676002)(33656002)(39060400002)(9686003)(4326008)(6916009)(3846002)(6116002)(5660300001)(476003)(54906003)(74316002)(186003)(14454004)(11346002)(446003)(486006)(305945005)(478600001)(68736007)(53546011)(6506007)(53936002)(7736002)(102836004)(6246003)(26005)(86362001)(25786009)(66066001)(2906002)(6436002)(1411001)(316002)(55016002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR0502MB3811; H:AM0PR0502MB4019.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: lL5N5Ue2srR7NznH+jIGoy+mWOZQ0VEJ3TzZr0vQtLJa3Am6l2nwiXraVhYSUcra4RwDh3UgsxRHqEKnzKgb0ZBOm3rYLTDen2VvZ7xzyIHip0PAF8EbmjJ5hy5oKqpGHwYVFWXX9q8nNHSLbQNO+m4q85cZSaWU/QrRpjCYjaXipd2xT8A/tZPli1NoV6b5bDlu6PMC7Nv3iP55eeUQLa+xrT8n/TkyZxq/3AHI9oCbfzXrbC1R8Zw6HScubkRNiAyblJ9IUvweW66oWD6hGXbN3ZhwxU81NPHxIo5iTRG9VWquaviRo9v2j9UvFQniH9X/dHnVI33/YxZeJ/g7GXvIYLphk4h3J6SvLQgv2TA= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1bb9c59f-8665-47ad-bacd-08d61c66dc72 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Sep 2018 06:29:02.9371 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3811 Subject: Re: [dpdk-dev] [PATCH] net/bonding: propagate promiscous mode in mode 4 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Sep 2018 06:29:05 -0000 SGkgQ2hhcw0KDQpGcm9tOiAgQ2hhcyBXaWxsaWFtcw0KPiBPbiBUaHUsIFNlcCAxMywgMjAxOCBh dCAxMTo0MCBBTSBNYXRhbiBBenJhZCA8bWF0YW5AbWVsbGFub3guY29tPg0KPiB3cm90ZToNCj4g Pg0KPiA+IEhpIENoYXMNCj4gPg0KPiA+IEZyb206ICBDaGFzIFdpbGxpYW1zDQo+ID4gPiBPbiBX ZWQsIFNlcCAxMiwgMjAxOCBhdCAxOjU2IEFNIE1hdGFuIEF6cmFkIDxtYXRhbkBtZWxsYW5veC5j b20+DQo+ID4gPiB3cm90ZToNCj4gPiA+ID4NCj4gPiA+ID4gSGkgQ2hhcw0KPiA+ID4gPg0KPiA+ ID4gPiBGcm9tOiAgQ2hhcyBXaWxsaWFtcw0KPiA+ID4gPiA+IE9uIE1vbiwgQXVnIDYsIDIwMTgg YXQgMzozNSBQTSBNYXRhbiBBenJhZA0KPiA8bWF0YW5AbWVsbGFub3guY29tPg0KPiA+ID4gPiA+ IHdyb3RlOg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBIaSBDaGFzDQo+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gRnJvbTogQ2hhcyBXaWxsaWFtcw0KPiA+ID4gPiA+ID4g Pk9uIE1vbiwgQXVnIDYsIDIwMTggYXQgMTo0NiBQTSBNYXRhbiBBenJhZA0KPiA+ID4gPiA+IDxt YWlsdG86bWF0YW5AbWVsbGFub3guY29tPiB3cm90ZToNCj4gPiA+ID4gPiA+ID5IaSBDaGFzDQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+RnJvbTogQ2hhcyBXaWxsaWFtcw0KPiA+ID4gPiA+ ID4gPj5PbiBGcmksIEF1ZyAzLCAyMDE4IGF0IDE6NDcgQU0gTWF0YW4gQXpyYWQNCj4gPiA+ID4g PiA8bWFpbHRvOm1haWx0bzptYXRhbkBtZWxsYW5veC5jb20+IHdyb3RlOg0KPiA+ID4gPiA+ID4g Pj5IaSBDaGFzDQo+ID4gPiA+ID4gPiA+Pg0KPiA+ID4gPiA+ID4gPj4gRnJvbTogQ2hhcyBXaWxs aWFtcw0KPiA+ID4gPiA+ID4gPj4gW21haWx0bzptYWlsdG86bWFpbHRvOm1haWx0bzozY2hhczNA Z21haWwuY29tXQ0KPiA+ID4gPiA+ID4gPj4gT24gVGh1LCBBdWcgMiwgMjAxOCBhdCAxOjMzDQo+ ID4gPiA+ID4gPiA+Pj4gUE0gTWF0YW4gQXpyYWQgPG1haWx0bzptYWlsdG86bWF0YW5AbWVsbGFu b3guY29tPiB3cm90ZToNCj4gPiA+ID4gPiA+ID4+PiA+DQo+ID4gPiA+ID4gPiA+Pj4gPiA+IEkg c3VnZ2VzdCB0byBkbyBpdCBsaWtlIG5leHQsIFRvIGFkZCBvbmUgbW9yZQ0KPiA+ID4gPiA+ID4g Pj4+ID4gPiBwYXJhbWV0ZXIgZm9yIExBQ1Agd2hpY2ggbWVhbnMgaG93IHRvIGNvbmZpZ3VyZSB0 aGUNCj4gPiA+ID4gPiA+ID4+PiA+IExBQ1AgTUMgZ3JvdXAgLSBsYWNwX21jX2dycF9jb25mOg0K PiA+ID4gPiA+ID4gPj4+ID4gPiAxLiBydGVfZmxvdy4NCj4gPiA+ID4gPiA+ID4+PiA+ID4gMi4g ZmxvdyBkaXJlY3Rvci4NCj4gPiA+ID4gPiA+ID4+PiA+ID4gMy4gYWRkX21hYy4NCj4gPiA+ID4g PiA+ID4+PiA+ID4gMy4gc2V0X21jX2FkZF9saXN0DQo+ID4gPiA+ID4gPiA+Pj4gPiA+IDQuIGFs bG11bHRpDQo+ID4gPiA+ID4gPiA+Pj4gPiA+IDUuIHByb21pc2N1b3VzDQo+ID4gPiA+ID4gPiA+ Pj4gPiA+IE1heWJlIG1vcmUuLi4gb3IgbGVzcyA6KQ0KPiA+ID4gPiA+ID4gPj4+ID4gPg0KPiA+ ID4gPiA+ID4gPj4+ID4gPiBCeSB0aGlzIHdheSB0aGUgdXNlciBkZWNpZGVzIGhvdyB0byBkbyBp dCwgaWYgaXQncw0KPiA+ID4gPiA+ID4gPj4+ID4gPiBmYWlsIGZvciBhIHNsYXZlLCB0aGUgc2Fs dmUNCj4gPiA+ID4gPiA+ID4+PiA+IHNob3VsZCBiZSByZWplY3RlZC4NCj4gPiA+ID4gPiA+ID4+ PiA+ID4gQ29uZmxpY3Qgd2l0aCBhbm90aGVyIGNvbmZpZ3VyYXRpb24oZm9yIGV4YW1wbGUNCj4g PiA+ID4gPiA+ID4+PiA+ID4gY2FsbGluZyB0byBwcm9taXNjdW91cw0KPiA+ID4gPiA+ID4gPj4+ ID4gZGlzYWJsZSB3aGlsZSBydW5uaW5nIExBQ1AgbGFjcF9tY19ncnBfY29uZj01KSBzaG91bGQN Cj4gPiA+ID4gPiA+ID4+PiA+IHJhaXNlIGFuDQo+ID4gPiA+ID4gZXJyb3IuDQo+ID4gPiA+ID4g PiA+Pj4gPiA+DQo+ID4gPiA+ID4gPiA+Pj4gPiA+IFdoYXQgZG8geW91IHRoaW5rPw0KPiA+ID4g PiA+ID4gPj4+ID4gPg0KPiA+ID4gPiA+ID4gPj4+ID4NCj4gPiA+ID4gPiA+ID4+PiA+IFN1cHBv cnRpbmcgYW4gTEFDUCBtYyBncm91cCBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGRvZXMNCj4gPiA+ ID4gPiA+ID4+PiA+IG1ha2Ugc2Vuc2UsIGJ1dCBJIHdvbmRlciBpZiB0aGlzIGNvdWxkIGp1c3Qg YmUgaGFuZGxlZA0KPiA+ID4gPiA+ID4gPj4+ID4gYnkgZGVmYXVsdCBkdXJpbmcNCj4gPiA+ID4g PiBzbGF2ZSBhZGQuDQo+ID4gPiA+ID4gPiA+Pj4gPg0KPiA+ID4gPiA+ID4gPj4+ID4NCj4gPiA+ ID4gPiA+ID4+PiA+IDEgYW5kIDIgYXJlIGVzc2VudGlhbGx5IHRoZSBzYW1lIGhhcmR3YXJlIGZp bHRlcmluZw0KPiA+ID4gPiA+ID4gPj4+ID4gb2ZmbG9hZCBtb2RlLCBhbmQgdGhlIG90aGVyIG1v ZGVzIGFyZSBpcnJlbGV2YW50IGlmIHRoaXMNCj4gPiA+ID4gPiA+ID4+PiA+IGlzIGVuYWJsZWQs IGl0IHNob3VsZCBub3QgYmUgcG9zc2libGUgdG8gYWRkIHRoZSBzbGF2ZQ0KPiA+ID4gPiA+ID4g Pj4+ID4gaWYgdGhlIGJvbmQgaXMgY29uZmlndXJlZCBmb3IgdGhpcyBtb2RlLCBvciBwb3NzaWJs ZSB0bw0KPiA+ID4gPiA+ID4gPj4+ID4gY2hhbmdlIHRoZSBib25kIGludG8gdGhpcyBtb2RlIGlm IGFuIGV4aXN0aW5nIHNsYXZlIGRvZXNuJ3QNCj4gc3VwcG9ydCBpdC4NCj4gPiA+ID4gPiA+ID4+ Pg0KPiA+ID4gPiA+ID4gPj4+ID4NCj4gPiA+ID4gPiA+ID4+PiA+IDMgc2hvdWxkIGJlIHRoZSBk ZWZhdWx0IGV4cGVjdGVkIGJlaGF2aW9yLCBidXQNCj4gPiA+ID4gPiA+ID4+PiA+IHJ0ZV9ldGhf Ym9uZF9zbGF2ZV9hZGQoKSBzaG91bGQgZmFpbCBpZiB0aGUgc2xhdmUgYmVpbmcNCj4gPiA+ID4g PiA+ID4+PiA+IGFkZGVkIGRvZXNuJ3Qgc3VwcG9ydCBlaXRoZXIgYWRkaW5nIHRoZSBNQUMgdG8g dGhlIHNsYXZlDQo+ID4gPiA+ID4gPiA+Pj4gPiBvciBhZGRpbmcgdGhlDQo+ID4gPiA+ID4gTEFD UCBNQyBhZGRyZXNzLg0KPiA+ID4gPiA+ID4gPj4+ID4NCj4gPiA+ID4gPiA+ID4+PiA+IFRoZW4g dGhlIHVzZXIgY291bGQgdHJ5IGVpdGhlcg0KPiA+ID4gPiA+ID4gPj4+ID4gcnRlX2V0aF9hbGxt dWx0aWNhc3RfZW5hYmxlKCkgb24gdGhlIGJvbmQgcG9ydCBhbmQgdGhlbg0KPiA+ID4gPiA+ID4g Pj4+ID4gdHJ5IHRvIGFkZCB0aGUgc2xhdmUgYWdhaW4sIHdoaWNoIHNob3VsZCBmYWlsIGlmDQo+ ID4gPiA+ID4gPiA+Pj4gPiBleGlzdGluZyBzbGF2ZSBkaWRuJ3Qgc3VwcG9ydCBhbGxtdWx0aWNh c3Qgb3IgdGhlIGFkZA0KPiA+ID4gPiA+ID4gPj4+ID4gc2xhdmUgd291bGQgZmFpbCBhZ2FpbiBp ZiB0aGUgc2xhdmUgZGlkbid0IHN1cHBvcnQNCj4gPiA+ID4gPiA+ID4+PiA+IGFsbG11bHRpY2Fz dCBhbmQgZmluYWxseSBqdXN0IGNhbGwNCj4gPiA+ID4gPiA+ID4+PiA+IHJ0ZV9ldGhfcHJvbWlz Y3VvdXNfZW5hYmxlKCkgb24gdGhlIGJvbmQgYW5kIHRoZW4gdHJ5IHRvDQo+ID4gPiA+ID4gPiA+ Pj4gPiByZS1hZGQgdGhlIHRoYXQgc2xhdmUuDQo+ID4gPiA+ID4gPiA+Pj4gPg0KPiA+ID4gPiA+ ID4gPj4+ID4gYnV0IG1heWJlIGhhdmluZyBhIGV4cGxpY2l0IGNvbmZpZ3VyYXRpb24gcGFyYW1l dGVyDQo+ID4gPiA+ID4gPiA+Pj4gPiB3b3VsZCBiZQ0KPiA+ID4gPiA+IGJldHRlci4NCj4gPiA+ ID4gPiA+ID4+Pg0KPiA+ID4gPiA+ID4gPj4+IEkgZG9uJ3Qgc3VyZSB5b3UgdW5kZXJzdGFuZCBl eGFjdGx5IHdoYXQgSeKAmW0gc3VnZ2VzdGluZw0KPiA+ID4gPiA+ID4gPj4+IGhlcmUsDQo+ID4g PiBhZ2FpbjoNCj4gPiA+ID4gPiA+ID4+PiBJIHN1Z2dlc3QgdG8gYWRkIGEgbmV3IHBhcmFtZXRl ciB0byB0aGUgTEFDUCBtb2RlIGNhbGxlZA0KPiA+ID4gPiA+ID4gPj4+IGxhY3BfbWNfZ3JwX2Nv bmYob3Igc29tZXRoaW5nIGVsc2UpLg0KPiA+ID4gPiA+ID4gPj4+IFNvLCB3aGVuIHRoZSB1c2Vy IGNvbmZpZ3VyZXMgTEFDUCAobW9kZSA0KSBpdCBtdXN0IHRvDQo+ID4gPiA+ID4gPiA+Pj4gY29u ZmlndXJlIHRoZSBsYWNwX21jX2dycF9jb25mIHBhcmFtZXRlciB0byBvbmUgb2YgdGhlDQo+ID4g PiA+ID4gPiA+Pj4gb3B0aW9ucyBJDQo+ID4gPiBzdWdnZXN0ZWQuDQo+ID4gPiA+ID4gPiA+Pj4g VGhpcyBwYXJhbWV0ZXIgaXMgbm90IHBlciBzbGF2ZSBtZWFucyB0aGUgYm9uZCBQTUQgd2lsbA0K PiA+ID4gPiA+ID4gPj4+IHVzZSB0aGUgc2VsZWN0ZWQgb3B0aW9uIHRvIGNvbmZpZ3VyZSB0aGUg TEFDUCBNQyBncm91cCBmb3INCj4gPiA+ID4gPiA+ID4+PiBhbGwgdGhlDQo+ID4gPiBzbGF2ZSBw b3J0cy4NCj4gPiA+ID4gPiA+ID4+Pg0KPiA+ID4gPiA+ID4gPj4+IElmIG9uZSBvZiB0aGUgc2xh dmVzIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgc2VsZWN0ZWQgb3B0aW9uDQo+ID4gPiA+ID4gPiA+Pj4g aXQgc2hvdWxkIGJlDQo+ID4gPiA+ID4gcmVqZWN0ZWQuDQo+ID4gPiA+ID4gPiA+Pj4gQ29uZmxp Y3RzIHNob3VsZCByYWlzIGFuIGVycm9yLg0KPiA+ID4gPiA+ID4gPj4+DQo+ID4gPiA+ID4gPiA+ Pj4gSSBhZ3JlZSBoZXJlLiAgWWVzLCBpZiBhIHNsYXZlIGNhbid0IG1hbmFnZSB0byBzdWJzY3Jp YmUNCj4gPiA+ID4gPiA+ID4+PiB0byB0aGUgbXVsdGljYXN0IGdyb3VwLCBhbiBlcnJvciBzaG91 bGQgYmUgcmFpc2VkLiAgVGhlDQo+ID4gPiA+ID4gPiA+Pj4gb25seSB3YXkgZm9yIHRoaXMgdG8g aGFwcGVuIGlzIHRoYXQgeW91IGRvbid0IGhhdmUgcHJvbWlzYw0KPiA+ID4gPiA+ID4gPj4+IHN1 cHBvcnQgd2hpY2ggaXMgdGhlIHVsdGltYXRlDQo+ID4gPiA+ID4gZmFsbGJhY2suDQo+ID4gPiA+ ID4gPiA+Pg0KPiA+ID4gPiA+ID4gPj4+IFRoZSBhZHZhbnRhZ2VzIGFyZToNCj4gPiA+ID4gPiA+ ID4+PiBUaGUgdXNlciBrbm93cyB3aGljaCBvcHRpb24gaXMgYmV0dGVyIHRvIHN5bmNocm9uaXpl IHdpdGgNCj4gPiA+ID4gPiA+ID4+PiBoaXMNCj4gPiA+ID4gPiBhcHBsaWNhdGlvbi4NCj4gPiA+ ID4gPiA+ID4+PiBUaGUgdXNlciBrbm93cyBiZXR0ZXIgdGhhbiB0aGUgYm9uZCBQTUQgd2hhdCBp cyB0aGUgc2xhdmVzDQo+ID4gPiA+ID4gY2FwYWJpbGl0aWVzLg0KPiA+ID4gPiA+ID4gPj4+IEFs bCB0aGUgc2xhdmVzIGFyZSBjb25maWd1cmVkIGJ5IHRoZSBzYW1lIHdheSAtIGNvbnNpc3RlbnQN Cj4gdHJhZmZpYy4NCj4gPiA+ID4gPiA+ID4+Pg0KPiA+ID4gPiA+ID4gPj4+DQo+ID4gPiA+ID4g PiA+Pj4gSXQgd291bGQgYmUgaWRlYWwgaWYgYWxsIHRoZSBzbGF2ZXMgd291bGQgaGF2ZSB0aGUg c2FtZQ0KPiA+ID4gPiA+ID4gPj4+IGZlYXR1cmVzIGFuZCBjYXBhYmlsaXRpZXMuICBUaGVyZSB3 YXNuJ3QgZW5mb3JjZWQgYmVmb3JlLA0KPiA+ID4gPiA+ID4gPj4+IHNvIHRoaXMgd291bGQgYmUg YSBuZXcgcmVzdHJpY3Rpb24gdGhhdCB3b3VsZCBiZSBsZXNzDQo+ID4gPiA+ID4gPiA+Pj4gZmxl eGlibGUgdGhhbiB3aGF0IHdlIGN1cnJlbnRseSBoYXZlLiAgVGhhdCBkb2Vzbid0IHNlZW0NCj4g PiA+ID4gPiA+ID4+PiBsaWtlIGFuDQo+ID4gPiBpbXByb3ZlbWVudC4NCj4gPiA+ID4gPiA+ID4+ DQo+ID4gPiA+ID4gPiA+Pj4gVGhlIGJvbmRpbmcgdXNlciBwcm9iYWJseSBkb2Vzbid0IGNhcmUg d2hpY2ggbW9kZSBpcyB1c2VkLg0KPiA+ID4gPiA+ID4gPj4+IFRoZSBib25kaW5nIHVzZXIganVz dCB3YW50cyBib25kaW5nIHRvIHdvcmsuICBIZSBkb2Vzbid0DQo+ID4gPiA+ID4gPiA+Pj4gY2Fy ZSBhYm91dA0KPiA+ID4gPiA+IHRoZSBkZXRhaWxzLiAgIElmIEkgYW0gd3JpdGluZw0KPiA+ID4g PiA+ID4gPj4+IGFuIGFwcGxpY2F0aW9uIHdpdGggdGhpcyBwcm9wb3NlZCBBUEksIEkgbmVlZCB0 byBtYWtlIGENCj4gPiA+ID4gPiA+ID4+PiBsaXN0IG9mIGFkYXB0ZXJzIGFuZCB3aGF0IHRoZXkg c3VwcG9ydCAoYW5kIGtlZXAgdGhpcyB1cA0KPiA+ID4gPiA+ID4gPj4+IHRvIGRhdGUgYXMgRFBE Sw0KPiA+ID4gPiA+IGV2b2x2ZXMpLiAgVWdoLg0KPiA+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+ ID4+VGhlIGFwcGxpY2F0aW9ucyBjb21tb25seSBrbm93IHdoYXQgYXJlIHRoZSBuaWNzDQo+ID4g PiA+ID4gPiA+PmNhcGFiaWxpdGllcyB0aGV5DQo+ID4gPiA+ID4gd29yayB3aXRoLg0KPiA+ID4g PiA+ID4gPj4NCj4gPiA+ID4gPiA+ID4+SSBrbm93IGF0IGxlYXN0IGFuIG9uZSBiaWcgYXBwbGlj YXRpb24gd2hpY2ggcmVhbGx5DQo+ID4gPiA+ID4gPiA+PnN1ZmZlcmluZyBiZWNhdXNlIHRoZSBi b25kIGNvbmZpZ3VyZXMgcHJvbWlzY3VvdXMgaW4gbW9kZSA0DQo+ID4gPiA+ID4gPiA+PndpdGhv dXQgdGhlDQo+ID4gPiA+ID4gYXBwbGljYXRpb24gYXNraW5nIChpdCdzIGNvbnNpZGVyZWQgdGhl cmUgYXMgYSBidWcgaW4gZHBkaykuDQo+ID4gPiA+ID4gPiA+PkkgdGhpbmsgdGhhdCBwcm92aWRp bmcgIGFub3RoZXIgb3B0aW9uIHdpbGwgYmUgYmV0dGVyLg0KPiA+ID4gPiA+ID4gPj4NCj4gPiA+ ID4gPiA+ID4+SSB0aGluayBwcm92aWRpbmcgYW5vdGhlciBvcHRpb24gd2lsbCBiZSBiZXR0ZXIg YXMgd2VsbC4NCj4gPiA+ID4gPiA+ID4+SG93ZXZlciB3ZQ0KPiA+ID4gPiA+IGRpc2FncmVlIG9u IHRoZSBvcHRpb24uDQo+ID4gPiA+ID4gPiA+PklmIHRoZSBQTUQgaGFzIG5vIG90aGVyIHdheSB0 byBzdWJzY3JpYmUgdGhlIG11bHRpY2FzdA0KPiA+ID4gPiA+ID4gPj5ncm91cCwgaXQgaGFzIHRv DQo+ID4gPiA+ID4gdXNlIHByb21pc2N1b3VzIG1vZGUuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+PlllcywgaXQgaXMgdHJ1ZSBidXQgdGhlcmUgYXJlIGEgbG90IG9mIG90aGVyIGFuZCBi ZXR0ZXINCj4gPiA+ID4gPiA+ID4+b3B0aW9ucywNCj4gPiA+ID4gPiBwcm9taXNjdW91cyBpcyBn cmVlZHkhIFNob3VsZCBiZSB0aGUgbGFzdCBhbHRlcm5hdGl2ZSB0byB1c2UuDQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+VW5mb3J0dW5hdGVseSwgaXQncyB0aGUgb25seSBvcHRpb24gaW1w bGVtZW50ZWQuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gWWVzLCBJIGtub3csIEkgc3VnZ2Vz dCB0byBjaGFuZ2UgaXQgb3IgYXQgbGVhc3Qgbm90IHRvIG1ha2UgaXQgd29yc3QuDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPj5Qcm92aWRpbmcgYSBsaXN0IG9mIG9wdGlvbnMgb25seSBtYWtl cyBsaWZlIGNvbXBsaWNhdGVkIGZvcg0KPiA+ID4gPiA+ID4gPj50aGUgZGV2ZWxvcGVyIGFuZCBk b2Vzbid0IHJlYWxseSBtYWtlIGFueSBkaWZmZXJlbmNlIGluIHRoZSBlbmQNCj4gcmVzdWx0cy4N Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4+QSBiaWcgZGlmZmVyZW50LCBmb3IgZXhhbXBs ZToNCj4gPiA+ID4gPiA+ID4+TGV0J3Mgc2F5IHRoZSBib25kaW5nIGdyb3VwcyAyIGRldmljZXMg dGhhdCBzdXBwb3J0IHJ0ZV9mbG93Lg0KPiA+ID4gPiA+ID4gPj5UaGUgdXNlciBkb24ndCB3YW50 IG5laXRoZXIgcHJvbWlzY3VvdXMgbm9yIGFsbCBtdWx0aWNhc3QsDQo+ID4gPiA+ID4gPiA+Pmhl IGp1c3Qgd2FudCB0byBnZXQgaXQncyBtYWMgdHJhZmZpYyArIExBQ1AgTUMgZ3JvdXANCj4gPiA+ ID4gPiA+ID4+dHJhZmZpYywoYSByZWFsaXN0aWMgdXNlIGNhc2UpICBpZg0KPiA+ID4gPiA+IGhl IGhhcyBhbiBvcHRpb24gdG8gdGVsbCB0byB0aGUgYm9uZCBQTUQsIHBsZWFzZSB1c2UgcnRlX2Zs b3cNCj4gPiA+ID4gPiB0byBjb25maWd1cmUgdGhlIHNwZWNpZmljIExBQ1AgTUMgZ3JvdXAgaXQg d2lsbCBiZSBncmVhdC4NCj4gPiA+ID4gPiA+ID4+VGhpbmsgaG93IG11Y2ggd29yayB0aGVzZSBh cHBsaWNhdGlvbnMgc2hvdWxkIGRvIGluIHRoZQ0KPiA+ID4gPiA+ID4gPj5jdXJyZW50DQo+ID4g PiA+ID4gYmVoYXZpb3IuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+VGhlIGJvbmQgUE1E IHNob3VsZCBhbHJlYWR5IGtub3cgaG93IHRvIGRvIHRoYXQgaXRzZWxmLg0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+IFRoZSBib25kIGNhbiBkbyBpdCB3aXRoIGEgbG90IG9mIGNvbXBsZXhpdHks IGJ1dCBhZ2FpbiB0aGUNCj4gPiA+ID4gPiA+IHVzZXIgbXVzdCBrbm93DQo+ID4gPiA+ID4gd2hh dCB0aGUgYm9uZCBjaG9zZSB0byBiZSBzeW5jaHJvbml6ZWQuDQo+ID4gPiA+ID4gPiBTbywgSSB0 aGluayBpdCdzIGJldHRlciB0aGF0IHRoZSB1c2VyIHdpbGwgZGVmaW5lIGl0IGJlY2F1c2UNCj4g PiA+ID4gPiA+IGl0IGlzIGEgdHJhZmZpYyBjb25maWd1cmF0aW9uICh0aGUgc2FtZSBhcyBwcm9t aXNjdW91cw0KPiA+ID4gPiA+ID4gY29uZmlndXJhdGlvbiAtIHRoZSB1c2VyIGNvbmZpZ3VyZXMg aXQpDQo+ID4gPiA+ID4gPiA+ICBBZ2FpbiwgeW91IGFyZSBmb3JjaW5nIG1vcmUgd29yayBvbiB0 aGUgdXNlciB0byBhc2sgdGhlbSB0bw0KPiA+ID4gPiA+ID4gPiBzZWxlY3QNCj4gPiA+ID4gPiBi ZXR3ZWVuIHRoZSBtZXRob2RzLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFdlIGNhbiBjcmVh dGUgYSBkZWZhdWx0IG9wdGlvbiBhcyBub3cocHJvbWlzY3VvdXMpLg0KPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4+ICBGb3IgaW5zdGFuY2UsIGlmIHRoZSBsZWFzdCBjb21tb24gZGVub21pbmF0 b3IgYmV0d2VlbiB0aGUNCj4gPiA+ID4gPiA+ID4+dHdvIFBNRHMgaXMgcHJvbWlzY3VvdXMgbW9k ZSwgIHlvdSBhcmUgZ29pbmcgdG8gYmUgZm9yY2VkIHRvDQo+ID4gPiA+ID4gPiA+PnJ1biBib3Ro IGluIHByb21pc2N1b3VzIG1vZGUgaW5zdGVhZCBvZiBzZWxlY3RpbmcgdGhlIGJlc3QNCj4gPiA+ ID4gPiA+ID4+bW9kZSBmb3INCj4gPiA+IGVhY2ggUE1ELg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPj5JbiB0aGlzIGNhc2UgcHJvbWlzY3VvdXMgaXMgYmV0dGVyLCBVc2luZyBhIGRpZmZl cmVudA0KPiA+ID4gPiA+ID4gPj5jb25maWd1cmF0aW9uIGlzIHdvcnN0IGFuZCBhZ2FpbnN0IHRo ZSBib25kaW5nIFBNRA0KPiA+ID4gPiA+IHByaW5jaXBsZSB0byBnZXQgYSBjb25zaXN0ZW50IHRy YWZmaWMgZnJvbSB0aGUgc2xhdmVzLg0KPiA+ID4gPiA+ID4gPj5TbywgaWYgb25lIHVzZXMgYWxs bXVsdGkgYW5kIG9uZSB1c2VzIHByb21pc2N1b3VzIHRoZQ0KPiA+ID4gPiA+ID4gPj5hcHBsaWNh dGlvbiBtYXkgZ2V0IGFuIGluY29uc2lzdGVudCB0cmFmZmljIGFuZCBpdCBtYXkNCj4gPiA+ID4g PiA+ID4+dHJpZ2dlciBhIGxvdCBvZiBwcm9ibGVtcyBhbmQNCj4gPiA+ID4gPiBjb21wbGljYXRp b25zIGZvciBzb21lIGFwcGxpY2F0aW9ucy4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID5U aG9zZSBhcHBsaWNhdGlvbnMgc2hvdWxkIGFscmVhZHkgaGF2ZSB0aG9zZSBwcm9ibGVtcy4NCj4g PiA+ID4gPiA+ID4gIEkgY2FuIG1ha2UgdGhlIGNvdW50ZXINCj4gPiA+ID4gPiA+ID5hcmd1bWVu dCB0aGF0IHRoZXJlIGFyZSBwb3RlbnRpYWxseSBhcHBsaWNhdGlvbnMgcmVseWluZyBvbg0KPiA+ ID4gPiA+ID4gPnRoZSBicm9rZW4NCj4gPiA+ID4gPiBiZWhhdmlvci4NCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiBZb3UgcmlnaHQuIFNvIGFkZGluZyBhbGxtdWx0aWNhc3Qgd2lsbCByZXF1aXJl IGNoYW5nZXMgaW4NCj4gPiA+ID4gPiA+IHRoZXNlDQo+ID4gPiBhcHBsaWNhdGlvbnMuDQo+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPldlIG5lZWQgdG8gaWdub3JlIHRob3NlIGlzc3VlcyBhbmQg Zml4IHRoaXMgdGhlICJyaWdodCIgd2F5Lg0KPiA+ID4gPiA+ID4gPlRoZSAicmlnaHQiIHdheSBJ TUhPIGlzIHRoZSBwYXNzIHRoZSBsZWFzdCBhbW91bnQgb2YgdHJhZmZpYw0KPiA+ID4gPiA+ID4g PnBvc3NpYmxlIGluIGVhY2gNCj4gPiA+ID4gPiBjYXNlLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+IE5vdCBpbiBjb3N0IG9mIGFuIGluY29uc2lzdGVuY3ksIGJ1dCBsb29rcyBsaWtlIHdlIGFy ZSBub3QgYWdyZWUgaGVyZS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJIGhh dmUgcmVjZW50bHkgcnVuIGludG8gdGhpcyBpc3N1ZSBhZ2FpbiB3aXRoIGEgZGV2aWNlIHRoYXQN Cj4gPiA+ID4gPiBkb2Vzbid0IHN1cHBvcnQgcHJvbWlzY3VvdXMsIGJ1dCBkb2VzIGxldCBtZSBz dWJzY3JpYmUgdG8gdGhlDQo+ID4gPiA+ID4gYXBwcm9wcmlhdGUNCj4gPiA+IG11bHRpY2FzdCBn cm91cHMuDQo+ID4gPiA+ID4gQXQgdGhpcyBwb2ludCwgSSBhbSBsZWFuaW5nIHRvd2FyZCBhZGRp bmcgYW5vdGhlciBBUEkgY2FsbCB0bw0KPiA+ID4gPiA+IHRoZSBib25kaW5nIEFQSSBzbyB0aGF0 IHRoZSB1c2VyIGNhbiBwcm92aWRlIGEgY2FsbGJhY2sgdG8gc2V0dXANCj4gPiA+ID4gPiB3aGF0 ZXZlciB0aGV5IHdhbnQgb24gdGhlIHNsYXZlcy4NCj4gPiA+ID4gPiBUaGUgZGVmYXVsdCBzZXR1 cCByb3V0aW5lIHdvdWxkIGJlIGVuYWJsZSBwcm9taXNjdW91cy4NCj4gPiA+ID4gPg0KPiA+ID4g PiA+IENvbW1lbnRzPw0KPiA+ID4gPg0KPiA+ID4gPiBUaGUgYm9uZGluZyBhbHJlYWR5IGFsbG93 cyB0byB0aGUgdXNlcnMgdG8gZG8gb3BlcmF0aW9ucyBkaXJlY3RseQ0KPiA+ID4gPiB0byB0aGUN Cj4gPiA+IHNsYXZlcyhpdCBleHBvcnRzIHRoZSBwb3J0IGlkcyAtIHJ0ZV9ldGhfYm9uZF9zbGF2 ZXNfZ2V0KSwgc28gSQ0KPiA+ID4gZG9uJ3QgdW5kZXJzdGFuZCB3aHkgZG8geW91IG5lZWQgYSBu ZXcgQVBJLg0KPiA+ID4gPiBUaGUgb25seSBjaGFuZ2UgeW91IG5lZWQgbWF5IGJlIHRvIGFkZCBw YXJhbWV0ZXIgdG8gZGlzYWJsZSB0aGUNCj4gPiA+IHByb21pc2N1b3VzIGNvbmZpZ3VyYXRpb24g aW4gbW9kZTQuDQo+ID4gPg0KPiA+ID4gQ2hhbmdpbmcgdGhlIEFQSSBpcyBuZXcgQVBJLiAgV2Ug c2hvdWxkIGF0dGVtcHQgdG8gbm90IGJyZWFrIGFueSBvZg0KPiA+ID4gdGhlIGV4aXN0aW5nIEFQ SS4NCj4gPiA+DQo+ID4gPiBBcyBmb3IgYmVpbmcgYWJsZSB0byBvcGVyYXRlIG9uIHRoZSBzbGF2 ZXMsIHlldCwgeW91IGNhbi4gIEJ1dCB0aGUNCj4gPiA+IGJvbmRpbmcgUE1EIGFsc28gY29udHJv bHMgdGhlIHNsYXZlcyBhcyB3ZWxsLiAgSXQgc2VlbXMgY2xlYW5lciB0bw0KPiA+ID4gbWFrZSB0 aGlzIGV4cGxjaXQsIHRoYXQgdGhlIGJvbmRpbmcgZHJpdmVyIGNhbGxzIG91dCB0byB0aGUNCj4g PiA+IGFwcGxpY2F0aW9uIHRvIHNldHVwIHRoZSA4MDIuM2FkIGxpc3RlbmluZyB3aGVuIGl0IG5l ZWRzIHRvIGJlIGRvbmUuDQo+ID4gPiBJZiB5b3Ugd2FudCB0byBjb250cm9sIGl0IGEgZGlmZmVy ZW50IHdheSwgeW91IHNpbXBseSBwcm92aWRlIGEgbnVsbA0KPiA+ID4gcm91dGluZSB0aGF0IGRv ZXMgbm90aGluZyBhbmQgY29udHJvbCBpdCBob3dldmVyIHlvdSBsaWtlLg0KPiA+DQo+ID4gVGhl IGlzc3VlIGlzIHRoYXQgdGhlIGJvbmRpbmcgUE1EIGNhbm5vdCBiZSBzeW5jaHJvbml6ZWQgd2l0 aCBzdWNoIGxpa2UNCj4gY2FsbGJhY2ssIGl0IGRvZXNuJ3Qga25vdyB3aGF0IHdhcyBkb25lIGJ5 IHRoZSBhcHBsaWNhdGlvbi4NCj4gDQo+IEV4YWN0bHkuICBUaGF0J3Mgd2h5IHlvdSBuZWVkIHRv IGJlIHRvIGNoYW5nZSB0aGUgbmF0aXZlIGJlaGF2aW9yIG9mIHRoZQ0KPiBib25kaW5nIFBNRC4N Cg0KSSBkb24ndCBzdXJlIEkgdW5kZXJzdGFuZCB5b3UgaGVyZSwNCkJ1dCBJIGFncmVlIHRoYXQg Ym90aCBib25kaW5nIFBNRCBhbmQgdGhlIGFwcGxpY2F0aW9uIHNob3VsZCBiZSBhYmxlIHRvIGtu b3cgZXhhY3RseSB3aGF0IGlzIHRoZSBjb25maWd1cmF0aW9uIHNldCBhdCBhbnkgdGltZS4NClRo ZSBjdXJyZW50IGJlaGF2aW9yIGlzIHRoYXQgYm9uZGluZyBjb25maWd1cmVzIHByb21pc2N1b3Vz IGluIG1vZGU0IHdpdGhvdXQgYW55IGRvY1xndWlkZSB3aGljaCBzYXlzIGl0IHRvIHRoZSBhcHBs aWNhdGlvbiB1c2VyDQphbmQgaXQgaXMgcHJvYmxlbWF0aWMgYW5kIG5lZWQgdG8gYmUgY2hhbmdl ZC4NCiANCj4gDQo+ID4gSSBkb24ndCB0aGluayB3ZSBzaG91bGQgb3BlbiBhIGRpcmVjdCBhcHBs aWNhdGlvbiBjYWxscyB0byB0aGUgc2xhdmVzIGJ5IGFuDQo+IEFQSSwgaWYgdGhlIGFwcGxpY2F0 aW9uIHJlYWxseSBuZWVkICBpdCwgYXMgd2Ugc2FpZCwgaXQgaGFzIGFscmVhZHkgb3B0aW9uIHRv IGRvIGl0DQo+IHdpdGhvdXQgYSBuZXcgQVBJIHdoaWxlIGl0IGlzIHJlYWxseSBub3QgcmVjb21t ZW5kZWQgYnkgdGhlIGJvbmRpbmcgZ3VpZGUuDQo+IA0KPiBUaGlzIHdvdWxkIGJlIHRoZSBvcHBv c2l0ZSBkaXJlY3Rpb24uICBUaGUgc2xhdmVzIHdvdWxkIGJlIGNhbGxpbmcgb3V0IHRvIHRoZQ0K PiBhcHBsaWNhdGlvbiB0byBhc2sgdGhlIGFwcGxpY2F0aW9uIHRvIGRvIHNvbWV0aGluZy4NCg0K VGhpcyAic29tZXRoaW5nIiBtdXN0IGJlIGtub3duIGJ5IHRoZSBib25kaW5nIFBNRCBhbHNvIC0g dGhhdCB3aGF0IEkgYW0gc2F5aW5nLg0KSW4gdGhlIGNhbGxiYWNrIHNvbHV0aW9uIHlvdSBhcmUg c3VnZ2VzdGluZyBub3csIHRoZSBhcHBsaWNhdGlvbiBrbm93cyBidXQgdGhlIGJvbmRpbmcgUE1E IGRvZXNuJ3QuDQoNCj4gIFdpdGggdGhlIGV4aXN0aW5nIGJvbmRpbmcNCj4gUE1EIGl0IHdpbGwg YWx3YXlzIGF0dGVtcHQgdG8gZW5hYmxlIHByb21pc2MgYW5kIHRoYXQgaXNuJ3QgZGVzaXJhYmxl IGluIGFsbA0KPiBzaXR1YXRpb25zLg0KDQpBZ3JlZSwgaXQncyBncmVlZHkuDQoNCj4gIFByZXZp b3VzbHksIGFjdGl2YXRlX3NsYXZlKCkgYWx3YXlzIGhhcHBlbmVkIGFzIHBhcnQgb2Ygc2xhdmUg YWRkLg0KPiBUaGF0IHNob3VsZG4ndCBiZSB0aGUgY2FzZSBub3cgaWYgdGhlIGJvbmRpbmcgUE1E IGlzbid0IHJ1bm5pbmcuICBBZGRpbmcgYW5kDQo+IHJlbW92aW5nIHNsYXZlcyB3aGlsZSB0aGUg Ym9uZGluZyBQTUQgaXMgc3RhcnRlZCBzaG91bGRuJ3QgcHJvYmFibHkgbm90IGJlDQo+IGRvbmUg YmVjYXVzZSBJIGFtIG5vdCBzdXJlIHdlIGNhbiBlbnN1cmUgdGhhdCB0aGVyZSBpcyByYWNlIGZy ZWUgYmVoYXZpb3INCj4gd2l0aCB0aGUgODAyLjNhZCByeC90eCByb3V0aW5lcy4NCg0KSSBkb24n dCBzdXJlIEkgdW5kZXJzdGFuZCB3aGF0IHlvdSB3YW50IHRvIHNheSBpbiB0aGUgYWJvdmUgc3Rh dGVtZW50Lg0KSSBkaWRuJ3QgdGFsayBhYm91dCBzeW5jaHJvbml6YXRpb24gaW4gdGVybXMgb2Yg bG9ja3Mgc29sdXRpb25zIGJ1dCBpbiB0ZXJtcyBvZiAiZXZlcnkgZW50aXR5IG11c3Qga25vdyB3 aGF0IGFyZSB0aGUgc2xhdmUgY29uZmlndXJhdGlvbnMgYXQgYW55IHRpbWUiLg0KDQoNClRoYXTi gJlzIHdoYXQgSSBzdWdnZXN0ZWQgaW4gdGhlIHBhc3QsIHNheWluZyBpdCBhZ2FpbjoNCkxldCB0 aGUgdXNlciB0byBkZWNpZGUgdGhlIHdheSBoZSB3YW50cyB0byBjb25maWd1cmUgdGhlIExBQ1Ag TUMgZ3JvdXAgYnkgdGhlIGJvbmRpbmcgY29tbWFuZCBsaW5lOg0KMS4gcHJvbWlzY3VvdXMgKGRl ZmF1bHQpDQoyLiBhbGxtdWx0aQ0KMy4gc2V0IG1jIGxpc3QNCjQuIHNldCBtYWMNCi4uLi4NClVz aW5nIHRoaXMgd2F5IGJvdGggdGhlIGFwcGxpY2F0aW9uIHVzZXIgYW5kIHRoZSBib25kaW5nIFBN RCBrbm93IHdoYXQgYXJlIHRoZSBjb25maWd1cmF0aW9ucyBhdCBhbnkgdGltZS4NCihhbHNvIHNh dmVzIGNvbnNpc3RlbmN5IGFuZCB0aGUgbGFzdCBiZWhhdmlvciBvZiB0aGUgYm9uZGluZykNCg0K DQoNCg0KDQogDQoNCg0K