T24gV2VkLCAyMDIzLTA2LTI4IGF0IDEwOjU0ICswMzAwLCBQZWtrYSBQYWFsYW5lbiB3cm90ZToN Cj4gT24gV2VkLCAyOCBKdW4gMjAyMyAxMDo0MTowNiArMDMwMA0KPiBQZWtrYSBQYWFsYW5lbiA8 cHBhYWxhbmVuQGdtYWlsLmNvbT4gd3JvdGU6DQo+IA0KPiA+IE9uIFdlZCwgMjggSnVuIDIwMjMg MDE6MjE6MjcgLTA0MDANCj4gPiBaYWNrIFJ1c2luIDx6YWNrQGtkZS5vcmc+IHdyb3RlOg0KPiA+ IA0KPiA+ID4gRnJvbTogWmFjayBSdXNpbiA8emFja3JAdm13YXJlLmNvbT4NCj4gPiA+IA0KPiA+ ID4gQXRvbWljIG1vZGVzZXR0aW5nIGNvZGUgbGFja2VkIHN1cHBvcnQgZm9yIHNwZWNpZnlpbmcg bW91c2UgY3Vyc29yDQo+ID4gPiBob3RzcG90cy4gVGhlIGxlZ2FjeSBrbXMgRFJNX0lPQ1RMX01P REVfQ1VSU09SMiBoYWQgc3VwcG9ydCBmb3Igc2V0dGluZw0KPiA+ID4gdGhlIGhvdHNwb3QgYnV0 IHRoZSBmdW5jdGlvbmFsaXR5IHdhcyBub3QgaW1wbGVtZW50ZWQgaW4gdGhlIG5ldyBhdG9taWMN Cj4gPiA+IHBhdGhzLg0KPiA+ID4gDQo+ID4gPiBEdWUgdG8gdGhlIGxhY2sgb2YgaG90c3BvdHMg aW4gdGhlIGF0b21pYyBwYXRocyB1c2Vyc3BhY2UgY29tcG9zaXRvcnMNCj4gPiA+IGNvbXBsZXRl bHkgZGlzYWJsZSBhdG9taWMgbW9kZXNldHRpbmcgZm9yIGRyaXZlcnMgdGhhdCByZXF1aXJlIGl0 IChpLmUuDQo+ID4gPiBhbGwgcGFyYXZpcnR1YWxpemVkIGRyaXZlcnMpLg0KPiA+ID4gDQo+ID4g PiBUaGlzIGNoYW5nZSBhZGRzIGhvdHNwb3QgcHJvcGVydGllcyB0byB0aGUgYXRvbWljIGNvZGVw YXRocyB0aHJvdWdodG91dA0KPiA+ID4gdGhlIERSTSBjb3JlIGFuZCB3aWxsIGFsbG93IGVuYWJs aW5nIGF0b21pYyBtb2Rlc2V0dGluZyBmb3IgdmlydHVhbGl6ZWQNCj4gPiA+IGRyaXZlcnMgaW4g dGhlIHVzZXJzcGFjZS4NCj4gPiA+IA0KPiA+ID4gU2lnbmVkLW9mZi1ieTogWmFjayBSdXNpbiA8 emFja3JAdm13YXJlLmNvbT4NCj4gPiA+IENjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5s YW5raG9yc3RAbGludXguaW50ZWwuY29tPg0KPiA+ID4gQ2M6IE1heGltZSBSaXBhcmQgPG1yaXBh cmRAa2VybmVsLm9yZz4NCj4gPiA+IENjOiBUaG9tYXMgWmltbWVybWFubiA8dHppbW1lcm1hbm5A c3VzZS5kZT4NCj4gPiA+IENjOiBEYXZpZCBBaXJsaWUgPGFpcmxpZWRAbGludXguaWU+DQo+ID4g PiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZmd2xsLmNoPg0KPiA+ID4gUmV2aWV3ZWQtYnk6 IEphdmllciBNYXJ0aW5leiBDYW5pbGxhcyA8amF2aWVybUByZWRoYXQuY29tPsKgIA0KPiA+IA0K PiA+IEhpIFphY2ssDQo+ID4gDQo+ID4gSSBzdGlsbCBkbyBub3Qgc2VlIGFueSBVQVBJIGRvY3Mg Zm9yIHRoZSBuZXcgcHJvcGVydGllcyBpbiB0aGlzIHBhdGNoPw0KPiANCj4gSWYgeW91IGFyZSB3 b25kZXJpbmcgd2hhdCB0aGVyZSBjb3VsZCBiZSB0byB3cml0ZSBhYm91dCwgbWF5YmUgdGhpcyBj YW4NCj4gZ2l2ZSBhIGdvb2QgbWluZHNldDoNCj4gDQo+IExldCdzIGFzc3VtZSB0aGF0IEkgYW0g YSBXYXlsYW5kIGNvbXBvc2l0b3IgZGV2ZWxvcGVyIHdobyBoYXMgbmV2ZXIgdXNlZA0KPiAiaG90 c3BvdHMiIHdpdGggS01TIFVBUEkgYmVmb3JlLiBBcyBJIGhhdmUgbmV2ZXIgdGVzdGVkIGFueXRo aW5nIGluIGENCj4gVk0sIEkgaGF2ZSBubyBpZGVhIHdoeSB0aGUga2VybmVsIHdvdWxkIGV2ZXIg d2FudCB0byBrbm93IGFib3V0IGN1cnNvcg0KPiBob3RzcG90cy4gRGlzcGxheSBoYXJkd2FyZSBu ZXZlciBkb2VzIGFueXRoaW5nIHdpdGggdGhhdCwgaXQganVzdCBwdXRzDQo+IHRoZSBjdXJzb3Ig cGxhbmUgd2hlcmUgSSB0ZWxsIGl0IHRvIGFuZCBjb21wb3NlcyBhIHNpbmdsZSBpbWFnZSB0byBi ZQ0KPiBzZW50IHRvIHRoZSBzaW5rLiBUaGUgdmlydHVhbCBkcml2ZXIgVktNUyBkb2VzIHRoZSBz YW1lLiBUbyBtZSwgYQ0KPiBjdXJzb3IgcGxhbmUgaXMganVzdCBhbm90aGVyIHVuaXZlcnNhbCBw bGFuZSB0aGF0IG1heSBoYXZlIHdlaXJkDQo+IHN0YWNraW5nIG9yZGVyLCBwaXhlbCBmb3JtYXQs IGFuZCBzaXplIGxpbWl0YXRpb25zLg0KPiANCj4gSWRlYWxseSB0aGUgZG9jIGZvciBIT1RTUE9U X1ggYW5kIEhPVFNQT1RfWSBkb2N1bWVudHMgbm90IG9ubHkgdGhlaXINCj4gcG9zc2libGUgZXhp c3RlbmNlIGFuZCBhbGxvd2VkL2V4cGVjdGVkIHZhbHVlcywgYnV0IGFsc28gdGhlIHJlYXNvbnMN Cj4gdG8gaGF2ZSB0aGVtIGFuZCB3aGF0IHRoZXkgYXJlIHVzZWQgZm9yLCBhbmQgdGhhdCBpZiB0 aGUgcHJvcGVydGllcw0KPiBhcmUgZXhwb3NlZCB0aGV5IGFyZSBtYW5kYXRvcnkgdG8gcHJvZ3Jh bSBpbiBvcmRlciB0byB1c2UgdGhlIHBsYW5lLg0KDQpJbnN0ZWFkIG9mIHJlc2VuZGluZyB0aGUg ZW50aXJlIHNlcmllcyBtYXliZSBJIGNhbiBkcmFmdCBhIHBvc3NpYmxlIGRvYyBiZWxvdyBhbmQN CnNlZSBpZiB3ZSBsaWtlIGl0IChvbmNlIHdlJ3JlIG9rIHdpdGggSSdsbCBzZW5kIG91dCB2NSB3 aGljaCBob3BlZnVsbHkgd2lsbCBiZQ0KZ29vZCkuIEhvdyBhYm91dDoNCg0KLyoqDQogKiBAaG90 c3BvdF94X3Byb3BlcnR5OiBwcm9wZXJ0eSB0byBzZXQgbW91c2UgaG90c3BvdCB4IG9mZnNldC4N CiAqDQogKiBIb3RzcG90IGlzIHRoZSBwb2ludCB3aXRoaW4gdGhlIGN1cnNvciBpbWFnZSB0aGF0 J3MgYWN0aXZhdGluZw0KICogdGhlIGNsaWNrIGUuZy4gaW1hZ2luZSBhbiBhcnJvdyBjdXJzb3Ig cG9pbnRpbmcgdG8gYm90dG9tIHJpZ2h0IC0NCiAqIHRoZSBvcmlnaW4gY29vcmRpbmF0ZSBmb3Ig dGhhdCBpbWFnZSB3b3VsZCBiZSB0b3AgbGVmdA0KICogYnV0IHRoZSBwb2ludCB3aGljaCB3b3Vs ZCBiZSBwcm9wYWdhdGluZyB0aGUgY2xpY2sgd291bGQgYmUNCiAqIHRoZSBib3R0b20gcmlnaHQg Y3Vyc29yIHBvc2l0aW9uIChjcnRjX3gsIGNydGNfeSkgKyBob3RzcG90DQogKiBjb29yZGluYXRl cyB3aGljaCBmb3IgYm90dG9tIHJpZ2h0IGZhY2luZyBhcnJvdyB3b3VsZCBwcm9iYWJseQ0KICog YmUgKGN1cnNvcl93aWR0aCwgY3Vyc29yX2hlaWdodCkuDQogKg0KICogVGhpcyBpbmZvcm1hdGlv biBpcyBvbmx5IHJlbGV2YW50IGZvciBkcml2ZXJzIHdvcmtpbmcgb24gdG9wDQogKiBvZiBwYXJh LXZpcnR1YWxpemVkIGhhcmR3YXJlLiBUaGUgcmVhc29uIGZvciB0aGF0IGlzIHRoYXQNCiAqIHRo ZSBob3RzcG90IGlzIGZhaXJseSBlbmNhcHN1bGF0ZWQgaW4gdGhlIHN5c3RlbSBidXQgaW1hZ2lu ZSBoYXZpbmcNCiAqIG11bHRpcGxlIHdpbmRvd3Mgd2l0aCB2aXJ0dWFsIG1hY2hpbmVzIHJ1bm5p bmcgb24gc2VydmVycw0KICogYWNyb3NzIHRoZSBnbG9iZSwgYXMgeW91IG1vdmUgdGhlIG1vdXNl IGFjcm9zcyB0aGUgc2NyZWVuDQogKiBhbmQgdGhlIGN1cnNvciBtb3ZlcyBvdmVyIHRob3NlIG11 bHRpcGxlIHdpbmRvd3MgeW91IHdvdWxkbid0DQogKiB3YW50IHRvIGJlIHNlbmRpbmcgdGhvc2Ug bW91c2UgZXZlbnRzIHRvIHRob3NlIG1hY2hpbmVzLCBzbyB2aXJ0dWFsDQogKiBtYWNoaW5lIG1v bml0b3JzIGltcGxlbWVudCBhbiBvcHRpbWl6YXRpb24gd2hlcmUgdW5sZXNzIHRoZSBtb3VzZQ0K ICogaXMgbG9ja2VkIHRvIHRoZSBWTSB3aW5kb3cgKGUuZy4gdmlhIGEgY2xpY2spIGluc3RlYWQg b2YgcHJvcGFnYXRpbmcNCiAqIHRob3NlIG1vdXNlIGV2ZW50cyB0byB0aG9zZSBWTSdzIHRoZXkg Y2hhbmdlIHRoZSBpbWFnZSBvZiB0aGUgbmF0aXZlDQogKiBjdXJzb3IgdG8gd2hhdCdzIGluc2lk ZSB0aGUgbW91c2UgY3Vyc29yIHBsYW5lIGFuZCBkbyBub3QgaW50ZXJhY3QNCiAqIHdpdGggdGhl IFZNIHdpbmRvdyB1bnRpbCBtb3VzZSBpcyBjbGlja2VkIGluIGl0Lg0KICoNCiAqIEluIG9yZGVy IGZvciB0aGF0IGNsaWNrIHRvIGNvcnJlY3RseSBhbmQgc2VhbWxlc3NseSBwcm9wYWdhdGUNCiAq IGJldHdlZW4gdGhlIG5hdGl2ZSBhbmQgdmlydHVhbCBtYWNoaW5lLCBub3Qgb25seSB0aGUgY3Vy c29yIGltYWdlDQogKiBidXQgYWxzbyB0aGUgaG90c3BvdCBpbmZvcm1hdGlvbiBoYXMgdG8gbWF0 Y2ggYmV0d2VlbiB0aGVtLg0KICoNCiAqIE1ha2Ugc3VyZSB0byBzZXQgdGhpcyBwcm9wZXJ0eSBv biB0aGUgY3Vyc29yIHBsYW5lIGlmIHlvdSdkIGxpa2UNCiAqIHlvdXIgYXBwbGljYXRpb24gdG8g YmVoYXZlIGNvcnJlY3RseSB3aGVuIHJ1bm5pbmcgb24NCiAqIHBhcmEtdmlydHVhbGl6ZWQgZHJp dmVycyAocXhsLCB2Ym94LCB2aXJ0aW8gb3Igdm13Z2Z4KS4NCiAqIC8NCg0Keg0K