T24gVGh1LCBNYXIgMTksIDIwMTUgYXQgMTA6NDE6NDFBTSArMTMwMCwgSVZQIHdyb3RlOgo+ID4g ZGlkIHlvdSB0cnkgcGx1Z2dpbmcgdGhlIGNhcmQgaW50byBhIGNvbXB1dGVyIGFuZCByZWFkaW5n IHRoZQo+ID4gc3VzcGVjdCBmaWxlPyBJZiBpdCBhbHNvIGZhaWxzLCB0aGVyZeKAmXMgeW91ciBh bnN3ZXI6IHRoZSBjYXJkIGlzCj4gPiBicm9rZW4gb3IgZGF0YSBpcyBkZWdyYWRpbmcKPiAKPiBJ IGRpZCBjb21wYXJlIHRoZSBvcmlnaW5hbHMgd2l0aCB0aGUgY2FyZCBjb3BpZXMsIHVzaW5nIGNv bW1hbmQKPiBsaW5lIGZjLiBObyBkaWZmZXJlbmNlcyByZXBvcnRlZC4gVGhhdCBtaWdodCBpbmRp Y2F0ZSB0aGUgY2FyZAo+IGNvbnRyb2xsZXIgaXMgdGhlIHByb2JsZW0uIFRoZSBmYXVsdCBhbHdh eXMgZG9lcyBvY2N1ciB3aXRoIHRoYXQKPiBwYXJ0aWN1bGFyIGZpbGUsIG9ubHkgYWZ0ZXIgbWFu eSBtYW55IHJlYWRzLCBhbmQgbm9ybWFsIG9wZXJhdGlvbgo+IGlzIHJlc3RvcmVkIGFmdGVyIGEg cmUtZm9ybWF0Lgo+IAo+IEkgY291bGQgdHJ5IG1vdmluZyB0aGUgZmlsZSB0byBvdGhlciBibG9j a3Mgb24gdGhlIGNhcmQsIGZvcgo+IGV4YW1wbGUgYnkgYWRkaW5nIGEgZHVtbXkgZmlsZSB0byB0 aGUgZGlyZWN0b3J5LgoKTm8sIHRoYXQgd29uJ3QgbWFrZSBhIGRpZmZlcmVuY2UuCgpUaGUgbWFw cGluZyBmcm9tIGJsb2NrIG51bWJlcnMgdG8gcGh5c2ljYWwgY2VsbHMgaXMgYSBkZWNpc2lvbiBt YWRlIGJ5CnRoZSBGVEwgZmlybXdhcmUsIHRvIHN1cHBvcnQgYXV0b21hdGljIHdlYXIgbGV2ZWxs aW5nLiAgVGhlcmUncyBubyB3YXkKeW91IGNhbiByZWxpYWJseSBjb250cm9sIHRoYXQgZGVjaXNp b24uCgo+IEJlZm9yZSB0aGF0LCB3aXRoIHRoZSBjYXJkIGluIHRoaXMgZmF1bHR5IGNvbmRpdGlv biwgSSdtIGdvaW5nIHRvCj4gdHdpZGRsZSBhYm91dCB3aXRoIEZyaGVkIHRvIHNlZSBpZiBwb2lu dGluZyB0aGUgY29udHJvbGxlciBhdCB0aGUKPiBvdGhlciBmaWxlIG1ha2VzIGFueSBkaWZmZXJl bmNlLiBOb3Qgc3VyZSBpZiB0aGF0IGhlbHBzIG92ZXJhbGwKPiBidXQgSSdkIGxpa2UgdG8ga25v dwo+IAo+IEFzIEkgbWVudGlvbmVkLCBhIGNhcmQgaXMgdGhlIHNpbXBsZXN0IGFuZCBtb3N0IGNv bnZlbmllbnQgc3RvcmFnZQo+IG1lZGl1bSBhbmQgc28gb2YgY291cnNlIEkgd291bGQgcHJlZmVy IHRvIHVzZSBvbmUsIGlmIEkgY2FuIGdldAo+IHRvIHRoZSBib3R0b20gb2YgdGhpcyBpc3N1ZSBh bmQgZmluZCBhIGZpeC4gTWF5YmUgaWYgSSBjYW4gZ2V0IGl0IGdvaW5nCj4gaW4gbmF0aXZlIDQt Yml0IG1vZGUgdGhhdCBjb3VsZCBiZSBtb3JlIHJlbGlhYmxlIHRoYW4gU1BJCgpJdCBhaW4ndCB0 aGF0IHNpbXBsZSBpbnNpZGUgdGhlIGNhcmQuICA7LSkKCi0tIApKYW1lcyBDYW1lcm9uCmh0dHA6 Ly9xdW96bC5saW51eC5vcmcuYXUvCi0tIApodHRwOi8vd3d3LnBpY2xpc3QuY29tL3RlY2hyZWYv cGljbGlzdCBQSUMvU1ggRkFRICYgbGlzdCBhcmNoaXZlClZpZXcvY2hhbmdlIHlvdXIgbWVtYmVy c2hpcCBvcHRpb25zIGF0Cmh0dHA6Ly9tYWlsbWFuLm1pdC5lZHUvbWFpbG1hbi9saXN0aW5mby9w aWNsaXN0Cg== .