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:46:53 +0000 Message-ID: <54783675.6090500@audiocodes.com> References: <87ppc957h1.fsf@nemi.mork.no> <874mtl55ar.fsf@nemi.mork.no> <54781523.6030600@audiocodes.com> <54783443.50700@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-am1lrp0019.outbound.protection.outlook.com ([213.199.154.19]:3599 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750923AbaK1Iq6 (ORCPT ); Fri, 28 Nov 2014 03:46:58 -0500 In-Reply-To: Content-Language: en-US Content-ID: Sender: netdev-owner@vger.kernel.org List-ID: WW91IGhhdmUgYmVlbiBoZWxwaW5nIGEgbG90LiBUaGFua3MhDQoNClJlZ2FyZHMsDQpLZXZpbg0K DQpPbiAxMS8yOC8yMDE0IDA0OjQyIFBNLCBFbnJpY28gTWlvc28gd3JvdGU6DQo+IEJ1dCB5b3Ug YXJlIHN0aWxsIGluIDE2LWJpdCBtb2RlLCByaWdodD8NCj4gSGF2ZSB5b3UgdHJpZWQgYnkgY2hh bmNlIGluIDMyLWJpdCBtb2RlPyBJIGFtIGNvbnZpbmNlZCB0aGlzIGlzIG5vdCB0aGUgcHJvYmxl bQ0KPiAuLi4gYnV0LCBqdXN0aSBuIGNhc2U/DQo+IHRoYW5rIHlvdSBLZXZpbiBmb3IgeW91ciB3 b3JrIC0gYW5kIHNvcnJ5IGZvciBiZWluZyBub3Qgc28gaGVscGZ1bC4uLg0KPg0KPg0KPiBPbiBG cmksIDI4IE5vdiAyMDE0LCBLZXZpbiBaaHUgd3JvdGU6DQo+DQo+ID09RGF0ZTogRnJpLCAyOCBO b3YgMjAxNCAwOTozNzozMA0KPiA9PUZyb206IEtldmluIFpodSA8TWluZ3lpbmcuWmh1QGF1ZGlv Y29kZXMuY29tPg0KPiA9PVRvOiBFbnJpY28gTWlvc28gPG1ya2lrby5yc0BnbWFpbC5jb20+DQo+ ID09Q2M6IEFsZXggU3RyaXpoZXZza3kgPGFsZXh4c3RAZ21haWwuY29tPiwgQmrDuHJuIE1vcmsg PGJqb3JuQG1vcmsubm8+LA0KPiA9PSAgICBNaWRnZSBTaGFvanVuICBUYW4gPFNoYW9qdW5NaWRn ZS5UYW5AYXVkaW9jb2Rlcy5jb20+LA0KPiA9PSAgICAieW91dHV4QGdtYWlsLmNvbSIgPHlvdXR1 eEBnbWFpbC5jb20+LA0KPiA9PSAgICAibGludXgtdXNiQHZnZXIua2VybmVsLm9yZyIgPGxpbnV4 LXVzYkB2Z2VyLmtlcm5lbC5vcmc+LA0KPiA9PSAgICAibmV0ZGV2QHZnZXIua2VybmVsLm9yZyIg PG5ldGRldkB2Z2VyLmtlcm5lbC5vcmc+LA0KPiA9PSAgICBFbGkgQnJpdHN0ZWluIDxFbGkuQnJp dHN0ZWluQGF1ZGlvY29kZXMuY29tPg0KPiA9PVN1YmplY3Q6IFJlOiBJcyB0aGlzIDMyLWJpdCBO Q00/DQo+ID09DQo+ID09QXMgdGhlIHJlbWFpbmRlciAod05kcE91dFBheWxvYWRSZW1haW5kZXIp IGlzIG92ZXJ3cml0dGVuIGJ5IHRoZQ0KPiA9PWZvbGxvd2luZyBsaW5lcywgd2hvc2UgZmluYWxs eSB2YWx1ZSBpcyAwLCBJIG1vZGlmaWVkIHRoZSBjb2RlIG5vdCB0bw0KPiA9PWNoYW5nZSBpdC4g TGV0IGl0IHJlbWFpbiAyLiBBbmQgbm93IHRoZSBjYXB0dXJlIHNob3dzIHRoZSBFdGhlcm5ldA0K PiA9PWhlYWRlciBvZmZzZXQgaXMgdGhlIHNhbWUgYXMgd2luZG93cywgaG93ZXZlciwgaXQncyBu b3Qgd29ya2luZyB5ZXQuDQo+ID09DQo+ID09ICAgICAvKiBhZGp1c3QgVFgtcmVtYWluZGVyIGFj Y29yZGluZyB0byBOQ00gc3BlY2lmaWNhdGlvbi4gKi8NCj4gPT0gICAgIGN0eC0+dHhfcmVtYWlu ZGVyID0gKChjdHgtPnR4X3JlbWFpbmRlciAtIGV0aF9obGVuKSAmDQo+ID09ICAgICAgICAgICAg ICAgICAgKGN0eC0+dHhfbW9kdWx1cyAtIDEpKTsNCj4gPT0NCj4gPT0NCj4gPT1SZWdhcmRzLA0K PiA9PUtldmluDQo+ID09DQo+ID09T24gMTEvMjgvMjAxNCAwNDoyNCBQTSwgRW5yaWNvIE1pb3Nv IHdyb3RlOg0KPiA9PT4gVGhlIGRyaXZlciBlZmZlY3RpdmVseSB1c2VzIHRoZSB3TmRwT3V0RGl2 aXNvciBpbmRpcmVjdGx5IC0gc2VlIHN0YW5kYXJkDQo+ID09PiBjZGNfbmNtIGRlcml2ZXIgYXMg aW4ga2VybmVsIGdpdCB0cmVlLCBsaW5lIDQ5MC4NCj4gPT0+DQo+ID09Pg0KPiA9PT4gT24gRnJp LCAyOCBOb3YgMjAxNCwgS2V2aW4gWmh1IHdyb3RlOg0KPiA9PT4NCj4gPT0+ID09RGF0ZTogRnJp LCAyOCBOb3YgMjAxNCAwNzoyNDo0OQ0KPiA9PT4gPT1Gcm9tOiBLZXZpbiBaaHUgPE1pbmd5aW5n LlpodUBhdWRpb2NvZGVzLmNvbT4NCj4gPT0+ID09VG86IEFsZXggU3RyaXpoZXZza3kgPGFsZXh4 c3RAZ21haWwuY29tPiwgQmrDuHJuIE1vcmsgPGJqb3JuQG1vcmsubm8+LA0KPiA9PT4gPT0gICAg TWlkZ2UgU2hhb2p1biAgVGFuIDxTaGFvanVuTWlkZ2UuVGFuQGF1ZGlvY29kZXMuY29tPg0KPiA9 PT4gPT1DYzogRW5yaWNvIE1pb3NvIDxtcmtpa28ucnNAZ21haWwuY29tPiwgInlvdXR1eEBnbWFp bC5jb20iIDx5b3V0dXhAZ21haWwuY29tPiwNCj4gPT0+ID09ICAgICJsaW51eC11c2JAdmdlci5r ZXJuZWwub3JnIiA8bGludXgtdXNiQHZnZXIua2VybmVsLm9yZz4sDQo+ID09PiA9PSAgICAibmV0 ZGV2QHZnZXIua2VybmVsLm9yZyIgPG5ldGRldkB2Z2VyLmtlcm5lbC5vcmc+LA0KPiA9PT4gPT0g ICAgRWxpIEJyaXRzdGVpbiA8RWxpLkJyaXRzdGVpbkBhdWRpb2NvZGVzLmNvbT4NCj4gPT0+ID09 U3ViamVjdDogUmU6IElzIHRoaXMgMzItYml0IE5DTT8NCj4gPT0+ID09DQo+ID09PiA9PUhpIGFs bCwNCj4gPT0+ID09DQo+ID09PiA9PUknbSBhYmxlIHRvIGdldCB0aGUgZm9sbG93aW5nIHByaW50 cyB3aXRoIHRoZSBvcmlnaW5hbCBodWF3ZWlfY2RjX25jbSBkcml2ZXINCj4gPT0+ID09ZnJvbSBV YnVudHUgMTIuMDQuMy4gSXQga2VlcHMgb24gcHJpbnRpbmcuIEknbSBhbHNvIGFibGUgdG8gZ2V0 IGFuIElQLCBidXQNCj4gPT0+ID09bm8gSW50ZXJuZXQgYWNjZXNzLg0KPiA9PT4gPT0NCj4gPT0+ ID09XkhDU1E6IldDRE1BIiw2NCw1OSw1NQ0KPiA9PT4gPT0NCj4gPT0+ID09XkRTRkxPV1JQVDow MDAwMDAwRSwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMDAwMDAwMDAwLDAwMDAwMDAwMDAwMDAw MDAsMDAwDQo+ID09PiA9PTAwMDAwLDAwMDAwMDAwDQo+ID09PiA9PQ0KPiA9PT4gPT1PSw0KPiA9 PT4gPT0NCj4gPT0+ID09Xk5ESVNTVEFUOjEsLCwiSVBWNCINCj4gPT0+ID09DQo+ID09PiA9PV5T VElOOiAxLCAwLCAwDQo+ID09PiA9PQ0KPiA9PT4gPT1eRFNGTE9XUlBUOjAwMDAwMDEwLDAwMDAw MDAwLDAwMDAwMDAwLDAwMDAwMDAwMDAwMDAwMDAsMDAwMDAwMDAwMDAwMDAwMCwwMDANCj4gPT0+ ID09MDAwMDAsMDAwMDAwMDANCj4gPT0+ID09DQo+ID09PiA9PV5EU0ZMT1dSUFQ6MDAwMDAwMTIs MDAwMDAwMDAsMDAwMDAwMDAsMDAwMDAwMDAwMDAwMDAwMCwwMDAwMDAwMDAwMDAwMDAwLDAwMA0K PiA9PT4gPT0wMDAwMCwwMDAwMDAwMA0KPiA9PT4gPT0NCj4gPT0+ID09XkRTRkxPV1JQVDowMDAw MDAxNCwwMDAwMDAwMCwwMDAwMDAwMCwwMDAwMDAwMDAwMDAwMDAwLDAwMDAwMDAwMDAwMDAwMDAs MDAwDQo+ID09PiA9PTAwMDAwLDAwMDAwMDAwDQo+ID09PiA9PQ0KPiA9PT4gPT1eU1RJTjogMSwg MCwgMA0KPiA9PT4gPT0NCj4gPT0+ID09DQo+ID09PiA9PS4uLg0KPiA9PT4gPT1eU1RJTjogMSwg MCwgMA0KPiA9PT4gPT0NCj4gPT0+ID09XkRTRkxPV1JQVDowMDAwMDA4QywwMDAwMDAwMCwwMDAw MDAwMCwwMDAwMDAwMDAwMDAwQjM2LDAwMDAwMDAwMDAwMDAwMDAsMDAwDQo+ID09PiA9PTAwMDAw LDAwMDAwMDAwDQo+ID09PiA9PQ0KPiA9PT4gPT1eRFNGTE9XUlBUOjAwMDAwMDhFLDAwMDAwMDAw LDAwMDAwMDAwLDAwMDAwMDAwMDAwMDBCMzYsMDAwMDAwMDAwMDAwMDAwMCwwMDANCj4gPT0+ID09 MDAwMDAsMDAwMDAwMDANCj4gPT0+ID09DQo+ID09PiA9PVJlZ2FyZGluZyB0aGUgYWxpZ25tZW50 LCBJIHRoaW5rIHdlIGhhdmUgc29tZSBkaWZmZXJlbmNlIGJldHdlZW4gV2luZG93cyBhbmQNCj4g PT0+ID09TGludXguIFRoZSBzcGVjIHNheXMgaXQgc2hvdWxkIHNhdGlzZnkgdGhlIGZvbGxvd2lu ZyBjb25zdHJhaW50Lg0KPiA9PT4gPT0NCj4gPT0+ID09T2Zmc2V0ICUgd05kcE91dERpdmlzb3Ig PT0gd05kcE91dFBheWxvYWRSZW1haW5kZXIgKGZvciBPVVQgZGF0YWdyYW1zKQ0KPiA9PT4gPT0N Cj4gPT0+ID09SXQgc2VlbXMgdGhlIEh1YXdlaSBkZXZpY2UgdGFrZSB0aGUgTkRQIG9mZnNldCAo RXRoZXJuZXQgSGVhZGVyIE9mZnNldCkgYXMNCj4gPT0+ID09dGhlIHBhcmFtZXRlciAnT2Zmc2V0 JyBpbiB0aGUgYWJvdmUgY29uc3RyYWludC4gQW5kIGluIHRoZSBMaW51eCBjYXB0dXJlLCBpdA0K PiA9PT4gPT1kb2VzIG5vdCBjb21wbHkgd2l0aCBpdC4NCj4gPT0+ID09DQo+ID09PiA9PQ0KPiA9 PT4gPT1kd050YkluTWF4U2l6ZT0xMzEwNzIgZHdOdGJPdXRNYXhTaXplPTE2Mzg0IHdOZHBPdXRQ YXlsb2FkUmVtYWluZGVyPTINCj4gPT0+ID09d05kcE91dERpdmlzb3I9NCB3TmRwT3V0QWxpZ25t ZW50PTQgd050Yk91dE1heERhdGFncmFtcz0wIGZsYWdzPTB4MWYNCj4gPT0+ID09DQo+ID09PiA9 PVdpbmRvd3M6DQo+ID09PiA9PQ0KPiA9PT4gPT0wMDAwICAgNmUgNjMgNmQgNjggMTAgMDAgYjYg MDAgN2MgMDAgMDAgMDAgNWMgMDAgMDAgMDAgIG5jbWguLi4ufC4uLlwuLi4NCj4gPT0+ID09MDAx MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDFlIDEwIDFmIDAwIDAwIDA4IDAwICAuLi4u Li4uLi4uLi4uLi4uDQo+ID09PiA9PTAwMjAgICA0NSAwMCAwMCAzYyAwMCA5YiAwMCAwMCA4MCAw MSBhMCBmZSAwYSA3MSBhMyAwZSAgRS4uPC4uLi4uLi4uLnEuLg0KPiA9PT4gPT0wMDMwICAgY2Eg NmMgMjEgM2MgMDggMDAgNGIgNGIgMDAgMDEgMDIgMTAgNjEgNjIgNjMgNjQgIC5sITwuLktLLi4u LmFiY2QNCj4gPT0+ID09MDA0MCAgIDY1IDY2IDY3IDY4IDY5IDZhIDZiIDZjIDZkIDZlIDZmIDcw IDcxIDcyIDczIDc0ICBlZmdoaWprbG1ub3BxcnN0DQo+ID09PiA9PTAwNTAgICA3NSA3NiA3NyA2 MSA2MiA2MyA2NCA2NSA2NiA2NyA2OCA2OSA2ZSA2MyA2ZCAzMCAgdXZ3YWJjZGVmZ2hpbmNtMA0K PiA9PT4gPT0wMDYwICAgMjAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMTIgMDAg MDAgMDAgICAuLi4uLi4uLi4uLi4uLi4NCj4gPT0+ID09MDA3MCAgIDRhIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwICAgICAgICAgICAgICBKLi4uLi4uLi4uLi4NCj4gPT0+ID09DQo+ ID09PiA9PUxpbnV4OiAodGhvdWdodCBpdCdzIGEgMTZiaXQgZm9ybWF0IGNhcHR1cmUsIGJ1dCBp dCdzIHRoZSBzYW1lIGFzIDMyYml0LA0KPiA9PT4gPT1yZWdhcmRpbmcgdGhlIGFsaWdubWVudCkN Cj4gPT0+ID09DQo+ID09PiA9PTAwMDAgICA0ZSA0MyA0ZCA0OCAwYyAwMCA0MCAwMCBlMiAwMCAw YyAwMCA0ZSA0MyA0ZCAzMCAgTkNNSC4uQC4uLi4uTkNNMA0KPiA9PT4gPT0wMDEwICAgMTAgMDAg MDAgMDAgYjggMDAgMmEgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4uLiouLi4uLi4u Li4NCj4gPT0+ID09MDAyMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwICAuLi4uLi4uLi4uLi4uLi4uDQo+ID09PiA9PTAwMzAgICAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4uLi4uLi4uLi4uLi4uLg0KPiA9 PT4gPT0wMDQwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgIC4uLi4uLi4uLi4uLi4uLi4NCj4gPT0+ID09MDA1MCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAuLi4uLi4uLi4uLi4uLi4uDQo+ID09PiA9PTAw NjAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4u Li4uLi4uLi4uLi4uLg0KPiA9PT4gPT0wMDcwICAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4uLi4uLi4uLi4uLi4NCj4gPT0+ID09MDA4MCAgIDAw IDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwICAuLi4uLi4uLi4u Li4uLi4uDQo+ID09PiA9PTAwOTAgICAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAgLi4uLi4uLi4uLi4uLi4uLg0KPiA9PT4gPT0wMGEwICAgMDAgMDAgMDAg MDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgMDAgIC4uLi4uLi4uLi4uLi4uLi4N Cj4gPT0+ID09MDBiMCAgIDAwIDAwIDAwIDAwIDAwIDAwIDAwIDAwIGZmIGZmIGZmIGZmIGZmIGZm IDAwIDFlICAuLi4uLi4uLi4uLi4uLi4uDQo+ID09PiA9PTAwYzAgICAxMCAxZiAwMCAwMCAwOCAw NiAwMCAwMSAwOCAwMCAwNiAwNCAwMCAwMSAwMCAxZSAgLi4uLi4uLi4uLi4uLi4uLg0KPiA9PT4g PT0wMGQwICAgMTAgMWYgMDAgMDAgMGEgNzEgY2MgYTYgMDAgMDAgMDAgMDAgMDAgMDAgNzAgNTAg IC4uLi4ucS4uLi4uLi4ucFANCj4gPT0+ID09MDBlMCAgIGY4IDQ5ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAuSQ0KPiA9PT4gPT0NCj4gPT0+ID09DQo+ID09PiA9 PVJlZ2FyZHMsDQo+ID09PiA9PUtldmluDQo+ID09PiA9PU9uIDExLzI3LzIwMTQgMDg6MzYgUE0s IEFsZXggU3RyaXpoZXZza3kgd3JvdGU6DQo+ID09PiA9PSAgICAgIEFkZGluZyBteSBjb2xsZWFn dWVzIC0gRWxpLCBLZXZpbiAmIE1pZGdlLg0KPiA9PT4gPT0NCj4gPT0+ID09QW55IGlkZWFzIGFy ZSB3ZWxjb21lIDspDQo+ID09PiA9PQ0KPiA9PT4gPT0NCj4gPT0+ID09T24gVGh1LCBOb3YgMjcs IDIwMTQgYXQgMTI6MDMgUE0sIEJqw7hybiBNb3JrIDxiam9ybkBtb3JrLm5vPiB3cm90ZToNCj4g PT0+ID09ICAgICAgRW5yaWNvIE1pb3NvIDxtcmtpa28ucnNAZ21haWwuY29tPiB3cml0ZXM6DQo+ ID09PiA9PQ0KPiA9PT4gPT0gICAgICA+IE9rIC0gd2UgY2FuIGFycml2ZSB0byBzb21lIG9jbmNs dXNpb25zIHJlZ2FyZGluZyB0aGUNCj4gPT0+ID09ICAgICAgRTMyNzIuDQo+ID09PiA9PSAgICAg ID4gRmlyc3Qgb2YgYWxsIC0gdGhlIG1vZGVtIHNlZW1zIGJ1Z2d5IGVub3VnaCB0byBub3QgYmUN Cj4gPT0+ID09ICAgICAgYWJsZSB0byBoYW5kbGUgcmVxdWVzdHMNCj4gPT0+ID09ICAgICAgPiBm b3IgZGlmZmVyZW50IGZvcm1hdHMuIFlvdSBuZWVkIHRvIHVucGx1ZyBhbmQgcmUtcGx1Zw0KPiA9 PT4gPT0gICAgICBpdCwgYnV0IHRoaXMgaXMgb25seWFuDQo+ID09PiA9PSAgICAgID4gaW1wcmVz c2lvbiBhbmQgaXMgcmVhc29uYWJsZS4NCj4gPT0+ID09ICAgICAgPg0KPiA9PT4gPT0gICAgICA+ IFRoZW4gLSB0aGUgbW9kZW0gd2lsbCBhY2NlcHQgdG8gbmRpc2R1cCB0aGUgY29ubmVjdGlvbg0K PiA9PT4gPT0gICAgICB3aXRoDQo+ID09PiA9PSAgICAgID4gYXRebmRpc2R1cD0xLDEsImludGVy bmV0Ig0KPiA9PT4gPT0gICAgICA+IGJ1dCAtIGlmIHdlIHVzZSBodWF3ZWlfY2RjX25jbSArIGNk Y19uY20gd2UgaGF2ZSBubyBmbG93DQo+ID09PiA9PSAgICAgIGhhbmRsaW5nIG1lc3NhZ2VzIGFu ZA0KPiA9PT4gPT0gICAgICA+IHRoZSBtb2RlbSBzdG9wcyBoZXJlLg0KPiA9PT4gPT0gICAgICA+ IElmIHdlIHVzZSB0aGUgY2RjX25jbSAzMi1iaXQgZHJpdmVyIChtb2RpZmllZCkgd2UgZ2V0DQo+ ID09PiA9PSAgICAgIGxvdGZzIG9mDQo+ID09PiA9PSAgICAgID4gXmRzZmxvcnB0DQo+ID09PiA9 PSAgICAgID4gdGhhdCdzIGhvdyBpdCBzaG91bGQgYmUuDQo+ID09PiA9PSAgICAgID4gU28gSSB0 aGluayB3ZSBjYW4gc2F5IHRoYXQgc29tZXRoaW5nIGlzIGNoYW5naW5nLg0KPiA9PT4gPT0gICAg ICA+IFRoZW4gdGhlcmUncyB0aGUgYWxpZ25tZW50IHByb2JsZW0geW91IG1lbnRpb25lZCBpbiB5 b3VyDQo+ID09PiA9PSAgICAgIHByZXZpb3VzIHJlcGx5LiBBbmQNCj4gPT0+ID09ICAgICAgPiB0 aGlzIGlzIGhhcmQgdG8gc29sdmUuDQo+ID09PiA9PSAgICAgID4gY291bGQgeW91IHRyeSB0byBo ZWxwIG1lIHVuZGVyc3RhbmQgd2hlcmUgdGhlIHByb2JsZW0NCj4gPT0+ID09ICAgICAgaXM/DQo+ ID09PiA9PSAgICAgID4gSSBmZWVsIGxpa2Ugd2UgYXJlIHZlcnkgY2xvc2UgdG8gdGhlIHNvbHV0 aW9uIGJ1dA0KPiA9PT4gPT0gICAgICBzb21ldGhpbmcgaXNuJ3Qgd29ya2luZy4NCj4gPT0+ID09 ICAgICAgPiBPciBtaWdodCBiZSBqdXN0IHRyeSB0byBjaGFuZ2UgdGhlIDE2IGJpdCBkcml2ZXI/ DQo+ID09PiA9PQ0KPiA9PT4gPT1JZiB5b3UgdXNlIGEgcmVjZW50IHZlcnNpb24gb2YgdGhlIGRy aXZlciBhcyBhIGJhc2lzLCB0aGVuIHlvdQ0KPiA9PT4gPT1nZXQgdGhlDQo+ID09PiA9PUNEQyBO Q00gTlRCIHBhcmFtZXRlcnMgaW4gc3lzZnMgKGlmIG5vdCwgdGhlbiB5b3UgbmVlZCB0byBlbmFi bGUNCj4gPT0+ID09ZGVidWdnaW5nIGFuZCBsb29rIGluIHRoZSBsb2cgZm9yIHRoZXNlIHZhbHVl cykuICBGb3IgZXhhbXBsZToNCj4gPT0+ID09DQo+ID09PiA9PWJqb3JuQG5lbWk6fiQgZ3JlcCAu IC9zeXMvY2xhc3MvbmV0L3d3YW4wL2NkY19uY20vKg0KPiA9PT4gPT0vc3lzL2NsYXNzL25ldC93 d2FuMC9jZGNfbmNtL2JtTnRiRm9ybWF0c1N1cHBvcnRlZDoweDAwMDENCj4gPT0+ID09L3N5cy9j bGFzcy9uZXQvd3dhbjAvY2RjX25jbS9kd050YkluTWF4U2l6ZToxNTM2MA0KPiA9PT4gPT0vc3lz L2NsYXNzL25ldC93d2FuMC9jZGNfbmNtL2R3TnRiT3V0TWF4U2l6ZToxNTM2MA0KPiA9PT4gPT0v c3lzL2NsYXNzL25ldC93d2FuMC9jZGNfbmNtL21pbl90eF9wa3Q6MTM4MjQNCj4gPT0+ID09L3N5 cy9jbGFzcy9uZXQvd3dhbjAvY2RjX25jbS9yeF9tYXg6MTUzNjANCj4gPT0+ID09L3N5cy9jbGFz cy9uZXQvd3dhbjAvY2RjX25jbS90eF9tYXg6MTUzNjANCj4gPT0+ID09L3N5cy9jbGFzcy9uZXQv d3dhbjAvY2RjX25jbS90eF90aW1lcl91c2Vjczo0MDANCj4gPT0+ID09L3N5cy9jbGFzcy9uZXQv d3dhbjAvY2RjX25jbS93TmRwSW5BbGlnbm1lbnQ6NA0KPiA9PT4gPT0vc3lzL2NsYXNzL25ldC93 d2FuMC9jZGNfbmNtL3dOZHBJbkRpdmlzb3I6MQ0KPiA9PT4gPT0vc3lzL2NsYXNzL25ldC93d2Fu MC9jZGNfbmNtL3dOZHBJblBheWxvYWRSZW1haW5kZXI6MA0KPiA9PT4gPT0vc3lzL2NsYXNzL25l dC93d2FuMC9jZGNfbmNtL3dOZHBPdXRBbGlnbm1lbnQ6NA0KPiA9PT4gPT0vc3lzL2NsYXNzL25l dC93d2FuMC9jZGNfbmNtL3dOZHBPdXREaXZpc29yOjMyDQo+ID09PiA9PS9zeXMvY2xhc3MvbmV0 L3d3YW4wL2NkY19uY20vd05kcE91dFBheWxvYWRSZW1haW5kZXI6MA0KPiA9PT4gPT0vc3lzL2Ns YXNzL25ldC93d2FuMC9jZGNfbmNtL3dOdGJPdXRNYXhEYXRhZ3JhbXM6MzINCj4gPT0+ID09DQo+ ID09PiA9PQ0KPiA9PT4gPT1UaGUgcG9zc2libGUgcHJvYmxlbSBJIGFtIHRoaW5raW5nIG9mIGlz IHByb3BlciBoYW5kbGluZyBvZiB0aGUNCj4gPT0+ID09d05kcCpQYXlsb2FkUmVtYWluZGVyIHZh bHVlcy4gU2VlIHNlY3Rpb24gMy4zLjQgIk5DTSBFdGhlcm5ldA0KPiA9PT4gPT1GcmFtZQ0KPiA9 PT4gPT1BbGlnbm1lbnQiIGluIHRoZSBzcGVjLiAgV2hpY2ggaXMgY29uZnVzaW5nIGFzIGhlbGws IGJ1dCBpZiBJDQo+ID09PiA9PXVuZGVyc3RhbmQNCj4gPT0+ID09aXQgY29ycmVjdGx5IHRoZW4g d2UgYXJlIHN1cHBvc2VkIHRvIGFsaWduIHRoZSBzdGFydCBvZiB0aGUgSVANCj4gPT0+ID09cGFj a2V0cw0KPiA9PT4gPT0odGhlICJwYXlsb2FkIiwgX25vdF8gdGhlIGV0aGVybmV0IGZyYW1lKSB0 byBhIHdob2xlDQo+ID09PiA9PXdOZHAqRGl2aXNvciBudW1iZXINCj4gPT0+ID09YXMgbG9uZyBh cyB0aGUgd05kcCpQYXlsb2FkUmVtYWluZGVyIGlzIDAuDQo+ID09PiA9PQ0KPiA9PT4gPT0NCj4g PT0+ID09QmrDuHJuDQo+ID09PiA9PQ0KPiA9PT4gPT0NCj4gPT0+ID09DQo+ID09PiA9PVRoaXMg ZW1haWwgYW5kIGFueSBmaWxlcyB0cmFuc21pdHRlZCB3aXRoIGl0IGFyZSBjb25maWRlbnRpYWwg bWF0ZXJpYWwuIFRoZXkNCj4gPT0+ID09YXJlIGludGVuZGVkIHNvbGVseSBmb3IgdGhlIHVzZSBv ZiB0aGUgZGVzaWduYXRlZCBpbmRpdmlkdWFsIG9yIGVudGl0eSB0bw0KPiA9PT4gPT13aG9tIHRo ZXkgYXJlIGFkZHJlc3NlZC4gSWYgdGhlIHJlYWRlciBvZiB0aGlzIG1lc3NhZ2UgaXMgbm90IHRo ZSBpbnRlbmRlZA0KPiA9PT4gPT1yZWNpcGllbnQsIHlvdSBhcmUgaGVyZWJ5IG5vdGlmaWVkIHRo YXQgYW55IGRpc3NlbWluYXRpb24sIHVzZSwgZGlzdHJpYnV0aW9uDQo+ID09PiA9PW9yIGNvcHlp bmcgb2YgdGhpcyBjb21tdW5pY2F0aW9uIGlzIHN0cmljdGx5IHByb2hpYml0ZWQgYW5kIG1heSBi ZSB1bmxhd2Z1bC4NCj4gPT0+ID09DQo+ID09PiA9PUlmIHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMg ZW1haWwgaW4gZXJyb3IgcGxlYXNlIGltbWVkaWF0ZWx5IG5vdGlmeSB0aGUNCj4gPT0+ID09c2Vu ZGVyIGFuZCBkZWxldGUgb3IgZGVzdHJveSBhbnkgY29weSBvZiB0aGlzIG1lc3NhZ2UNCj4gPT0+ ID09DQo+ID09VGhpcyBlbWFpbCBhbmQgYW55IGZpbGVzIHRyYW5zbWl0dGVkIHdpdGggaXQgYXJl IGNvbmZpZGVudGlhbCBtYXRlcmlhbC4gVGhleSBhcmUgaW50ZW5kZWQgc29sZWx5IGZvciB0aGUg dXNlIG9mIHRoZSBkZXNpZ25hdGVkIGluZGl2aWR1YWwgb3IgZW50aXR5IHRvIHdob20gdGhleSBh cmUgYWRkcmVzc2VkLiBJZiB0aGUgcmVhZGVyIG9mIHRoaXMgbWVzc2FnZSBpcyBub3QgdGhlIGlu dGVuZGVkIHJlY2lwaWVudCwgeW91IGFyZSBoZXJlYnkgbm90aWZpZWQgdGhhdCBhbnkgZGlzc2Vt aW5hdGlvbiwgdXNlLCBkaXN0cmlidXRpb24gb3IgY29weWluZyBvZiB0aGlzIGNvbW11bmljYXRp b24gaXMgc3RyaWN0bHkgcHJvaGliaXRlZCBhbmQgbWF5IGJlIHVubGF3ZnVsLg0KPiA9PQ0KPiA9 PUlmIHlvdSBoYXZlIHJlY2VpdmVkIHRoaXMgZW1haWwgaW4gZXJyb3IgcGxlYXNlIGltbWVkaWF0 ZWx5IG5vdGlmeSB0aGUgc2VuZGVyIGFuZCBkZWxldGUgb3IgZGVzdHJveSBhbnkgY29weSBvZiB0 aGlzIG1lc3NhZ2UNCj4gPT0NClRoaXMgZW1haWwgYW5kIGFueSBmaWxlcyB0cmFuc21pdHRlZCB3 aXRoIGl0IGFyZSBjb25maWRlbnRpYWwgbWF0ZXJpYWwuIFRoZXkgYXJlIGludGVuZGVkIHNvbGVs eSBmb3IgdGhlIHVzZSBvZiB0aGUgZGVzaWduYXRlZCBpbmRpdmlkdWFsIG9yIGVudGl0eSB0byB3 aG9tIHRoZXkgYXJlIGFkZHJlc3NlZC4gSWYgdGhlIHJlYWRlciBvZiB0aGlzIG1lc3NhZ2UgaXMg bm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQsIHlvdSBhcmUgaGVyZWJ5IG5vdGlmaWVkIHRoYXQg YW55IGRpc3NlbWluYXRpb24sIHVzZSwgZGlzdHJpYnV0aW9uIG9yIGNvcHlpbmcgb2YgdGhpcyBj b21tdW5pY2F0aW9uIGlzIHN0cmljdGx5IHByb2hpYml0ZWQgYW5kIG1heSBiZSB1bmxhd2Z1bC4N Cg0KSWYgeW91IGhhdmUgcmVjZWl2ZWQgdGhpcyBlbWFpbCBpbiBlcnJvciBwbGVhc2UgaW1tZWRp YXRlbHkgbm90aWZ5IHRoZSBzZW5kZXIgYW5kIGRlbGV0ZSBvciBkZXN0cm95IGFueSBjb3B5IG9m IHRoaXMgbWVzc2FnZQ0K