From: Rick James Date: September 18 2012 11:41pm Subject: RE: getting certain rows from a group by List-Archive: http://lists.mysql.com/mysql/228190 Message-Id: <2E7DD7ADE53B044C8C8BCD9C5829E1EB148BB5DF7E@SP2-EX07VS01.ds.corp.yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U0VMRUNUICAoKHRoZSBhcHByb3ByaWF0ZSBpZCkpICAgICAgICAgIC0tIDwtLQ0KICAgIEZST00g IGRhdGFfY3N0LCByb2xsdXAsIGRhdGFfdGFyZ2V0DQogICAgV0hFUkUgIGRhdGFfdGFyZ2V0Lm5h bWUgPSByb2xsdXAuVGFyZ2V0DQogICAgICBBTkQgIGRhdGFfY3N0LmVwID0gcm9sbHVwLkVQDQog ICAgICBBTkQgIGRhdGFfY3N0LmRhdGVfdGltZSBCRVRXRUVOICcyMDEwLTAzLTA0IDAwOjAwOjAw JyBBTkQgJzIwMTAtMDMtMDQgMjM6NTk6NTknDQogICAgICBBTkQgIGRhdGFfdGFyZ2V0LmlkID0g ZGF0YV9jc3QudGFyZ2V0X25hbWVfaWQNCiAgICBHUk9VUCBCWSAgcm9sbHVwLlRhcmdldCwgcm9s bHVwLkVQDQogICAgT1JERVIgQlkgIEFCUyhkYXRhX2NzdC5ib3R0b20gLSByb2xsdXAuYEF2ZyBC b3R0b21gKQ0KICAgIExJTUlUICAxICAgICAgICAgICAgICAgLS0gPC0tDQoNCj4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGFycnkgTWFydGVsbCBbbWFpbHRvOmxhcnJ5Lm1h cnRlbGxAZ21haWwuY29tXQ0KPiBTZW50OiBUdWVzZGF5LCBTZXB0ZW1iZXIgMTgsIDIwMTIgMjo1 NyBQTQ0KPiBUbzogUmljayBKYW1lcw0KPiBDYzogcGV0ZXIuYnJhd2xleUBlYXJ0aGxpbmsubmV0 OyBteXNxbEBsaXN0cy5teXNxbC5jb20NCj4gU3ViamVjdDogUmU6IGdldHRpbmcgY2VydGFpbiBy b3dzIGZyb20gYSBncm91cCBieQ0KPiANCj4gT24gVHVlLCBTZXAgMTgsIDIwMTIgYXQgNDowMSBQ TSwgUmljayBKYW1lcyA8cmphbWVzQHlhaG9vLWluYy5jb20+DQo+IHdyb3RlOg0KPiA+IFNFTEVD VCBtbi4qDQo+ID4gICAgICAgIG14LioNCj4gPj4gPiAgICBGUk9NICggU0VMRUNUIEBtaW4gPSBN SU4oYm90dG9tKSwNCj4gPj4gPiAgICAgICAgICAgICAgICAgIEBtYXggPSBNQVgoYm90dG9tKSwg Li4uICkNCj4gPj4gPiAgICBKT0lOIGRhdGFfY3N0IG1uICBPTiBib3R0b20gPSBAbWluDQo+ID4+ ID4gICAgSk9JTiBkYXRhX2NzdCBteCAgT04gYm90dG9tID0gQG1heA0KPiA+DQo+ID4gVGhhdCBp cywgdGhlIEZST00gZmluZHMgdGhlIHZhbHVlIGZvciB0aGUgZGVzaXJlZCByb3cuDQo+ID4gVGhl IEpPSU4gdGhlbiBnZXRzIHRvIHRoZSByZXN0IG9mIHRoZSBmaWVsZHMuDQo+ID4gQ2F2ZWF0OiAg SWYgdHdvIHJvd3MgaGF2ZSBib3R0b20gPSBAbWluLCBpdCByZXR1cm5zIGJvdGguDQo+IA0KPiAN Cj4gVGhhbmtzIGEgbG90IFJpY2shIFRoaXMgd2FzIHN1cGVyIGhlbHBmdWwuIEkndmUgZ290IGl0 IHdvcmtpbmcgZm9yIDMgb2YNCj4gdGhlIDQgY2FzZXMgLSBtaW4oYm90dG9tKSwgbWF4KGJvdHRv bSksIGFuZCBtYXgoZGF0ZV90aW1lKS4gQnV0IEkgY2FuJ3QNCj4gZmlndXJlIG91dCBob3cgdG8g d29yayBpbiB0aGUgbGFzdCBjYXNlIC0gd2hlcmUgYm90dG9tIGlzIGNsb3Nlc3QgdG8NCj4gYXZn KGJvdHRvbSkuIEluIGFuIGluZGl2aWR1YWwgcXVlcnkgSSBjYW4gZ2V0IGl0IHdpdGggYW4gb3Jk ZXIgYnksIGxpa2UNCj4gdGhpczoNCj4gDQo+IFNFTEVDVCByb2xsdXAuVGFyZ2V0LCByb2xsdXAu RVAsIHJvbGx1cC5gQXZnIEJvdHRvbWAsIGRhdGFfY3N0LmlkLA0KPiBkYXRhX2NzdC5ib3R0b20g RlJPTSBkYXRhX2NzdCwgcm9sbHVwLCBkYXRhX3RhcmdldCBXSEVSRQ0KPiBkYXRhX3RhcmdldC5u YW1lID0gcm9sbHVwLlRhcmdldCBBTkQgZGF0YV9jc3QuZXAgPSByb2xsdXAuRVAgQU5EDQo+IGRh dGFfY3N0LmRhdGVfdGltZSBCRVRXRUVOICcyMDEwLTAzLTA0IDAwOjAwOjAwJyBBTkQgJzIwMTAt MDMtMDQNCj4gMjM6NTk6NTknDQo+IEFORCBkYXRhX3RhcmdldC5pZCA9IGRhdGFfY3N0LnRhcmdl dF9uYW1lX2lkIEdST1VQIEJZIHJvbGx1cC5UYXJnZXQsDQo+IHJvbGx1cC5FUCBPUkRFUiBCWSBB QlMoZGF0YV9jc3QuYm90dG9tIC0gcm9sbHVwLmBBdmcgQm90dG9tYCk7DQo+IA0KPiBBbnkgd2F5 IHRvIHdvcmsgdGhhdCBpbnRvIGFub3RoZXIgam9pbj8NCj4gDQo+IFRoYW5rcyENCj4gDQo+ID4N Cj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogTGFycnkgTWFydGVs bCBbbWFpbHRvOmxhcnJ5Lm1hcnRlbGxAZ21haWwuY29tXQ0KPiA+PiBTZW50OiBUdWVzZGF5LCBT ZXB0ZW1iZXIgMTgsIDIwMTIgMTI6NTQgUE0NCj4gPj4gVG86IFJpY2sgSmFtZXMNCj4gPj4gQ2M6 IHBldGVyLmJyYXdsZXlAZWFydGhsaW5rLm5ldDsgbXlzcWxAbGlzdHMubXlzcWwuY29tDQo+ID4+ IFN1YmplY3Q6IFJlOiBnZXR0aW5nIGNlcnRhaW4gcm93cyBmcm9tIGEgZ3JvdXAgYnkNCj4gPj4N Cj4gPj4gT24gVHVlLCBTZXAgMTgsIDIwMTIgYXQgMjowNSBQTSwgUmljayBKYW1lcyA8cmphbWVz QHlhaG9vLWluYy5jb20+DQo+ID4+IHdyb3RlOg0KPiA+PiA+IEZvciBzaW5nbGUgcXVlcnkuLi4N Cj4gPj4gPg0KPiA+PiA+IFBsYW4gQToNCj4gPj4gPiBSZXBlYXQgdGhlIFNFTEVDVCBhcyBvbmNl IGZvciBlYWNoIChNSU4sIEFWRywgZXRjKSBhcyBhIHN1YnF1ZXJ5DQo+IGluDQo+ID4+ID4gICAg V0hFUkUgYm90dG9tID0gKCBTRUxFQ1QgTUlOKGJvdHRvbSkgLi4uICkNCj4gPj4gPg0KPiA+PiA+ IFBsYW4gQjoNCj4gPj4gPiAgICBGUk9NICggU0VMRUNUIEBtaW4gPSBNSU4oYm90dG9tKSwNCj4g Pj4gPiAgICAgICAgICAgICAgICAgIEBtYXggPSBNQVgoYm90dG9tKSwgLi4uICkNCj4gPj4gPiAg ICBKT0lOIGRhdGFfY3N0IG1uICBPTiBib3R0b20gPSBAbWluDQo+ID4+ID4gICAgSk9JTiBkYXRh X2NzdCBteCAgT04gYm90dG9tID0gQG1heA0KPiA+Pg0KPiA+Pg0KPiA+PiBDYW4geW91IGVsYWJv cmF0ZSBvbiB0aGlzPyBJIGRvbid0IHNlZSBob3cgdGhpcyB3aWxsIGdpdmUgbWUgd2hhdCBJDQo+ ID4+IG5lZWQuIEknbSBub3QgbG9va2luZyBmb3IgdGhlIG1pbiBvciBtYXggYm90dG9tIC0gSSBh bHJlYWR5IGhhdmUNCj4gdGhhdA0KPiA+PiAtIEknbSBsb29raW5nIGZvciB0aGUgcm93IGZyb20g ZWFjaCBncm91cCB0aGF0IGhhcyB0aGUgbWluIGFuZCBtYXgNCj4gPj4gYm90dG9tLg0KPiA+Pg0K PiA+PiA+IFBsYW4gQzoNCj4gPj4gPiBHZXQgcmlkIG9mIDNyZCBwYXJ0eSBwYWNrYWdlcyB0aGF0 IGV2ZW50dWFsbHkgZ2V0IGluIHlvdXIgd2F5DQo+ID4+ID4gaW5zdGVhZA0KPiA+PiBvZiAnaGVs cGluZycuDQo+ID4+DQo+ID4+IEl0J3Mgbm90IGRqYW5nbyB0aGF0IGlzIGdldHRpbmcgaW4gdGhl IHdheS4gZGphbmdvIGlzIGEgZmFudGFzdGljDQo+ID4+IGZyYW1ld29yayBmb3Igd2ViIGRldmVs b3BtZW50LiBJdCdzIGp1c3QgY2hhbmdpbmcgcmVxdWlyZW1lbnRzLiBUaGUNCj4gPj4gb3JpZ2lu YWwgZGV2ZWxvcGVyICh3aG8gbm8gbG9uZ2VyIHdvcmtzIGhlcmUpIGNyZWF0ZWQgYSBmZXcNCj4g ZGlmZmVyZW50DQo+ID4+IGNsYXNzZXMsIGFuZCB0aGVuIGJhc2VkIG9uIHRoZSBvcmlnaW5hbCBy ZXF1aXJlbWVudHMsIGNob3NlIHRvIHVzZQ0KPiA+PiB0aGUgb25lIHRoYXQgc3VwcG9ydHMgYSBz aW5nbGUgcXVlcnkuIFRoYXQgd29ya2VkIHRoZW4sIGJ1dCBtYXkgbm90DQo+ID4+IHdvcmsgbm93 LiBUaGVyZSBhcmUgb3RoZXIgY2xhc3NlcyB0aGF0IGFsbG93IG11bHRpcGxlIHF1ZXJpZXMsIGJ1 dA0KPiA+PiB0aGVuIHlvdSBoYXZlIHRvIHBhcnNlIHRoZSBkYXRhIGFuZCBzdHVmZiBpdCBpbnRv IHRoZSBjb250ZXh0IHRoYXQNCj4gPj4gd2lsbCBiZSBwaWNrZWQgdXAgYnkgdGhlIGJyb3dzZXIg eW91cnNlbGYuIFRoZSBzaW5nbGUgcXVlcnkgY2xhc3MNCj4gPj4gZG9lcyB0aGF0IGZvciB5b3Uu IEkgbWF5IHlldCBnbyB0aGF0IHdheSwgYnV0IEknbSB0cnlpbmcgdG8gYXZvaWQgYQ0KPiA+PiBi aWcgcmV3cml0ZSBpZiBJIGNhbi4NCj4gPj4NCj4gPj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPj4gPj4gRnJvbTogTGFycnkgTWFydGVsbCBbbWFpbHRvOmxhcnJ5Lm1hcnRlbGxA Z21haWwuY29tXQ0KPiA+PiA+PiBTZW50OiBUdWVzZGF5LCBTZXB0ZW1iZXIgMTgsIDIwMTIgNDo1 NyBBTQ0KPiA+PiA+PiBUbzogcGV0ZXIuYnJhd2xleUBlYXJ0aGxpbmsubmV0DQo+ID4+ID4+IENj OiBteXNxbEBsaXN0cy5teXNxbC5jb20NCj4gPj4gPj4gU3ViamVjdDogUmU6IGdldHRpbmcgY2Vy dGFpbiByb3dzIGZyb20gYSBncm91cCBieQ0KPiA+PiA+Pg0KPiA+PiA+PiBPbiBUdWUsIFNlcCAx OCwgMjAxMiBhdCA3OjUyIEFNLCBQZXRlciBCcmF3bGV5DQo+ID4+ID4+IDxwZXRlci5icmF3bGV5 QGVhcnRobGluay5uZXQ+IHdyb3RlOg0KPiA+PiA+PiA+IE9uIDIwMTItMDktMTggNTo1MyBBTSwg TGFycnkgTWFydGVsbCB3cm90ZToNCj4gPj4gPj4gPj4NCj4gPj4gPj4gPj4gSSBoYXZlIHRoaXMg cXVlcnk6DQo+ID4+ID4+ID4+DQo+ID4+ID4+ID4+IFNFTEVDVCBkYXRhX3RhcmdldC5uYW1lIGFz IFRhcmdldCwNCj4gPj4gPj4gPj4gICAgICAgICBxMS5lcCBhcyBFUCwNCj4gPj4gPj4gPj4gICAg ICAgICBDT1VOVCgqKSBhcyBXYWZlcnMsDQo+ID4+ID4+ID4+ICAgICAgICAgTG90cywNCj4gPj4g Pj4gPj4gICAgICAgICBTVU0obnVtb25lcCkvKENPVU5UKCopK1NVTShDQVNFIFdIRU4gcmVydW5z ID4gMCBUSEVODQo+ID4+ID4+ID4+IHJlcnVucyBFTFNFIDAgRU5EKSkgYXMgJ1NpdGVzL1dhZmVy JywNCj4gPj4gPj4gPj4gICAgICAgICBNQVgoTGFzdFJ1bikgYXMgIkxhc3QgUnVuIiwNCj4gPj4g Pj4gPj4gICAgICAgICBTVU0oQ0FTRSBXSEVOIHJlcnVucyA+IDAgVEhFTiByZXJ1bnMgRUxTRSAw IEVORCkgYXMNCj4gPj4gUmVydW4sDQo+ID4+ID4+ID4+ICAgICAgICAgQ09VTlQoKikrU1VNKENB U0UgV0hFTiByZXJ1bnMgPiAwIFRIRU4gcmVydW5zIEVMU0UgMA0KPiA+PiA+PiA+PiBFTkQpIGFz DQo+ID4+ID4+IFJ1bnMsDQo+ID4+ID4+ID4+ICAgICAgICAgYXZnYm90dG9tIGFzICJBdmcgQm90 dG9tIiwNCj4gPj4gPj4gPj4gICAgICAgICAzKnN0ZGJvdHRvbSBhcyAiMyBTaWciLA0KPiA+PiA+ PiA+PiAgICAgICAgIG1heGJvdHRvbSBhcyBNYXgsDQo+ID4+ID4+ID4+ICAgICAgICAgbWluYm90 dG9tIGFzIE1pbiwNCj4gPj4gPj4gPj4gICAgICAgICBTVU0obnVtb25lcCkgYXMgQ291bnQsDQo+ ID4+ID4+ID4+ICAgICAgICAgU1VNKG51bW9uZXApIC0gU1VNKG51bWJvdHRvbXMpIGFzIE5BcywN Cj4gPj4gPj4gPj4gICAgICAgICAxMDAtKChTVU0obnVtb25lcCkgLQ0KPiBTVU0obnVtYm90dG9t cykpL1NVTShudW1vbmVwKSoxMDApDQo+ID4+IGFzDQo+ID4+ID4+ICIlDQo+ID4+ID4+ID4+IFN1 Y2Nlc3MiLA0KPiA+PiA+PiA+PiAgICAgICAgIDMqc3RkYm90dG9tL2F2Z2JvdHRvbSBhcyAiM1Np Zy9BdmciLA0KPiA+PiA+PiA+PiAgICAgICAgIEFWRyhhdmdib3R0b20pIGFzICdXYWZlciBBdmcn LA0KPiA+PiA+PiA+PiAgICAgICAgIEFWRyhXYWZlcjNTaWdtYSkgYXMgJ1dhZmVyIDMgU2lnbWEn LA0KPiA+PiA+PiA+PiAgICAgICAgIEFWRyhSYW5nZXMpIGFzICdBdmcgUmFuZ2UnLA0KPiA+PiA+ PiA+PiAgICAgICAgIDMqU1REKFJhbmdlcykgYXMgJzNTaWcgb2YgUmFuZ2VzJywNCj4gPj4gPj4g Pj4gICAgICAgICBNQVgoUmFuZ2VzKSBhcyAnTWF4IFJhbmdlJywNCj4gPj4gPj4gPj4gICAgICAg ICBNSU4oUmFuZ2VzKSBhcyAnTWluIFJhbmdlJywNCj4gPj4gPj4gPj4gICAgICAgICAoU1VNKG51 bW9uZXApIC0gU1VNKG51bWJvdHRvbXMpKS9DT1VOVCgqKSBhcw0KPiAnTkFzL1dhZmVyJw0KPiA+ PiA+PiA+PiBGUk9NIChTRUxFQ1QgdGFyZ2V0X25hbWVfaWQsDQo+ID4+ID4+ID4+ICAgICAgICAg ICAgICAgZXAsDQo+ID4+ID4+ID4+ICAgICAgICAgICAgICAgd2FmZXJfaWQsDQo+ID4+ID4+ID4+ ICAgICAgICAgICAgICAgQ09VTlQoYm90dG9tKSBhcyBudW1ib3R0b21zLA0KPiA+PiA+PiA+PiAg ICAgICAgICAgICAgIEFWRyhib3R0b20pIGFzIGF2Z2JvdHRvbSwNCj4gPj4gPj4gPj4gICAgICAg ICAgICAgICBTVEQoYm90dG9tKSBhcyBzdGRib3R0b20sDQo+ID4+ID4+ID4+ICAgICAgICAgICAg ICAgTUFYKGJvdHRvbSkgYXMgbWF4Ym90dG9tLA0KPiA+PiA+PiA+PiAgICAgICAgICAgICAgIE1J Tihib3R0b20pIGFzIG1pbmJvdHRvbSwNCj4gPj4gPj4gPj4gICAgICAgICAgICAgICBNQVgoZGF0 ZV90aW1lKSBhcyAiTGFzdFJ1biIsDQo+ID4+ID4+ID4+ICAgICAgICAgICAgICAgQ09VTlQoKikg YXMgbnVtb25lcCwNCj4gPj4gPj4gPj4gICAgICAgICAgICAgICBDT1VOVChESVNUSU5DVCB0YXJn ZXRfbmFtZV9pZCwgZXAsIGxvdF9pZCwNCj4gPj4gPj4gPj4gZGF0YV9maWxlX2lkKS0xIGFzIHJl cnVucywNCj4gPj4gPj4gPj4gICAgICAgICAgICAgICBDT1VOVChESVNUSU5DVChsb3RfaWQpKSBh cyBMb3RzLA0KPiA+PiA+PiA+PiAgICAgICAgICAgICAgIDMqU1REKGJvdHRvbSkgYXMgV2FmZXIz U2lnbWEsDQo+ID4+ID4+ID4+ICAgICAgICAgICAgICAgTUFYKGJvdHRvbSkgLSBNSU4oYm90dG9t KSBhcyBSYW5nZXMNCj4gPj4gPj4gPj4gICAgICAgIEZST00gZGF0YV9jc3QNCj4gPj4gPj4gPj4g ICAgICAgIFdIRVJFIHRhcmdldF9uYW1lX2lkIElOICg3NzUsIDc3NiwgNzc3LCA3NzgsIDc3OSwg NzgwLA0KPiA+PiA+PiA+PiA0NSwNCj4gPj4gPj4gNDQsDQo+ID4+ID4+ID4+IDExNiwgMTE3LCAx MTgsIDExOSwgMTIwLCAxMjEpDQo+ID4+ID4+ID4+ICAgICAgICBBTkQgZGF0YV9jc3QuZGF0ZV90 aW1lIEJFVFdFRU4gJzIwMTAtMDMtMDQgMDA6MDA6MDAnDQo+IEFORA0KPiA+PiA+PiA+PiAnMjAx MC0wMy0wNCAyMzo1OTo1OScNCj4gPj4gPj4gPj4gICAgICAgIEdST1VQIEJZIHRhcmdldF9uYW1l X2lkLCBlcCwgd2FmZXJfaWQNCj4gPj4gPj4gPj4gICAgICAgIEhBVklORyBjb3VudCgqKSA8IDk5 OSkgcTEsDQo+ID4+ID4+ID4+ICAgICAgIGRhdGFfdGFyZ2V0DQo+ID4+ID4+ID4+IFdIRVJFIGRh dGFfdGFyZ2V0LmlkID0gdGFyZ2V0X25hbWVfaWQgR1JPVVAgQlkNCj4gPj4gPj4gPj4gcTEudGFy Z2V0X25hbWVfaWQsIHExLmVwOw0KPiA+PiA+PiA+Pg0KPiA+PiA+PiA+Pg0KPiA+PiA+PiA+PiBU aGlzIHdvcmtzIGZpbmUuIEJ1dCBub3cgSSBuZWVkIHRvIGdldCBhIGNlcnRhaW4gY29sdW1uDQo+ ID4+ID4+ID4+IChpbWFnZV9tZWFzdXJlcl9pZCkgd2l0aCBlYWNoIHJvdyByZXR1cm5lZCB0aGF0 IGNvcnJlc3BvbmRzIHRvDQo+ID4+IHRoZQ0KPiA+PiA+PiA+PiByb3cgZnJvbSB0aGUgZ3JvdXAg dGhhdCBoYXMgYm90dG9tID0gTWluKGJvdHRvbSksIGJvdHRvbSA9DQo+ID4+ID4+ID4+IE1heChi b3R0b20pLCBib3R0b20gY2xvc2VzdCB0byBBdmcoYm90dG9tKSwgYW5kIGJvdHRvbSBmcm9tDQo+ IHRoZQ0KPiA+PiA+PiA+PiByb3cgd2hlcmUgZGF0ZV90aW1lID0gTWF4KGRhdGVfdGltZSkuDQo+ ID4+ID4+ID4+DQo+ID4+ID4+ID4+IElzIHRoaXMgZXZlbiBwb3NzaWJsZSBmcm9tIG9uZSBxdWVy eT8NCj4gPj4gPj4gPg0KPiA+PiA+PiA+DQo+ID4+ID4+ID4gTWlnaHQgYmUsIGJ1dCB3aGF0J3Mg dGhlIGltcG9ydGFuY2Ugb2YgZG9pbmcgaXQgYXMgb25lIHF1ZXJ5Pw0KPiA+PiA+Pg0KPiA+PiA+ PiBCZWNhdXNlIGl0J3MgcGFydCBvZiBhIGRqYW5nbyBiYXNlZCB3ZWIgYXBwLCBhbmQgdGhlIGNs YXNzIHRoYXQNCj4gPj4gPj4gdGhpcyBpcyBwYXJ0IG9mIG9ubHkgc3VwcG9ydHMgaGF2aW5nIGEg c2luZ2xlIHF1ZXJ5LiBUbyB1c2UNCj4gPj4gPj4gbXVsdGlwbGUgcXVlcmllcyB3aWxsIHJlcXVp cmUgYSBmYWlybHkgbWFqb3IgcmV3cml0ZSBvZiB0aGUNCj4gc2VydmVyDQo+ID4+ID4+IHNpZGUg b2YNCj4gPj4gdGhhdCBhcHAuDQo+ID4+ID4+DQo+ID4+ID4+ID4gSSdkIHN0YXJ0IGJ5DQo+ID4+ ID4+ID4gc2F2aW5nIHRoaXMgcmVzdWx0IHRvIGEgdGVtcCB0YWJsZSBhbmQgZGV2ZWxvcGluZyB0 aGUgbmV3DQo+IHF1ZXJ5Lg0KPiA+PiA+PiA+IFdoZW4gdGhhdCdzIHJ1bm5pbmcsIHNlZSBpZiB5 b3UgY2FuIHRvIG9wdGltaXNlIGEgcXVlcnkgYnVpbHQNCj4gYnkNCj4gPj4gPj4gPiByZXBsYWNp bmcgdGhlIHJlZmVyZW5jZSB0byB0aGUgdGVtcCB0YWJsZSB3aXRoIHRoZSBvcmlnaW5hbA0KPiBx dWVyeS4NCj4gPj4gPj4NCj4gPj4gPj4gVGhhbmtzLCBJJ2xsIGxvb2sgaW50byB0aGlzLg0K