From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kevin Zhu Subject: Re: Is this 32-bit NCM? Date: Fri, 28 Nov 2014 08:37:30 +0000 Message-ID: <54783443.50700@audiocodes.com> References: <87ppc957h1.fsf@nemi.mork.no> <874mtl55ar.fsf@nemi.mork.no> <54781523.6030600@audiocodes.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Alex Strizhevsky , =?utf-8?B?QmrDuHJuIE1vcms=?= , "Midge Shaojun Tan" , "youtux@gmail.com" , "linux-usb@vger.kernel.org" , "netdev@vger.kernel.org" , Eli Britstein To: Enrico Mioso Return-path: Received: from mail-db3lrp0078.outbound.protection.outlook.com ([213.199.154.78]:44704 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751088AbaK1Ihf (ORCPT ); Fri, 28 Nov 2014 03:37:35 -0500 In-Reply-To: Content-Language: en-US Content-ID: <13DD543A59F7F741A7E014BB7BF25EC3@eurprd06.prod.outlook.com> Sender: netdev-owner@vger.kernel.org List-ID: QXMgdGhlIHJlbWFpbmRlciAod05kcE91dFBheWxvYWRSZW1haW5kZXIpIGlzIG92ZXJ3cml0dGVu IGJ5IHRoZQ0KZm9sbG93aW5nIGxpbmVzLCB3aG9zZSBmaW5hbGx5IHZhbHVlIGlzIDAsIEkgbW9k aWZpZWQgdGhlIGNvZGUgbm90IHRvDQpjaGFuZ2UgaXQuIExldCBpdCByZW1haW4gMi4gQW5kIG5v dyB0aGUgY2FwdHVyZSBzaG93cyB0aGUgRXRoZXJuZXQNCmhlYWRlciBvZmZzZXQgaXMgdGhlIHNh bWUgYXMgd2luZG93cywgaG93ZXZlciwgaXQncyBub3Qgd29ya2luZyB5ZXQuDQoNCiAgICAgLyog YWRqdXN0IFRYLXJlbWFpbmRlciBhY2NvcmRpbmcgdG8gTkNNIHNwZWNpZmljYXRpb24uICovDQog ICAgIGN0eC0+dHhfcmVtYWluZGVyID0gKChjdHgtPnR4X3JlbWFpbmRlciAtIGV0aF9obGVuKSAm DQogICAgICAgICAgICAgICAgICAoY3R4LT50eF9tb2R1bHVzIC0gMSkpOw0KDQoNClJlZ2FyZHMs DQpLZXZpbg0KDQpPbiAxMS8yOC8yMDE0IDA0OjI0IFBNLCBFbnJpY28gTWlvc28gd3JvdGU6DQo+ IFRoZSBkcml2ZXIgZWZmZWN0aXZlbHkgdXNlcyB0aGUgd05kcE91dERpdmlzb3IgaW5kaXJlY3Rs eSAtIHNlZSBzdGFuZGFyZA0KPiBjZGNfbmNtIGRlcml2ZXIgYXMgaW4ga2VybmVsIGdpdCB0cmVl LCBsaW5lIDQ5MC4NCj4NCj4NCj4gT24gRnJpLCAyOCBOb3YgMjAxNCwgS2V2aW4gWmh1IHdyb3Rl Og0KPg0KPiA9PURhdGU6IEZyaSwgMjggTm92IDIwMTQgMDc6MjQ6NDkNCj4gPT1Gcm9tOiBLZXZp biBaaHUgPE1pbmd5aW5nLlpodUBhdWRpb2NvZGVzLmNvbT4NCj4gPT1UbzogQWxleCBTdHJpemhl dnNreSA8YWxleHhzdEBnbWFpbC5jb20+LCBCasO4cm4gTW9yayA8Ympvcm5AbW9yay5ubz4sDQo+ ID09ICAgIE1pZGdlIFNoYW9qdW4gIFRhbiA8U2hhb2p1bk1pZGdlLlRhbkBhdWRpb2NvZGVzLmNv bT4NCj4gPT1DYzogRW5yaWNvIE1pb3NvIDxtcmtpa28ucnNAZ21haWwuY29tPiwgInlvdXR1eEBn bWFpbC5jb20iIDx5b3V0dXhAZ21haWwuY29tPiwNCj4gPT0gICAgImxpbnV4LXVzYkB2Z2VyLmtl cm5lbC5vcmciIDxsaW51eC11c2JAdmdlci5rZXJuZWwub3JnPiwNCj4gPT0gICAgIm5ldGRldkB2 Z2VyLmtlcm5lbC5vcmciIDxuZXRkZXZAdmdlci5rZXJuZWwub3JnPiwNCj4gPT0gICAgRWxpIEJy aXRzdGVpbiA8RWxpLkJyaXRzdGVpbkBhdWRpb2NvZGVzLmNvbT4NCj4gPT1TdWJqZWN0OiBSZTog SXMgdGhpcyAzMi1iaXQgTkNNPw0KPiA9PQ0KPiA9PUhpIGFsbCwNCj4gPT0NCj4gPT1JJ20gYWJs ZSB0byBnZXQgdGhlIGZvbGxvd2luZyBwcmludHMgd2l0aCB0aGUgb3JpZ2luYWwgaHVhd2VpX2Nk Y19uY20gZHJpdmVyDQo+ID09ZnJvbSBVYnVudHUgMTIuMDQuMy4gSXQga2VlcHMgb24gcHJpbnRp bmcuIEknbSBhbHNvIGFibGUgdG8gZ2V0IGFuIElQLCBidXQNCj4gPT1ubyBJbnRlcm5ldCBhY2Nl c3MuDQo+ID09DQo+ID09XkhDU1E6IldDRE1BIiw2NCw1OSw1NQ0KPiA9PQ0KPiA9PV5EU0ZMT1dS UFQ6MDAwMDAwMEUsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAwMDAwMDAwMCwwMDAwMDAwMDAw MDAwMDAwLDAwMA0KPiA9PTAwMDAwLDAwMDAwMDAwDQo+ID09DQo+ID09T0sNCj4gPT0NCj4gPT1e TkRJU1NUQVQ6MSwsLCJJUFY0Ig0KPiA9PQ0KPiA9PV5TVElOOiAxLCAwLCAwDQo+ID09DQo+ID09 XkRTRkxPV1JQVDowMDAwMDAxMCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMDAwMDAwMDAwLDAw MDAwMDAwMDAwMDAwMDAsMDAwDQo+ID09MDAwMDAsMDAwMDAwMDANCj4gPT0NCj4gPT1eRFNGTE9X UlBUOjAwMDAwMDEyLDAwMDAwMDAwLDAwMDAwMDAwLDAwMDAwMDAwMDAwMDAwMDAsMDAwMDAwMDAw MDAwMDAwMCwwMDANCj4gPT0wMDAwMCwwMDAwMDAwMA0KPiA9PQ0KPiA9PV5EU0ZMT1dSUFQ6MDAw MDAwMTQsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAwMDAwMDAwMCwwMDAwMDAwMDAwMDAwMDAw LDAwMA0KPiA9PTAwMDAwLDAwMDAwMDAwDQo+ID09DQo+ID09XlNUSU46IDEsIDAsIDANCj4gPT0N Cj4gPT0NCj4gPT0uLi4NCj4gPT1eU1RJTjogMSwgMCwgMA0KPiA9PQ0KPiA9PV5EU0ZMT1dSUFQ6 MDAwMDAwOEMsMDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAwMDAwMEIzNiwwMDAwMDAwMDAwMDAw MDAwLDAwMA0KPiA9PTAwMDAwLDAwMDAwMDAwDQo+ID09DQo+ID09XkRTRkxPV1JQVDowMDAwMDA4 RSwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMDAwMDAwQjM2LDAwMDAwMDAwMDAwMDAwMDAsMDAw DQo+ID09MDAwMDAsMDAwMDAwMDANCj4gPT0NCj4gPT1SZWdhcmRpbmcgdGhlIGFsaWdubWVudCwg SSB0aGluayB3ZSBoYXZlIHNvbWUgZGlmZmVyZW5jZSBiZXR3ZWVuIFdpbmRvd3MgYW5kDQo+ID09 TGludXguIFRoZSBzcGVjIHNheXMgaXQgc2hvdWxkIHNhdGlzZnkgdGhlIGZvbGxvd2luZyBjb25z dHJhaW50Lg0KPiA9PQ0KPiA9PU9mZnNldCAlIHdOZHBPdXREaXZpc29yID09IHdOZHBPdXRQYXls b2FkUmVtYWluZGVyIChmb3IgT1VUIGRhdGFncmFtcykNCj4gPT0NCj4gPT1JdCBzZWVtcyB0aGUg SHVhd2VpIGRldmljZSB0YWtlIHRoZSBORFAgb2Zmc2V0IChFdGhlcm5ldCBIZWFkZXIgT2Zmc2V0 KSBhcw0KPiA9PXRoZSBwYXJhbWV0ZXIgJ09mZnNldCcgaW4gdGhlIGFib3ZlIGNvbnN0cmFpbnQu IEFuZCBpbiB0aGUgTGludXggY2FwdHVyZSwgaXQNCj4gPT1kb2VzIG5vdCBjb21wbHkgd2l0aCBp dC4NCj4gPT0NCj4gPT0NCj4gPT1kd050YkluTWF4U2l6ZT0xMzEwNzIgZHdOdGJPdXRNYXhTaXpl PTE2Mzg0IHdOZHBPdXRQYXlsb2FkUmVtYWluZGVyPTINCj4gPT13TmRwT3V0RGl2aXNvcj00IHdO ZHBPdXRBbGlnbm1lbnQ9NCB3TnRiT3V0TWF4RGF0YWdyYW1zPTAgZmxhZ3M9MHgxZg0KPiA9PQ0K PiA9PVdpbmRvd3M6DQo+ID09DQo+ID09MDAwMCAgIDZlIDYzIDZkIDY4IDEwIDAwIGI2IDAwIDdj IDAwIDAwIDAwIDVjIDAwIDAwIDAwICBuY21oLi4uLnwuLi5cLi4uDQo+ID09MDAxMCAgIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDFlIDEwIDFmIDAwIDAwIDA4IDAwICAuLi4uLi4uLi4uLi4u Li4uDQo+ID09MDAyMCAgIDQ1IDAwIDAwIDNjIDAwIDliIDAwIDAwIDgwIDAxIGEwIGZlIDBhIDcx IGEzIDBlICBFLi48Li4uLi4uLi4ucS4uDQo+ID09MDAzMCAgIGNhIDZjIDIxIDNjIDA4IDAwIDRi IDRiIDAwIDAxIDAyIDEwIDYxIDYyIDYzIDY0ICAubCE8Li5LSy4uLi5hYmNkDQo+ID09MDA0MCAg IDY1IDY2IDY3IDY4IDY5IDZhIDZiIDZjIDZkIDZlIDZmIDcwIDcxIDcyIDczIDc0ICBlZmdoaWpr bG1ub3BxcnN0DQo+ID09MDA1MCAgIDc1IDc2IDc3IDYxIDYyIDYzIDY0IDY1IDY2IDY3IDY4IDY5 IDZlIDYzIDZkIDMwICB1dndhYmNkZWZnaGluY20wDQo+ID09MDA2MCAgIDIwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDEyIDAwIDAwIDAwICAgLi4uLi4uLi4uLi4uLi4uDQo+ID09 MDA3MCAgIDRhIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAgICAgICAgICAgICBK Li4uLi4uLi4uLi4NCj4gPT0NCj4gPT1MaW51eDogKHRob3VnaHQgaXQncyBhIDE2Yml0IGZvcm1h dCBjYXB0dXJlLCBidXQgaXQncyB0aGUgc2FtZSBhcyAzMmJpdCwNCj4gPT1yZWdhcmRpbmcgdGhl IGFsaWdubWVudCkNCj4gPT0NCj4gPT0wMDAwICAgNGUgNDMgNGQgNDggMGMgMDAgNDAgMDAgZTIg MDAgMGMgMDAgNGUgNDMgNGQgMzAgIE5DTUguLkAuLi4uLk5DTTANCj4gPT0wMDEwICAgMTAgMDAg MDAgMDAgYjggMDAgMmEgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4uLiouLi4uLi4u Li4NCj4gPT0wMDIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgIC4uLi4uLi4uLi4uLi4uLi4NCj4gPT0wMDMwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4uLi4uLi4uLi4uLi4NCj4gPT0wMDQwICAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4uLi4u Li4uLi4uLi4NCj4gPT0wMDUwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgIC4uLi4uLi4uLi4uLi4uLi4NCj4gPT0wMDYwICAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4uLi4uLi4uLi4uLi4NCj4gPT0w MDcwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4u Li4uLi4uLi4uLi4uLi4NCj4gPT0wMDgwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4uLi4uLi4uLi4uLi4NCj4gPT0wMDkwICAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4uLi4uLi4uLi4uLi4N Cj4gPT0wMGEwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgIC4uLi4uLi4uLi4uLi4uLi4NCj4gPT0wMGIwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg ZmYgZmYgZmYgZmYgZmYgZmYgMDAgMWUgIC4uLi4uLi4uLi4uLi4uLi4NCj4gPT0wMGMwICAgMTAg MWYgMDAgMDAgMDggMDYgMDAgMDEgMDggMDAgMDYgMDQgMDAgMDEgMDAgMWUgIC4uLi4uLi4uLi4u Li4uLi4NCj4gPT0wMGQwICAgMTAgMWYgMDAgMDAgMGEgNzEgY2MgYTYgMDAgMDAgMDAgMDAgMDAg MDAgNzAgNTAgIC4uLi4ucS4uLi4uLi4ucFANCj4gPT0wMGUwICAgZjggNDkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5JDQo+ID09DQo+ID09DQo+ID09UmVnYXJk cywNCj4gPT1LZXZpbg0KPiA9PU9uIDExLzI3LzIwMTQgMDg6MzYgUE0sIEFsZXggU3RyaXpoZXZz a3kgd3JvdGU6DQo+ID09ICAgICAgQWRkaW5nIG15IGNvbGxlYWd1ZXMgLSBFbGksIEtldmluICYg TWlkZ2UuDQo+ID09DQo+ID09QW55IGlkZWFzIGFyZSB3ZWxjb21lIDspDQo+ID09DQo+ID09DQo+ ID09T24gVGh1LCBOb3YgMjcsIDIwMTQgYXQgMTI6MDMgUE0sIEJqw7hybiBNb3JrIDxiam9ybkBt b3JrLm5vPiB3cm90ZToNCj4gPT0gICAgICBFbnJpY28gTWlvc28gPG1ya2lrby5yc0BnbWFpbC5j b20+IHdyaXRlczoNCj4gPT0NCj4gPT0gICAgICA+IE9rIC0gd2UgY2FuIGFycml2ZSB0byBzb21l IG9jbmNsdXNpb25zIHJlZ2FyZGluZyB0aGUNCj4gPT0gICAgICBFMzI3Mi4NCj4gPT0gICAgICA+ IEZpcnN0IG9mIGFsbCAtIHRoZSBtb2RlbSBzZWVtcyBidWdneSBlbm91Z2ggdG8gbm90IGJlDQo+ ID09ICAgICAgYWJsZSB0byBoYW5kbGUgcmVxdWVzdHMNCj4gPT0gICAgICA+IGZvciBkaWZmZXJl bnQgZm9ybWF0cy4gWW91IG5lZWQgdG8gdW5wbHVnIGFuZCByZS1wbHVnDQo+ID09ICAgICAgaXQs IGJ1dCB0aGlzIGlzIG9ubHlhbg0KPiA9PSAgICAgID4gaW1wcmVzc2lvbiBhbmQgaXMgcmVhc29u YWJsZS4NCj4gPT0gICAgICA+DQo+ID09ICAgICAgPiBUaGVuIC0gdGhlIG1vZGVtIHdpbGwgYWNj ZXB0IHRvIG5kaXNkdXAgdGhlIGNvbm5lY3Rpb24NCj4gPT0gICAgICB3aXRoDQo+ID09ICAgICAg PiBhdF5uZGlzZHVwPTEsMSwiaW50ZXJuZXQiDQo+ID09ICAgICAgPiBidXQgLSBpZiB3ZSB1c2Ug aHVhd2VpX2NkY19uY20gKyBjZGNfbmNtIHdlIGhhdmUgbm8gZmxvdw0KPiA9PSAgICAgIGhhbmRs aW5nIG1lc3NhZ2VzIGFuZA0KPiA9PSAgICAgID4gdGhlIG1vZGVtIHN0b3BzIGhlcmUuDQo+ID09 ICAgICAgPiBJZiB3ZSB1c2UgdGhlIGNkY19uY20gMzItYml0IGRyaXZlciAobW9kaWZpZWQpIHdl IGdldA0KPiA9PSAgICAgIGxvdGZzIG9mDQo+ID09ICAgICAgPiBeZHNmbG9ycHQNCj4gPT0gICAg ICA+IHRoYXQncyBob3cgaXQgc2hvdWxkIGJlLg0KPiA9PSAgICAgID4gU28gSSB0aGluayB3ZSBj YW4gc2F5IHRoYXQgc29tZXRoaW5nIGlzIGNoYW5naW5nLg0KPiA9PSAgICAgID4gVGhlbiB0aGVy ZSdzIHRoZSBhbGlnbm1lbnQgcHJvYmxlbSB5b3UgbWVudGlvbmVkIGluIHlvdXINCj4gPT0gICAg ICBwcmV2aW91cyByZXBseS4gQW5kDQo+ID09ICAgICAgPiB0aGlzIGlzIGhhcmQgdG8gc29sdmUu DQo+ID09ICAgICAgPiBjb3VsZCB5b3UgdHJ5IHRvIGhlbHAgbWUgdW5kZXJzdGFuZCB3aGVyZSB0 aGUgcHJvYmxlbQ0KPiA9PSAgICAgIGlzPw0KPiA9PSAgICAgID4gSSBmZWVsIGxpa2Ugd2UgYXJl IHZlcnkgY2xvc2UgdG8gdGhlIHNvbHV0aW9uIGJ1dA0KPiA9PSAgICAgIHNvbWV0aGluZyBpc24n dCB3b3JraW5nLg0KPiA9PSAgICAgID4gT3IgbWlnaHQgYmUganVzdCB0cnkgdG8gY2hhbmdlIHRo ZSAxNiBiaXQgZHJpdmVyPw0KPiA9PQ0KPiA9PUlmIHlvdSB1c2UgYSByZWNlbnQgdmVyc2lvbiBv ZiB0aGUgZHJpdmVyIGFzIGEgYmFzaXMsIHRoZW4geW91DQo+ID09Z2V0IHRoZQ0KPiA9PUNEQyBO Q00gTlRCIHBhcmFtZXRlcnMgaW4gc3lzZnMgKGlmIG5vdCwgdGhlbiB5b3UgbmVlZCB0byBlbmFi bGUNCj4gPT1kZWJ1Z2dpbmcgYW5kIGxvb2sgaW4gdGhlIGxvZyBmb3IgdGhlc2UgdmFsdWVzKS4g IEZvciBleGFtcGxlOg0KPiA9PQ0KPiA9PWJqb3JuQG5lbWk6fiQgZ3JlcCAuIC9zeXMvY2xhc3Mv bmV0L3d3YW4wL2NkY19uY20vKg0KPiA9PS9zeXMvY2xhc3MvbmV0L3d3YW4wL2NkY19uY20vYm1O dGJGb3JtYXRzU3VwcG9ydGVkOjB4MDAwMQ0KPiA9PS9zeXMvY2xhc3MvbmV0L3d3YW4wL2NkY19u Y20vZHdOdGJJbk1heFNpemU6MTUzNjANCj4gPT0vc3lzL2NsYXNzL25ldC93d2FuMC9jZGNfbmNt L2R3TnRiT3V0TWF4U2l6ZToxNTM2MA0KPiA9PS9zeXMvY2xhc3MvbmV0L3d3YW4wL2NkY19uY20v bWluX3R4X3BrdDoxMzgyNA0KPiA9PS9zeXMvY2xhc3MvbmV0L3d3YW4wL2NkY19uY20vcnhfbWF4 OjE1MzYwDQo+ID09L3N5cy9jbGFzcy9uZXQvd3dhbjAvY2RjX25jbS90eF9tYXg6MTUzNjANCj4g PT0vc3lzL2NsYXNzL25ldC93d2FuMC9jZGNfbmNtL3R4X3RpbWVyX3VzZWNzOjQwMA0KPiA9PS9z eXMvY2xhc3MvbmV0L3d3YW4wL2NkY19uY20vd05kcEluQWxpZ25tZW50OjQNCj4gPT0vc3lzL2Ns YXNzL25ldC93d2FuMC9jZGNfbmNtL3dOZHBJbkRpdmlzb3I6MQ0KPiA9PS9zeXMvY2xhc3MvbmV0 L3d3YW4wL2NkY19uY20vd05kcEluUGF5bG9hZFJlbWFpbmRlcjowDQo+ID09L3N5cy9jbGFzcy9u ZXQvd3dhbjAvY2RjX25jbS93TmRwT3V0QWxpZ25tZW50OjQNCj4gPT0vc3lzL2NsYXNzL25ldC93 d2FuMC9jZGNfbmNtL3dOZHBPdXREaXZpc29yOjMyDQo+ID09L3N5cy9jbGFzcy9uZXQvd3dhbjAv Y2RjX25jbS93TmRwT3V0UGF5bG9hZFJlbWFpbmRlcjowDQo+ID09L3N5cy9jbGFzcy9uZXQvd3dh bjAvY2RjX25jbS93TnRiT3V0TWF4RGF0YWdyYW1zOjMyDQo+ID09DQo+ID09DQo+ID09VGhlIHBv c3NpYmxlIHByb2JsZW0gSSBhbSB0aGlua2luZyBvZiBpcyBwcm9wZXIgaGFuZGxpbmcgb2YgdGhl DQo+ID09d05kcCpQYXlsb2FkUmVtYWluZGVyIHZhbHVlcy4gU2VlIHNlY3Rpb24gMy4zLjQgIk5D TSBFdGhlcm5ldA0KPiA9PUZyYW1lDQo+ID09QWxpZ25tZW50IiBpbiB0aGUgc3BlYy4gIFdoaWNo IGlzIGNvbmZ1c2luZyBhcyBoZWxsLCBidXQgaWYgSQ0KPiA9PXVuZGVyc3RhbmQNCj4gPT1pdCBj b3JyZWN0bHkgdGhlbiB3ZSBhcmUgc3VwcG9zZWQgdG8gYWxpZ24gdGhlIHN0YXJ0IG9mIHRoZSBJ UA0KPiA9PXBhY2tldHMNCj4gPT0odGhlICJwYXlsb2FkIiwgX25vdF8gdGhlIGV0aGVybmV0IGZy YW1lKSB0byBhIHdob2xlDQo+ID09d05kcCpEaXZpc29yIG51bWJlcg0KPiA9PWFzIGxvbmcgYXMg dGhlIHdOZHAqUGF5bG9hZFJlbWFpbmRlciBpcyAwLg0KPiA9PQ0KPiA9PQ0KPiA9PUJqw7hybg0K PiA9PQ0KPiA9PQ0KPiA9PQ0KPiA9PVRoaXMgZW1haWwgYW5kIGFueSBmaWxlcyB0cmFuc21pdHRl ZCB3aXRoIGl0IGFyZSBjb25maWRlbnRpYWwgbWF0ZXJpYWwuIFRoZXkNCj4gPT1hcmUgaW50ZW5k ZWQgc29sZWx5IGZvciB0aGUgdXNlIG9mIHRoZSBkZXNpZ25hdGVkIGluZGl2aWR1YWwgb3IgZW50 aXR5IHRvDQo+ID09d2hvbSB0aGV5IGFyZSBhZGRyZXNzZWQuIElmIHRoZSByZWFkZXIgb2YgdGhp cyBtZXNzYWdlIGlzIG5vdCB0aGUgaW50ZW5kZWQNCj4gPT1yZWNpcGllbnQsIHlvdSBhcmUgaGVy ZWJ5IG5vdGlmaWVkIHRoYXQgYW55IGRpc3NlbWluYXRpb24sIHVzZSwgZGlzdHJpYnV0aW9uDQo+ ID09b3IgY29weWluZyBvZiB0aGlzIGNvbW11bmljYXRpb24gaXMgc3RyaWN0bHkgcHJvaGliaXRl ZCBhbmQgbWF5IGJlIHVubGF3ZnVsLg0KPiA9PQ0KPiA9PUlmIHlvdSBoYXZlIHJlY2VpdmVkIHRo aXMgZW1haWwgaW4gZXJyb3IgcGxlYXNlIGltbWVkaWF0ZWx5IG5vdGlmeSB0aGUNCj4gPT1zZW5k ZXIgYW5kIGRlbGV0ZSBvciBkZXN0cm95IGFueSBjb3B5IG9mIHRoaXMgbWVzc2FnZQ0KPiA9PQ0K VGhpcyBlbWFpbCBhbmQgYW55IGZpbGVzIHRyYW5zbWl0dGVkIHdpdGggaXQgYXJlIGNvbmZpZGVu dGlhbCBtYXRlcmlhbC4gVGhleSBhcmUgaW50ZW5kZWQgc29sZWx5IGZvciB0aGUgdXNlIG9mIHRo ZSBkZXNpZ25hdGVkIGluZGl2aWR1YWwgb3IgZW50aXR5IHRvIHdob20gdGhleSBhcmUgYWRkcmVz c2VkLiBJZiB0aGUgcmVhZGVyIG9mIHRoaXMgbWVzc2FnZSBpcyBub3QgdGhlIGludGVuZGVkIHJl Y2lwaWVudCwgeW91IGFyZSBoZXJlYnkgbm90aWZpZWQgdGhhdCBhbnkgZGlzc2VtaW5hdGlvbiwg dXNlLCBkaXN0cmlidXRpb24gb3IgY29weWluZyBvZiB0aGlzIGNvbW11bmljYXRpb24gaXMgc3Ry aWN0bHkgcHJvaGliaXRlZCBhbmQgbWF5IGJlIHVubGF3ZnVsLg0KDQpJZiB5b3UgaGF2ZSByZWNl aXZlZCB0aGlzIGVtYWlsIGluIGVycm9yIHBsZWFzZSBpbW1lZGlhdGVseSBub3RpZnkgdGhlIHNl bmRlciBhbmQgZGVsZXRlIG9yIGRlc3Ryb3kgYW55IGNvcHkgb2YgdGhpcyBtZXNzYWdlDQo=