T24gVHVlLCBTZXAgMDMsIDIwMTMgYXQgMDY6MjY6MjNQTSArMDIwMCwgSmFjb3BvIE1vbmVnYXRv IHdyb3RlOgo+IEhlbGxvIHRoZXJlLCBJIGFtIGRlc2lnbmluZyBhIHNpbXBsZSBNSURJIGNvbnRy b2xsZXIgd2l0aCBhIDE2ZjYyOC4gRm9yIHRob3NlIHdobyBkb24ndCBrbm93IE1JREkgY29tbXVu aWNhdGlvbiBpcyBkb25lIHRocm91Z2ggYSAyMCBtQSBjdXJyZW50IGxvb3AuIAoKSSBrbm93IGl0 IHdlbGwuIEJUVyB0aGUgY3VycmVudCBsb29wIGlzIDUgbUEsIG5vdCAyMC4KCj4gCj4gVGhlIE1J REkgU3RhbmRhcmQgRG9jdW1lbnQgc3RhdGVzIHRoYXQgeW91IHNob3VsZCBwdXQgYSBidWZmZXIg b3IgYW4KPiBpbnZlcnRlciBhZnRlciB0aGUgbWljcm8ncyBUWCBwaW4sIGRlcGVuZGluZyBieSB0 aGUgY2FwYWJpbGl0eSBvZiB0aGUKPiBtaWNybyB0byBydW4gd2l0aCBub24taW52ZXJ0ZWQvaW52 ZXJ0ZWQgb3V0cHV0LCBzbyB0aGF0IHRoZSBpbnZlcnRlcgo+IGNvdWxkIGJlIGEgc2luZ2xlIE5Q TiBpbiBjYXNlIG9mIGludmVydGVkIG91dHB1dC4gSG93ZXZlciwgdGhlIFBJQyBVU0FSVAo+IG1v ZHVsZSBkb2Vzbid0IGhhdmUgdGhlIGludmVydGVkIG91dHB1dCBtb2RlIHNvIGl0IG5lZWRzIGEg YnVmZmVyIHRvCj4gb3BlcmF0ZSBwcm9wZXJseSwgYWNjb3JkaW5nIHRvIHRoZSBzdGFuZGFyZC4g Cj4gCgpJIHRoaW5rIHdlIG5lZWQgdG8gd2FsayB0aHJvdWdoIHRoaXMgYWdhaW4uIFdoaWxlIGl0 IGlzIHRydWUgdGhhdCB0aGUgUElDClVTQVJUIGRvZXNuJ3QgaGF2ZSBhbiBpbnZlcnRlZCBvdXRw dXQgbW9kZSwgaXQgaXMgYSBUVEwgc2VyaWFsIG91dHB1dCwKd2hpY2ggaXMgbmF0dXJhbGx5IGlu dmVydGVkIGFzIGNvbXBhcmVkIHRvIEVJQTIzMi4gU28gdGhlIGlkbGUgKG1hcmtpbmcpCnN0YXRl IG9mIHRoZSB0cmFuc21pdCBwaW4gaXMgYSArNVYgdmFsdWUsIGFuZCB0aGUgc3BhY2Ugc3RhdGUg aXMgYSAwVgp2YWx1ZS4gRnJvbSB0aGUgTUlESSBXaWtpcGVkaWEgZW50cnk6CgpodHRwOi8vZW4u d2lraXBlZGlhLm9yZy93aWtpL01JRElfMS4wCgpMb2dpYyAxIOKGkiBIaWdoIOKGkiBubyBjdXJy ZW50IGZsb3cg4oaSIE9wdG8taXNvbGF0b3IgTEVEIG9mZiDihpIgTUlESSByZWNlaXZlcgpzZWVz IEhpZ2gsIGxvZ2ljICcxJyAoZGF0YSBiaXRzLCBzdG9wIGJpdCBvciBpZGxlKQoKTG9naWMgMCDi hpIgTG93IOKGkiBjdXJyZW50IGxvb3AgZmxvdyDihpIgT3B0by1pc29sYXRvciBMRUQgb24g4oaS IE1JREkgcmVjZWl2ZXIKc2VlcyBMb3csIGxvZ2ljICcwJyAoZGF0YSBiaXRzLCBzdGFydCBiaXQp CgpTbyBhcyB5b3UgcG9pbnQgb3V0OgoKPm9uIHRoZSB0cmFuc21pdHRlciB0aGVyZSBpcyArNVYg c3VwcGx5IGFuZCB0aGUgVFggcGluLiBvbiB0aGUKPiBSZWNlaXZlciBzaWRlIGl0IGlzIGFuIG9w dG9jb3VwbGVyIHdpdGggYSByZXNpc3RvciBpbiBzZXJpZXMgb2Ygb25lIG9mCj4gdGhlIGlucHV0 cy4gb25lIG9mIHRoZSBpbnB1dCBvZiB0aGUgb3B0byBpcyBjb25uZWN0ZWQgdG8gdGhlICs1ViBh bmQgdGhlCj4gb3RoZXIgdG8gdGhlIFRYIHBpbgoKSWYgeW91IGRpcmVjdGx5IGNvbm5lY3QgKHZp YSBhIDIyMCBvaG0gcmVzaXN0b3IgSUlSQykgdGhlIFRYIHBpbiB0byB0aGUKTUlESSBvdXQsIHRo ZW4geW91IHdpbGwgZ2V0IHRoZSBiZWhhdmlvciBvdXRsaW5lZCBhYm92ZS4gV2hlbiBpZGxlLCBi b3RoCmxpbmVzIHdpbGwgYmUgYXQgKzVWIGFuZCBubyBjdXJyZW50IHdpbGwgZmxvdywgd2hlbiBz ZW5kaW5nLCB0aGUgVFggbGluZQpnb2VzIGxvdyBhbmQgY3VycmVudCBmbG93cyBiZXR3ZWVuIFRY IGFuZCB0aGUgKzVWIGxpbmUuCgo+IEkgYXNzdW1lIHRoYXQgYSBidWZmZXIvaW52ZXJ0ZXIgd2Fz IG5lZWRlZCBiZWNhdXNlIGF0IHRoZSB0aW1lCj4gbWljcm9jb250cm9sbGVyJ3MgSU9zIHdlcmVu J3QgYWJsZSB0byBzdXBwbHkvc2luayB0aGUgMjBtQSBuZWVkZWQgYnkgdGhlCj4gY3VycmVudCBs b29wLgoKTWF5YmUuIEJ1dCBldmVuIGJhY2sgaW4gdGhlIGRheSBJIHdvdWxkIGNvbm5lY3QgdGhl IFRUTCBVQVJUIG91dHB1dHMKZGlyZWN0bHkgdGhyb3VnaCBhcyBNSURJIG91dC4gCgo+IEluIHRo ZSBkYXRhc2hlZXQgb2YgdGhlIDYyOCBpdCdzIHN0YXRlZCB0aGF0IGVhY2ggSS9PIHBpbgo+IGNh biBoYW5kbGUgMjVtQSwgaXMgdGhpcyB0cnVlIHdpdGggYWx0ZXJuYXRlZCBmdW5jdGlvbnMgdG9v PwoKVGhlIG91dHB1dCBidWZmZXIgY2FuIHNvdXJjZS9zaW5rIHVwIHRvIDI1IG1BIG5vIG1hdHRl ciB0aGUgZnVuY3Rpb24uCgo+IAo+IElmIHNvLCBjb3VsZCB0aGVyZSBiZSBhbnkgcHJvYmxlbSBp ZiBpIGp1c3QgY29ubmVjdGVkIHRoZSBUWCBwaW4gdG8gdGhlCj4gc29ja2V0PyAKCkFzIGxvbmcg YXMgeW91IGhhdmUgYSAyMjAgb2htIHJlc2lzdG9yIHNvbWV3aGVyZSBpbiB0aGUgcGF0aC4gSSBh bHdheXMgZm91bmQgaXQKc2ltcGxlciB0byBjb25uZWN0IHRoZSByZXNpc3RvciB0byArNVYuCgpI b3BlIHRoaXMgaGVscHMsCgpCQUoKCj4gCj4gSmFjb3BvCj4gIAkJIAkgICAJCSAgCj4gLS0gCj4g aHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3QgUElDL1NYIEZBUSAmIGxpc3Qg YXJjaGl2ZQo+IFZpZXcvY2hhbmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25zIGF0Cj4gaHR0cDov L21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QKCi0tIApCeXJvbiBBLiBK ZWZmCkNoYWlyOiBEZXBhcnRtZW50IG9mIENvbXB1dGVyIFNjaWVuY2UgYW5kIEluZm9ybWF0aW9u IFRlY2hub2xvZ3kKQ29sbGVnZSBvZiBJbmZvcm1hdGlvbiBhbmQgTWF0aGVtYXRpY2FsIFNjaWVu Y2VzCkNsYXl0b24gU3RhdGUgVW5pdmVyc2l0eQpodHRwOi8vZmFjdWx0eS5jbGF5dG9uLmVkdS9i amVmZgotLSAKaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3QgUElDL1NYIEZB USAmIGxpc3QgYXJjaGl2ZQpWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdApo dHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlzdAo= .