T2ssIHRoYW5rcyBSdXNzZWxsLgoKT24gV2VkLCBBcHIgMjAsIDIwMTYgYXQgMTA6NTcgQU0sIFJ1 c3NlbGxNYyA8YXBwdGVjaG56QGdtYWlsLmNvbT4gd3JvdGU6Cgo+IOKAiwo+Cj4gT24gMjAgQXBy aWwgMjAxNiBhdCAxODoyOCwgZW1iZWRkZWQgc3lzdGVtcyA8cGljbGlzdDlAZ21haWwuY29tPiB3 cm90ZToKPgo+ID4gUnVzc2VsLCB0aGFua3MgSSBrbm93IGFsbCBvZiB0aGVzZS4gUmVjb21tZW5k IGEgbG93IGNvc3QgTklNSCBtYW5hZ2VtZW50Cj4gSUMKPiA+IG1heWJlPwo+Cj4KPiBSZWFsbHkg b25seSB0aGUgdm9sdGFnZSBjbGFtcCBpcyBuZWVkZWQuCj4gU29tZXRoaW5nIHdpdGggYSByZWFz b25hYmx5IGFjY3VyYXRlIHJlZmVyZW5jZSBpcyBuZWVkZWQuCj4gVEw0MzEgKyB0cmFuc2lzdG9y IGFzIHlvdSBzdWdnZXN0ZWQgaXMgZmluZS4KPiBBZGQgaHlzdGVyZXNpcy4KPiBQdXR0aW5nIGh5 c3RlcmVzaXMgcmVzaXN0b3IgYmVoaW5kIGEgZGlvZGUgc28gaXQgbWFrZXMgdGhlIGJhdHRlcnkg dm9sdGFnZQo+IGFwcGVhciBtYXJnaW5hbGx5IGhpZ2hlciBvbmNlIFZiYXQgaXMgaGlnaCBlbm91 Z2ggYW5kIGhhcyBubyBlZmZlY3Qgd2hpbGUKPiBjaGFyZ2luZyBpcyBNVUNIIGJldHRlciB0aGFu IG5vIGRpb2RlIHNvIGl0IHRoZW4gYWZmZWN0cyBWYmF0IGFwcGFyZW50IGF0Cj4gYWxsIHRpbWUg LSB3aGljaCBtYWtlcyBhZGp1c3RtZW50IGEgbmlnaHRtYXJlLgo+Cj4gT3IgaWYgeW91IHRydXN0 IHlvdXIgImNoYXJnZWQiIGRldGVjdG9yIHlvdSBjYW4gZGlzYWJsZSBjaGFyZ2luZyB1bnRpbCBu ZXh0Cj4gZGF5IG9yIHdoZW4gdGhlIGJhdHRlcnkgaGFzIGJlZW4gbG9hZGVkLgo+Cj4gSSBpbXBs ZW1lbnRlZCBhIHN5c3RlbSB3aXRoIGEgcmVzaXN0b3IgaW4gVEw0MzEgYW5vZGUgKGdyb3VuZCkg c2lkZSBhbmQKPiBzdG9vZCB0aGUgdm9sdGFnZSBkaXZpZGVyIGFib3ZlIHRoYXQgc28gcmVmZXJl bmNlIHZvbHRhZ2Ugd2FzIHNsaWdodGx5Cj4gYWx0ZXJlZCBieSBjaGFyZ2UgY3VycmVudC4gTGVh ZHMgdG8gc29tZSB2ZXJ5IHN1YnRsZSBpbnRlcmFjdGlvbnMuIENpcmN1aXQKPiBzb21ld2hlcmUg aWYgd2FudGVkLgo+Cj4gX19fX19fX19fX19fX19fX19fXwo+Cj4gQWxtb3N0IG5vIElDIGlzIHN1 aXRhYmxlIGFzIHRoZXkgYWxsIHRlbmQgdG8gdXNlIHRlcm1pbmF0aW9uIG1ldGhvZHMgdGhhdAo+ IG1ha2UgYXNzdW1wdGlvbnMgYWJvdXQgZW5lcmd5IHN1cHBseSB0aGF0IHNvbGFyIHZpb2xhdGVz Lgo+Cj4KPiAgICAgIFJ1c3NlbGwKPiAtLQo+IGh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJl Zi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKPiBWaWV3L2NoYW5nZSB5b3VyIG1l bWJlcnNoaXAgb3B0aW9ucyBhdAo+IGh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0 aW5mby9waWNsaXN0Cj4KLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0 IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9w dGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK .