V2VsbCwgaWYgaW50ZXJydXB0aW5nIHRoZSBjb2lsIHdpdGggYSByZWxheSAoc28gbm8gc3Bhcmsp IHdoZW4gdGhlIGNhcgptb3ZlcyBpcyBub3QgeW91ciBzdHlsZSwgcGVyaGFwcyBhIG1vcmUgbWVj aGFuaWNhbCBtZXRob2QgaXMgaW4gb3JkZXIuCkhvdyBhYm91dCBhIGZ1ZWwgY3V0b2ZmIHZhbHZl IHRoYXQgaXMgcGh5c2ljYWxseSBhY3R1YXRlZCBieSB0aGUKdGhyb3R0bGUgY2FibGU/IE9yIGlm IGEgZnVlbCB2YWx2ZSB0aGF0IGNvdWxkIGJlIGNsb3NlZCBieSBwaHlzaWNhbGx5CnB1bGxpbmcg YSBwaW4gZnJvbSBpdCBjb3VsZCBiZSBwcm9jdXJlZCAoc29tZXRoaW5nIHNpbWlsYXIgdG8gYQpz b2xlbm9pZCksIHRoZW4gYW4gYXBwcm9wcmlhdGVseSBzaXplZCBjYWJsZSBhdHRhY2hlZCB0byB0 aGUgcmltIG9mCm9uZSBvZiB0aGUgdGlyZXMgY291bGQgcHVsbCB0aGVuIHBpbiBmcm9tIHRoZSB2 YWx2ZSBvbmNlIHRoZSBjYXIKc3RhcnRlZCBtb3ZpbmcuCgpPciBob3cgYWJvdXQgYXR0YWNoaW5n IGEgc3Ryb25nIG1hZ25ldCB0byB0aGUgc2lkZXdhbGwgb2YgYSB0aXJlIGFuZAp1c2UgaXQgdG8g YWN0dWF0ZSBhIHJlZWQgcmVsYXkgbW91bnRlZCBpbiB0aGUgd2hlZWwgd2VsbC4gV2hlbiB0aGUK dGlyZSByb3RhdGVkIHRoZSByZWxheSB3b3VsZCBiZSBhY3R1YXRlZCBhbmQgdGhhdCBjb3VsZCBi ZSB1c2VkIHRvCnVuc2V0IGEgbGF0Y2hpbmcgcmVsYXkgc2V0IGlubGluZSB3aXRoIHRoZSB2ZWhp Y2xlJ3MgY29pbChzKS4KCldoZW4gaXQgY2FtZSB0aW1lIHRvIHN0YXJ0IHRoZSBjYXIgYWdhaW4s IGEgcHVsc2UgY2FuIGJlIHNlbnQgdG8KYWN0aXZhdGUgdGhlIGxhdGNoaW5nIHJlbGF5IGlubGlu ZSB3aXRoIHRoZSBjb2lsIGFuZCwgdmlvbGEhLCB5b3UgaGF2ZQpzcGFyayBhbmQgZXZlcnl0aGlu ZyB3b3JrcyBhZ2Fpbi4KCk9uIFdlZCwgTm92IDE5LCAyMDE0IGF0IDM6MzkgUE0sIE5PUEU5IFlF UyA8eWVzQG5vcGU5LmNvbT4gd3JvdGU6Cj4gSSBwbGFuIHRvIHVzZSBhbiBvbGRlciBjYXIuICBJ dCB3aWxsIHN0aWxsIGJlIGF0dHJhY3RpdmUKPiBzaW5jZSB0aGUgY2FycyBhcmUgdXNlZCBmb3Ig 4oCcam95IHJpZGluZ+KAnSBhbmQgY29tbWl0dGluZwo+IG90aGVyIGNyaW1lcy4KPiBHdXMKPgo+ Cj4gT24gMjAxNG0xMWQxOSwgYXQgMTM6MzEsIEtQTCA8a3BsLmxpc3Rlc0BnbWFpbC5jb20+IHdy b3RlOgo+Cj4gSXNuJ3QgaXQgYmV0dGVyIHRvIGluc3RhbGwgZWxlY3RyaWMgYmxvY2sgaGVhdGVy cywgbGlrZSBpdCBpcyBkb25lIGluCj4gU3dlZGVuIG9yIEZpbmxhbmQsIGZvciBleGFtcGxlPyBJ bnN0ZWFkIG9mIGJ1cm5pbmcgZnVlbCBmb3IgaG91cnMsIGFuZAo+IHNtZWxsaW5nIGJ5cHJvZHVj dHMgYWxsIHRoZSB0aW1lLgo+Cj4gQWN0dWFsbHkgaXQgZGVwZW5kcyBvbiB3aGF0IGtpbmQgb2Yg Y2FyIHlvdSBhcmUgdGFsa2luZyBhYm91dCwgaXQgaXMgYQo+IGh1Z2UgZGlmZmVyZW5jZSBpZiBp dCdzIGFuIG9sZCBjYXJidXJldHRlZCBtb3Rvciwgb3IgYSBuZXdlciBvbmUsIHdpdGgKPiAiZHJp dmUgYnkgd2lyZSIgc2V0dXAsIHdoZXJlIHRocm90dGxlIGlzIHR1cm5lZCBieSBhIHNlcnZvLCB0 aGVuIGFsbAo+IHlvdSBuZWVkIGlzIHRvIGJsb2NrIHNlbnNvciBhdCBnYXMgcGVkYWwuCj4KPiBP biBXZWQsIE5vdiAxOSwgMjAxNCBhdCAyOjI1IEFNLCBOT1BFOSBZRVMgPHllc0Bub3BlOS5jb20+ IHdyb3RlOgo+PiBUbyBjbGFyaWZ5IG15IHJlcXVlc3TigKbigKYKPj4gSSBhbSBub3QgaW50ZXJl c3RlZCBpbiBoYXJtaW5nIHRoZSB0aGllZiAsCj4+IGdyYXBwbGluZyB3aXRoIHRoZSB0aGllZi4g IEkgd2FudCB0bwo+PiBvYnRhaW4gZXZpZGVuY2UgYW5kIHRoZW4gcHJvY2VlZC4KPj4gR3VzIGlu IERlbnZlcgo+Pgo+Pgo+Pgo+PiBPbiAyMDE0bTExZDE4LCBhdCAxNDo0MiwgTk9QRTkgWUVTIDx5 ZXNAbm9wZTkuY29tPiB3cm90ZToKPj4KPj4gSSB3YW50IHRvIGJ1aWxkIGEgRElZIFB1ZmZlciBI b25leVRyYXAuICBJbiBteQo+PiBuZWlnaGJvcmhvb2QgKCBpdCBpcyBjb2xkIG91dHNpZGUgKSA1 IFB1ZmZlcnMKPj4gaGF2ZSBiZWVuIHN0b2xlbiB0aGlzIHdlZWsuCj4+Cj4+IEEgUHVmZmVyIGlz IGEgY2FyIHJ1bm5pbmcgdW5hdHRlbmRlZCBkdXJpbmcgY29sZAo+PiB3ZWF0aGVyLiAgVGhlIGV4 aGF1c3QgaXMgdmlzaWJsZSBhbmQgYSBjYXIgdGhpZWYKPj4gZ3JhYnMgdGhlIGNhci4KPj4KPj4g SSBwbGFuIHRvIHVzZSBhbiBvbGRlciBjYXIgc28gdGhhdCBJIGFtIG5vdCB1cHNldAo+PiBpZiB0 aGUgdGhpZWYgYmFuZ3Mgb24gdGhlIGNhci4gIEkgcGxhbiB0byB1c2UgbG9uZwo+PiBkaXN0YW5j ZSB2aWRlbyByZWNvcmRpbmcgb3IgbG9jYWwsIHJlbW90ZSBjb250cm9sCj4+IHZpZGVvIHRvIGNh cHR1cmUgdGhlIGFjdGlvbi4KPj4KPj4gV2hhdCBpcyB0aGUgYmVzdC9lYXNpZXN0IHdheSB0byBk aXNhYmxlIGEgcnVubmluZwo+PiBjYXIgPyAgVGhlIGtleSB3aWxsIGJlIGluIHRoZSBpZ25pdGlv biBhcyBJIGtub3cgb2YKPj4gbm8gZWFzeSB3YXkgdG8gbGVhdmUgYSBjYXIgcnVubmluZyB3aXRo b3V0IHRoZSBrZXkuCj4+IE1heWJlIHRoZXJlIGlzIGEgd2F5IHRvIG1ha2UgaXQgbG9vayBsaWtl IGV4aGF1c3QKPj4gaXMgZXhpdGluZyB0aGUgdGFpbHBpcGUuICBUaGVuIHRoZSBjYXIgd2lsbCBu b3QgYmUKPj4gcnVubmluZyBhbmQgd2lsbCBoYXZlIOKAnGZha2XigJ0ga2V5IGluIHRoZSBpZ25p dGlvbi4KPj4KPj4gSSBsb29rIGZvcndhcmQgdG8gY3JlYXRpdmUgc3VnZ2VzdGlvbnMuCj4+Cj4+ IEd1cyBpbiBEZW52ZXIKPj4KPj4KPj4KPj4gLS0KPj4gaHR0cDovL3d3dy5waWNsaXN0LmNvbS90 ZWNocmVmL3BpY2xpc3QgUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQo+PiBWaWV3L2NoYW5nZSB5 b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdAo+PiBodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxt YW4vbGlzdGluZm8vcGljbGlzdAo+Cj4KPgo+IC0tCj4gS1BMCj4KPiAtLQo+IGh0dHA6Ly93d3cu cGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKPiBW aWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBhdAo+IGh0dHA6Ly9tYWlsbWFuLm1p dC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNsaXN0Cj4KPiBKb2FubmUgWWFtYWd1Y2hpCj4gR3Vz IFMuIENhbGFicmVzZQo+IENpbnRlcm5hdGlvbmFsLmNvbS8gV0ZUIEVsZWN0cm9uaWNzCj4gRGVu dmVyLCBDTyAgIDcyMCAzNjIgMTg2Ngo+IGJpekBDaW50ZXJuYXRpb25hbC5jb20KPgo+Cj4gRGVu dCB0aGUgdW5pdmVyc2UgKFNKKSAgSHVycmF5IGZvciAjT3BlbklQICwgI0lQUFBhcmFkaWdtCj4K PiBBbGwgaWRlYXMsIHRleHQsIGRyYXdpbmdzIGFuZCBhdWRpbyAsIHRoYXQgYXJlIGNyZWF0ZWQg YnkgQ2ludGVybmF0aW9uYWwuY29tICggb3IgaXQncyBhZ2VudHMgKSB0aGF0IGFyZSBpbmNsdWRl ZCB3aXRoIHRoaXMgc2lnbmF0dXJlIHRleHQgYXJlIHRvIGJlIGRlZW1lZCB0byBiZSByZWxlYXNl ZCB0byB0aGUgcHVibGljIGRvbWFpbiBhcyBvZiB0aGUgZGF0ZSBvZiB0aGlzIGNvbW11bmljYXRp b24gLgo+Cj4gVGhpcyBET0VTIE5PVCBpbmNsdWRlIGluZm9ybWF0aW9uIGZyb20gM3JkIHBhcnRp ZXMgc3VwcGxpZWQgdG8gQ2ludGVybmF0aW9uYWwuICBUaGlzIERPRVMgTk9UIGluY2x1ZGUgYW55 IGluZm9ybWF0aW9uIGFjY2lkZW50bHkgaW5jbHVkZWQgdGhhdCBiZWxvbmdzIHRvIGFub3RoZXIg cGFydHkuCj4KPgo+Cj4KPgo+Cj4KPiAtLQo+IGh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJl Zi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKPiBWaWV3L2NoYW5nZSB5b3VyIG1l bWJlcnNoaXAgb3B0aW9ucyBhdAo+IGh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0 aW5mby9waWNsaXN0CgoKCi0tIApKYXNvbiBXaGl0ZQoKLS0gCmh0dHA6Ly93d3cucGljbGlzdC5j b20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2Ug eW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFu L2xpc3RpbmZvL3BpY2xpc3QK .