SWYgeW91IGhhdmUgdG8gZG8gdGhlIGNhbGN1bGF0aW9ucyBpbnNpZGUgdGhlIFBJQzoKCjEpIFVz ZSBhIGZpeGVkIHBvaW50IHJlcHJlc2VudGF0aW9uLiBUaGlzIG1lYW5zIHN0b3JpbmcgdGhlIHZh bHVlcyBpbiAoMzItYml0PykgaW50ZWdlcnMgYW5kIG1hbnVhbGx5IGtlZXBpbmcgdHJhY2sgb2Yg dGhlIGxvY2F0aW9uIG9mIHRoZSBkZWNpbWFsIHBvaW50LgoKMikgRG8geW91ciBmb3JtYXR0aW5n IHdpdGggYSBmdW5jdGlvbiBsaWtlICdpdG9hJyBpZiBhdmFpbGFibGUuIFRha2UgdGhlIHJlc3Vs dCBhbmQgbWFudWFsbHkgYWRqdXN0IGl0IGJ5IGphbW1pbmcgaW4gdGhlIGRlY2ltYWwgcG9pbnQu CgpJZiB5b3UgZG9uJ3QgaGF2ZSAnaXRvYScgYXZhaWxhYmxlIGxldCB1cyBrbm93IGFuZCBtYXli ZSB3ZSBjYW4gY29tZSB1cCB3aXRoIHNvbWV0aGluZyBlbHNlIGZvciB5b3UuCgp+IEJvYiBBbW1l cm1hbgpSQW0gU3lzdGVtcwoKPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQo+IEZyb206IHBp Y2xpc3QtYm91bmNlc0BtaXQuZWR1IFttYWlsdG86cGljbGlzdC1ib3VuY2VzQG1pdC5lZHVdIE9u IEJlaGFsZgo+IE9mIFRhbcOhcyBGZWtldGUKPiBTZW50OiBUaHVyc2RheSwgTm92ZW1iZXIgMDYs IDIwMTQgNzo1MSBBTQo+IFRvOiBNaWNyb2NvbnRyb2xsZXIgZGlzY3Vzc2lvbiBsaXN0IC0gUHVi bGljLgo+IFN1YmplY3Q6IFJlOiBbUElDXQo+IAo+IEhpIE5pY29sYSwKPiAKPiBTb3JyeSBJIHRo aW5rIEkgbWlzdW5kZXJzdG9vZCB0aGlzIDogIFRoZXJlZm9yZSwgeW91ciBzdWJqZWN0IGxpbmUg bXVzdCBzdGFydAo+IHdpdGggT05FIChhbmQgb25seSBvbmUpIG9mIHRoZXNlIGxhYmVscy4KPiBJ IHRob3VnaHQgdGhpcyBtZWFudCB0aGF0IHRoZSBzdWJqZWN0IGxpbmUgY2FuIG9ubHkgY29udGFp biBbUElDXSBhbmQgb3RoZXIKPiB0YWdzIGFuZCBub3RoaW5nIGVsc2UuCj4gCj4gCj4gYmFjayB0 byB0aGUgdG9waWM6Cj4gSSBoYXZlIHRvIGRvIHRoZSBjYWxjdWxhdGlvbnMgaW5zaWRlIHRoZSBQ SUMuIFNvbWVvbmUgc3VnZ2VzdGVkIHRvIHNjYWxlIHVwCj4gZXZlcnl0aGluZyBhbmQgdXNlIDMy IGJpdCBpbnRlZ2Vycy4gV2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQgdGhhdD8gSSB0aGluayBJJ2xs Cj4gdHJ5IGFuZCBnbyB3aXRoIHRoYXQgYW5kIHNlZSB3aGF0IGhhcHBlbnMuIEkgd2lsbCBhbHNv IGNoZWNrIHRoZSBpdG9hIGZ1bmN0aW9uLgo+IAo+IFRoYW5rcyBldmVyeW9uZSEKPiAKPiAKPiBP biBUaHUsIE5vdiA2LCAyMDE0IGF0IDI6MjcgUE0sIE5pY29sYSBQZXJvdHRvIDxuaWNvbGFAbmlj b2xhcGVyb3R0by5pdD4KPiB3cm90ZToKPiAKPiA+IEhpIFRhbcOhcywKPiA+IHRoaXMgaXMgeW91 ciAzcmQgbWVzc2FnZSwgeW91IGFyZSBub3QgYSBiZWdpbm5lciEgU28sIHBsZWFzZSwgc3RhcnQg dG8KPiA+IHVzZSBjb3JyZWN0bHkgdGhlIHN1YmplY3Qgb2YgbWVzc2FnZXMhCj4gPiBUaGFua3MK PiA+Cj4gPgo+ID4gT24gMDYvMTEvMjAxNCAxMTo0MSwgVGFtw6FzIEZla2V0ZSB3cm90ZToKPiA+ ID4gSGkgZXZlcnlvbmUhCj4gPiA+IEkgYW0gbm90IHN1cmUgaWYgdGhpcyBwcm9ibGVtIGlzIHJl bGF0ZWQgdG8gdGhpcyB0b3BpYy4gQnV0IEkgZG9uJ3QKPiA+ID4ga25vdyB3aGVyZSBlbHNlIGl0 IHdvdWxkIGZpdC4KPiA+ID4gIEkgYW0gdXNpbmcgYSBkc3BpYzMzZmoxMjhtYzgwMiB3aXRoIG1w bGFiIHhjMTYgY29tcGlsZXIuIEkgaGF2ZSB0bwo+ID4gPiByZWFkIGRhdGEgZnJvbSBhbiBBREMg YXQgYWJvdXQgMW1zIGludGVydmFscy4gVGhlIGRhdGEgdGhhdCBJIGdldCBpcwo+ID4gPiBhCj4g PiBmbG9hdGluZwo+ID4gPiBwb2ludCBudW1iZXIuCj4gPiBUaGUgZGF0YSB0aGF0IHlvdSBXQU5U IG1heWJlIGZsb2F0aW5nIHBvaW50LCB0aGUgZGF0YSB0aGF0IHlvdSBnZXQKPiA+IGZyb20gQURD IGlzIGFuIGludGVnZXIgbnVtYmVyLgo+ID4KPiA+ID4gIEkgY29udmVydCB0aGlzIG51bWJlciBp bnRvIGEgc3RyaW5nIHVzaW5nIHRoZSBmdW5jdGlvbiBzcHJpbnRmLgo+ID4gPiBTZW5kIG91dCB0 aGUgc3RyaW5nLiBBdCB0aGUgUEMgc2lkZSBJIHJlY2VpdmUgYW5kIHNhdmUgdGhlIGRhdGEgd2l0 aAo+ID4gPiBwdXR0eS5leGUuIFRoZW4gc2F2ZSB0aGUgc2Vzc2lvbiBpbiBhIC5kYXQgZmlsZS4g SSBjYW4gdXNlIHRoaXMgLmRhdAo+ID4gPiBmaWxlIHdpdGggbWF0bGFiIHRvIHBsb3QgdGhlIHJl c3VsdHMuCj4gPiA+Cj4gPiA+IFRoZSBwcm9ibGVtIGlzIHRoYXQgc3ByaW50ZiByZWFsbHkgc2xv d3MgZG93biB0aGUgcHJvY2Vzcy4gSSBzaG91bGQKPiA+ID4gYmUgdGFraW5nIHNhbXBsZXMgYXQg YWJvdXQgMW1zIGludGVydmFscyBhbmQgYmVjYXVzZSBvZiB0aGUgc3ByaW50Zgo+ID4gPiBmdW5j dGlvbiB0aGlzIGlzIGJldHdlZW4gNS03IG1zZWNvbmRzLiBJIGNoZWNrZWQgdGhpcyB3aXRoIGFu Cj4gPiA+IG9zY2lsbG9zY29wZSBhbmQgd2l0aG91dCB0aGUgc3ByaW50ZiBmdW5jdGlvbiBJIGNh biBnZXQgZG93biB0byBldmVuCj4gPiA+IGxlc3MgdGhhbiAxbXMKPiA+IGludGVydmFscwo+ID4g PiBlYXNpbHkuCj4gPiBEbyBub3QgY29udmVydCB0aGUgaW50ZWdlciBidXQgdHJhbnNmZXIgaXQg YXMgaXM6IGRvIHRoZSBjb21wdXRhdGlvbgo+ID4gd2hlcmUgeW91IGhhdmUgY29tcHV0YXRpb25h bCBwb3dlciEKPiA+Cj4gPiA+Cj4gPiA+IElmIGFueWJvZHkgY291bGQgc3VnZ2VzdCBhIGZhc3Rl ciB3YXkgdG8gbWFrZSBhIHN0cmluZyBvdXQgb2YgYQo+ID4gPiBmbG9hdGluZyBwb2ludCBudW1i ZXIgb3IgYW5vdGhlciB3YXkgdG8gc2VuZCBhbmQgcmVjZWl2ZSB0aGUgZGF0YSBJCj4gPiA+IHdv dWxkIGJlIHZlcnkgdGhhbmtmdWwuCj4gPiBZb3UgY2FuIGNvbnZlcnQgdGhlIEFEQyBkYXRhIGlu IGEgNCBjaGFycyBzdHJpbmcgdXNpbmcgaGV4YWRlY2ltYWwKPiA+IG5vdGF0aW9uLgo+ID4KPiA+ ID4KPiA+ID4gQ2hlZXJzCj4gPiA+IFRvbWkKPiA+ID4KPiA+Cj4gPiAtLQo+ID4gaHR0cDovL3d3 dy5waWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3QgUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQo+ ID4gVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlwIG9wdGlvbnMgYXQKPiA+IGh0dHA6Ly9tYWls bWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9waWNsaXN0Cj4gPgo+IAo+IAo+IAo+IC0tCj4g InRoZXJlIGlzIG5vIHNwb29uIgo+IC0tCj4gaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVm L3BpY2xpc3QgUElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQo+IFZpZXcvY2hhbmdlIHlvdXIgbWVt YmVyc2hpcCBvcHRpb25zIGF0Cj4gaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3Rp bmZvL3BpY2xpc3QKCgotLSAKaHR0cDovL3d3dy5waWNsaXN0LmNvbS90ZWNocmVmL3BpY2xpc3Qg UElDL1NYIEZBUSAmIGxpc3QgYXJjaGl2ZQpWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0 aW9ucyBhdApodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlzdAo= .