V2hhdCBhYm91dCBkcml2aW5nIGEgdHJhbnNpc3RvciAob3IgZGFybGluZ3RvbiBwYWlyKSB3aXRo IGFuIG9wdG8taXNvbGF0b3IuIElmIHRoZSB0cmFuc2lzdG9yIGNvc3QgbW9yZSB0aGFuIHRoZSBv cHRvLCBwcm90ZWN0IHRoZSB0cmFuc2lzdG9yIGJ5IGNhbGN1bGF0aW5nIHRoZSBnYWluIHNvIHRo YXQgdGhlIE9wdG8gd2lsbCBwb3AgZmlyc3QgdW5kZXIgZmF1bHQgY29uZGl0aW9uLg0KDQpMaWtl IGEgcmVsYXkgdGhlICJvdXRwdXQgc3dpdGNoIiB3aWxsIGJlIGNvbXBsZXRlbHkgaXNvbGF0ZWQg ZnJvbSB0aGUgc3dpdGNoaW5nIHNpZ25hbC4gRG9uJ3QgZm9yZ2V0IGZyZWUgd2VlbGluZyBkaW9k ZSB3aGVuIHN3aXRjaGluZyBpbmR1Y3RpdmUgbG9hZHMuDQoNClRoZSBzYW1lIHByaWNpcGxlIGNh biBiZSB1c2VkIHRvIHN3aXRjaCBhYy4gRm9yIGFjIHlvdSBuZWVkIHRvIHVzZSBhIGRpZmZlcmVu dCBPcHRvIGRyaXZpbmcgYSBUcmlhYy4gU2FtZSBwcmluY2lwbGUgZGlmZmVyZW50IGNvbXBvbmVu dHMuDQoNClNlZSA0TjI1Li40bjM2IGZvciBEQyBhbmQgTU9DMzA0MSBmb3IgQUMNCg0KUmlhYW4N Cg0KLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IE1pa2UgSG9yZCBbbWFpbHRvOmdh aWRpbm1kQEhPVE1BSUwuQ09NXQ0KU2VudDogMjMgQXByaWwgMjAwNCAwMzozNiBQTQ0KVG86IFBJ Q0xJU1RATUlUVk1BLk1JVC5FRFUNClN1YmplY3Q6IFJlOiBbRUU6XSBBbmFsb2cgc3dpdGNoZXMN Cg0KDQpUaGVyZSBhcmUgYSBjb3VwbGUgb2YgZmFjdG9ycyB0aGF0IGFmZmVjdCB0aGlzLg0KDQpG aXJzdCwgdGhlIE9OIHJlc2lzdGFuY2Ugb2YgbW9zdCAoaW5leHBlbnNpdmUpIGFuYWxvZyBzd2l0 Y2hlcyBpcyBxdWl0ZSBoaWdoDQooaHVuZHJlZHMgb2Ygb2htcykuICBUaGUgcHJpY2llciB1bml0 cyBnZXQgdGhhdCB2YWx1ZSBkb3duLCBidXQgc3RpbGwgZG9uJ3QNCndhbnQgdG8gcGFzcyBhIGxv dCBvZiBjdXJyZW50Lg0KDQpTZWNvbmQsIHRoZSBjaGVhcGVyIG9uZXMgKDQwNjEsIDQwNjYgZXRj KSByZXF1aXJlIGNvbnRyb2wgdm9sdGFnZXMgaW4gdGhlDQpyYW5nZSBvZiB0aGUgc2lnbmFscyB0 byBiZSBzd2l0Y2hlZC4gIFdhbnQgdG8gc3dpdGNoIGEgc2lnbmFsIHRoYXQgc3dpbmdzIHRvDQor MTBWPyAgWW91IG5lZWQgMTBWIGxvZ2ljLCBhbmQgYSAxMFYgc3VwcGx5IHJhaWwuICBNYXhpbSAo YW5kIG90aGVycywgSSdtDQpzdXJlKSBtYWtlIHNvbWUgdGhhdCBoYXZlIGR1YWwgc3VwcGxpZXMs IG9uZSBmb3IgYW5hbG9nIGFuZCBvbmUgZm9yIGRpZ2l0YWwsDQpidXQgdGhvc2UgZ2V0IHByaWNl eS4NCg0KWW91ciBiZXN0IGJldCBpcyBzb2xpZCBzdGF0ZSByZWxheXMuICBKYW1lY28gKGZvciBl eGFtcGxlKSBoYXMgc29tZSBpbiB0aGUNCiQyLSQzIGRvbGxhciByYW5nZS4gIE1VQ0ggYmV0dGVy IHRoYW4gbW9zdCBvZiB0aGUgYW5hbG9nIHN3aXRjaCBjaGlwcy4NCg0KTWlrZSBILg0KDQo+VGhl IGFuYWxvZyBzd2l0Y2hlcyB0aGF0IEkgaGF2ZSByZWNlbnRseSBmb3VuZCwgb3BlbmVkIGEgbmV3 IHdpbmRvdyBmb3IgbWUuDQo+Q291bGQgSSB1c2UgdGhlIGFuYWxvZyBzd2l0Y2hlcywgbGlrZSBN QVgzMjMsIGxpa2UgYSByZWxheT8gIFRvIGJldHRlcg0KPmV4cGxhaW4gd2hhdCBJIGFtIHRoaW5r aW5nLCBpZiBJIGhhdmUgY2lyY3VpdCB0aGF0IHdvcmtzIHdpdGggM1YsIGNvdWxkIEkNCj51c2Ug dGhlIHN3aXRjaCB0byBjbG9zZSBhbmQgb3BlbiBhIDI0ViBsaW5lIGNvbWluZyBmcm9tIG91dHNp ZGUgd29ybGQsIHRodXMNCj5pbWl0aXRhdGluZyB0aGUgU1BTVCByZWxheT8NCj4NCj5UaGFua3Mg aW4gYWR2YW5jZSwNCj4NCj5PbWVyDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpUZXN0IHlvdXIgIFRyYXZlbCBRdW90 aWVudCAgYW5kIGdldCB0aGUgY2hhbmNlIHRvIHdpbiB5b3VyIGRyZWFtIHRyaXAhDQpodHRwOi8v dHJhdmVsLm1zbi5jb20NCg0KLS0NCmh0dHA6Ly93d3cucGljbGlzdC5jb20gaGludDogVGhlIFBJ Q0xpc3QgaXMgYXJjaGl2ZWQgdGhyZWUgZGlmZmVyZW50DQp3YXlzLiAgU2VlIGh0dHA6Ly93d3cu cGljbGlzdC5jb20vI2FyY2hpdmVzIGZvciBkZXRhaWxzLg0KIA0KIA0KIA0KTk9USUNFOiBQbGVh c2Ugbm90ZSB0aGF0IHRoaXMgZU1haWwsIGFuZCB0aGUgY29udGVudHMgdGhlcmVvZiwgIA0KaXMg c3ViamVjdCB0byB0aGUgc3RhbmRhcmQgUCBFIFRlY2huaWtvbiBlTWFpbCBkaXNjbGFpbWVyIHdo aWNoIG1heSBiZSBmb3VuZCBhdDogDQogDQo8aHR0cDovL3d3dy5wZXRlY2guYWMuemEvbmV3L2Rp c2NfZW1haWwuaHRtPj4gDQogDQoNCiANCg0KIA0K