T24gVHVlLCBNYXkgMjAsIDIwMTQgYXQgNjowNCBQTSwgS2V2aW4gT3R0ZW5zIDxlcnZpbkBrZGUu b3JnPiB3cm90ZToKPiBPbiBNb25kYXkgMTkgTWF5IDIwMTQgMjI6Mjg6MjcgU2NvdHQgS2l0dGVy bWFuIHdyb3RlOgo+PiBTcGVha2luZyBhcyBhIHBhY2thZ2VyIGZvciBhIGRpc3RybyB0aGF0J3Mg aW4gZ3JvdXAgIzIsIEkgZG9uJ3Qgc2VlIHRoaXMgYXMKPj4gYW55IGNoYW5nZSBmcm9tIHlvdXIg aW5pdGlhbCBwcm9wb3NhbC4KPgo+IFRoYXQncyBjb3JyZWN0Li4uCj4KPj4gWW91J3JlIHByb3Bv c2FsIG1vdmVzIHVzIGludG8gZ3JvdXAgIzEKPgo+IC4uLiB3aGljaCBpcyB3aGF0IEkgc3RhdGVk IEkgdGhpbmsuCj4KPiBDaG9zZW4gZXh0cmFjdHM6Cj4KPj4gPiBHb2luZyBmb3J3YXJkIEkgc2Vl IGZvdXIgb3B0aW9ucyBmb3IgYWRkcmVzc2luZyB0aG9zZSBwYWNrYWdlcnM6Cj4+ID4gIDEpIERv bid0IGNhcmUsIHdoaWNoIG1lYW5zIHdlJ3JlIHB1c2hpbmcgdGhlbSB0b3dhcmQgdGhlIGNhc2Ug MSwgdGhleSdsbAo+PiA+ICByZWxlYXNlIG91dGRhdGVkIHZlcnNpb25zIHdpdGggaGFuZCBwaWNr ZWQgcGF0Y2hlcyBvbiB0b3A7Cj4+ID4gIDIpIEdhaW4gdGhlIG5lY2Vzc2FyeSB0cnVzdCBvZiBv dXIgZG93bnN0cmVhbSB0byBzaG93IHRoYXQgb3VyIG5ldwo+PiA+ICByZWxlYXNlcyBhcmUgbm90 IGxlc3Mgc3RhYmxlIHRoYW4gb3VyIGZvcm1lciBidWcgZml4IHJlbGVhc2VzOwo+PiA+ICAzKSBQ cm92aWRlIGEgeWVhcmx5IExUUyBicmFuY2ggYXMgSSd2ZSBzZWVuIHByb3Bvc2VkOwo+PiA+ICA0 KSBQcm92aWRlIHJlbGVhc2UgYnJhbmNoZXMgZm9yIHdoaWNoIHdlIGNvbW1pdCBiYWNrcG9ydHMu Cj4+ID4gWy4uLl0KPj4gPiBTbywgZXZlbiB0aG91Z2ggSSB1bmRlcnN0YW5kIHdoeSBpdCB3b3Vs ZG4ndCBwbGVhc2UgcGFja2FnZXJzLCBJIGRvbid0Cj4+ID4gdGhpbmsgd2Ugc2hvdWxkIGNoYW5n ZSBjb3Vyc2Ugb3ZlcmFsbC4gU28gdGhlIHRhY3RpYyB3ZSdsbCBmb2xsb3cgaXMgKDEpCj4+ID4g aG9waW5nIHRvIGdldCB0byAoMikuCj4+ID4gSW5kZWVkLCBpZiB3ZSBkb24ndCBjaGFuZ2UgY291 cnNlLCBJIGV4cGVjdCB0aGUgZGlzdHJpYnV0aW9ucyB3aWxsIGFsbAo+PiA+IG1vdmUgdG8gYSBz Y2hlbWUgb2YgYmFja3BvcnRpbmcuIFRoYXQncyB1bmZvcnR1bmF0ZSwgYnV0IGhvcGVmdWxseSwg d2UnbGwKPj4gPiBtYW5hZ2UgdG8gZ2FpbiB0aGUgcmVxdWlyZWQgdHJ1c3QgdG8gcHJvdmUgdGhh dCB0aGUgcmVsZWFzZXMgYXJlIG5vdCBsZXNzCj4+ID4gc3RhYmxlIHRoYW4gdGhlIGZvcm1lciBi dWcgZml4IHJlbGVhc2VzCj4KPiBTbyBpdCdzIG5vdCB0aGF0IEkgZG9uJ3QgdW5kZXJzdGFuZCwg SSBjb21wbGV0ZWx5IHNlZSB3aGF0IHdpbGwgaGFwcGVuIGF0Cj4gZmlyc3QuCgpBbmQgaW4gdGhl IG1lYW50aW1lLCB1c2VycyB3aWxsIGdldCBodXJ0IGFuZCB0aG9zZSBvZiB1cyB3aG8gZG8gdXNl cgpzdXBwb3J0IHdpbGwgZXhwZXJpZW5jZSBzZXZlcmUgY29uZnVzaW9uLgpXZSdsbCBoYXZlIHRv IGtlZXAgdHJhY2sgb2Ygd2hpY2ggZGlzdHJpYnV0aW9ucyBoYXZlIGJhY2twb3J0ZWQgd2hpY2gg cGF0Y2hlcy4KWW91ciBwcm9wb3NhbCBjb21wbGV0ZWx5IGRlc3Ryb3lzIHRoZSBjb25zaXN0ZW5j eSBvdXIgcGF0Y2ggcmVsZWFzZXMKcHJldmlvdXNseSBwcm92aWRlZC4KCkF0IHRoZSBtb21lbnQs IGlmIGEgdXNlciBzYXlzIHRoZXkncmUgZ2V0dGluZyBhIGNyYXNoIGluIEZvbyBydW5uaW5nCnZl cnNpb24gNC5ZLCBldmVyeW9uZSBlbHNlIGNhbiB1c3VhbGx5IHJlcHJvZHVjZSBpdC4KVW5kZXIg eW91ciBwcm9wb3NhbCwgd2UnbGwgaGF2ZSB1c2VycyBydW5uaW5nIDUuWCB3aG8gY2FuJ3QgcmVw cm9kdWNlCml0LCB3aGlsZSBvdGhlcnMgcnVubmluZyA1LlggY2FuLiBBIHRvdGFsIG5pZ2h0bWFy ZS4KCkkgZG9uJ3QgZXZlbiB3YW50IHRvIHRoaW5rIHdoYXQgaXQgd2lsbCBkbyB0byB0cmlhZ2Vy cyAobWlzc2lvbgppbXBvc3NpYmxlIGFzIGFib3ZlKSwgbm9yIGRvIEkgd2FudCB0byBjb25zaWRl ciBob3cgd2Ugd2lsbCBoYW5kbGUKdGhpcyBmb3IgdGhlIENJIHN5c3RlbS4KCkFzIGl0IHN0YW5k cywgdGhpcyBwcm9wb3NhbCBpcyBjb252ZW5pZW50IGZvciB0aGUgS0Y1IGRldmVsb3BlcnMsIGFu ZApkaXNyZWdhcmRzIGFsbCB0aGUgc3VwcG9ydCBzZXJ2aWNlcy4gQ29tcGxldGVseS4KSXQgd2ls bCBiZSBhIGNvbXBsZXRlIGFuZCB1bm1pdGlnYXRlZCBkaXNhc3Rlci4KCj4KPiBOb3csIEkgdGhp bmsgd2UnbGwgaGF2ZSB0byBhZ3JlZSB0byBkaXNhZ3JlZSBvbiBzb21ldGhpbmcuIFlvdSBiZWxp ZXZlIHRoZXJlJ3MKPiBzb21lIHJ1bGUgd3JpdHRlbiBpbiBzdG9uZSBzb21ld2hlcmUgd2hpY2gg d2lsbCBtYWtlIHRoZSAiZXZlcnlvbmUgd2lsbCBwaWxlCj4gdXAgYmFja3BvcnRzIG9ubHkiIHRo ZSBuZXcgc3RhdHVzIHF1byBmb3JldmVyLCBJIHNheSBsZXQncyB0cnkgYW5kIGZpbmQgb3V0LgoK SW4gdGhlIG1lYW50aW1lLCBldmVyeW9uZSBidXQgdGhlIGRldmVsb3BlcnMgd2lsbCBzdWZmZXIu Cgo+Cj4gUmVnYXJkcy4KPiAtLQo+IEvDqXZpbiBPdHRlbnMsIGh0dHA6Ly9lcnZpbi5pcHNxdWFk Lm5ldAo+Cj4gS0RBQiAtIHByb3VkIHN1cHBvcnRlciBvZiBLREUsIGh0dHA6Ly93d3cua2RhYi5j b20KPgo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K PiByZWxlYXNlLXRlYW0gbWFpbGluZyBsaXN0Cj4gcmVsZWFzZS10ZWFtQGtkZS5vcmcKPiBodHRw czovL21haWwua2RlLm9yZy9tYWlsbWFuL2xpc3RpbmZvL3JlbGVhc2UtdGVhbQo+CgpSZWdhcmRz LApCZW4gQ29va3NsZXkKS0RFIFN5c2FkbWluCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCnJlbGVhc2UtdGVhbSBtYWlsaW5nIGxpc3QKcmVsZWFzZS10ZWFt QGtkZS5vcmcKaHR0cHM6Ly9tYWlsLmtkZS5vcmcvbWFpbG1hbi9saXN0aW5mby9yZWxlYXNlLXRl YW0K