RGV2ZWxvcGVyIExvZwo9PT09PT09PT09PT09CgpUaGlzIGZpbGUgaXMgYSBydW5uaW5nIGxvZyBvZiBkZXZlbG9wZXJzIGdpdmVuIHBlcm1pc3Npb25zIG9uIFNvdXJjZUZvcmdlLgoKVGhlIHB1cnBvc2UgaXMgdG8gcHJvdmlkZSBzb21lIGluc3RpdHV0aW9uYWwgbWVtb3J5IG9mIHdobyB3YXMgZ2l2ZW4gYWNjZXNzCmFuZCB3aHkuCgpUaGUgZmlyc3QgZW50cnkgc3RhcnRzIGluIEFwcmlsIDIwMDUuICBJbiBrZWVwaW5nIHdpdGggdGhlIHN0eWxlIG9mCk1pc2MvTkVXUywgbmV3ZXIgZW50cmllcyBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIHRvcC4gIEFueSBtYXJrdXAgc2hvdWxkCmJlIGluIHRoZSBmb3JtIG9mIFJlU1QuICBFbnRyaWVzIHNob3VsZCBpbmNsdWRlIHRoZSBpbml0aWFscyBvZiB0aGUKcHJvamVjdCBhZG1pbiB3aG8gbWFkZSB0aGUgY2hhbmdlIG9yIGdyYW50ZWQgYWNjZXNzLiAgRmVlbCBmcmVlIHRvIHJldmlzZQp0aGUgZm9ybWF0IHRvIGFjY29tbW9kYXRlIGRvY3VtZW50YXRpb24gbmVlZHMgYXMgdGhleSBhcmlzZS4KCk5vdGUsIHdoZW4gZ2l2aW5nIG5ldyBjb21taXQgcGVybWlzc2lvbnMsIGJlIHN1cmUgdG8gZ2V0IGEgY29udHJpYnV0b3IKYWdyZWVtZW50IGZyb20gdGhlIGNvbW1pdHRlci4gIFNlZSBodHRwOi8vd3d3LnB5dGhvbi5vcmcvcHNmL2NvbnRyaWIvCmZvciBkZXRhaWxzLiAgV2hlbiB0aGUgYWdyZWVtZW50IGlzIHNpZ25lZCwgcGxlYXNlIG5vdGUgaXQgaW4gdGhpcyBsb2cuCgoKUGVybWlzc2lvbnMgSGlzdG9yeQotLS0tLS0tLS0tLS0tLS0tLS0tCgotIERvdWcgSGVsbG1hbm4gd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gU2VwdGVtYmVyIDE5IDIwMDkgYnkgR0ZCLCBhdAogIHN1Z2dlc3Rpb24gb2YgSmVzc2UgTm9sbGVyLCBmb3IgZG9jdW1lbnRhdGlvbiB3b3JrLgoKLSBFemlvIE1lbG90dGkgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gSnVuZSA3IDIwMDkgYnkgR0ZCLCBmb3Igd29yayBvbiBhbmQKICBmaXhlcyB0byB0aGUgZG9jdW1lbnRhdGlvbi4KCi0gUGF1bCBLaXBwZXMgd2FzIGdpdmVuIGNvbW1pdCBwcml2aWxlZ2VzIGF0IFB5Q29uIDIwMDkgYnkgQkFDIHRvIHdvcmsgb24gM3RvMi4KCi0gUm9uIER1UGxhaW4gd2FzIGdpdmVuIGNvbW1pdCBwcml2aWxlZ2VzIGF0IFB5Q29uIDIwMDkgYnkgQkFDIHRvIHdvcmsgb24gM3RvMi4KCi0gU2V2ZXJhbCBkZXZlbG9wZXJzIG9mIGFsdGVybmF0aXZlIFB5dGhvbiBpbXBsZW1lbnRhdGlvbnMgd2hlcmUKICBnaXZlbiBhY2Nlc3MgZm9yIHRlc3Qgc3VpdGUgYW5kIGxpYnJhcnkgYWRhcHRpb25zIGJ5IE12TDoKICBBbGxpc29uIFJhbmRhbCAoUGFycm90KSwgTWljaGFlbCBGb29yZCAoSXJvblB5dGhvbiksCiAgSmltIEJha2VyLCBQaGlsaXAgSmVudmV5LCBhbmQgRnJhbmsgV2llcnpiaWNraSAoYWxsIEp5dGhvbikuCgotIFIuIERhdmlkIE11cnJheSB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiBNYXJjaCAzMCAyMDA5IGJ5IE12TCwgYWZ0ZXIKICByZWNvbW1lbmRhdGlvbiBieSBCQUMuCgotIENocmlzIFdpdGhlcnMgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gTWFyY2ggOCAyMDA5IGJ5IE12TCwKICBhZnRlciByZWNvbW1lbmRhdGlvbiBieSBHdlIuCgotIFRhcmVrIFppYWTpIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIERlY2VtYmVyIDIxIDIwMDggYnkgTkNOLAogIGZvciBtYWludGVuYW5jZSBvZiBkaXN0dXRpbHMuCgotIEhpcm9rYXp1IFlhbWFtb3RvIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIEF1Z3VzdCAxMiAyMDA4IGJ5IE12TCwKICBmb3IgY29udHJpYnV0aW9ucyB0byB0aGUgV2luZG93cyBidWlsZC4KCi0gQW50b2luZSBQaXRyb3Ugd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gSnVseSAxNiAyMDA4LCBieSByZWNvbW1lbmRhdGlvbgogIGZyb20gR3ZSLCBmb3IgZ2VuZXJhbCBjb250cmlidXRpb25zIHRvIFB5dGhvbi4KCi0gSmVzc2UgTm9sbGVyIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDE2IEp1bmUgMjAwOCBieSBHRkIsCiAgZm9yIHdvcmsgb24gdGhlIG11bHRpcHJvY2Vzc2luZyBtb2R1bGUuCgotIEdyZWdvciBMaW5nbCB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAxMCBKdW5lIDIwMDggYnkgTXZMLAogIGZvciB3b3JrIG9uIHRoZSB0dXJ0bGUgbW9kdWxlLgoKLSBSb2JlcnQgU2NodXBwZW5pZXMgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMjEgTWF5IDIwMDggYnkgTXZMLAogIGZvciBHU29DIGNvbnRyaWJ1dGlvbnMuCgotIFJvZHJpZ28gQmVybmFyZG8gUGltZW50ZWwgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMjkgQXByaWwgMjAwOCBieSBNdkwsCiAgZm9yIEdTb0MgY29udHJpYnV0aW9ucy4KCi0gSGVpa28gV2VpbmVuIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDI5IEFwcmlsIDIwMDggYnkgTXZMLAogIGZvciBHU29DIGNvbnRyaWJ1dGlvbnMuCgotIEplc3VzIENlYSB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAyNCBBcHJpbCAyMDA4IGJ5IE12TCwKICBmb3IgbWFpbnRlbmFuY2Ugb2YgYnNkZGIuCgotIEd1aWxoZXJtZSBQb2xvIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDI0IEFwcmlsIDIwMDggYnkgTXZMLAogIGZvciBHU29DIGNvbnRyaWJ1dGlvbnMuCgotIFRob21hcyBMZWUgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMjEgQXByaWwgMjAwOCBieSBOQ04sCiAgZm9yIHdvcmsgb24gYnJhbmNoZXMgKGFzdC9vcHRpbWl6ZXIgcmVsYXRlZCkuCgotIEplcm9lbiBSdWlncm9rIHZhbiBkZXIgV2VydmVuIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDEyIEFwcmlsIDIwMDgKICBieSBHRkIsIGZvciBkb2N1bWVudGF0aW9uIHdvcmsuCgotIEpvc2lhaCBDYXJsc29uIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDI2IE1hcmNoIDIwMDggYnkgR0ZCLAogIGZvciB3b3JrIG9uIGFzeW5jb3JlL2FzeW5jaGF0LgoKLSBCZW5qYW1pbiBQZXRlcnNvbiB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAyNSBNYXJjaCAyMDA4IGJ5IEdGQiwKICBmb3IgYnVnIHRyaWFnZSB3b3JrLgoKLSBKZXJyeSBTZXV0dGVyIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDIwIE1hcmNoIDIwMDggYnkgQkFDLCBmb3IKICBnZW5lcmFsIGNvbnRyaWJ1dGlvbnMgdG8gUHl0aG9uLgoKLSBKZWZmIFJ1c2ggd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMTggTWFyY2ggMjAwOCBieSBBTUssIGZvciBEaXN0dXRpbHMgd29yay4KCi0gRGF2aWQgV29sZXZlciB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAxNyBNYXJjaCAyMDA4IGJ5IE12TCwKICBmb3IgMnRvMyB3b3JrLgoKLSBUcmVudCBOZWxzb24gd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMTcgTWFyY2ggMjAwOCBieSBNdkwsCiAgZm9yIGdlbmVyYWwgY29udHJpYnV0aW9ucyB0byBQeXRob24uCgotIE1hcmsgRGlja2luc29uIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDYgSmFudWFyeSAyMDA4IGJ5IEZhY3VuZG8KICBCYXRpc3RhIGZvciBoaXMgd29yayBvbiBtYXRoZW1hdGhpY3MgYW5kIG51bWJlciByZWxhdGVkIGlzc3Vlcy4KCi0gQW1hdXJ5IEZvcmdlb3QgZCdBcmMgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gOSBOb3ZlbWJlciAyMDA3IGJ5IE12TCwKICBmb3IgZ2VuZXJhbCBjb250cmlidXRpb25zIHRvIFB5dGhvbi4KCi0gQ2hyaXN0aWFuIEhlaW1lcyB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAzMSBPY3RvYmVyIDIwMDcgYnkgTXZMLAogIGZvciBnZW5lcmFsIGNvbnRyaWJ1dGlvbnMgdG8gUHl0aG9uLgoKLSBDaHJpcyBNb25zb24gd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMjAgT2N0b2JlciAyMDA3IGJ5IE5DTiwKICBmb3IgaGlzIHdvcmsgb24gZWRpdGluZyBQRVBzLgoKLSBCaWxsIEphbnNzZW4gd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMjggQXVndXN0IDIwMDcgYnkgTkNOLAogIGZvciBoaXMgd29yayBvbiB0aGUgU1NMIG1vZHVsZSBhbmQgb3RoZXIgdGhpbmdzIHJlbGF0ZWQgdG8gKFNTTCkgc29ja2V0cy4KCi0gSmVmZnJleSBZYXNza2luIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDkgQXVndXN0IDIwMDcgYnkgTkNOLAogIGZvciBoaXMgd29yayBvbiBQRVBzIGFuZCBvdGhlciBnZW5lcmFsIHBhdGNoZXMuIAoKLSBNYXJrIFN1bW1lcmZpZWxkIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDEgQXVndXN0IDIwMDcgYnkgR0ZCLAogIGZvciB3b3JrIG9uIGRvY3VtZW50YXRpb24uCgotIEFybWluIFJvbmFjaGVyIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDIzIEp1bHkgMjAwNyBieSBHRkIsCiAgZm9yIHdvcmsgb24gdGhlIGRvY3VtZW50YXRpb24gdG9vbHNldC4gIEhlIG5vdyBtYWludGFpbnMgdGhlCiAgYXN0IG1vZHVsZS4KCi0gU2VudGhpbCBLdW1hcmFuIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDE2IEp1bmUgMjAwNyBieSBNdkwsCiAgZm9yIGhpcyBTdW1tZXItb2YtQ29kZSBwcm9qZWN0LCBtZW50b3JlZCBieSBTa2lwIE1vbnRhbmFyby4KCi0gQWxleGFuZHJlIFZhc3NhbG90dGkgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMjEgTWF5IDIwMDcgYnkgTXZMLAogIGZvciBoaXMgU3VtbWVyLW9mLUNvZGUgcHJvamVjdCwgbWVudG9yZWQgYnkgQnJldHQgQ2Fubm9uLgoKLSBUcmF2aXMgT2xpcGhhbnQgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMTcgQXByIDIwMDcgYnkgTXZMLAogIGZvciBpbXBsZW1lbnRpbmcgdGhlIGV4dGVuZGVkIGJ1ZmZlciBwcm90b2NvbC4KCi0gWmlnYSBTZWlsbmFjaHQgd2FzIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMDkgTWFyIDIwMDcgYnkgTXZMLAogIGZvciBnZW5lcmFsIG1haW50ZW5hbmNlLgoKLSBQZXRlIFNoaW5uZXJzIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDA0IE1hciAyMDA3IGJ5IE5DTiwKICBmb3IgUEVQIDMxMDEgd29yayBpbiB0aGUgc2FuZGJveC4KCi0gUGF0IE1hdXBpbiBhbmQgRXJpYyBWLiBTbWl0aCB3ZXJlIGdpdmVuIFNWTiBhY2Nlc3Mgb24gMjggRmViIDIwMDcgYnkgTkNOLAogIGZvciBQRVAgMzEwMSB3b3JrIGluIHRoZSBzYW5kYm94LgoKLSBTdGV2ZW4gQmV0aGFyZCAoU0YgbmFtZSAiYmVkaXZpZXJlIikgYWRkZWQgdG8gdGhlIFNvdXJjZUZvcmdlIFB5dGhvbgogIHByb2plY3QgMjYgRmViIDIwMDcsIGJ5IE5DTiwgYXMgYSB0cmFja2VyIHRlY2guCgotIEpvc2lhaCBDYXJsc29uIChTRiBuYW1lICJqb3NpYWhjYXJsc29uIikgYWRkZWQgdG8gdGhlIFNvdXJjZUZvcmdlIFB5dGhvbgogIHByb2plY3QgMDYgSmFuIDIwMDcsIGJ5IE5DTiwgYXMgYSB0cmFja2VyIHRlY2guICBIZSB3aWxsIG1haW50YWluIGFzeW5jb3JlLgoKLSBDb2xsaW4gV2ludGVyIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDA1IEphbiAyMDA3IGJ5IE5DTiwgZm9yIFBFUAogIHVwZGF0ZSBhY2Nlc3MuCgotIExhcnMgR3VzdGFlYmVsIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDIwIERlYyAyMDA2IGJ5IE5DTiwgZm9yIHRhcmZpbGUucHkKICByZWxhdGVkIHdvcmsuCgotIDIwMDYgU3VtbWVyIG9mIENvZGUgZW50cmllczogU29DIGRldmVsb3BlcnMgYXJlIGV4cGVjdGVkIHRvIHdvcmsKICBwcmltYXJpbHkgaW4gbm9uZGlzdC9zYW5kYm94IG9yIG9uIGEgYnJhbmNoIG9mIHRoZWlyIG93biwgYW5kIHdpbGwKICBoYXZlIHRoZWlyIHdvcmsgcmV2aWV3ZWQgYmVmb3JlIGNoYW5nZXMgYXJlIGFjY2VwdGVkIGludG8gdGhlIHRydW5rLgoKICAtIE1hdHQgRmxlbWluZyB3YXMgYWRkZWQgb24gMjUgTWF5IDIwMDYgYnkgQU1LOyBoZSdsbCBiZSB3b3JraW5nIG9uCiAgICBlbmhhbmNpbmcgdGhlIFB5dGhvbiBkZWJ1Z2dlci4gICAKCiAgLSBKYWNraWx5biBIb3h3b3J0aCB3YXMgYWRkZWQgb24gMjUgTWF5IDIwMDYgYnkgQU1LOyBzaGUnbGwgYmUgYWRkaW5nIGxvZ2dpbmcKICAgIHRvIHRoZSBzdGFuZGFyZCBsaWJyYXJ5LiAgCgogIC0gTWF0ZXVzeiBSdWtvd2ljeiB3YXMgYWRkZWQgb24gMzAgTWF5IDIwMDYgYnkgQU1LOyBoZSdsbCBiZSAKICAgIHRyYW5zbGF0aW5nIHRoZSBkZWNpbWFsIG1vZHVsZSBpbnRvIEMuCgotIFNWTiBhY2Nlc3MgZ3JhbnRlZCB0byB0aGUgIk5lZWQgZm9yIFNwZWVkIiBJY2VsYW5kIHNwcmludCBhdHRlbmRlZXMsCiAgYmV0d2VlbiBNYXkgMTcgYW5kIDIxLCAyMDA2LCBieSBUaW0gUGV0ZXJzLiAgQWxsIHdvcmsgaXMgdG8gYmUgZG9uZQogIGluIG5ldyBzYW5kYm94IHByb2plY3RzIG9yIG9uIG5ldyBicmFuY2hlcywgd2l0aCBtZXJnaW5nIHRvIHRoZQogIHRydW5rIGFzIGFwcHJvdmVkOgoKICBBbmRyZXcgRGFsa2UKICBDaHJpc3RpYW4gVGlzbWVyCiAgSmFjayBEaWVkZXJpY2gKICBKb2huIEJlbmVkaWt0c3NvbgogIEtyaXN0auFuIFYuIErzbnNzb24KICBNYXJ0aW4gQmxhaXMKICBSaWNoYXJkIEVtc2xpZQogIFJpY2hhcmQgSm9uZXMKICBSdW5hciBQZXR1cnNzb24KICBTdGV2ZSBIb2xkZW4KICBSaWNoYXJkIE0uIFRldwoKLSBTdGV2ZW4gQmV0aGFyZCB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAyNyBBcHIgMjAwNiBieSBESkcsIGZvciBQRVAKICB1cGRhdGUgYWNjZXNzLgoKLSBUYWxpbiB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAyNyBBcHIgMjAwNiBieSBESkcsIGZvciBQRVAgdXBkYXRlCiAgYWNjZXNzLgoKLSBHZW9yZ2UgWW9zaGlkYSAoU0YgbmFtZSAicXVpdmVyIikgYWRkZWQgdG8gdGhlIFNvdXJjZUZvcmdlIFB5dGhvbgogIHByb2plY3QgMTQgQXByIDIwMDYsIGJ5IFRpbSBQZXRlcnMsIGFzIGEgdHJhY2tlciBhZG1pbi4gIFNlZQogIGNvbnRlbXBvcmFuZW91cyBweXRob24tY2hlY2tpbnMgdGhyZWFkIHdpdGggdGhlIHVubGlrZWx5IFN1YmplY3Q6CgogICAgICByNDUzMjkgLSBweXRob24vdHJ1bmsvRG9jL3doYXRzbmV3L3doYXRzbmV3MjUudGV4CgotIFJvbmFsZCBPdXNzb3JlbiB3YXMgZ2l2ZW4gU1ZOIGFjY2VzcyBvbiAzIE1hciAyMDA2IGJ5IE5DTiwgZm9yIE1hYwogIHJlbGF0ZWQgd29yay4KCi0gQm9iIElwcG9saXRvIHdhcyBnaXZlbiBTVk4gYWNjZXNzIG9uIDIgTWFyIDIwMDYgYnkgTkNOLCBmb3IgTWFjCiAgcmVsYXRlZCB3b3JrLgoKLSBOaWNrIENvZ2hsYW4gcmVxdWVzdGVkIENWUyBhY2Nlc3Mgc28gaGUgY291bGQgdXBkYXRlIGhpcyBQRVAgZGlyZWN0bHkuCiAgR3JhbnRlZCBieSBHdlIgb24gMTYgT2N0IDIwMDUuCgotIEFkZGVkIHR3byBuZXcgZGV2ZWxvcGVycyBmb3IgdGhlIFN1bW1lciBvZiBDb2RlIHByb2plY3QuIDggSnVseSAyMDA1CiAgYnkgUkRILiAgQW5kcmV3IEt1Y2hsaW5nIHdpbGwgYmUgbWVudG9yaW5nIEdyZWdvcnkgSyBKb2huc29uIGZvciBhCiAgcHJvamVjdCB0byBlbmhhbmNlIG1haWxib3guICBCcmV0dCBDYW5ub24gcmVxdWVzdGVkIGFjY2VzcyBmb3IgRmxvdmlzCiAgQnJ1eW5vb2doZSAoc2lyb2xmKSB0byB3b3JrIG9uIHBzdGF0cywgcHJvZmlsZSwgYW5kIGhvdHNob3QuICBCb3RoIHVzZXJzCiAgYXJlIGV4cGVjdGVkIHRvIHdvcmsgcHJpbWFyaWx5IGluIG5vbmRpc3Qvc2FuZGJveCBhbmQgaGF2ZSB0aGVpciB3b3JrCiAgcmV2aWV3ZWQgYmVmb3JlIG1ha2luZyB1cGRhdGVzIHRvIGFjdGl2ZSBjb2RlLgoKLSBHZW9yZyBCcmFuZGwgd2FzIGdpdmVuIFNGIHRyYWNrZXIgcGVybWlzc2lvbnMgb24gMjggTWF5IDIwMDUKICBieSBSREguICBTaW5jZSB0aGUgYmVnaW5uaW5nIG9mIDIwMDUsIGhlIGhhcyBiZWVuIGFjdGl2ZSBpbiBkaXNjdXNzaW9ucwogIG9uIHB5dGhvbi1kZXYgYW5kIGhhcyBzdWJtaXR0ZWQgYSBkb3plbiBwYXRjaCByZXZpZXdzLiAgVGhlIHBlcm1pc3Npb25zCiAgYWRkIHRoZSBhYmlsaXR5IHRvIGNoYW5nZSB0cmFja2VyIHN0YXR1cyBhbmQgdG8gYXR0YWNoIHBhdGNoZXMuICBPbgogIDMgSnVuZSAyMDA1LCB0aGlzIHdhcyBleHBhbmRlZCBieSBSREggdG8gaW5jbHVkZSBjaGVja2luIHBlcm1pc3Npb25zLgoKLSBUZXJyeSBSZWVkeSB3YXMgZ2l2ZW4gU0YgdHJhY2tlciBwZXJtaXNzaW9ucyBvbiA3IEFwciAyMDA1IGJ5IFJESC4KCi0gTmljayBDb2dobGFuIHdhcyBnaXZlbiBTRiB0cmFja2VyIHBlcm1pc3Npb25zIG9uIDUgQXByIDIwMDUgYnkgUkRILgogIEZvciBzZXZlcmFsIG1vbnRocywgaGUgaGFzIGJlZW4gYWN0aXZlIGluIHJldmlld2luZyBhbmQgY29udHJpYnV0aW5nCiAgcGF0Y2hlcy4gIFRoZSBhZGRlZCBwZXJtaXNzaW9ucyBnaXZlIGhpbSBncmVhdGVyIGZsZXhpYmlsaXR5IGluCiAgd29ya2luZyB3aXRoIHRoZSB0cmFja2VyLgoKLSBFcmljIFByaWNlIHdhcyBtYWRlIGEgZGV2ZWxvcGVyIG9uIDIgTWF5IDIwMDMgYnkgVEdQLiAgVGhpcyB3YXMKICBzcGVjaWZpY2FsbHkgdG8gd29yayBvbiB0aGUgbmV3IGBgZGVjaW1hbGBgIHBhY2thZ2UsIHdoaWNoIGxpdmVkIGluCiAgYGBub25kaXN0L3NhbmRib3gvZGVjaW1hbC9gYCBhdCB0aGUgdGltZS4KCi0gRXJpYyBTLiBSYXltb25kIHdhcyBtYWRlIGEgZGV2ZWxvcGVyIG9uIDIgSnVsIDIwMDAgYnkgVEdQLCBmb3IgZ2VuZXJhbAogIGxpYnJhcnkgd29yay4gIEhpcyByZXF1ZXN0IGlzIGFyY2hpdmVkIGhlcmU6CgogICAgICBodHRwOi8vbWFpbC5weXRob24ub3JnL3BpcGVybWFpbC9weXRob24tZGV2LzIwMDAtSnVseS8wMDUzMTQuaHRtbAoKClBlcm1pc3Npb25zIERyb3BwZWQgb24gUmVxdWVzdAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0gUm95IFNtaXRoLCBNYXR0IEZsZW1pbmcgYW5kIFJpY2hhcmQgRW1zbGllIHNlbnQgZHJvcCByZXF1ZXN0cy4KICA0IEF1ZyAyMDA4IEdGQgoKLSBQZXIgbm90ZSBmcm9tIEFuZHJldyBLdWNobGluZywgdGhlIHBlcm1pc3Npb25zIGZvciBHcmVnb3J5IEsgSm9obnNvbgogIGFuZCB0aGUgU3VtbWVyIE9mIENvZGUgcHJvamVjdCBhcmUgbm8gbG9uZ2VyIG5lZWRlZC4gIDQgQXVnIDIwMDggR0ZCCgotIFBlciBub3RlIGZyb20gQW5kcmV3IEt1Y2hsaW5nLCB0aGUgcGVybWlzc2lvbnMgZm9yIEdyZWdvcnkgSyBKb2huc29uCiAgYW5kIHRoZSBTdW1tZXIgT2YgQ29kZSBwcm9qZWN0IGFyZSBubyBsb25nZXIgbmVlZGVkLiAgQU1LIHdpbGwgbWFrZQogIGFueSBmdXR1cmUgY2hlY2tpbnMgZGlyZWN0bHkuICAxNiBPY3QgMjAwNSBSREgKCi0gSm9oYW5uZXMgR2lqc2JlcnMgc2VudCBhIGRyb3AgcmVxdWVzdC4gIDI3IEp1bHkgMjAwNSBSREgKCi0gRmxvdmlzIEJydXlub29naGUgc2VudCBhIGRyb3AgcmVxdWVzdC4gIDE0IEp1bHkgMjAwNSBSREgKCi0gUGF1bCBQcmVzY29kIHNlbnQgYSBkcm9wIHJlcXVlc3QuICAzMCBBcHIgMjAwNSBSREgKCi0gRmlubiBCb2NrIHNlbnQgYSBkcm9wIHJlcXVlc3QuICAxMyBBcHIgMjAwNSBSREgKCi0gRXJpYyBQcmljZSBzZW50IGEgZHJvcCByZXF1ZXN0LiAgMTAgQXByIDIwMDUgUkRICgotIElybWVuIGRlIEpvbmcgcmVxdWVzdGVkIGRyb3BwaW5nIENWUyBhY2Nlc3Mgd2hpbGUga2VlcGluZyB0cmFja2VyCiAgYWNjZXNzLiAgMTAgQXByIDIwMDUgUkRICgotIE1vc2hlIFphZGthIGFuZCBLZW4gTWFuaGVpbWVyIHNlbnQgZHJvcCByZXF1ZXN0cy4gIDggQXByIDIwMDUgYnkgUkRICgotIFN0ZXZlIEhvbGRlbiwgR2VyaGFyZCBIYXJpbmcsIGFuZCBEYXZpZCBDb2xlIHNlbnQgZW1haWwgc3RhdGluZyB0aGF0CiAgdGhleSBubyBsb25nZXIgdXNlIHRoZWlyIGFjY2Vzcy4gICA3IEFwciAyMDA1IFJESAoKClBlcm1pc3Npb25zIERyb3BwZWQgYWZ0ZXIgTG9zcyBvZiBDb250YWN0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgotIFNldmVyYWwgdW5zdWNjZXNzZnVsIGVmZm9ydHMgd2VyZSBtYWRlIHRvIGNvbnRhY3QgQ2hhcmxlcyBHIFdhbGRtYW4uCiAgUmVtb3ZlZCBvbiA4IEFwciAyMDA1IGJ5IFJESC4KCgpJbml0aWFscyBvZiBQcm9qZWN0IEFkbWlucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVEdQOiAgVGltIFBldGVycwpHRkI6ICBHZW9yZyBCcmFuZGwKQkFDOiAgQnJldHQgQ2Fubm9uCk5DTjogIE5lYWwgTm9yd2l0egpESkc6ICBEYXZpZCBHb29kZ2VyCk12TDogIE1hcnRpbiB2LiBMb2V3aXMKR3ZSOiAgR3VpZG8gdmFuIFJvc3N1bQpSREg6ICBSYXltb25kIEhldHRpbmdlcgo=