SG93IGRvIEkgYmVjb21lIGEgbWVudG9yPyBJIG5lZWQgYSBwcm9maWxlIGJ1dCBJIGRvbid0IHJl bWVtYmVyIGhvdyB0byBzZXQgb25lIHVwLgoKQ2hlZXJzLAoKQW5uZS1NYXJpZQoKLS0tLS0gTWFp bCBvcmlnaW5hbCAtLS0tLQo+IERlOiAiTXlyaWFtIFNjaHdlaW5ncnViZXIiIDxteXJpYW1Aa2Rl Lm9yZz4KPiDDgDogImRldmVsIG1haWxpbmdsaXN0IEtERSIgPGtkZS1kZXZlbEBrZGUub3JnPiwg IktERSBRdWFsaXR5IFRlYW0iIDxrZGUtdGVzdGluZ0BrZGUub3JnPgo+IEVudm95w6k6IERpbWFu Y2hlIDIgRMOpY2VtYnJlIDIwMTIgMTM6Mjc6NDcKPiBPYmpldDogSW1wb3J0YW50OiBwb3RlbnRp YWwgbmV3IGNvbnRyaWJ1dG9ycyEgd2FzIEZ3ZDogd2UgbmVlZCBtb3JlIHRhc2tzCj4gCj4gRm9y d2FyZGluZyB0aGlzIHRvIGtkZS1kZXZlbCwgYXMgd2UgaGF2ZSBhbiB1cmdlbnQgbmVlZCBvZiBu ZXcgdGFza3MKPiBmb3IgQ29kZS1Jbgo+IAo+IERlYXIgS0RFIGRldmVsb3BlcnMgYW5kIGNvbnRy aWJ1dG9ycywKPiAKPiB3ZSBoYXZlIGJlZW4gdGFrZW4gYnkgc3Rvcm0gYnkgdGhlIEdvb2dsZSBD b2RlLUluIHN0dWRlbnRzIGFuZCBoYXZlCj4gYWxtb3N0IHJ1biBvdXQgb2Ygc3VpdGFibGUgdGFz a3MuIFBsZWFzZSBhbGwsIGhhdmUgYSBsb29rIGF0IHlvdXIKPiBwcm9qZWN0IGFuZCBnZXQgdXMg c29tZSBuZXcgdGFza3Mgc28gd2UgY2FuIGZlZWQgdGhlIHN0dWRlbnRzLgo+IAo+IEltcG9ydGFu dDogdGhlc2Ugc3R1ZGVudHMgYXJlIGFsbCBwb3RlbnRpYWwgbmV3IGNvbnRyaWJ1dG9ycyBhcyB0 aGV5Cj4gd29yayBleGNsdXNpdmVseSBvbiBLREUgZHVyaW5nIHRoZSB3aG9sZSBwZXJpb2QsIHRo ZXkgaGFkIHRvIGNob29zZSBhCj4gcHJvamVjdCBhbmQgc3RpY2sgdG8gaXQhIFNvIHBsZWFzZSwg YWxsLCBjaGVjayB5b3VyIGRvY3VtZW50YXRpb24sCj4gdHV0b3JpYWxzLCBKdW5pb3IgSm9icywg ZXRjLiBhbmQgYnJpbmcgdXMgc29tZSBuZXcgdGFza3MhCj4gSSB3aWxsIGFkZCBzb21lIGJ1ZyB0 cmlhZ2luZyB0YXNrcyBsYXRlciB0b2RheSwgYnV0IHRoYXQgd2lsbCBub3QgYmUKPiBlbm91Z2gs IHBsZWFzZSBhbGwsIHRoaXMgaXMgYSB1bmlxdWUgb3Bwb3J0dW5pdHkgdG8gZ2V0IG5ldwo+IGNv bnRyaWJ1dG9ycyBvbiBib2FyZCBhbmQgaGF2ZSBzb21lIHdvcmsgZG9uZSEKPiAKPiBUaGFua3Mg aW4gYWR2YW5jZSEKPiAKPiBNeXJpYW0KPiAKPiBQUy4gcGxlYXNlIGNvbWUgdG8gI2tkZS1zb2Mg YW5kL29yIHN1YnNjcmliZSB0byB0aGUKPiBrZGUtc29jLW1lbnRvckBrZGUuaXJnIGxpc3QgZm9y IHRoaXMgb2NjYXNpb24KPiBQUFMuIE5vIHRyYW5zbGF0aW9uIHRhc2tzIGFsbG93ZWQgdGhpcyB5 ZWFyLCB1bmZvcnR1bmF0ZWx5Lgo+IAo+IC0tLS0tLS0tLS0gRm9yd2FyZGVkIG1lc3NhZ2UgLS0t LS0tLS0tLQo+IEZyb206IE15cmlhbSBTY2h3ZWluZ3J1YmVyIDxteXJpYW1Aa2RlLm9yZz4KPiBE YXRlOiBGcmksIE5vdiAzMCwgMjAxMiBhdCAxOjA0IFBNCj4gU3ViamVjdDogUmU6IHdlIG5lZWQg bW9yZSB0YXNrcwo+IFRvOiBrZGUtc29jLW1lbnRvckBrZGUub3JnCj4gCj4gCj4gT24gRnJpLCBO b3YgMzAsIDIwMTIgYXQgMTI6MzEgUE0sIEx5ZGlhIFBpbnRzY2hlciA8bHlkaWFAa2RlLm9yZz4K PiB3cm90ZToKPiA+IEhleWEgZm9sa3MgOikKPiA+Cj4gPiBXZSdyZSBydW5uaW5nIG91dCBvZiB0 YXNrcyBvbiBNZWxhbmdlLiBQbGVhc2UgYWRkIG1vcmUgaWYgeW91IGNhbgo+ID4gYW5kCj4gPiBw b2tlIFRlbywgQWxlc3NhbmRybyBvciBtZSB0byBwdWJsaXNoIHRoZW0uCj4gCj4gSSBkbyBhZGQg bmV3IHRhc2tzIGV2ZXJ5IHRpbWUgYSB0YXNrIGlzIGNsb3NlZC4KPiAKPiBGb3IgdGhlIG90aGVy IEtERSB0YXNrcywgeW91IG1pZ2h0IHdhbnQgdG8gYXNrIHN0dWRlbnRzIHRvIHRyaWFnZQo+IGJ1 Z3MsIHRoYXQgaXMgYWx3YXlzIHF1aXRlIHJld2FyZGluZyBhbmQgdGFrZXMgcXVpdGUgc29tZSB3 b3JrIG9mZgo+IG91cgo+IHNob3VsZGVycy4KPiAKPiBBbHNvIHNvbWUgRXh0cmEgTWlsZSBidWdz IG1pZ2h0IHF1YWxpZnkgZm9yIHRoZSBjb2RpbmcgdGFza3MsIGFzIHdlbGwKPiBhcyBzb21lIEp1 bmlvciBKb2JzLiBCdXQgSSBsZWF2ZSB0aGF0IHVwIHRvIHRoZSBwcm9qZWN0cyB0byBkZWNpZGUu Cj4gCj4gRGlkIEkgbWVudGlvbiBEb2N1bWVudGF0aW9uPwo+IEFyZSBhbGwgeW91ciBoYW5kYm9v a3MgdXAtdG8tZGF0ZT8KPiBEb2VzIHlvdXIgcHJvamVjdCBob21lcGFnZSBoYXZlIGEgVGVhbSBw cmVzZW50YXRpb24gcGFnZT8KPiAKPiBHaXQgdGVzdGluZyBhbmQgYmV0YSB0ZXN0aW5nIGlzIGFs c28gYSBuaWNlIGlkZWEgKkhJTlQqIHdlIGFyZSBpbgo+IGJldGEKPiBmb3IgS0RFIFNDIDQuMTAh ICovSElOVCoKPiAKPiBSZWdhcmRzLCBNeXJpYW0KPiAtLQo+IFByb3VkIG1lbWJlciBvZiB0aGUg QW1hcm9rIGFuZCBLREUgQ29tbXVuaXR5Cj4gUHJvdGVjdCB5b3VyIGZyZWVkb20gYW5kIGpvaW4g dGhlIEZlbGxvd3NoaXAgb2YgRlNGRToKPiBodHRwOi8vd3d3LmZzZmUub3JnCj4gUGxlYXNlIGRv bid0IHNlbmQgbWUgcHJvcHJpZXRhcnkgZmlsZSBmb3JtYXRzLAo+IHVzZSBJU08gc3RhbmRhcmQg T0RGIGluc3RlYWQgKElTTy9JRUMgMjYzMDApCj4gCj4gCj4gLS0KPiBQcm91ZCBtZW1iZXIgb2Yg dGhlIEFtYXJvayBhbmQgS0RFIENvbW11bml0eQo+IFByb3RlY3QgeW91ciBmcmVlZG9tIGFuZCBq b2luIHRoZSBGZWxsb3dzaGlwIG9mIEZTRkU6Cj4gaHR0cDovL3d3dy5mc2ZlLm9yZwo+IFBsZWFz ZSBkb24ndCBzZW5kIG1lIHByb3ByaWV0YXJ5IGZpbGUgZm9ybWF0cywKPiB1c2UgSVNPIHN0YW5k YXJkIE9ERiBpbnN0ZWFkIChJU08vSUVDIDI2MzAwKQo+IAo+ID4+IFZpc2l0IGh0dHA6Ly9tYWls LmtkZS5vcmcvbWFpbG1hbi9saXN0aW5mby9rZGUtZGV2ZWwjdW5zdWIgdG8KPiA+PiB1bnN1YnNj cmliZSA8PAo+IAoKPj4gVmlzaXQgaHR0cDovL21haWwua2RlLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2tkZS1kZXZlbCN1bnN1YiB0byB1bnN1YnNjcmliZSA8PAo=