QmVob2xkLCBtb3J0YWwsIHRoZSBvcmlnaW5zIG9mIEJlYXV0aWZ1bCBTb3VwLi4uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKTGVvbmFyZCBSaWNoYXJkc29uIGlzIHRoZSBwcmltYXJ5IHByb2dyYW1tZXIuCgpBYXJvbiBEZVZvcmUgaXMgYXdlc29tZS4KCk1hcmsgUGlsZ3JpbSBwcm92aWRlZCB0aGUgZW5jb2RpbmcgZGV0ZWN0aW9uIGNvZGUgdGhhdCBmb3JtcyB0aGUgYmFzZQpvZiBVbmljb2RlRGFtbWl0LgoKVGhvbWFzIEtsdXl2ZXIgYW5kIEV6aW8gTWVsb3R0aSBmaW5pc2hlZCB0aGUgd29yayBvZiBnZXR0aW5nIEJlYXV0aWZ1bApTb3VwIDQgd29ya2luZyB1bmRlciBQeXRob24gMy4KClNpbW9uIFdpbGxpc29uIHdyb3RlIHNvdXBzZWxlY3QsIHdoaWNoIHdhcyB1c2VkIHRvIG1ha2UgQmVhdXRpZnVsIFNvdXAKc3VwcG9ydCBDU1Mgc2VsZWN0b3JzLgoKU2FtIFJ1YnkgaGVscGVkIHdpdGggYSBsb3Qgb2YgZWRnZSBjYXNlcy4KCkpvbmF0aGFuIEVsbGlzIHdhcyBhd2FyZGVkIHRoZSBwcmVzdGlnb3VzIEJlYXUgUG90YWdlIEQnT3IgZm9yIGhpcwp3b3JrIGluIHNvbHZpbmcgdGhlIG5lc3RhYmxlIHRhZ3MgY29udW5kcnVtLgoKQW4gaW5jb21wbGV0ZSBsaXN0IG9mIHBlb3BsZSBoYXZlIGNvbnRyaWJ1dGVkIHBhdGNoZXMgdG8gQmVhdXRpZnVsClNvdXA6CgogSXN0dmFuIEFsYmVydCwgQW5kcmV3IExpbiwgQW50aG9ueSBCYXh0ZXIsIEFuZHJldyBCb3lrbywgVG9ueSBDaGFuZywKIFplcGh5ciBGYW5nLCBGdXp6eSwgUm9tYW4gR2F1Zm1hbiwgWW9uaSBHaWxhZCwgUmljaGllIEhpbmRsZSwgUGV0ZXJpcwogS3J1bWlucywgS2VudCBKb2huc29uLCBCZW4gTGFzdCwgUm9iZXJ0IExlZnR3aWNoLCBTdGFmZmFuIE1hbG1ncmVuLAogS3NlbmlhIE1hcmFzYW5vdmEsIEpQIE1vaW5zLCBBZGFtIE1vbnNlbiwgSm9obiBOYWdsZSwgIkpvbiIsIEVkCiBPc2tpZXdpY3osIEdyZWcgUGhpbGxpcHMsIEdpbGVzIFJhZGZvcmQsIEFydGh1ciBSdWRvbHBoLCBNYXJrbwogU2FtYXN0dXIsIEpvdW5pIFNlcHDkbmVuLCBBbGV4YW5kZXIgU2NobW9sY2ssIEFuZHkgVGhleWVycywgR2x5bgogV2Vic3RlciwgUGF1bCBXcmlnaHQsIERhbm55IFlvbwoKQW4gaW5jb21wbGV0ZSBsaXN0IG9mIHBlb3BsZSB3aG8gbWFkZSBzdWdnZXN0aW9ucyBvciBmb3VuZCBidWdzIG9yCmZvdW5kIHdheXMgdG8gYnJlYWsgQmVhdXRpZnVsIFNvdXA6CgogSGFubm8gQvZjaywgTWF0dGVvIEJlcnRpbmksIENocmlzIEN1cnZleSwgU2ltb24gQ3VzYWNrLCBCcnVjZSBFY2tlbCwKIE1hdHQgRXJuc3QsIE1pY2hhZWwgRm9vcmQsIFRvbSBIYXJyaXMsIEJpbGwgZGUgaE9yYSwgRG9uYWxkIEhvd2VzLAogTWF0dCBQYXR0ZXJzb24sIFNjb3R0IFJvYmVydHMsIFN0ZXZlIFN0cmFzc21hbm4sIE1pa2UgV2lsbGlhbXMsCiB3YXJjaGlsZCBhdCByZWRobyBkb3QgY29tLCBTYW1pIEt1aXNtYSwgQ2FybG9zIFJvY2hhLCBCb2IgSHV0Y2hpc29uLAogSm9yZW4gTWMsIE1pY2hhbCBNaWd1cnNraSwgSm9obiBLbGV2ZW4sIFRpbSBIZWFuZXksIFRyaXBwIExpbGxleSwgRWQKIFN1bW1lcnMsIERlbm5pcyBTdXRjaCwgQ2hyaXMgU21pdGgsIEFhcm9uIFN3ZWVwXlcgU3dhcnR6LCBTdHVhcnQKIFR1cm5lciwgR3JlZyBFZHdhcmRzLCBLZXZpbiBKIEthbHVwc29uLCBOaWtvcyBLb3VyZW1lbm9zLCBBcnR1ciBkZQogU291c2EgUm9jaGEsIFlpY2h1biBXZWksIFBlciBWb2duc2VuCg==