VEJEIGlzIHRoZSByaWdodCBleGN1c2UgZm9yIGFsbCBkYXRhc2hlZXQgd3JpdGVyIGVuZ2luZWVy cyEKOikgOikgOikKClZhc2lsZQoKT24gTW9uLCBBcHIgMjUsIDIwMTYgYXQgOToyOCBBTSwgUnVz c2VsbE1jIDxhcHB0ZWNobnpAZ21haWwuY29tPiB3cm90ZToKCj4gRGlubmVyIHRpbWUuCj4gUXVp Y2sgY29tbWVudC4KPiBBcHBhcmVudGx5IHJpc2tzIHBsYXRpbmcgb3V0IExpdGhpdW0uCj4gQmF0 dGVyeSB1bml2ZXJzaXR5IG1heSBzYXkgbW9yZS4KPiBUaGVyZSBhcmUgdmFyaW91cyBkZXNjcmlw dGlvbnMgYXJvdW5kLgo+Cj4gVGhlIGxvbmdlciBpdCBpcyBsZWZ0IGF0IHNheSA0LjJWIHRoZSBt b3JlIGNhcGFjaXR5IGlzIGFkZGVkLgo+IFRoZSBjdXJyZW50IGlzIHNldCBieSB0aGUgY2hlbWlz dHJ5IGFuZCBnZXRzIHNsb3dlciBhbmQgc2xvd2VyIGFuZCAuLi4uCj4gSW4gTGlGZVBPNCB0aGVy ZSBpcyBhIHNwaW5lbCBmcmFtZXdvcmsgdGhhdCB0aGUgTGl0aGl1bSAoaW9ucykgInN0b3JlcyIK PiBpbnRvLiBJbiBMaUlvbiB0aGVyZSBpcyBub3QuIFdoZW4gdGhlIGNlbGwgaXMgZGlzY2hhcmdl ZCBpdCBsaXRlcmFsbHkgbG9zZXMKPiBtZWNoYW5pY2FsIHN1cHBvcnQuIEFzIHRoZSBjZWxsIGN5 Y2xlcyB0aGUgc3RydWN0dXJlIGlzIG1lY2hhbmljYWxseQo+IHN0cmVzc2VkIGFuZCBsaXRlcmFs bHkgYmVhdGVuIHRvIGRlYXRoLgo+IEhvdyBtdWNoIHRoZSB2YXJpb3VzIGZhY3RvcnMgcmFuayBJ IGRvbid0IGtub3cuCj4KPiBCdXQgdGhlcmUgaXMgbm8gZG91YnQgdGhhdCBsZWF2aW5nIGEgY2Vs bCB3aXRoIGFjY2VzcyB0byBzYXkgQy8xMCBjdXJyZW50Cj4gaWYgaXQgd2FudHMgaXQgd2lsbCBr aWxsIGl0IGVhcmx5Lgo+IEhvdyBlYXJseSBpcyB0YmQuCj4KPgo+ICAgICAgICAgICBSdXNzZWxs Cj4KPgo+Cj4gT24gMjUgQXByaWwgMjAxNiBhdCAxMDowNywgSmFzb24gV2hpdGUgPHdoaXRld2F0 ZXJzc29mdHdhcmVpbmZvQGdtYWlsLmNvbT4KPiB3cm90ZToKPgo+ID4gUnVzc2VsLCB0aGF0IHNv dW5kIHNpbXBsZSBlbm91Z2ggdG8gaW1wbGVtZW50LiBIb3dldmVyLiBjYW4geW91Cj4gZWxhYm9y YXRlIGEKPiA+IGJpdCBtb3JlIG9uIHRoZSBkZWF0aCBieSBjb25zdGFudCB2b2x0YWdlPyBJIGFt IGhhdmluZyB0cm91YmxlIGZpbmRpbmcKPiBtdWNoCj4gPiBtYXRlcmlhbCBzYXlpbmcgd2hhdCB0 aGF0IGFjdHVhbGx5IGRvZXMgdG8gdGhlIGJhdHRlcnkuCj4gPgo+ID4gRG9lcyBhIGNvbnN0YW50 IDQuMlYgYXBwbHkgc3RyZXNzIHRvIHRoZSBiYXR0ZXJ5IGNoZW1pc3RyeT8gV291bGQgYSBsb3dl cgo+ID4gdm9sdGFnZSBoYXZlIHRoZSBzYW1lIGVmZmVjdCBvdmVyIHRpbWU/Cj4gPgo+ID4gT24g U3VuLCBBcHIgMjQsIDIwMTYgYXQgMToyMSBQTSwgUnVzc2VsbE1jIDxhcHB0ZWNobnpAZ21haWwu Y29tPiB3cm90ZToKPiA+Cj4gPiA+IE9uIDI1IEFwcmlsIDIwMTYgYXQgMDM6MjAsIEphc29uIFdo aXRlIDwKPiA+IHdoaXRld2F0ZXJzc29mdHdhcmVpbmZvQGdtYWlsLmNvbT4KPiA+ID4gd3JvdGU6 Cj4gPiA+Cj4gPiA+IOKAi0NhbiBiZSBkb25lIHNpbXBseSBidXQgTk9UIHF1aXRlIGFzIHlvdSBz YWlkLgo+ID4gPiBZb3VyIG1ldGhvZCBXSUxMIGRlc3Ryb3kgY2VsbHMuCj4gPiA+Cj4gPiA+Cj4g PiA+IOKAiz4g4oCLCj4gPiA+Cj4gPiA+IEFzIEkgdW5kZXJzdGFuZCBpdCwgTGktSW9uCj4gPiA+ IOKAiyDigIsKPiA+ID4gYmF0dGVyaWVzIGFyZSBub3JtYWxseSBjaGFyZ2VkIHdpdGggYSBjb25z dGFudCBjdXJyZW50IHVudGlsIHRoZQo+IGJhdHRlcnkKPiA+ID4KPiA+ID4gPiByZWFjaGVzIGEg Y3V0b2ZmIHZvbHRhZ2Ugb2YgfjQuMTUgdm9sdHMuCj4gPiA+Cj4gPiA+Cj4gPiA+IOKAi1llcy4K PiA+ID4gTG93ZXIgVm1heCBnaXZlcyBsZXNzIG1heCBjYXBjaXR5IGFuZCBsb25nZXIgY3ljbGUg bGlmZS4KPiA+ID4g4oCLCj4gPiA+Cj4gPiA+Cj4gPiA+ID4gQWZ0ZXIgdGhlIGN1dG9mZiBpcyBy ZWFjaGVkIGEKPiA+ID4gPiDigIsg4oCLCj4gPiA+ID4gY29uc3RhbnQgdm9sdGFnZSBpcyBtYWlu dGFpbmVkIHVudGlsIHRoZSBiYXR0ZXJ5IGlzIHJlbW92ZWQuCj4gPiA+ID4KPiA+ID4KPiA+ID4g 4oCLTk8gISEhISEhISEhISEhISEhISEhISEhISEhCj4gPiA+Cj4gPiA+IENvbnN0YW50IHZvbHRh Z2UgaXMgYXBwbGllZCB1bnRpbCBJY2hnIChzZXQgYnkgYmF0dGVyeSBiZWhhdmlvdXIpIGZhbGxz Cj4gPiB0bwo+ID4gPiBzb21lIGZyYWN0aW9ub2YgSV9jaGdfZGVzaWduX21heAo+ID4gPiAqKlRI RU4qKiBWY2hnIHNldCB0byB6ZXJvLgo+ID4gPgo+ID4gPiBMZWF2aW5nIFZjaGcgYXBwbGllZCBh bGxvd3MgY3VycmVudCB0byB0YWlsIGRvd24gZm9yZXZlciBhbmQgY2VsbAo+IGRpZXMuIOKAiwo+ ID4gPgo+ID4gPiDigItNYXkgYmUgc2xvd2x5LCBidXQgc3VyZWx5Lgo+ID4gPiDigIsKPiA+ID4K PiA+ID4g4oCLPiBIb3dldmVyLCBpbiBteSBjYXNlIEkgZG9uJ3QgcGFydGljdWxhcmx5IHdhbnQg dG8gdXNlIGEgZGVkaWNhdGVkCj4gPiBjaGFyZ2VyCj4gPiA+IElDCj4gPiA+Cj4gPiA+ID4gb3Ig YSBtaWNyb2NvbnRyb2xsZXIgdG8gbWFuYWdlIHRoZSBjaGFyZ2UgY3ljbGUuIFNvIG15IHF1ZXN0 aW9uIGlzOgo+ID4gPiB3b3VsZCBhCj4gPiA+Cj4gPiA+IGZpeGVkIHZvbHRhZ2UgKHBlcmhhcHMg NC4yViwgY3VycmVudCBsaW1pdGVkIHRocm91Z2ggYSByZXNpc3RvcikgYmUKPiA+ID4KPiA+ID4g c3VpdGFibGUgZm9yIGNoYXJnaW5nIGEgbGl0aGl1bSBpb24gYmF0dGVyeT8KPiA+ID4KPiA+ID4K PiA+ID4g4oCLWWVzLCBzdWJqZWN0IHRvIGZvbGxvd2luZy4KPiA+ID4KPiA+ID4gMS4gSW1heF9j aGcgPD0gSV9tYXhfY2hnX3NwZWNpZmllZC4KPiA+ID4gVGhpcyBpcyBVU1VBTExZIEltYXggPSBt QWggcmF0aW5nIG51bWVyaWNhbGx5Lgo+ID4gPiBlZyAxMDAwIG1BIGZvciAxMDAwIG1BaCBjZWxs Lgo+ID4gPiBTT01FIEZFVyBoYXZlIGxvd2VyIGVnIDEvMiBtQXBlciBtQWgKPiA+ID4gU09NRSBG RVdFUiBoYXZlIGhpZ2hlci4KPiA+ID4KPiA+ID4gVXN1YWxseSAxIG1BIG1heCBwZXIgbUFoIGlz IHNhZmUuCj4gPiA+Cj4gPiA+IEZvciBWY2VsbDwgVmRhbmdlcm91c2x5X2xvdyB0aGlzIE1BWSBi ZSBkYW5nZXJvdXMuIFVzdWFsbHkgbm90Lgo+ID4gPgo+ID4gPiDigIsyLiAgVmNoZyBNVVNUIGJl IHJlbW92ZWQgYXQgc29tZSBzdGFnZS4KPiA+ID4gSWYgSV9jaGdfc2xvdyBpcyA8PCBJX2NoZ19t YXhfc3BlYyB0aGVuIGp1c3QgcmVtb3ZpbmcgVmNoZyB3aGVuIGl0Cj4gPiByZWFjaGVzCj4gPiA+ IFZfYmF0X2NoZ19tYXggLSB1c3VhbGx5IH5+PSA0LjF4IFYsIHdpbGwgY2hhcmdlIGNlbGwgdG8g ODAlIG9yIHNvIG9mCj4gbWF4Cj4gPiA+IGNhcGFjaXR5Lgo+ID4gPgo+ID4gPgo+ID4gPiAqVGhl IG9ubHkgZGlzYWR2YW50YWdlIG9mIHRoaXMgdGhhdCBJIGNhbiBzZWUgaXMgdGhhdCBjaGFyZ2lu ZyB3aWxsIGJlKgo+ID4gPiAqc2lnbmlmaWNhbnRseSBzbG93ZXIgYW5kIGEgZnVsbCBjaGFyZ2Ug bWF5IG5vdCBiZSBhY2hpZXZlZCBpbiBhKgo+ID4gPiAqInJlYXNvbmFibGUiIGFtb3VudCBvZiB0 aW1lLioKPiA+ID4gKlRoZSBzbG93ZXIgdGhlIGNoYXJnZSByYXRlIHRoZSBjbG9zZXIgY2FwYWNp dHkgaXMgdG8gMTAwJSBhdAo+IHRyYW5zaXRpb24KPiA+ID4gcG9pbnQuKgo+ID4gPgo+ID4gPgo+ ID4gPiBGb3IgSV9jaGdfbWF4IDw8IDEgbUEvbUFoIHRoZW4geW91IHByb2JhYmx5IHdhbnQgdG8g bG93ZXIgVmNoX21heCBhcwo+ID4gPiBvdGhlcndpc2UgY2VsbCBtaWdodCB0cmlja2xlIG9mZiBp bnRvIGRldHloLgo+ID4gPgo+ID4gPiBJRiB5b3UgaGF2ZSBjaGFyZ2UgY3VycmVudCBhdmFpbGFi bCB0aGVuIHVzZSBpdCBhcyBsb25nIGFzIElfY2hnX21heCA8Cj4gMQo+ID4gPiBtQS9tQWguCj4g PiA+Cj4gPiA+Cj4gPiA+Cj4gPiA+ICAgICAgICAgICAgIFJ1c3NlbGwKPiA+ID4KPiA+ID4gPgo+ ID4gPiA+Cj4gPiA+IC0tCj4gPiA+IGh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNs aXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKPiA+ID4gVmlldy9jaGFuZ2UgeW91ciBtZW1i ZXJzaGlwIG9wdGlvbnMgYXQKPiA+ID4gaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xp c3RpbmZvL3BpY2xpc3QKPiA+ID4KPiA+Cj4gPgo+ID4KPiA+IC0tCj4gPiBKYXNvbiBXaGl0ZQo+ ID4gLS0KPiA+IGh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBG QVEgJiBsaXN0IGFyY2hpdmUKPiA+IFZpZXcvY2hhbmdlIHlvdXIgbWVtYmVyc2hpcCBvcHRpb25z IGF0Cj4gPiBodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlzdAo+ ID4KPiAtLQo+IGh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBG QVEgJiBsaXN0IGFyY2hpdmUKPiBWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBh dAo+IGh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNsaXN0Cj4KLS0g Cmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNsaXN0IFBJQy9TWCBGQVEgJiBsaXN0 IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKaHR0cDovL21h aWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xpc3QK .