From: Rick James Date: September 19 2012 10:56pm Subject: RE: getting certain rows from a group by List-Archive: http://lists.mysql.com/mysql/228204 Message-Id: <2E7DD7ADE53B044C8C8BCD9C5829E1EB148BB5E076@SP2-EX07VS01.ds.corp.yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiBteSBjb3VudHMgYXJlIDMgdGltZXMgdG9vIG11Y2guDQpXaXRob3V0IHN0dWR5aW5nIHRoZSBj b2RlLCBJIHdvdWxkIGd1ZXNzIHRoYXQgdGhlcmUgaXMgYSBKT0lOIGJldHdlZW4gaGUgZGF0YSB0 aGF0IG5lZWRzIENPVU5UaW5nIGFuZCB0aGUgR1JPVVAgQlkgZm9yIHRoZSBDT1VOVC4gIFRoYXQg aXMsIGl0IGNvbGxlY3RzIG1vcmUgJ2pvaW5lZCcgcm93cyBiZWZvcmUgY291bnRpbmcuICBGaXhp bmcgaXQgd2lsbCBwcm9iYWJseSBtYWtlIHRoZSBxdWVyeSBldmVuIG1lc3NpZXIuDQoNCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGFycnkgTWFydGVsbCBbbWFpbHRvOmxh cnJ5Lm1hcnRlbGxAZ21haWwuY29tXQ0KPiBTZW50OiBXZWRuZXNkYXksIFNlcHRlbWJlciAxOSwg MjAxMiAzOjIyIFBNDQo+IFRvOiBSaWNrIEphbWVzDQo+IENjOiBwZXRlci5icmF3bGV5QGVhcnRo bGluay5uZXQ7IG15c3FsQGxpc3RzLm15c3FsLmNvbQ0KPiBTdWJqZWN0OiBSZTogZ2V0dGluZyBj ZXJ0YWluIHJvd3MgZnJvbSBhIGdyb3VwIGJ5DQo+DQo+IFdlbGwsIEknbSBnZXR0aW5nIHRoZSBw cm9wZXIgcm93cyBmcm9tIHRoZSA0IGpvaW5zIEkgYWRkZWQsIGJ1dCBub3cgSSdtDQo+IHNlZWlu ZyBhIHdlaXJkIHNpZGUgZWZmZWN0IC0gbXkgY291bnRzIGFyZSAzIHRpbWVzIHRvIG11Y2guDQo+ DQo+IFRoZSBxdWVyeSBpcyByZWFsbHkgaHVnZSBhbmQgbmFzdHkgbm93LCBidXQgSSdtIGdvaW5n IHRvIHBhc3RlIGl0DQo+IGJlbG93Lg0KPg0KPiBJbiB0aGUgb3V0ZXIgbW9zdCBzZWxlY3QsIFdh ZmVycywgUmVydW4sIFJ1bnMsIGFuZCBDb3VudCBhcmUgMyB0aW1lcw0KPiB3aGF0IHRoZXkgc2hv dWxkIGJlLiBJZiBJIHRha2Ugb2ZmIHRoZSBqb2lucywgSSBnZXQgdGhlIGNvcnJlY3QgY291bnRz Lg0KPiBJIGNhbid0IHNlZSB3aHkgdGhhdCdzIGhhcHBlbmluZy4NCj4NCj4NCj4gICAgICAgICBT RUxFQ1QgZGF0YV90YXJnZXQubmFtZSBhcyBUYXJnZXQsDQo+ICAgICAgICAgICAgICAgIHExLmVw IGFzIEVQLA0KPiAgICAgICAgICAgICAgICBDT1VOVCgqKSBhcyBXYWZlcnMsDQo+ICAgICAgICAg ICAgICAgIExvdHMsDQo+ICAgICAgICAgICAgICAgIEZPUk1BVChTVU0obnVtb25lcCkvKENPVU5U KCopKyhTVU0oR1JFQVRFU1QocTEucmVydW5zLA0KPiAwKSkpKSwgMSkgYXMgJ1NpdGVzL1dhZmVy JywNCj4gICAgICAgICAgICAgICAgREFURV9GT1JNQVQoTUFYKExhc3RSdW4pLCAnJW0vJWQvJXkn KSBhcyAiTGFzdCBSdW4iLA0KPiAgICAgICAgICAgICAgICBTVU0oR1JFQVRFU1QocTEucmVydW5z LCAwKSkgYXMgUmVydW4sDQo+ICAgICAgICAgICAgICAgIENPVU5UKCopK1NVTShHUkVBVEVTVChx MS5yZXJ1bnMsIDApKSBhcyBSdW5zLA0KPiAgICAgICAgICAgICAgICBGT1JNQVQoYXZnYm90dG9t LCAxKSBhcyAiQXZnIEJvdHRvbSIsDQo+ICAgICAgICAgICAgICAgIEZPUk1BVCgzKnN0ZGJvdHRv bSwgMikgYXMgIjMgU2lnIiwNCj4gICAgICAgICAgICAgICAgRk9STUFUKG1heGJvdHRvbSwgMSkg YXMgTWF4LA0KPiAgICAgICAgICAgICAgICBGT1JNQVQobWluYm90dG9tLCAxKSBhcyBNaW4sDQo+ ICAgICAgICAgICAgICAgIFNVTShudW1vbmVwKSBhcyBDb3VudCwNCj4gICAgICAgICAgICAgICAg U1VNKG51bW9uZXApIC0gU1VNKG51bWJvdHRvbXMpIGFzIE5BcywNCj4gICAgICAgICAgICAgICAg Q09OQ0FUKEZPUk1BVCgxMDAqU1VNKG51bWJvdHRvbXMpL1NVTShudW1vbmVwKSwgMSksICcNCj4g JScpIGFzICIlIFN1Y2Nlc3MiLA0KPiAgICAgICAgICAgICAgICBGT1JNQVQoMypzdGRib3R0b20v YXZnYm90dG9tLCAyKSBhcyAiM1NpZy9BdmciLA0KPiAgICAgICAgICAgICAgICBGT1JNQVQoQVZH KGF2Z2JvdHRvbSksIDEpIGFzICdXYWZlciBBdmcnLA0KPiAgICAgICAgICAgICAgICBGT1JNQVQo QVZHKFdhZmVyM1NpZ21hKSwgMikgYXMgJ1dhZmVyIDMgU2lnbWEnLA0KPiAgICAgICAgICAgICAg ICBGT1JNQVQoQVZHKFJhbmdlcyksIDEpIGFzICdBdmcgUmFuZ2UnLA0KPiAgICAgICAgICAgICAg ICBGT1JNQVQoMypTVEQoUmFuZ2VzKSwgMikgYXMgJzNTaWcgb2YgUmFuZ2VzJywNCj4gICAgICAg ICAgICAgICAgRk9STUFUKE1BWChSYW5nZXMpLCAxKSBhcyAnTWF4IFJhbmdlJywNCj4gICAgICAg ICAgICAgICAgRk9STUFUKE1JTihSYW5nZXMpLCAxKSBhcyAnTWluIFJhbmdlJywNCj4gICAgICAg ICAgICAgICAgRk9STUFUKChTVU0obnVtb25lcCkgLSBTVU0obnVtYm90dG9tcykpL0NPVU5UKCop LCAxKSBhcw0KPiAnTkFzL1dhZmVyJywNCj4gICAgICAgICAgICAgICAgbXgubWF4SW1hZ2UgYXMg bWF4SW1hZ2UsDQo+ICAgICAgICAgICAgICAgIG1uLm1pbkltYWdlIGFzIG1pbkltYWdlLA0KPiAg ICAgICAgICAgICAgICBsci5sckltYWdlIGFzIGxybHJJbWFnZSwNCj4gICAgICAgICAgICAgICAg Y20uY21JbWFnZSBhcyBjbWNtSW1hZ2UNCj4gICAgICAgICAgICBGUk9NIChTRUxFQ1QgdGFyZ2V0 X25hbWVfaWQsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIGVwLA0KPiAgICAgICAgICAgICAg ICAgICAgICAgICB3YWZlcl9pZCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgQ09VTlQoYm90 dG9tKSBhcyBudW1ib3R0b21zLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICBBVkcoYm90dG9t KSBhcyBhdmdib3R0b20sDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIFNURChib3R0b20pIGFz IHN0ZGJvdHRvbSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgTUFYKGJvdHRvbSkgYXMgbWF4 Ym90dG9tLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICBNSU4oYm90dG9tKSBhcyBtaW5ib3R0 b20sDQo+ICAgICAgICAgICAgICAgICAgICAgICAgIE1BWChkYXRlX3RpbWUpIGFzICJMYXN0UnVu IiwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgQ09VTlQoKikgYXMgbnVtb25lcCwNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgQ09VTlQoRElTVElOQ1QgdGFyZ2V0X25hbWVfaWQsIGVwLCBs b3RfaWQsDQo+IGRhdGFfZmlsZV9pZCktMSBhcyByZXJ1bnMsDQo+ICAgICAgICAgICAgICAgICAg ICAgICAgIENPVU5UKERJU1RJTkNUKGxvdF9pZCkpIGFzIExvdHMsDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgIDMqU1REKGJvdHRvbSkgYXMgV2FmZXIzU2lnbWEsDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgIE1BWChib3R0b20pIC0gTUlOKGJvdHRvbSkgYXMgUmFuZ2VzDQo+ICAgICAgICAg ICAgRlJPTSBkYXRhX2NzdA0KPiAgICAgICAgICAgIFdIRVJFIFRSVUUNCj4gICAgICAgICAgQU5E IGRhdGFfY3N0LnRhcmdldF9uYW1lX2lkIElOICg3NzUsIDc3NiwgNzc3LCA3NzgsIDc3OSwgNzgw LA0KPiA0NSwgNDQsIDExNiwgMTE3LCAxMTgsIDExOSwgMTIwLCAxMjEpDQo+ICAgICAgICAgIEFO RCBkYXRhX2NzdC5kYXRlX3RpbWUgQkVUV0VFTiAnMjAxMC0wMy0wNCAwMDowMDowMCcgQU5EDQo+ ICcyMDEwLTAzLTA0IDIzOjU5OjU5Jw0KPiAgICAgICAgICBHUk9VUCBCWSB0YXJnZXRfbmFtZV9p ZCwgZXAsIHdhZmVyX2lkDQo+ICAgICAgICAgIEhBVklORyBjb3VudCgqKSA8IDk5OSkgcTENCj4g ICAgICAgICAgICAgICAgSk9JTiAoU0VMRUNUIGRhdGFfY3N0aW1hZ2UubmFtZSBhcyBtaW5JbWFn ZSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfY3N0LmJvdHRvbSwNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfY3N0LnRhcmdldF9uYW1lX2lkLA0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9jc3QuZGF0ZV90aW1lLA0KPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YV9jc3QubG90X2lkLA0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YV9jc3QudG9vbF9pZCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRhdGFfY3N0LnJvaW5hbWUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2Nz dC5yZWNpcGVfaWQsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2NzdC5lcA0K PiAgICAgICAgICAgICAgICAgICAgICBGUk9NIGRhdGFfY3N0aW1hZ2UsIGRhdGFfY3N0DQo+ICAg ICAgICAgICAgICAgICAgICAgIFdIRVJFIGRhdGFfY3N0aW1hZ2UuaWQgPQ0KPiBkYXRhX2NzdC5p bWFnZV9tZWFzdXJlcl9pZCkgbW4NCj4gICAgICAgICAgICAgICAgICAgICAgT04gbW4uYm90dG9t ID0gcTEubWluYm90dG9tDQo+ICAgICAgICAgICAgICAgICBBTkQgbW4udGFyZ2V0X25hbWVfaWQg SU4gKDc3NSwgNzc2LCA3NzcsIDc3OCwgNzc5LCA3ODAsDQo+IDQ1LCA0NCwgMTE2LCAxMTcsIDEx OCwgMTE5LCAxMjAsIDEyMSkNCj4gICAgICAgICAgICAgICAgIEFORCBtbi5kYXRlX3RpbWUgQkVU V0VFTiAnMjAxMC0wMy0wNCAwMDowMDowMCcgQU5EDQo+ICcyMDEwLTAzLTA0IDIzOjU5OjU5Jw0K PiAgICAgICAgICAgICAgICBKT0lOIChTRUxFQ1QgZGF0YV9jc3RpbWFnZS5uYW1lIGFzIG1heElt YWdlLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9jc3QuYm90dG9tLA0KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9jc3QudGFyZ2V0X25hbWVfaWQsDQo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2NzdC5kYXRlX3RpbWUsDQo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhX2NzdC5sb3RfaWQsDQo+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhX2NzdC50b29sX2lkLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YV9jc3Qucm9pbmFtZSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFf Y3N0LnJlY2lwZV9pZCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfY3N0LmVw DQo+ICAgICAgICAgICAgICAgICAgICAgIEZST00gZGF0YV9jc3RpbWFnZSwgZGF0YV9jc3QNCj4g ICAgICAgICAgICAgICAgICAgICAgV0hFUkUgZGF0YV9jc3RpbWFnZS5pZCA9DQo+IGRhdGFfY3N0 LmltYWdlX21lYXN1cmVyX2lkKSBteA0KPiAgICAgICAgICAgICAgICAgICAgICBPTiBteC5ib3R0 b20gPSBxMS5tYXhib3R0b20NCj4gICAgICAgICAgICAgICAgIEFORCBteC50YXJnZXRfbmFtZV9p ZCBJTiAoNzc1LCA3NzYsIDc3NywgNzc4LCA3NzksIDc4MCwNCj4gNDUsIDQ0LCAxMTYsIDExNywg MTE4LCAxMTksIDEyMCwgMTIxKQ0KPiAgICAgICAgICAgICAgICAgQU5EIG14LmRhdGVfdGltZSBC RVRXRUVOICcyMDEwLTAzLTA0IDAwOjAwOjAwJyBBTkQNCj4gJzIwMTAtMDMtMDQgMjM6NTk6NTkn DQo+ICAgICAgICAgICAgICAgIEpPSU4gKFNFTEVDVCBkYXRhX2NzdGltYWdlLm5hbWUgYXMgbHJJ bWFnZSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfY3N0LmJvdHRvbSwNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfY3N0LnRhcmdldF9uYW1lX2lkLA0KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9jc3QuZGF0ZV90aW1lLA0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YV9jc3QubG90X2lkLA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YV9jc3QudG9vbF9pZCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGFfY3N0LnJvaW5hbWUsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh X2NzdC5yZWNpcGVfaWQsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2NzdC5l cA0KPiAgICAgICAgICAgICAgICAgICAgICBGUk9NIGRhdGFfY3N0aW1hZ2UsIGRhdGFfY3N0DQo+ ICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIGRhdGFfY3N0aW1hZ2UuaWQgPQ0KPiBkYXRhX2Nz dC5pbWFnZV9tZWFzdXJlcl9pZCkgbHINCj4gICAgICAgICAgICAgICAgICAgICAgT04gbHIuZGF0 ZV90aW1lID0gcTEuTGFzdFJ1bg0KPiAgICAgICAgICAgICAgICAgQU5EIGxyLnRhcmdldF9uYW1l X2lkIElOICg3NzUsIDc3NiwgNzc3LCA3NzgsIDc3OSwgNzgwLA0KPiA0NSwgNDQsIDExNiwgMTE3 LCAxMTgsIDExOSwgMTIwLCAxMjEpDQo+ICAgICAgICAgICAgICAgICBBTkQgbHIuZGF0ZV90aW1l IEJFVFdFRU4gJzIwMTAtMDMtMDQgMDA6MDA6MDAnIEFORA0KPiAnMjAxMC0wMy0wNCAyMzo1OTo1 OScNCj4gICAgICAgICAgICAgICAgSk9JTiAoU0VMRUNUIGRhdGFfY3N0aW1hZ2UubmFtZSBhcyBj bUltYWdlLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9jc3QuYm90dG9tLA0K PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9jc3QudGFyZ2V0X25hbWVfaWQsDQo+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2NzdC5kYXRlX3RpbWUsDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2NzdC5sb3RfaWQsDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhX2NzdC50b29sX2lkLA0KPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGF0YV9jc3Qucm9pbmFtZSwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGFfY3N0LnJlY2lwZV9pZCwNCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfY3N0 LmVwDQo+ICAgICAgICAgICAgICAgIEZST00gZGF0YV9jc3RpbWFnZSwgZGF0YV9jc3QNCj4gICAg ICAgICAgICAgICAgV0hFUkUgZGF0YV9jc3RpbWFnZS5pZCA9IGRhdGFfY3N0LmltYWdlX21lYXN1 cmVyX2lkDQo+ICAgICAgICAgICAgICAgICBBTkQgZGF0YV9jc3QudGFyZ2V0X25hbWVfaWQgSU4g KDc3NSwgNzc2LCA3NzcsIDc3OCwNCj4gNzc5LCA3ODAsIDQ1LCA0NCwgMTE2LCAxMTcsIDExOCwg MTE5LCAxMjAsIDEyMSkNCj4gICAgICAgICAgICAgICAgIEFORCBkYXRhX2NzdC5kYXRlX3RpbWUg QkVUV0VFTiAnMjAxMC0wMy0wNCAwMDowMDowMCcNCj4gQU5EICcyMDEwLTAzLTA0IDIzOjU5OjU5 Jw0KPiAgICAgICAgICAgICAgICBHUk9VUCBCWSB0YXJnZXRfbmFtZV9pZCwgZXANCj4gICAgICAg ICAgICAgICAgSEFWSU5HIGNvdW50KCopIDwgOTk5DQo+ICAgICAgICAgICAgICAgIE9SREVSIEJZ IEFCUyhib3R0b20gLSBBVkcoYm90dG9tKSkpIGNtDQo+ICAgICAgICAgICAgICAgIE9OIGNtLnRh cmdldF9uYW1lX2lkID0gcTEudGFyZ2V0X25hbWVfaWQNCj4gICAgICAgICAgICAgICAgQU5EIGNt LmVwID0gcTEuZXANCj4gICAgICAgICAgICAgICAgIEFORCBjbS50YXJnZXRfbmFtZV9pZCBJTiAo Nzc1LCA3NzYsIDc3NywgNzc4LCA3NzksIDc4MCwNCj4gNDUsIDQ0LCAxMTYsIDExNywgMTE4LCAx MTksIDEyMCwgMTIxKQ0KPiAgICAgICAgICAgICAgICAgQU5EIGNtLmRhdGVfdGltZSBCRVRXRUVO ICcyMDEwLTAzLTA0IDAwOjAwOjAwJyBBTkQNCj4gJzIwMTAtMDMtMDQgMjM6NTk6NTknICwNCj4g ICAgICAgICAgICAgICAgIGRhdGFfdGFyZ2V0DQo+ICAgICAgICAgICAgICAgICBXSEVSRSBkYXRh X3RhcmdldC5pZCA9IHExLnRhcmdldF9uYW1lX2lkDQo+ICAgICAgICAgICAgICAgICBHUk9VUCBC WSBxMS50YXJnZXRfbmFtZV9pZCwgcTEuZXANCj4NCj4NCj4gT24gV2VkLCBTZXAgMTksIDIwMTIg YXQgMzoyNyBQTSwgTGFycnkgTWFydGVsbA0KPiA8bGFycnkubWFydGVsbEBnbWFpbC5jb20+IHdy b3RlOg0KPiA+IE9LLCBJIHRoaW5rIEkgaGF2ZSB0aGlzIHdvcmtpbmcuIFRoZSBsYXN0IGpvaW4g d2FzIHRoaXM6DQo+ID4NCj4gPiBKT0lOIChzZWxlY3QgaWQsIHRhcmdldF9uYW1lX2lkLCBlcCxk YXRlX3RpbWUgZnJvbSBkYXRhX2NzdCBXSEVSRQ0KPiA+IHRhcmdldF9uYW1lX2lkIElOICg3NzUs IDc3NiwgNzc3LCA3NzgsIDc3OSwgNzgwLCA0NSwgNDQsIDExNiwgMTE3LA0KPiA+IDExOCwgMTE5 LCAxMjAsIDEyMSkgQU5EIGRhdGFfY3N0LmRhdGVfdGltZSBCRVRXRUVOICcyMDEwLTAzLTA0DQo+ ID4gMDA6MDA6MDAnIEFORCAnMjAxMC0wMy0wNCAyMzo1OTo1OScgR1JPVVAgQlkgIHRhcmdldF9u YW1lX2lkLCBlcA0KPiA+IEhBVklORyBjb3VudCgqKSA8IDk5OSBPUkRFUiBCWSAgQUJTKGRhdGFf Y3N0LmJvdHRvbSAtIEFWRyhib3R0b20pKSkNCj4gY20NCj4gPiBvbiBjbS50YXJnZXRfbmFtZV9p ZCA9IHExLnRhcmdldF9uYW1lX2lkIGFuZCBjbS5lcCA9IHExLmVwIGFuZA0KPiA+IGNtLmRhdGVf dGltZSBCRVRXRUVOICcyMDEwLTAzLTA0IDAwOjAwOjAwJyBBTkQgJzIwMTAtMDMtMDQgMjM6NTk6 NTknDQo+ID4NCj4gPiBJIGhhdmUgZG8gdG8gbW9yZSB0ZXN0aW5nIHRvIGVuc3VyZSBJJ20gZ2V0 dGluZyB0aGUgY29ycmVjdCByb3dzDQo+IGJhY2suDQo+ID4NCj4gPiBUaGFua3MgZm9yIGFsbCB0 aGUgaGVscCENCj4gPg0KPiA+IE9uIFdlZCwgU2VwIDE5LCAyMDEyIGF0IDEwOjA3IEFNLCBMYXJy eSBNYXJ0ZWxsDQo+IDxsYXJyeS5tYXJ0ZWxsQGdtYWlsLmNvbT4gd3JvdGU6DQo+ID4+IE9uIFR1 ZSwgU2VwIDE4LCAyMDEyIGF0IDc6NDEgUE0sIFJpY2sgSmFtZXMgPHJqYW1lc0B5YWhvby1pbmMu Y29tPg0KPiB3cm90ZToNCj4gPj4+IFNFTEVDVCAgKCh0aGUgYXBwcm9wcmlhdGUgaWQpKSAgICAg ICAgICAtLSA8LS0NCj4gPj4+ICAgICBGUk9NICBkYXRhX2NzdCwgcm9sbHVwLCBkYXRhX3Rhcmdl dA0KPiA+Pj4gICAgIFdIRVJFICBkYXRhX3RhcmdldC5uYW1lID0gcm9sbHVwLlRhcmdldA0KPiA+ Pj4gICAgICAgQU5EICBkYXRhX2NzdC5lcCA9IHJvbGx1cC5FUA0KPiA+Pj4gICAgICAgQU5EICBk YXRhX2NzdC5kYXRlX3RpbWUgQkVUV0VFTiAnMjAxMC0wMy0wNCAwMDowMDowMCcgQU5EDQo+ICcy MDEwLTAzLTA0IDIzOjU5OjU5Jw0KPiA+Pj4gICAgICAgQU5EICBkYXRhX3RhcmdldC5pZCA9IGRh dGFfY3N0LnRhcmdldF9uYW1lX2lkDQo+ID4+PiAgICAgR1JPVVAgQlkgIHJvbGx1cC5UYXJnZXQs IHJvbGx1cC5FUA0KPiA+Pj4gICAgIE9SREVSIEJZICBBQlMoZGF0YV9jc3QuYm90dG9tIC0gcm9s bHVwLmBBdmcgQm90dG9tYCkNCj4gPj4+ICAgICBMSU1JVCAgMSAgICAgICAgICAgICAgIC0tIDwt LQ0KPiA+Pg0KPiA+PiByb2xsdXAgaXMgdGhlIG5hbWUgb2YgdGhlIHRlbXAgdGFibGUgdGhhdCBJ IHdhcyB0ZXN0aW5nIHdpdGguIEl0DQo+ID4+IGNvbnRhaW5zIHRoZSBvdXRwdXQgb2YgdGhlIG9y aWdpbmFsIHF1ZXJ5LiBJIGRvbid0IGhhdmUgdGhhdCBpbiB0aGUNCj4gPj4gcmVhbCB3b3JsZC4g VGhhdCdzIG15IGlzc3VlIC0gSSBjYW4ndCBmaWd1cmUgb3V0IGhvdyB0byBqb2luIHdpdGgNCj4g dGhlDQo+ID4+IHJlc3VsdCBzZXQgYW5kIGFwcGx5IHRoZSBvcmRlciBieSB0byB0aGUgam9pbiBj b25kaXRpb24uIFdoYXQgd291bGQNCj4gSQ0KPiA+PiB1c2UgaW4gcGxhY2Ugb2Ygcm9sbHVwIHRv IGdldCB0aGUgJ0F2ZyBCb3R0b20nPw0KPiA+Pg0KPiA+PiBIZXJlJ3Mgd2hhdCBteSBxdWVyeSBs b29rcyBsaWtlIG5vdzoNCj4gPj4NCj4gPj4gU0VMRUNUIGRhdGFfdGFyZ2V0Lm5hbWUgYXMgVGFy Z2V0LA0KPiA+PiAgICAgICAgcTEuZXAgYXMgRVAsDQo+ID4+ICAgICAgICBDT1VOVCgqKSBhcyBX YWZlcnMsDQo+ID4+ICAgICAgICBMb3RzLA0KPiA+PiAgICAgICAgU1VNKG51bW9uZXApLyhDT1VO VCgqKStTVU0oQ0FTRSBXSEVOIHJlcnVucyA+IDAgVEhFTiByZXJ1bnMNCj4gPj4gRUxTRSAwIEVO RCkpIGFzICdTaXRlcy9XYWZlcicsDQo+ID4+ICAgICAgICBNQVgoTGFzdFJ1bikgYXMgIkxhc3Qg UnVuIiwNCj4gPj4gICAgICAgIFNVTShDQVNFIFdIRU4gcmVydW5zID4gMCBUSEVOIHJlcnVucyBF TFNFIDAgRU5EKSBhcyBSZXJ1biwNCj4gPj4gICAgICAgIENPVU5UKCopK1NVTShDQVNFIFdIRU4g cmVydW5zID4gMCBUSEVOIHJlcnVucyBFTFNFIDAgRU5EKSBhcw0KPiBSdW5zLA0KPiA+PiAgICAg ICAgYXZnYm90dG9tIGFzICJBdmcgQm90dG9tIiwNCj4gPj4gICAgICAgIDMqc3RkYm90dG9tIGFz ICIzIFNpZyIsDQo+ID4+ICAgICAgICBtYXhib3R0b20gYXMgTWF4LA0KPiA+PiAgICAgICAgbWlu Ym90dG9tIGFzIE1pbiwNCj4gPj4gICAgICAgIFNVTShudW1vbmVwKSBhcyBDb3VudCwgU1VNKG51 bW9uZXApIC0gU1VNKG51bWJvdHRvbXMpIGFzIE5BcywNCj4gPj4gICAgICAgIDEwMC0oKFNVTShu dW1vbmVwKSAtIFNVTShudW1ib3R0b21zKSkvU1VNKG51bW9uZXApKjEwMCkgYXMgIiUNCj4gU3Vj Y2VzcyIsDQo+ID4+ICAgICAgICAzKnN0ZGJvdHRvbS9hdmdib3R0b20gYXMgIjNTaWcvQXZnIiwN Cj4gPj4gICAgICAgIEFWRyhhdmdib3R0b20pIGFzICdXYWZlciBBdmcnLA0KPiA+PiAgICAgICAg QVZHKFdhZmVyM1NpZ21hKSBhcyAnV2FmZXIgMyBTaWdtYScsDQo+ID4+ICAgICAgICBBVkcoUmFu Z2VzKSBhcyAnQXZnIFJhbmdlJywNCj4gPj4gICAgICAgIDMqU1REKFJhbmdlcykgYXMgJzNTaWcg b2YgUmFuZ2VzJywNCj4gPj4gICAgICAgIE1BWChSYW5nZXMpIGFzICdNYXggUmFuZ2UnLA0KPiA+ PiAgICAgICAgTUlOKFJhbmdlcykgYXMgJ01pbiBSYW5nZScsIChTVU0obnVtb25lcCkgLQ0KPiA+ PiBTVU0obnVtYm90dG9tcykpL0NPVU5UKCopIGFzICdOQXMvV2FmZXInLA0KPiA+PiAgICAgICAg bXguaWQgYXMgbWF4SUQsDQo+ID4+ICAgICAgICBtbi5pZCBhcyBtaW5JRCwNCj4gPj4gICAgICAg IGxyLmlkIGFzIGxySUQNCj4gPj4gRlJPTSAoU0VMRUNUIHRhcmdldF9uYW1lX2lkLA0KPiA+PiAg ICAgICAgICAgICAgZXAsDQo+ID4+ICAgICAgICAgICAgICB3YWZlcl9pZCwNCj4gPj4gICAgICAg ICAgICAgIENPVU5UKGJvdHRvbSkgYXMgbnVtYm90dG9tcywNCj4gPj4gICAgICAgICAgICAgIEFW Ryhib3R0b20pIGFzIGF2Z2JvdHRvbSwNCj4gPj4gICAgICAgICAgICAgIFNURChib3R0b20pIGFz IHN0ZGJvdHRvbSwNCj4gPj4gICAgICAgICAgICAgIE1BWChib3R0b20pIGFzIG1heGJvdHRvbSwN Cj4gPj4gICAgICAgICAgICAgIE1JTihib3R0b20pIGFzIG1pbmJvdHRvbSwNCj4gPj4gICAgICAg ICAgICAgIE1BWChkYXRlX3RpbWUpIGFzICJMYXN0UnVuIiwNCj4gPj4gICAgICAgICAgICAgIENP VU5UKCopIGFzIG51bW9uZXAsDQo+ID4+ICAgICAgICAgICAgICBDT1VOVChESVNUSU5DVCB0YXJn ZXRfbmFtZV9pZCwgZXAsIGxvdF9pZCwNCj4gPj4gZGF0YV9maWxlX2lkKS0xIGFzIHJlcnVucywN Cj4gPj4gICAgICAgICAgICAgIENPVU5UKERJU1RJTkNUKGxvdF9pZCkpIGFzIExvdHMsDQo+ID4+ ICAgICAgICAgICAgICAzKlNURChib3R0b20pIGFzIFdhZmVyM1NpZ21hLA0KPiA+PiAgICAgICAg ICAgICAgTUFYKGJvdHRvbSkgLSBNSU4oYm90dG9tKSBhcyBSYW5nZXMNCj4gPj4gICAgICAgRlJP TSBkYXRhX2NzdA0KPiA+PiAgICAgICBXSEVSRSB0YXJnZXRfbmFtZV9pZCBJTiAoNzc1LCA3NzYs IDc3NywgNzc4LCA3NzksIDc4MCwgNDUsIDQ0LA0KPiA+PiAxMTYsIDExNywgMTE4LCAxMTksIDEy MCwgMTIxKQ0KPiA+PiAgICAgICBBTkQgZGF0YV9jc3QuZGF0ZV90aW1lIEJFVFdFRU4gJzIwMTAt MDMtMDQgMDA6MDA6MDAnIEFORA0KPiA+PiAnMjAxMC0wMy0wNCAyMzo1OTo1OScNCj4gPj4gICAg ICAgR1JPVVAgQlkgdGFyZ2V0X25hbWVfaWQsIGVwLCB3YWZlcl9pZA0KPiA+PiAgICAgICBIQVZJ TkcgY291bnQoKikgPCA5OTkpIHExDQo+ID4+IGpvaW4gZGF0YV9jc3QgbW4gT04gbW4uYm90dG9t ID0gcTEubWluYm90dG9tIGpvaW4gZGF0YV9jc3QgbXggb24NCj4gPj4gbXguYm90dG9tID0gcTEu bWF4Ym90dG9tIGpvaW4gZGF0YV9jc3QgbHIgb24gbHIuZGF0ZV90aW1lID0NCj4gPj4gcTEuTGFz dFJ1biwgZGF0YV90YXJnZXQgV0hFUkUgZGF0YV90YXJnZXQuaWQgPSBxMS50YXJnZXRfbmFtZV9p ZA0KPiA+PiBHUk9VUCBCWSBxMS50YXJnZXRfbmFtZV9pZCwgcTEuZXA7DQo+ID4+DQo+ID4+Pg0K PiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogTGFycnkgTWFy dGVsbCBbbWFpbHRvOmxhcnJ5Lm1hcnRlbGxAZ21haWwuY29tXQ0KPiA+Pj4+IFNlbnQ6IFR1ZXNk YXksIFNlcHRlbWJlciAxOCwgMjAxMiAyOjU3IFBNDQo+ID4+Pj4gVG86IFJpY2sgSmFtZXMNCj4g Pj4+PiBDYzogcGV0ZXIuYnJhd2xleUBlYXJ0aGxpbmsubmV0OyBteXNxbEBsaXN0cy5teXNxbC5j b20NCj4gPj4+PiBTdWJqZWN0OiBSZTogZ2V0dGluZyBjZXJ0YWluIHJvd3MgZnJvbSBhIGdyb3Vw IGJ5DQo+ID4+Pj4NCj4gPj4+PiBPbiBUdWUsIFNlcCAxOCwgMjAxMiBhdCA0OjAxIFBNLCBSaWNr IEphbWVzIDxyamFtZXNAeWFob28taW5jLmNvbT4NCj4gPj4+PiB3cm90ZToNCj4gPj4+PiA+IFNF TEVDVCBtbi4qDQo+ID4+Pj4gPiAgICAgICAgbXguKg0KPiA+Pj4+ID4+ID4gICAgRlJPTSAoIFNF TEVDVCBAbWluID0gTUlOKGJvdHRvbSksDQo+ID4+Pj4gPj4gPiAgICAgICAgICAgICAgICAgIEBt YXggPSBNQVgoYm90dG9tKSwgLi4uICkNCj4gPj4+PiA+PiA+ICAgIEpPSU4gZGF0YV9jc3QgbW4g IE9OIGJvdHRvbSA9IEBtaW4NCj4gPj4+PiA+PiA+ICAgIEpPSU4gZGF0YV9jc3QgbXggIE9OIGJv dHRvbSA9IEBtYXgNCj4gPj4+PiA+DQo+ID4+Pj4gPiBUaGF0IGlzLCB0aGUgRlJPTSBmaW5kcyB0 aGUgdmFsdWUgZm9yIHRoZSBkZXNpcmVkIHJvdy4NCj4gPj4+PiA+IFRoZSBKT0lOIHRoZW4gZ2V0 cyB0byB0aGUgcmVzdCBvZiB0aGUgZmllbGRzLg0KPiA+Pj4+ID4gQ2F2ZWF0OiAgSWYgdHdvIHJv d3MgaGF2ZSBib3R0b20gPSBAbWluLCBpdCByZXR1cm5zIGJvdGguDQo+ID4+Pj4NCj4gPj4+Pg0K PiA+Pj4+IFRoYW5rcyBhIGxvdCBSaWNrISBUaGlzIHdhcyBzdXBlciBoZWxwZnVsLiBJJ3ZlIGdv dCBpdCB3b3JraW5nIGZvcg0KPiA+Pj4+IDMgb2YgdGhlIDQgY2FzZXMgLSBtaW4oYm90dG9tKSwg bWF4KGJvdHRvbSksIGFuZCBtYXgoZGF0ZV90aW1lKS4NCj4gPj4+PiBCdXQgSSBjYW4ndCBmaWd1 cmUgb3V0IGhvdyB0byB3b3JrIGluIHRoZSBsYXN0IGNhc2UgLSB3aGVyZSBib3R0b20NCj4gPj4+ PiBpcyBjbG9zZXN0IHRvIGF2Zyhib3R0b20pLiBJbiBhbiBpbmRpdmlkdWFsIHF1ZXJ5IEkgY2Fu IGdldCBpdA0KPiB3aXRoDQo+ID4+Pj4gYW4gb3JkZXIgYnksIGxpa2UNCj4gPj4+PiB0aGlzOg0K PiA+Pj4+DQo+ID4+Pj4gU0VMRUNUIHJvbGx1cC5UYXJnZXQsIHJvbGx1cC5FUCwgcm9sbHVwLmBB dmcgQm90dG9tYCwgZGF0YV9jc3QuaWQsDQo+ID4+Pj4gZGF0YV9jc3QuYm90dG9tIEZST00gZGF0 YV9jc3QsIHJvbGx1cCwgZGF0YV90YXJnZXQgV0hFUkUNCj4gPj4+PiBkYXRhX3RhcmdldC5uYW1l ID0gcm9sbHVwLlRhcmdldCBBTkQgZGF0YV9jc3QuZXAgPSByb2xsdXAuRVAgQU5EDQo+ID4+Pj4g ZGF0YV9jc3QuZGF0ZV90aW1lIEJFVFdFRU4gJzIwMTAtMDMtMDQgMDA6MDA6MDAnIEFORCAnMjAx MC0wMy0wNA0KPiA+Pj4+IDIzOjU5OjU5Jw0KPiA+Pj4+IEFORCBkYXRhX3RhcmdldC5pZCA9IGRh dGFfY3N0LnRhcmdldF9uYW1lX2lkIEdST1VQIEJZDQo+ID4+Pj4gcm9sbHVwLlRhcmdldCwgcm9s bHVwLkVQIE9SREVSIEJZIEFCUyhkYXRhX2NzdC5ib3R0b20gLQ0KPiByb2xsdXAuYEF2Zw0KPiA+ Pj4+IEJvdHRvbWApOw0KPiA+Pj4+DQo+ID4+Pj4gQW55IHdheSB0byB3b3JrIHRoYXQgaW50byBh bm90aGVyIGpvaW4/DQo+ID4+Pj4NCj4gPj4+PiBUaGFua3MhDQo+ID4+Pj4NCj4gPj4+PiA+DQo+ ID4+Pj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+PiA+PiBGcm9tOiBMYXJy eSBNYXJ0ZWxsIFttYWlsdG86bGFycnkubWFydGVsbEBnbWFpbC5jb21dDQo+ID4+Pj4gPj4gU2Vu dDogVHVlc2RheSwgU2VwdGVtYmVyIDE4LCAyMDEyIDEyOjU0IFBNDQo+ID4+Pj4gPj4gVG86IFJp Y2sgSmFtZXMNCj4gPj4+PiA+PiBDYzogcGV0ZXIuYnJhd2xleUBlYXJ0aGxpbmsubmV0OyBteXNx bEBsaXN0cy5teXNxbC5jb20NCj4gPj4+PiA+PiBTdWJqZWN0OiBSZTogZ2V0dGluZyBjZXJ0YWlu IHJvd3MgZnJvbSBhIGdyb3VwIGJ5DQo+ID4+Pj4gPj4NCj4gPj4+PiA+PiBPbiBUdWUsIFNlcCAx OCwgMjAxMiBhdCAyOjA1IFBNLCBSaWNrIEphbWVzDQo+ID4+Pj4gPj4gPHJqYW1lc0B5YWhvby1p bmMuY29tPg0KPiA+Pj4+ID4+IHdyb3RlOg0KPiA+Pj4+ID4+ID4gRm9yIHNpbmdsZSBxdWVyeS4u Lg0KPiA+Pj4+ID4+ID4NCj4gPj4+PiA+PiA+IFBsYW4gQToNCj4gPj4+PiA+PiA+IFJlcGVhdCB0 aGUgU0VMRUNUIGFzIG9uY2UgZm9yIGVhY2ggKE1JTiwgQVZHLCBldGMpIGFzIGENCj4gPj4+PiA+ PiA+IHN1YnF1ZXJ5DQo+ID4+Pj4gaW4NCj4gPj4+PiA+PiA+ICAgIFdIRVJFIGJvdHRvbSA9ICgg U0VMRUNUIE1JTihib3R0b20pIC4uLiApDQo+ID4+Pj4gPj4gPg0KPiA+Pj4+ID4+ID4gUGxhbiBC Og0KPiA+Pj4+ID4+ID4gICAgRlJPTSAoIFNFTEVDVCBAbWluID0gTUlOKGJvdHRvbSksDQo+ID4+ Pj4gPj4gPiAgICAgICAgICAgICAgICAgIEBtYXggPSBNQVgoYm90dG9tKSwgLi4uICkNCj4gPj4+ PiA+PiA+ICAgIEpPSU4gZGF0YV9jc3QgbW4gIE9OIGJvdHRvbSA9IEBtaW4NCj4gPj4+PiA+PiA+ ICAgIEpPSU4gZGF0YV9jc3QgbXggIE9OIGJvdHRvbSA9IEBtYXgNCj4gPj4+PiA+Pg0KPiA+Pj4+ ID4+DQo+ID4+Pj4gPj4gQ2FuIHlvdSBlbGFib3JhdGUgb24gdGhpcz8gSSBkb24ndCBzZWUgaG93 IHRoaXMgd2lsbCBnaXZlIG1lDQo+ID4+Pj4gPj4gd2hhdCBJIG5lZWQuIEknbSBub3QgbG9va2lu ZyBmb3IgdGhlIG1pbiBvciBtYXggYm90dG9tIC0gSQ0KPiA+Pj4+ID4+IGFscmVhZHkgaGF2ZQ0K PiA+Pj4+IHRoYXQNCj4gPj4+PiA+PiAtIEknbSBsb29raW5nIGZvciB0aGUgcm93IGZyb20gZWFj aCBncm91cCB0aGF0IGhhcyB0aGUgbWluIGFuZA0KPiA+Pj4+ID4+IG1heCBib3R0b20uDQo+ID4+ Pj4gPj4NCj4gPj4+PiA+PiA+IFBsYW4gQzoNCj4gPj4+PiA+PiA+IEdldCByaWQgb2YgM3JkIHBh cnR5IHBhY2thZ2VzIHRoYXQgZXZlbnR1YWxseSBnZXQgaW4geW91ciB3YXkNCj4gPj4+PiA+PiA+ IGluc3RlYWQNCj4gPj4+PiA+PiBvZiAnaGVscGluZycuDQo+ID4+Pj4gPj4NCj4gPj4+PiA+PiBJ dCdzIG5vdCBkamFuZ28gdGhhdCBpcyBnZXR0aW5nIGluIHRoZSB3YXkuIGRqYW5nbyBpcyBhDQo+ ID4+Pj4gPj4gZmFudGFzdGljIGZyYW1ld29yayBmb3Igd2ViIGRldmVsb3BtZW50LiBJdCdzIGp1 c3QgY2hhbmdpbmcNCj4gPj4+PiA+PiByZXF1aXJlbWVudHMuIFRoZSBvcmlnaW5hbCBkZXZlbG9w ZXIgKHdobyBubyBsb25nZXIgd29ya3MgaGVyZSkNCj4gPj4+PiA+PiBjcmVhdGVkIGEgZmV3DQo+ ID4+Pj4gZGlmZmVyZW50DQo+ID4+Pj4gPj4gY2xhc3NlcywgYW5kIHRoZW4gYmFzZWQgb24gdGhl IG9yaWdpbmFsIHJlcXVpcmVtZW50cywgY2hvc2UgdG8NCj4gPj4+PiA+PiB1c2UgdGhlIG9uZSB0 aGF0IHN1cHBvcnRzIGEgc2luZ2xlIHF1ZXJ5LiBUaGF0IHdvcmtlZCB0aGVuLCBidXQNCj4gPj4+ PiA+PiBtYXkgbm90IHdvcmsgbm93LiBUaGVyZSBhcmUgb3RoZXIgY2xhc3NlcyB0aGF0IGFsbG93 IG11bHRpcGxlDQo+ID4+Pj4gPj4gcXVlcmllcywgYnV0IHRoZW4geW91IGhhdmUgdG8gcGFyc2Ug dGhlIGRhdGEgYW5kIHN0dWZmIGl0IGludG8NCj4gPj4+PiA+PiB0aGUgY29udGV4dCB0aGF0IHdp bGwgYmUgcGlja2VkIHVwIGJ5IHRoZSBicm93c2VyIHlvdXJzZWxmLiBUaGUNCj4gPj4+PiA+PiBz aW5nbGUgcXVlcnkgY2xhc3MgZG9lcyB0aGF0IGZvciB5b3UuIEkgbWF5IHlldCBnbyB0aGF0IHdh eSwNCj4gYnV0DQo+ID4+Pj4gPj4gSSdtIHRyeWluZyB0byBhdm9pZCBhIGJpZyByZXdyaXRlIGlm IEkgY2FuLg0KPiA+Pj4+ID4+DQo+ID4+Pj4gPj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gPj4+PiA+PiA+PiBGcm9tOiBMYXJyeSBNYXJ0ZWxsIFttYWlsdG86bGFycnkubWFydGVs bEBnbWFpbC5jb21dDQo+ID4+Pj4gPj4gPj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDE4LCAy MDEyIDQ6NTcgQU0NCj4gPj4+PiA+PiA+PiBUbzogcGV0ZXIuYnJhd2xleUBlYXJ0aGxpbmsubmV0 DQo+ID4+Pj4gPj4gPj4gQ2M6IG15c3FsQGxpc3RzLm15c3FsLmNvbQ0KPiA+Pj4+ID4+ID4+IFN1 YmplY3Q6IFJlOiBnZXR0aW5nIGNlcnRhaW4gcm93cyBmcm9tIGEgZ3JvdXAgYnkNCj4gPj4+PiA+ PiA+Pg0KPiA+Pj4+ID4+ID4+IE9uIFR1ZSwgU2VwIDE4LCAyMDEyIGF0IDc6NTIgQU0sIFBldGVy IEJyYXdsZXkNCj4gPj4+PiA+PiA+PiA8cGV0ZXIuYnJhd2xleUBlYXJ0aGxpbmsubmV0PiB3cm90 ZToNCj4gPj4+PiA+PiA+PiA+IE9uIDIwMTItMDktMTggNTo1MyBBTSwgTGFycnkgTWFydGVsbCB3 cm90ZToNCj4gPj4+PiA+PiA+PiA+Pg0KPiA+Pj4+ID4+ID4+ID4+IEkgaGF2ZSB0aGlzIHF1ZXJ5 Og0KPiA+Pj4+ID4+ID4+ID4+DQo+ID4+Pj4gPj4gPj4gPj4gU0VMRUNUIGRhdGFfdGFyZ2V0Lm5h bWUgYXMgVGFyZ2V0LA0KPiA+Pj4+ID4+ID4+ID4+ICAgICAgICAgcTEuZXAgYXMgRVAsDQo+ID4+ Pj4gPj4gPj4gPj4gICAgICAgICBDT1VOVCgqKSBhcyBXYWZlcnMsDQo+ID4+Pj4gPj4gPj4gPj4g ICAgICAgICBMb3RzLA0KPiA+Pj4+ID4+ID4+ID4+ICAgICAgICAgU1VNKG51bW9uZXApLyhDT1VO VCgqKStTVU0oQ0FTRSBXSEVOIHJlcnVucyA+IDANCj4gPj4+PiA+PiA+PiA+PiBUSEVOIHJlcnVu cyBFTFNFIDAgRU5EKSkgYXMgJ1NpdGVzL1dhZmVyJywNCj4gPj4+PiA+PiA+PiA+PiAgICAgICAg IE1BWChMYXN0UnVuKSBhcyAiTGFzdCBSdW4iLA0KPiA+Pj4+ID4+ID4+ID4+ICAgICAgICAgU1VN KENBU0UgV0hFTiByZXJ1bnMgPiAwIFRIRU4gcmVydW5zIEVMU0UgMCBFTkQpDQo+ID4+Pj4gPj4g Pj4gPj4gYXMNCj4gPj4+PiA+PiBSZXJ1biwNCj4gPj4+PiA+PiA+PiA+PiAgICAgICAgIENPVU5U KCopK1NVTShDQVNFIFdIRU4gcmVydW5zID4gMCBUSEVOIHJlcnVucw0KPiBFTFNFDQo+ID4+Pj4g Pj4gPj4gPj4gMA0KPiA+Pj4+ID4+ID4+ID4+IEVORCkgYXMNCj4gPj4+PiA+PiA+PiBSdW5zLA0K PiA+Pj4+ID4+ID4+ID4+ICAgICAgICAgYXZnYm90dG9tIGFzICJBdmcgQm90dG9tIiwNCj4gPj4+ PiA+PiA+PiA+PiAgICAgICAgIDMqc3RkYm90dG9tIGFzICIzIFNpZyIsDQo+ID4+Pj4gPj4gPj4g Pj4gICAgICAgICBtYXhib3R0b20gYXMgTWF4LA0KPiA+Pj4+ID4+ID4+ID4+ICAgICAgICAgbWlu Ym90dG9tIGFzIE1pbiwNCj4gPj4+PiA+PiA+PiA+PiAgICAgICAgIFNVTShudW1vbmVwKSBhcyBD b3VudCwNCj4gPj4+PiA+PiA+PiA+PiAgICAgICAgIFNVTShudW1vbmVwKSAtIFNVTShudW1ib3R0 b21zKSBhcyBOQXMsDQo+ID4+Pj4gPj4gPj4gPj4gICAgICAgICAxMDAtKChTVU0obnVtb25lcCkg LQ0KPiA+Pj4+IFNVTShudW1ib3R0b21zKSkvU1VNKG51bW9uZXApKjEwMCkNCj4gPj4+PiA+PiBh cw0KPiA+Pj4+ID4+ID4+ICIlDQo+ID4+Pj4gPj4gPj4gPj4gU3VjY2VzcyIsDQo+ID4+Pj4gPj4g Pj4gPj4gICAgICAgICAzKnN0ZGJvdHRvbS9hdmdib3R0b20gYXMgIjNTaWcvQXZnIiwNCj4gPj4+ PiA+PiA+PiA+PiAgICAgICAgIEFWRyhhdmdib3R0b20pIGFzICdXYWZlciBBdmcnLA0KPiA+Pj4+ ID4+ID4+ID4+ICAgICAgICAgQVZHKFdhZmVyM1NpZ21hKSBhcyAnV2FmZXIgMyBTaWdtYScsDQo+ ID4+Pj4gPj4gPj4gPj4gICAgICAgICBBVkcoUmFuZ2VzKSBhcyAnQXZnIFJhbmdlJywNCj4gPj4+ PiA+PiA+PiA+PiAgICAgICAgIDMqU1REKFJhbmdlcykgYXMgJzNTaWcgb2YgUmFuZ2VzJywNCj4g Pj4+PiA+PiA+PiA+PiAgICAgICAgIE1BWChSYW5nZXMpIGFzICdNYXggUmFuZ2UnLA0KPiA+Pj4+ ID4+ID4+ID4+ICAgICAgICAgTUlOKFJhbmdlcykgYXMgJ01pbiBSYW5nZScsDQo+ID4+Pj4gPj4g Pj4gPj4gICAgICAgICAoU1VNKG51bW9uZXApIC0gU1VNKG51bWJvdHRvbXMpKS9DT1VOVCgqKSBh cw0KPiA+Pj4+ICdOQXMvV2FmZXInDQo+ID4+Pj4gPj4gPj4gPj4gRlJPTSAoU0VMRUNUIHRhcmdl dF9uYW1lX2lkLA0KPiA+Pj4+ID4+ID4+ID4+ICAgICAgICAgICAgICAgZXAsDQo+ID4+Pj4gPj4g Pj4gPj4gICAgICAgICAgICAgICB3YWZlcl9pZCwNCj4gPj4+PiA+PiA+PiA+PiAgICAgICAgICAg ICAgIENPVU5UKGJvdHRvbSkgYXMgbnVtYm90dG9tcywNCj4gPj4+PiA+PiA+PiA+PiAgICAgICAg ICAgICAgIEFWRyhib3R0b20pIGFzIGF2Z2JvdHRvbSwNCj4gPj4+PiA+PiA+PiA+PiAgICAgICAg ICAgICAgIFNURChib3R0b20pIGFzIHN0ZGJvdHRvbSwNCj4gPj4+PiA+PiA+PiA+PiAgICAgICAg ICAgICAgIE1BWChib3R0b20pIGFzIG1heGJvdHRvbSwNCj4gPj4+PiA+PiA+PiA+PiAgICAgICAg ICAgICAgIE1JTihib3R0b20pIGFzIG1pbmJvdHRvbSwNCj4gPj4+PiA+PiA+PiA+PiAgICAgICAg ICAgICAgIE1BWChkYXRlX3RpbWUpIGFzICJMYXN0UnVuIiwNCj4gPj4+PiA+PiA+PiA+PiAgICAg ICAgICAgICAgIENPVU5UKCopIGFzIG51bW9uZXAsDQo+ID4+Pj4gPj4gPj4gPj4gICAgICAgICAg ICAgICBDT1VOVChESVNUSU5DVCB0YXJnZXRfbmFtZV9pZCwgZXAsIGxvdF9pZCwNCj4gPj4+PiA+ PiA+PiA+PiBkYXRhX2ZpbGVfaWQpLTEgYXMgcmVydW5zLA0KPiA+Pj4+ID4+ID4+ID4+ICAgICAg ICAgICAgICAgQ09VTlQoRElTVElOQ1QobG90X2lkKSkgYXMgTG90cywNCj4gPj4+PiA+PiA+PiA+ PiAgICAgICAgICAgICAgIDMqU1REKGJvdHRvbSkgYXMgV2FmZXIzU2lnbWEsDQo+ID4+Pj4gPj4g Pj4gPj4gICAgICAgICAgICAgICBNQVgoYm90dG9tKSAtIE1JTihib3R0b20pIGFzIFJhbmdlcw0K PiA+Pj4+ID4+ID4+ID4+ICAgICAgICBGUk9NIGRhdGFfY3N0DQo+ID4+Pj4gPj4gPj4gPj4gICAg ICAgIFdIRVJFIHRhcmdldF9uYW1lX2lkIElOICg3NzUsIDc3NiwgNzc3LCA3NzgsIDc3OSwNCj4g Pj4+PiA+PiA+PiA+PiA3ODAsIDQ1LA0KPiA+Pj4+ID4+ID4+IDQ0LA0KPiA+Pj4+ID4+ID4+ID4+ IDExNiwgMTE3LCAxMTgsIDExOSwgMTIwLCAxMjEpDQo+ID4+Pj4gPj4gPj4gPj4gICAgICAgIEFO RCBkYXRhX2NzdC5kYXRlX3RpbWUgQkVUV0VFTiAnMjAxMC0wMy0wNA0KPiAwMDowMDowMCcNCj4g Pj4+PiBBTkQNCj4gPj4+PiA+PiA+PiA+PiAnMjAxMC0wMy0wNCAyMzo1OTo1OScNCj4gPj4+PiA+ PiA+PiA+PiAgICAgICAgR1JPVVAgQlkgdGFyZ2V0X25hbWVfaWQsIGVwLCB3YWZlcl9pZA0KPiA+ Pj4+ID4+ID4+ID4+ICAgICAgICBIQVZJTkcgY291bnQoKikgPCA5OTkpIHExLA0KPiA+Pj4+ID4+ ID4+ID4+ICAgICAgIGRhdGFfdGFyZ2V0DQo+ID4+Pj4gPj4gPj4gPj4gV0hFUkUgZGF0YV90YXJn ZXQuaWQgPSB0YXJnZXRfbmFtZV9pZCBHUk9VUCBCWQ0KPiA+Pj4+ID4+ID4+ID4+IHExLnRhcmdl dF9uYW1lX2lkLCBxMS5lcDsNCj4gPj4+PiA+PiA+PiA+Pg0KPiA+Pj4+ID4+ID4+ID4+DQo+ID4+ Pj4gPj4gPj4gPj4gVGhpcyB3b3JrcyBmaW5lLiBCdXQgbm93IEkgbmVlZCB0byBnZXQgYSBjZXJ0 YWluIGNvbHVtbg0KPiA+Pj4+ID4+ID4+ID4+IChpbWFnZV9tZWFzdXJlcl9pZCkgd2l0aCBlYWNo IHJvdyByZXR1cm5lZCB0aGF0DQo+ID4+Pj4gPj4gPj4gPj4gY29ycmVzcG9uZHMgdG8NCj4gPj4+ PiA+PiB0aGUNCj4gPj4+PiA+PiA+PiA+PiByb3cgZnJvbSB0aGUgZ3JvdXAgdGhhdCBoYXMgYm90 dG9tID0gTWluKGJvdHRvbSksIGJvdHRvbQ0KPiA9DQo+ID4+Pj4gPj4gPj4gPj4gTWF4KGJvdHRv bSksIGJvdHRvbSBjbG9zZXN0IHRvIEF2Zyhib3R0b20pLCBhbmQgYm90dG9tDQo+ID4+Pj4gPj4g Pj4gPj4gZnJvbQ0KPiA+Pj4+IHRoZQ0KPiA+Pj4+ID4+ID4+ID4+IHJvdyB3aGVyZSBkYXRlX3Rp bWUgPSBNYXgoZGF0ZV90aW1lKS4NCj4gPj4+PiA+PiA+PiA+Pg0KPiA+Pj4+ID4+ID4+ID4+IElz IHRoaXMgZXZlbiBwb3NzaWJsZSBmcm9tIG9uZSBxdWVyeT8NCj4gPj4+PiA+PiA+PiA+DQo+ID4+ Pj4gPj4gPj4gPg0KPiA+Pj4+ID4+ID4+ID4gTWlnaHQgYmUsIGJ1dCB3aGF0J3MgdGhlIGltcG9y dGFuY2Ugb2YgZG9pbmcgaXQgYXMgb25lDQo+IHF1ZXJ5Pw0KPiA+Pj4+ID4+ID4+DQo+ID4+Pj4g Pj4gPj4gQmVjYXVzZSBpdCdzIHBhcnQgb2YgYSBkamFuZ28gYmFzZWQgd2ViIGFwcCwgYW5kIHRo ZSBjbGFzcw0KPiA+Pj4+ID4+ID4+IHRoYXQgdGhpcyBpcyBwYXJ0IG9mIG9ubHkgc3VwcG9ydHMg aGF2aW5nIGEgc2luZ2xlIHF1ZXJ5LiBUbw0KPiA+Pj4+ID4+ID4+IHVzZSBtdWx0aXBsZSBxdWVy aWVzIHdpbGwgcmVxdWlyZSBhIGZhaXJseSBtYWpvciByZXdyaXRlIG9mDQo+ID4+Pj4gPj4gPj4g dGhlDQo+ID4+Pj4gc2VydmVyDQo+ID4+Pj4gPj4gPj4gc2lkZSBvZg0KPiA+Pj4+ID4+IHRoYXQg YXBwLg0KPiA+Pj4+ID4+ID4+DQo+ID4+Pj4gPj4gPj4gPiBJJ2Qgc3RhcnQgYnkNCj4gPj4+PiA+ PiA+PiA+IHNhdmluZyB0aGlzIHJlc3VsdCB0byBhIHRlbXAgdGFibGUgYW5kIGRldmVsb3Bpbmcg dGhlIG5ldw0KPiA+Pj4+IHF1ZXJ5Lg0KPiA+Pj4+ID4+ID4+ID4gV2hlbiB0aGF0J3MgcnVubmlu Zywgc2VlIGlmIHlvdSBjYW4gdG8gb3B0aW1pc2UgYSBxdWVyeQ0KPiA+Pj4+ID4+ID4+ID4gYnVp bHQNCj4gPj4+PiBieQ0KPiA+Pj4+ID4+ID4+ID4gcmVwbGFjaW5nIHRoZSByZWZlcmVuY2UgdG8g dGhlIHRlbXAgdGFibGUgd2l0aCB0aGUNCj4gb3JpZ2luYWwNCj4gPj4+PiBxdWVyeS4NCj4gPj4+ PiA+PiA+Pg0KPiA+Pj4+ID4+ID4+IFRoYW5rcywgSSdsbCBsb29rIGludG8gdGhpcy4NCg==