Ckl0ZXJhdGlvbiBhbGdvcml0aG1zIGFyZSB0aGUgYmFzaWMgYnVpbGRpbmcgYmxvY2tzIGJlaGluZCBtYW55IG9mIHRoZSAKTVBMJ3MgYWxnb3JpdGhtcywgYW5kIGFyZSB1c3VhbGx5IHRoZSBmaXJzdCBwbGFjZSB0byBsb29rIGF0IHdoZW4gCnN0YXJ0aW5nIHRvIGJ1aWxkIGEgbmV3IG9uZS4gQWJzdHJhY3RpbmcgYXdheSB0aGUgZGV0YWlscyBvZiBzZXF1ZW5jZSAKaXRlcmF0aW9uIGFuZCBlbXBsb3lpbmcgdmFyaW91cyBvcHRpbWl6YXRpb25zIHN1Y2ggYXMgcmVjdXJzaW9uIAp1bnJvbGxpbmcsIHRoZXkgcHJvdmlkZSBzaWduaWZpY2FudCBhZHZhbnRhZ2VzIG92ZXIgYSBoYW5kLWNvZGVkIAphcHByb2FjaC4KCi4uICBPZiBhbGwgb2YgaXRlcmF0aW9uIGFsZ29yaXRobXMsIGBgaXRlcl9mb2xkX2lmYGAgaXMgdGhlIAogICAgbW9zdCBjb21wbGV4IGFuZCBhdCB0aGUgc2FtZSB0aW1lIHRoZSBtb3N0IGZ1bmRhbWVudGFsLiBUaGUgcmVzdCBvZiAKICAgIHRoZSBhbGdvcml0aG1zIGZyb20gdGhlIGNhdGVnb3J5IHwtLXwgYGBpdGVyX2ZvbGRgYCwgYGByZXZlcnNlX2l0ZXJfZm9sZGBgLAogICAgYGBmb2xkYGAsIGFuZCBgYHJldmVyc2VfZm9sZGBgIHwtLXwgc2ltcGx5IHByb3ZpZGUgYSBtb3JlIGhpZ2gtbGV2ZWwgCiAgICAoYW5kIG1vcmUgcmVzdHJpY3RlZCkgaW50ZXJmYWNlIHRvIHRoZSBjb3JlIGBgaXRlcl9mb2xkX2lmYGAgCiAgICBmdW5jdGlvbmFsaXR5IFsjcGVyZm9ybWFjZV1fLgoKICAgIC4uIFsjcGVyZm9ybWFjZV0gVGhhdCdzIG5vdCB0byBzYXkgdGhhdCB0aGV5IGFyZSAqaW1wbGVtZW50ZWQqCiAgICB0aHJvdWdoIGBgaXRlcl9mb2xkX2lmYGAgfC0tfCB0aGV5IGFyZSBvZnRlbiBub3QsIGluIHBhcnRpY3VsYXIgCiAgICBiZWNhdXNlIHRoZSByZXN0cmljdGVkIGZ1bmN0aW9uYWxpdHkgYWxsb3dzIGZvciBtb3JlIAogICAgb3B0aW1pemF0aW9ucy4KCgouLiBjb3B5cmlnaHQ6OiBDb3B5cmlnaHQgqSAgMjAwMS0yMDA5IEFsZWtzZXkgR3VydG92b3kgYW5kIERhdmlkIEFicmFoYW1zCiAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKICAgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCg==