dHJlZSAyZmYzYzdhM2EyODdmMjQ0ZDg2YTNmMmVhNWJmODY1ZmZhMmQ2ODI0CnBhcmVudCA4MjlmZTMyM2U0ZTUyMTcwNmJmZjdlMWYwNzViZTAxNGJkZWZhZGZlCmF1dGhvciBBbGV4YW5kcmUgSnVsbGlhcmQgPGp1bGxpYXJkQHdpbmVocS5vcmc+IDkwMjY2Njg2MyArMDAwMApjb21taXR0ZXIgQWxleGFuZHJlIEp1bGxpYXJkIDxqdWxsaWFyZEB3aW5laHEub3JnPiA5MDI2NjY4NjMgKzAwMDAKClJlbGVhc2UgOTgwODA5CgpTYXQgQXVnICA4IDE5OjExOjQ2IDE5OTggIE1hcmN1cyBNZWlzc25lciA8bWFyY3VzQGpldC5mcmFua2VuLmRlPgoKIAkqIFsqLypdCglBZGRlZCBzb21lIG1pc3NpbmcgV0lOQVBJIGFuZCBzb21lIG1pc3NpbmcgcHJvdG90eXBlcyBmb3IKCWZ1bmN0aW9ucy4KCgkqIFtjb250cm9scy9zdGF0aWMuY10KCUdvdCByaWQgb2YgdGhlIE1PRFVMRTMyX0xvb2t1cEhNT0RVTEUgZXJyb3Igc2hvd2luZyB1cCBmb3IgZXZlcnkKCW1lc3NhZ2UgYm94LgoKCSogW3dpbmRvd3Mvd2lucHJvYy5jXQoJV01fTk9USUZZIDE2LT4zMiBtYXBwaW5nIChBT0wgSW5zdGFudCBNZXNzZW5nZXIgb3IgaG93ZXZlciBpdCBpcyBjYWxsZWQpLgoKCSogW21pc2Mvd2luc29jay5jXQoJaG9zdGVudC9zZXJ2ZW50L3Byb3RvZW50IHNob3VsZCBub3QgdXNlIHRoZSBzYW1lIHN0YXRpYyBidWZmZXJzLgoJKGhhcyBicm9rZW4gbnQzLjE1IGZpbmdlci5leGUgd2hpY2ggZG9lcyBocD1nZXRob3N0YnluYW1lKCksIHRoZW4KCWdldHNlcnZieW5hbWUoImZpbmdlciIsInRjcCIpIGFuZCB0aGUgcmVmZXJlbmNlcyBocC0+aF9hZGRyX2xpc3RbMF0pLgoKU2F0IEF1ZyAgOCAxMzoyMToyNCAxOTk4ICBBbGV4YW5kcmUgSnVsbGlhcmQgIDxqdWxsaWFyZEBscmMuZXBmbC5jaD4KCgkqIFtpbmNsdWRlL3NlcnZlci5oXSBbdG9vbHMvbWFrZV9yZXF1ZXN0c10gW3NlcnZlci9yZXF1ZXN0LmNdCgkgIFtzZXJ2ZXIvdHJhY2UuY10KCUF1dG9tYXRlZCBwYXJ0IG9mIHRoZSBjbGllbnQvc2VydmVyIHJlcXVlc3QgY29kZSBnZW5lcmF0aW9uLgoJQWRkZWQgdHJhY2luZyBvZiBjbGllbnQvc2VydmVyIGNvbW11bmljYXRpb24uCgoJKiBbc2NoZWR1bGVyLyouY10gW3NlcnZlci9wcm9jZXNzLmNdCglBZGRlZCBzdXBwb3J0IGZvciBzZXJ2ZXItc2lkZSBoYW5kbGVzLgoKCSogW3NjaGVkdWxlci90aHJlYWQuY10KCUFkZGVkIERMTF9USFJFQURfQVRUQUNIL0RFVEFDSCBub3RpZmljYXRpb25zLgoKCSogW2NvbmZpZ3VyZS5pbl0KCUFkZGVkIGNoZWNrIGZvciAtbHNvY2tldC4KCgkqIFt3aW5kb3dzL3dpbnByb2MuY10KCVJldHVybiB0aGUgdGh1bmsgYWRkcmVzcyBpbiBXSU5QUk9DX0dldFByb2MgaWYgdGhlIGZ1bmN0aW9uIHR5cGVzCglkb24ndCBtYXRjaC4KClNhdCBBdWcgIDggMDI6NDQ6MDQgMTk5OCAgRG91Z2xhcyBSaWRnd2F5ICA8cmlkZ3dheUB3aW5laHEuY29tPgoKCSogW3dpbmRvd3Mvd2lucHJvYy5jXVt3aW5kb3dzL3dpbi5jXVt3aW5kb3dzL21lc3NhZ2UuY10gIAoJRG9jdW1lbnRhdGlvbiBmb3IgQ2FsbFdpbmRvd1Byb2MsIFNldFdpbmRvd0xvbmcsIERpc3BhdGNoTWVzc2FnZSwKCVdhaXRNZXNzYWdlLCBHZXRNZXNzYWdlLCBhbmQgUGVla01lc3NhZ2UuCgpTYXQgQXVnICA4IDAxOjAwOjAwIDE5OTggIEp1ZXJnZW4gU2NobWllZCA8anVlcmdlbi5zY2htaWVkQG1ldHJvbmV0LmRlPgoKCSogW2NvbnRyb2xzL2NvbW1jdHJsLmNdW2NvbnRyb2xzL3dpZGdldHMuY11baW5jbHVkZS9idWlsdGluMzIuaF0KCSAgW2luY2x1ZGUvY29tbWN0cmwuaF1bcmVsYXkzMi9idWlsdGluMzIuY11bcmVsYXkzMi9jb21jdGwzMi5zcGVjXQoJICBbdG9vbHMvYnVpbGQuY10gW3JlbGF5MzIvc2hlbGwzMi5zcGVjXQoJQWRkZWQgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIExpYk1haW4gZnVuY3Rpb24uIFRoZSBjb21tb24gCgljb250cm9scyBhcmUgcHJvcGVybHkgaW5pdGlhbGl6ZWQgbm93LgoKCSogW2NvbnRyb2xzL3RyZWV2aWV3LmNdW21lbW9yeS9hdG9tLmNdW3NjaGVkdWxlci90aHJlYWQuY11bd2luZG93cy9jbGFzcy5jXQoJICBbd2luZG93cy9tc2dib3guY11bd2luZG93cy93aW4uY10KCVB1dCBUUkFDRSBpbiwgcHV0IFNldExhc3RFcnJvcigpIGluLgoKCSogW2luY2x1ZGUvaW50ZXJmYWNlcy5oXQoJQWRkZWQgSUNsYXNzRmFjdG9yeTo6TG9ja1NlcnZlci4KCgkqIFtpbmNsdWRlL29sZTIuaF0KCUFkZGVkIHN0cnVjdCBmb3IgTFBPTEVNRU5VR1JPVVBXSURUSFMzMiwgSE9MRU1FTlUzMi4KCgkqIFtpbmNsdWRlL3NoZWxsLmhdW2luY2x1ZGUvc2hsb2JqLmhdW21pc2Mvc2hlbGwuY11bb2xlL2ZvbGRlcnMuY10KCVJlb3JnYW5pemVkIGFuZCBtYW55IHN0cnVjdHMgYW5kIGNsYXNzZXMgKElTaGVsbEJyb3dzZXIsSVNoZWxsVmlldykKCWFkZGVkLiBzaGVsbDMyLmRsbCBzaG91bGQgd29yayBpbiBtYW55IGNhc2VzIG5vdy4KCVN0YXJ0ZWQgU0hHZXRGaWxlSW5mb0EgaW1wbGVtZW50ZWF0aW9uLCByZXdyb3RlIFNIR2V0UGF0aEZyb21JRExpc3QzMkEuCglOZXcgU2hlbGwzMkxpYk1haW4gc3RhcnRlZCBTaGVsbEljb25DYWNoZSBJbXBsZW1lbnRhdGlvbi4KCgkqIFttaXNjL3NoZWxsb3JkLmNdCglSZXdyb3RlIElMQ29tYmluZSwgSUxHZXRTaXplCglOZXcgc3R1YnMgU0hGaW5kX0luaXRNZW51UG9wdXAsIEZpbGVNZW51X0NyZWF0ZSwgU2hlbGxFeGVjdXRlRXgsCglTSFNldEluc3RhbmNlRXhwbG9yZXIsIFNIR2V0SW5zdGFuY2VFeHBsb3JlciwgU0hGcmVlVW51c2VkTGlicmFyaWVzLgoKCSogW2luY2x1ZGUvd2luZXJyb3IuaF0KCUNsYXNzIGFuZCB3aW5kb3cgcmVsYXRlZCBlcnJvciBjb2RlcyBhZGRlZC4KCgkqIFttZW1vcnkvaGVhcC5jXQoJQ2hhbmdlZCBsc3RybGVuMzJBIHRvIHN0cmxlbiB0byBnZXQgcmlkIG9mIG1pbGlvbnMgb2YgVFJBQ0UgbGluZXMuCgoJKiBbbWlzYy9kZGVtbC5jXQoJRmlyc3QgbGluZXMgZm9yIERkZUNyZWF0ZVN0cmluZ0hhbmRsZTMyQSAvIERkZUZyZWVTdHJpbmdIYW5kbGUzMi4KCgkqIFttaXNjL25ldHdvcmsuY11bcmVsYXkzMi9tcHIuc3BlY10KCUZpeGVkIHNvbWUgYnVncywgY2hhbmdlZCBvcmRpbmFscy4KCgkqIFt3aW5kb3dzL2NsYXNzLmNdCglXb3JrYXJvdW5kcyBmb3IgaW5jb3JyZWN0IGhJbnN0YW5jZSBoYW5kbGluZy4gRml4ZXMgcGFydHMgb2YKCU1TV29yZDk1L0V4Y2VsOTUgYW5kIE1vbmV5OTUuCgpUaHUgQXVnICA2IDIxOjA1OjM1IDE5OTggIEVyaWMgS29obCA8ZWtvaGxAYWJvLnJoZWluLXplaXR1bmcuZGU+CgoJKiBbd2luZG93cy9ub25jbGllbnQuY11bbWlzYy90d2Vhay5jXVtpbmNsdWRlL3R3ZWFrLmhdCgkgIFtkb2N1bWVudGF0aW9uL3dpbjk1bG9va10KCVJlbW92ZWQgc29tZSB0d2VhayB2YXJpYWJsZXMuIFRoZXkgYXJlIG5vIGxvbmdlciBuZWVkZWQuCgoJKiBbZmlsZXMvZG9zX2ZzLmNdCglBZGRlZCBjaGVjayBmb3IgbnVsbCBwb2ludGVyIGluIERPU0ZTX0dldERldmljZSgpLgoKCSogW2NvbnRyb2xzL3Rvb2x0aXBzLmNdW2luY2x1ZGUvY29tbWN0cmwuaF0KCUltcHJvdmVkIHRvb2x0aXBzLgoKCSogW2NvbnRyb2xzL3N0YXR1cy5jXVtpbmNsdWRlL2NvbW1jdHJsLmhdCglDbGVhbmVkIHVwIGNvZGUgYW5kIGFkZGVkIHRvb2x0aXAgc3VwcG9ydC4KCgkqIFtjb250cm9scy90b29sYmFyLmNdW2luY2x1ZGUvY29tbWN0cmwuaF0KCUFkZGVkIHRvb2x0aXAgc3VwcG9ydC4KCgkqIFtkb2N1bWVudGF0aW9uL2NvbW1vbl9jb250cm9sc10KCVVwZGF0ZWQuCgpUaHUgQXVnICA2IDAwOjA1OjIyIDE5OTggIFV3ZSBCb25uZXMgIDxib25AZWxla3Ryb24uaWtwLnBoeXNpay50dS1kYXJtc3RhZHQuZGU+CgoJKiBbaW5jbHVkZS92ZXIuaF0gW21pc2MvdmVyLmNdCglXcml0ZSBWSUZfQlVGRlRPT1NNQUxMLCBub3QgVklGX0JVRlRPU01BTEwuCgoJKiBbZGVidWdnZXIvaGFzaC5jXSBbZGVidWdnZXIvc3RhYnMuY10KCU1ha2UgZGVidWcgb3V0cHV0IG1vcmUgZnJpZW5kbHkgZm9yIHBvc3RpbmcuCgoJKiBbZmlsZXMvZmlsZS5jXQoJUGFydGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBPRl9TSEFSRV9FWENMVVNJVkUuCglOZWVkZWQgZm9yIFF1aWNrbG9naWMvUXVpY2tDaGlwIChJbnN0YWxsU2hpZWxkKS4KCgkqIFtmaWxlcy9wcm9maWxlLmNdCglXaGVuIGEgY2FjaGVkLW9ubHkgZW50cnkgaXMgZm91bmQsIHJldHVybiBpdC4KCgkqIFtncmFwaGljcy94MTFkcnYveGZvbnQuY10KCUFjY2VwdCBhIHNwYWNlIGFzIGRlbGltaXRlciBmb3IgYSBmb250bmFtZSBhbmQgaW5oaWJpdCBvdmVycnVuCgkoTWFrZSB4cGxhc2ltLmV4IGZyb20gdGhlIFBoaWxsaXBzIENvb2xydW5uZXIgQ1BMRCBzdWl0ZSBwcm9jZWVkKS4KCgkqIFttaXNjZW11L21haW4uY10KCURlbGF5IHNldHRpbmcgSUYxNjMyX0NhbGxMYXJnZVN0YWNrIGFmdGVyIGxvYWRpbmcgdGhlIGV4ZWN1dGFibGVzLgoJU3RvcHMgZnBnYWV4cC5leGUgZnJvbSB0aGUgVmlld2xvZ2ljIEZQR0Egc3VpdGUgZnJvbSBjcmFzaGluZyB3aGVuCiAJc2hvd2luZyB0aGUgQmxpbmtlciBlcnJvciBNZXNzYWdlIEJveC4KCgkqIFttaXNjL25ldHdvcmsuY10KCU1ha2UgV05ldEdldENvbm5lY3Rpb24xNiByZWNvZ25pc2UgYSBDRFJPTSBhcyBhIGxvY2FsIGRyaXZlLgoKCSogW211bHRpbWVkaWEvbW1zeXN0ZW0uY10KCVByZWxpbWluYXJ5IGNoZWNrIGZvciBNQ0lfQUxMX0RFVklDRV9JRCBpbiBNQ0lfQ2xvc2UgYnkgYSBGSVhNRS4KCgpUdWUgQXVnIDQgMjE6MTU6MjMgMTk5OCAgSmFtZXMgSnVyYW4gPGpyajEyMEBwc3UuZWR1PgoKCSogW29sZS9vbGUybmxzLmNdCglGaXhlZCBidWcgaW4gQ29tcGFyZVN0cmluZzMyQS4gIHN0cmNtcCgpIGRvZXNuJ3QgbmVjZXNzYXJpbHkKCXJldHVybiAtMSwgMCwgb3IgMSwgd2hpY2ggdGhlIHByZXZpb3VzIGNvZGUgZGVwZW5kZWQgb24uCglDaGFuZ2VkIG5hbWUgb2YgaXNfcHVuY3R1YXRpb24gdG8gT0xFMk5MU19pc1B1bmN0dWF0aW9uLgoJTWFkZSBOT1JNX0lHTk9SRVdJRFRIIG5vdCBwcmludCBhIEZJWE1FIG1lc3NhZ2UgaW4gCglMQ01hcFN0cmluZzMyQS4KCU90aGVyIGRlYnVnZ2luZyBtZXNzYWdlcywgZG9jdW1lbnRhdGlvbiwgYW5kIGNvZGUgY2xlYW51cHMuCgoJKiBbb2JqZWN0cy9mb250LmNdIFtyZWxheTMyL2dkaTMyLnNwZWNdIFtpbmNsdWRlL3dpbmVycm9yLmhdCglBZGRlZCBzdHViIGZvciBHZXRGb250RGF0YTMyLCBhbmQgYWRkZWQgR0RJX0VSUk9SIGNvbnN0YW50IAoJdG8gd2luZXJyb3IuaC4KClR1ZSBBdWcgIDQgMDc6NDQ6NDMgMTk5OCAgT3ZlIEthYXZlbiA8b3Zla0BhcmN0aWNuZXQubm8+CgoJKiBbbXVsdGltZWRpYS9tbWlvLmNdCglJbXBsZW1lbnRlZCBtbWlvU2V0QnVmZmVyLCBtbWlvQWR2YW5jZSwgbW1pb0FzY2VuZCwgYW5kCgltbWlvQ3JlYXRlQ2h1bmsgdG8gdGhlIGJlc3Qgb2YgbXkga25vd2xlZGdlLiBCdXQgd2F0Y2ggb3V0LAoJdGhlcmUncyBib3VuZCB0byBiZSBidWdzIGluIHRoZXJlLi4uCgoJKiBbaW5jbHVkZS9tbXN5c3RlbS5oXSBbbXVsdGltZWRpYS9tbXN5c3RlbS5jXQoJSGFja2VkIGluIHN1cHBvcnQgZm9yIDMyLWJpdCBtdWx0aW1lZGlhIGZ1bmN0aW9uIGNhbGxiYWNrcy4KCgkqIFtBVVRIT1JTXSBbbWlzYy9zaGVsbC5jXQoJU2VsZmlzaGx5IGNyZWRpdGVkIG15IGF1dGhvcnNoaXAuIEhvcGVmdWxseSBJJ20gZXhjdXNlZC4KCgkqIFtpbmNsdWRlL2Rvc2V4ZS5oXSBbaW5jbHVkZS9tb2R1bGUuaF0gW2xvYWRlci9kb3MvKl0KCSAgW2xvYWRlci9tb2R1bGUuY10gW2xvYWRlci90YXNrLmNdIFtNYWtlZmlsZS5pbl0KCSAgW2NvbmZpZ3VyZS5pbl0gW01ha2VmaWxlLmluXQoJQWRkZWQgRE9TIEVYRSAoTVopIGxvYWRlciBhbmQgdmlydHVhbCBtYWNoaW5lLiBUYXNrCglzdHJ1Y3R1cmUgaW50ZWdyYXRpb24gdGhhbmtzIHRvIFVscmljaCBXZWlnYW5kLgoKCSogW2ZpbGVzL2Rvc19mcy5jXQoJV29yayBhcm91bmQgYSBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UgaWYgaW9jdGxHZXREZXZpY2VJbmZvLWluZwoJYSBGSUxFX0R1cFVuaXhIYW5kbGUnZCBmaWxlIChpLmUuIEdldFN0ZEhhbmRsZSdkKS4KCgkqIFtpbmNsdWRlL21pc2NlbXUuaF0gW2luY2x1ZGUvd2lubnQuaF0gW2xvYWRlci9tYWluLmNdCgkgIFttZW1vcnkvZ2xvYmFsLmNdIFttc2Rvcy9kcG1pLmNdIFttc2Rvcy9kb3NtZW0uY10KCUFkZGVkIHN1cHBvcnQgZm9yIERPUyBtZW1vcnkgaW1hZ2VzLCBhbmQgYWRkZWQKCURPU01FTV9SZXNpemVCbG9jaygpIGFuZCBET1NNRU1fQXZhaWxhYmxlKCkuCgoJKiBbbXNkb3MvaW50MjEuY10KCUFkZGVkIHN1cHBvcnQgZm9yIHRoZSBET1MgdmlydHVhbCBtYWNoaW5lLCB0d2Vha2VkIGhhbmRsZQoJYXNzaWdubWVudCB0byBhdm9pZCBzdGRpbyBjbGFzaGVzLCBmb3JjZWQgSU5UMjFfRmluZE5leHQgdG8gZXhpdAoJd2lsZGNhcmRsZXNzIHNlYXJjaGVzIGFmdGVyIGZpbmRpbmcgb25lIGVudHJ5LCBhZGRlZCBBSD03LCA4LCA5LAoJQywgNDgsIDQ5LCA0QSwgYW5kIDcxNjAgQ0w9MSAoR2V0IFNob3J0IEZpbGVuYW1lKSwgYW5kIG1hZGUgdGhlCglsb25nIGZpbGVuYW1lIGNhbGxzIG9ubHkgcmVzcG9uZCBpZiBydW5uaW5nIHdpdGggd2l0aCAtd2ludmVyCgl3aW45NS4KCgkqIFtvYmplY3RzL2N1cnNvcmljb24uY10KCURlc3Ryb3lDdXJzb3IzMiBhbmQgRGVzdHJveUljb24zMiBzaG91bGQgbm93IGZyZWUgdGhlIG9iamVjdHMKCShob3BlZnVsbHkpIGNvcnJlY3RseS4KClN1biBBdWcgIDIgMjE6NDI6MDkgMTk5OCAgSHV3IEQgTSBEYXZpZXMgPGRhdmllc2hAYWJhY3VzLnBoeXNpY3Mub3guYWMudWs+CgoJKiBbZ3JhcGhpY3MvcHNkcnYvKl0gW2luY2x1ZGUvcHNkcnYuaF0KCUFkZGVkIFBQRCBmaWxlIHBhcnNpbmcgLSBhdCB0aGUgbW9tZW50IGl0IHJlYWRzIGEgZmlsZSBjYWxsZWQKCWRlZmF1bHQucHBkIGZyb20gdGhlIGRpcmVjdG9yeSBpbiB3aGljaCB5b3Ugc3RhcnQgV2luZS4gUGFnZSBzaXplcwoJb3RoZXIgdGhhbiBBNCBzaG91bGQgbm93IHdvcmsgKGxhbmRzY2FwZSBtYXkgbm90KS4gQWxsIGZvbnRzIHRoYXQgYXJlCglwcmVzZW50IG9uIHlvdXIgcHJpbnRlciAoYWNjb3JkaW5nIHRvIHRoZSBQUEQpIHNob3VsZCBiZSBhdmFpbGFibGUsCglwcm92aWRpbmcgeW91IGhhdmUgdGhlIEFGTSBmaWxlcy4gRm9udHMgc2hvdWxkIG5vdyBiZSB0aGUgY29ycmVjdCBzaXplLgoJR3JhcGhpY3MgaXMgc3RpbGwgYmFzaWNhbGx5IGxpbmVzIG9ubHkuIFNlZSBncmFwaGljcy9wc2Rydi9SRUFETUUgLgoKCSogW21pc2MvcHJpbnRkcnYuY10KCVlldCBtb3JlIERydltHZXQvU2V0XVByaW50ZXJEYXRhIGZpeGVzLgoKRnJpIEp1bCAzMSAyMTozMzoyMiAxOTk4ICBQZXIgTGluZHN0cvZtIDxwZWxpbnN0ckBhbGdvbmV0LnNlPgoKCSogW3JlbGF5MzIvY3J0ZGxsLnNwZWNdIFttaXNjL2NydGRsbC5jXQoJQWRkZWQgc3R1YiBmb3IgZnJlb3BlbiwgX2ZpbmRmaXJzdCwgX2ZpbmRuZXh0LCBfZnN0YXQgYW5kIF9yZWFkLgoKCSogW2ZpbGVzL2RpcmVjdG9yeS5jXQoJTW9kaWZpZWQgd2FybmluZyBtZXNzYWdlLgoKV2VkIEp1bCAyOSAxMToyNToyOCAxOTk4ICBMdWl6IE90YXZpbyBMLiBab3J6ZWxsYSAgPHpvcnplbGxhQG5yLmNvbmV4d2FyZS5jb20+CgoJKiBbb2JqZWN0cy9mb250LmNdCglBZGRlZCBzdHViIGZvciBHZXRGb250RGF0YS4KCgkqIFttdWx0aW1lZGlhL21zdmlkZW8uY10KCUNyZWF0ZWQgdGhpcyBmaWxlIHRvIGhvbGQgdGhlIG1zdmlkZW8uZGxsIGNhbGxzIChhbmQgbWF5YmUgYWxzbwoJbXN2ZnczMi5kbGwpLiAKCgkqIFtvYmplY3RzL2N1cnNvcmljb24uY10KCUFkZGVkIHNlYXJjaCBpbiBHbG9iYWwgSGVhcCBmb3IgY3Vyc29yIHdoZW4gdHJ5aW5nIHRvIGRlc3Ryb3kgaXQKCXdpdGggRGVzdHJveUN1cnNvcjE2LiBUaGlzIHRlc3Qgc2hvdWxkIGJlIGRvbmUgaW4gbWFueSAoYWxsPykKCW90aGVyIGZ1bmN0aW9ucyB0aGF0IHVzZSBGcmVlUmVzb3VyY2UuCgoJKiBbY29udHJvbHMvdHJlZXZpZXcuY10gW2luY2x1ZGUvY29tbWN0cmwuaF0KCU1pbm9yIGNvcnJlY3Rpb24gaW4gbmFtZSBhbmQgYWRkaXRpb24gb2YgbWFueSBwbGFjZWhvbGRlcnMgZm9yIFRWTQoJbWVzc2FnZXMgaW4gVFJFRVZJRVdfV2luZG93UHJvYy4KCgkqIFttc2Rvcy9kcG1pLmNdCglGaXhlZCBhIGJ1ZyBpbiBEUE1JX3hyZWFsbG9jIHdoZXJlIGluIGEgY29weSBvZiBhIG1lbW9yeSByZWdpb24KCSJBIiBvZiBzaXplICJhIiB0byBhIHJlZ2lvbiAiQiIgb2Ygc2l6ZSAiYiIsICJiIiBieXRlcyB3ZXJlIGJlaW5nCgljb3BpZWQsIGluc3RlYWQgb2YgImEiLCBhcyB0aGUgbmV3IHZlcnNpb24gZG9lcy4gVGhpcyBib3RoCglpbmNyZWFzZXMgc3BlZWQsIGFzIHdlbGwgYXMgYXZvaWRzIHNlZ2ZhdWx0cy4K