IyBDaGFuZ2VMb2cgZm9yIHZpcnR1YWwvbGlidXNiCiMgQ29weXJpZ2h0IDE5OTktMjAxMSBHZW50b28gRm91bmRhdGlvbjsgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIEdQTCB2MgojICRIZWFkZXI6IC92YXIvY3Zzcm9vdC9nZW50b28teDg2L3ZpcnR1YWwvbGlidXNiL0NoYW5nZUxvZyx2IDEuMTggMjAxMS8wMi8wNiAxMjowMDo1OSBsZWlvIEV4cCAkCgogIDA2IEZlYiAyMDExOyBNYXJ0IFJhdWRzZXBwIDxsZWlvQGdlbnRvby5vcmc+IGxpYnVzYi0wLmVidWlsZDoKICBEcm9wIHRvIH5taXBzCgogIDEyIE9jdCAyMDEwOyBSYfpsIFBvcmNlbCA8YXJtaW43NkBnZW50b28ub3JnPiBsaWJ1c2ItMS5lYnVpbGQ6CiAgc3BhcmMgc3RhYmxlIHdydCAjMzA0MTQ5CgogIDA5IE9jdCAyMDEwOyBNaWtlIEZyeXNpbmdlciA8dmFwaWVyQGdlbnRvby5vcmc+IGxpYnVzYi0xLmVidWlsZDoKICBNYXJrIGlhNjQvczM5MC9zaCBzdGFibGUgIzMwNDE0OS4KCiAgMjkgU2VwIDIwMTA7IEplcm9lbiBSb292ZXJzIDxqZXJAZ2VudG9vLm9yZz4gbGlidXNiLTEuZWJ1aWxkOgogIFN0YWJsZSBmb3IgSFBQQSAoYnVnICMzMDQxNDkpLgoKICAxMCBTZXAgMjAxMDsgVG9iaWFzIEtsYXVzbWFubiA8a2xhdXNtYW5AZ2VudG9vLm9yZz4gbGlidXNiLTEuZWJ1aWxkOgogIFN0YWJsZSBvbiBhbHBoYSwgYnVnICMzMDQxNDkKCiAgMjEgQXVnIDIwMTA7IE1hcmt1cyBNZWllciA8bWFla2tlQGdlbnRvby5vcmc+IGxpYnVzYi0xLmVidWlsZDoKICBhcm0gc3RhYmxlLCBidWcgIzMwNDE0OQoKICAxMSBBdWcgMjAxMDsgSm9zZXBoIEplemFrIDxqb3NlanhAZ2VudG9vLm9yZz4gbGlidXNiLTEuZWJ1aWxkOgogIE1hcmtlZCBwcGMvcHBjNjQgc3RhYmxlIGZvciBidWcgIzMwNDE0OS4KCiAgMzEgSnVsIDIwMTA7IFBhd2VsIEhhamRhbiBqciA8cGhhamRhbi5qckBnZW50b28ub3JnPiBsaWJ1c2ItMS5lYnVpbGQ6CiAgeDg2IHN0YWJsZSB3cnQgYnVnICMzMDQxNDkKCiAgMzEgSnVsIDIwMTA7IFBhY2hvIFJhbW9zIDxwYWNob0BnZW50b28ub3JnPiBsaWJ1c2ItMS5lYnVpbGQ6CiAgYW1kNjQgc3RhYmxlLCBidWcgMzA0MTQ5CgogIDEzIEFwciAyMDEwOyBBbGV4aXMgQmFsbGllciA8YWJhbGxpZXJAZ2VudG9vLm9yZz4gbGlidXNiLTAuZWJ1aWxkOgogIGZyZWVic2QtbGliLTguMCBwcm92aWRlcyBhIGxpYnVzYiBjb21wYXRpYmxlIGxheWVyLiBXZSBjYW50IHJpcCBpdCBvdXQKICBiZWNhdXNlIHNvbWUgRnJlZUJTRCB1c2IgdXRpbGl0aWVzIHJlcXVpcmUgc29tZSBvZiBpdHMgYWRkaXRpb25zOyBGcmVlQlNECiAgcGVvcGxlIGNsYWltIGl0IGhhcyBhIGNvbXBhdGlibGUgQVBJIHNvIHRoYXQgc2hvdWxkIGJlIGZpbmUgdG8gaGF2ZSBpdCBhcwogIGEgcHJvdmlkZXIgdG9vLgoKICAxOCBGZWIgMjAxMDsgSmVyZW15IE9sZXhhIDxkYXJrc2lkZUBnZW50b28ub3JnPiBsaWJ1c2ItMC5lYnVpbGQsCiAgbGlidXNiLTEuZWJ1aWxkOgogIEFkZCB+eDg2LW1hY29zIGtleXdvcmRzIGJlY2F1c2UgZGV2LWxpYnMvbGlidXNiIHdhcyB0ZXN0ZWQgaW4gdGhlIHByZWZpeAogIG92ZXJsYXkKCiAgMTEgSmFuIDIwMTA7IFVscmljaCBNdWVsbGVyIDx1bG1AZ2VudG9vLm9yZz4gbGlidXNiLTAuZWJ1aWxkLAogIGxpYnVzYi0xLmVidWlsZDoKICBTZXQgZW1wdHkgSE9NRVBBR0UgYW5kIExJQ0VOU0UuCgogIDE1IERlYyAyMDA5OyBKb25hdGhhbiBDYWxsZW4gPGFiY2RAZ2VudG9vLm9yZz4gbGlidXNiLTAuZWJ1aWxkLAogIGxpYnVzYi0xLmVidWlsZDoKICBRQTogQWRkIHByZWZpeCBrZXl3b3JkcwoKICAxMSBOb3YgMjAwOTsgUm9iaW4gSC4gSm9obnNvbiA8cm9iYmF0MkBnZW50b28ub3JnPiBsaWJ1c2ItMS5lYnVpbGQ6CiAgUmFpc2UgdGhlIG1pbmltdW0gdmVyc2lvbiBvZiBsaWJ1c2ItMSB1c2VkIHRvIHJlc29sdmUgc29tZSBpc3N1ZXMgd2l0aCB0aGUKICBlYXJseSByZWxlYXNlcyAoZWcgYnVnICMyODI1MzIpLgoKICAxNiBNYXkgMjAwOTsgUm9iaW4gSC4gSm9obnNvbiA8cm9iYmF0MkBnZW50b28ub3JnPiBsaWJ1c2ItMC5lYnVpbGQ6CiAgSW5jbHVkZSB0aGUgY3VycmVudCBzdGFibGUgb2YgZGV2LWxpYnMvbGlidXNiLTAqIGluIHRoZSB2ZXJzaW9uCiAgc3BlY2lmaWNhdGlvbiwgc28gdGhhdCB3ZSBjYW4gcmVwbGFjZSB0aGUgdmVyc2lvbiBkZXBlbmRhbmN5IGluIG90aGVyCiAgZWJ1aWxkcyB3aGVuIG1pZ3JhdGluZyB0aGVtIHRvIHRoZSB2aXJ0dWFsLgoKICAxNSBNYXkgMjAwOTsgQXJmcmV2ZXIgRnJlaHRlcyBUYWlmZXJzYXIgQXJhaGVzaXMgPGFyZnJldmVyQGdlbnRvby5vcmc+CiAgbGlidXNiLTEuZWJ1aWxkOgogIEZpeCBTTE9ULgoKICAxNSBNYXkgMjAwOTsgUm9iaW4gSC4gSm9obnNvbiA8cm9iYmF0MkBnZW50b28ub3JnPiBsaWJ1c2ItMC5lYnVpbGQ6CiAgVXNlIHRoZSBrZXl3b3JkcyBmcm9tIHRoZSBsYXRlc3Qgc3RhYmxlIGRldi1saWJzL2xpYnVzYjowIGVidWlsZCBzbyB0aGF0CiAgd2UgY2FuIGNoYW5nZSBvdGhlciBzdGFibGUgcGFja2FnZXMgc2FmZWx5LgoKKmxpYnVzYi0xICgxNCBNYXkgMjAwOSkKKmxpYnVzYi0wICgxNCBNYXkgMjAwOSkKCiAgMTQgTWF5IDIwMDk7IFJvYmluIEguIEpvaG5zb24gPHJvYmJhdDJAZ2VudG9vLm9yZz4gK2xpYnVzYi0wLmVidWlsZCwKICArbGlidXNiLTEuZWJ1aWxkLCArbWV0YWRhdGEueG1sOgogIEJ1ZyAjMjQ3Njg3OiB2aXJ0dWFsIGZvciBsaWJ1c2Igc3VwcG9ydC4gQmFzZWQgb24gZmluYWwgZGVzaWduIGNob2ljZXMgaW4KICB0aGUgYnVnLCBhcyBhZ3JlZWQgb24gYnkgVGl6aWFubyBN/GxsZXIgPGRldi16ZXJvQGdlbnRvby5vcmc+IGFuZCBSb2JlcnQKICBCdWNoaG9seiA8cmJ1QGdlbnRvby5vcmc+LgoK