V2hlbiB0aGUgYXVjdGlvbiBpcyBvdmVyIGVCYXkgdGFrZXMgdGhlIGZlZXMgYW5kIGlmIHRoZSBz YWxlIGlzCmluY29tcGxldGUgeW91IGNhbiBnbyB0aHJvdWdoIHR3byBwcm9jZXNzZXMsIG9uZSB0 byByZWNvdmVyIHRoZSBmaW5hbApwcmljZSBmZWUgYW5kIHRoZSBvdGhlciB0byBnZXQgaXQgcmVs aXN0ZWQgd2l0aCBubyBpbnNlcnRpb24gZmVlLiBJdAp0YWtlcyBzZXZlcmFsIHdlZWtzIGFuZCB0 aGUgdGltaW5nIGlzIGRpZmZpY3VsdCB0byBtYWludGFpbiBiZWNhdXNlCnRoZXJlIGFyZSBzZXZl cmFsIHRpbWVkIGhvb3BzIHlvdSBtdXN0IGp1bXAgdGhyb3VnaCBhdCBqdXN0IHRoZSByaWdodApt b21lbnQuIFlvdSBjYW4ndCBqdXN0IHJlbGlzdCB0aGUgaXRlbSBpbW1lZGlhdGVseSB1bmxlc3Mg eW91IHdhbnQgdG8KcGF5IGZvciBhbm90aGVyIGxpc3RpbmcuIGVCYXkgd2FudHMgdG8ga2VlcCB0 aGUgZmVlcyBzbyBpdCBpcyBoYXJkIHRvCmdldCBpdCBiYWNrLiBUaGUgcGVvcGxlIEkga25ldyB3 aG8gd2VudCB0aHJvdWdoIGl0IGFsd2F5cyBlbmRlZCB1cApwYXlpbmcgZm9yIHRoZSByZWxpc3Rp bmcgdGhlbXNlbHZlcyBiZWNhdXNlIGl0IGlzIGFsbW9zdCBpbXBvc3NpYmxlIHRvCmdldCB0aGUg aXRlbSByZWxpc3RlZCBmb3IgZnJlZS4gVGhlIGZpbmFsIHByaWNlIGZlZSBpcyB1c3VhbGx5IGFs bCB5b3UKY2FuIHJlY292ZXIuCgoKQ2hlZXJmdWwgcmVnYXJkcywKCkJvYgoKVG9tw6FzIMOTIGjD iWlsaWRoZSB3cm90ZToKPiBJIHNlbGwgc3R1ZmYgb24gZUJheS4gSSdtIGN1cmlvdXMgYWJvdXQg d2hhdCdzIHRoZSBiZXN0IHRoaW5nIHRvIGRvIGlmCj4gc29tZWJvZHkgd2lucyBvbmUgb2YgbXkg YXVjdGlvbnMgYnV0IEkgZG9uJ3Qgd2FudCBhbnl0aGluZyB0byBkbyB3aXRoCj4gdGhlIGJ1eWVy Lgo+IAo+IEZvciBpbnN0YW5jZSwgbGV0J3Mgc2F5IHlvdSdyZSBzZWxsaW5nIGEgbGFwdG9wIG9u IGVCYXkgYW5kIGl0IHNlbGxzIGZvcgo+IDIwMCBkb2xsYXJzLiBOb3cgbGV0J3Mgc2F5IHlvdSBn byB0byBjaGVjayB3aG8gdGhlIGJ1eWVyIGlzIGFuZCB5b3UgZmluZAo+IHRoYXQgaGlzIGZlZWRi YWNrIHNjb3JlIGlzIDEwIGFuZCB0aGF0IGhpcyBwb3NpdGl2ZSBmZWVkYmFjayBwZXJjZW50YWdl Cj4gaXMgb25seSAzMCUuIFNvIHRoYXQgbWVhbnMgaGUncyBnb3QgNzAlIG5lZ2F0aXZlIGZlZWRi YWNrLgo+IAo+IEluIHN1Y2ggYSBjaXJjdW1zdGFuY2UsIEknZCAqbGlrZSogdG8ganVzdCBjYW5j ZWwgdGhlIGF1Y3Rpb24sIGJsb2NrIHRoZQo+IGJ1eWVyLCBhbmQgdGhlbiBqdXN0IHJlLWxpc3Qg dGhlIGxhcHRvcC4KPiAKPiBBcyBmYXIgYXMgSSBjYW4gZ2F0aGVyIHRob3VnaCwgSSdkIGJlIGRv aW5nIGEgQmFkIFRoaW5nIGlmIEkgcmVmdXNlZCB0bwo+IHNlbGwgc29tZXRoaW5nIHRvIHNvbWVv bmUgd2hvIHJpZ2h0ZnVsbHkgd29uIG9uZSBvZiBteSBhdWN0aW9ucywgYW5kIGl0Cj4gd291bGQg cHJvYmFibHkgbGVhdmUgbWUgd2lkZSBvcGVuIHRvIHRoZSBidXllciBsZWF2aW5nIG1lIGJhZCBm ZWVkYmFjay4KPiAKPiBCdXQgd2hhdCBhYm91dCBpZiBJIHB1dCB0aGUgZm9sbG93aW5nIGluIG15 IGF1Y3Rpb25zOgo+IAo+ICAgICAiQXVjdGlvbiBpcyBvbmx5IG9wZW4gdG8gcGVvcGxlIHdob3Nl IGZlZWRiYWNrIHNjb3JlIGlzIGFib3ZlIDk5JQo+IHBvc2l0aXZlLiBJZiB5b3VyIGZlZWRiYWNr IGlzIGJlbG93IDk5JSBwb3NpdGl2ZSwgcGxlYXNlIGNvbnRhY3QgbWUgdG8KPiBjb25zaWRlciB5 b3VyIGVsaWdpYmlsaXR5Igo+IAo+IElmIEkgd2VyZSB0byBwdXQgdGhhdCBpbiBteSBhZCwgd291 bGQgSSBoYXZlIHRoZSByaWdodCB0byBjYW5jZWwgdGhlCj4gYXVjdGlvbiBpZiBhIEJhZCBCdXll ciB3b24gaXQ/IEFsc28gd291bGQgaXQgdGFrZSBhd2F5IHRoZWlyIG9wcG9ydHVuaXR5Cj4gdG8g bGVhdmUgbWUgYmFkIGZlZWRiYWNrPwo+IAo+IChJbiBhbiBpZGVhbCB3b3JsZCwgdGhpcyBpcyBh IHF1ZXN0aW9uIEknZCBiZSBhc2tpbmcgZGlyZWN0bHkgdG8gZUJheS4uLgo+IGJ1dCB5b3Uga25v dyBob3cgdGhpbmdzIGFyZS4uLikKPiAKLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20gUElDL1NY IEZBUSAmIGxpc3QgYXJjaGl2ZQpWaWV3L2NoYW5nZSB5b3VyIG1lbWJlcnNoaXAgb3B0aW9ucyBh dApodHRwOi8vbWFpbG1hbi5taXQuZWR1L21haWxtYW4vbGlzdGluZm8vcGljbGlzdAo=