ICAgICAgICAgICAgICAgICAgICAgICAgCgogICAgICAgICAgICAgIGNvbW1vbnMtZGJjcC0xLjMvMS40IFJFTEVBU0UgTk9URVMKClRoaXMgcmVsZWFzZSBpbmNsdWRlcyBuZXcgZmVhdHVyZXMgYXMgd2VsbCBhcyBidWcgZml4ZXMgYW5kIGVuaGFuY2VtZW50cy4gIFNvbWUgYnVnIGZpeGVzCmNoYW5nZSBzZW1hbnRpY3MgKGUuZy4gY29ubmVjdGlvbiBjbG9zZSBpcyBub3cgaWRlbXBvdGVudCkuICBUaGUgMS4zIGFuZCAxLjQgcmVsZWFzZXMgb2YgREJDUAphcmUgYnVpbHQgZnJvbSB0aGUgc2FtZSBzb3VyY2VzLiAgVmVyc2lvbiAxLjQgc3VwcG9ydHMgSkRCQyA0LCBzbyByZXF1aXJlcyBKREsgMS42LiAKQXBwbGljYXRpb25zIHJ1bm5pbmcgdW5kZXIgSkRLIDEuNC0xLjUgbXVzdCB1c2UgREJDUCAxLjMuIEFwcGxpY2F0aW9ucyBydW5uaW5nIHVuZGVyIEpESyAxLjYKc2hvdWxkIHVzZSBEQkNQIDEuNC4gT3RoZXIgdGhhbiBzdXBwb3J0IGZvciB0aGUgYWRkZWQgbWV0aG9kcyBpbiBKREJDIDQsIHRoZXJlIGlzIG5vdGhpbmcgbmV3Cm9yIGRpZmZlcmVudCBpbiBEQkNQIDEuNCB2cy4gREJDUCAxLjMuIFRoZSBsaXN0IG9mIGNoYW5nZXMgYmVsb3cgc2luY2UgMS4yLjIgYXBwbGllcyB0byBib3RoCnRoZSAxLjMgYW5kIDEuNCByZWxlYXNlLiAgT3RoZXIgdGhhbiB0aGUgaXNzdWUgcmVsYXRlZCB0byBhZGRpbmcgSkRCQyA0IHN1cHBvcnQgKERCQ1AtMTkxKSwgCmFsbCBidWcgZml4ZXMgb3IgbmV3IGZlYXR1cmVzIGFyZSBpbmNsdWRlZCBpbiBib3RoIERCQ1AgMS4zIGFuZCAxLjQuCgpDaGFuZ2VzIHNpbmNlIERCQ1AgMS4yLjIgaW5jbHVkZToKCk5ldyBmZWF0dXJlczoKbyAgREJDUC0yMDQ6ICBNYWRlIFBvb2xpbmdDb25uZWN0aW9uIHBvb2wgQ2FsbGFibGVTdGF0ZW1lbnRzLiBXaGVuIEJhc2ljRGF0YVNvdXJjZSdzIAogICAgICAgIHBvb2xQcmVwYXJlZFN0YXRlbWVudHMgcHJvcGVydHkgaXMgdHJ1ZSwgQ2FsbGFibGVTdGF0ZW1lbnRzIGFyZSBub3cKICAgICAgICBwb29sZWQgYWxvbmcgd2l0aCBQcmVwYXJlZFN0YXRlbWVudHMuIFRoZSBtYXhPcGVuUHJlcGFyZWRTdGF0ZW1lbnRzCiAgICAgICAgcHJvcGVydHkgbGltaXRzIHRoZSBjb21iaW5lZCBudW1iZXIgb2YgQ2FsbGFibGUgYW5kIFByZXBhcmVkIHN0YXRlbWVudHMKICAgICAgICB0aGF0IGNhbiBiZSBpbiB1c2UgYXQgYSBnaXZlbiB0aW1lLiBUaGFua3MgdG8gV2VpIENoZW4uIApvICBEQkNQLTIyNjogIEFkZGVkIGEgdmFsaWRhdGlvblF1ZXJ5VGltZW91dCBjb25maWd1cmF0aW9uIHBhcmFtZXRlciB0byBCYXNpY0RhdGFTb3VyY2UKICAgICAgICBhbGxvd2luZyB0aGUgdXNlciB0byBzcGVjaWZ5IGEgdGltZW91dCB2YWx1ZSAoaW4gc2Vjb25kcykgZm9yIGNvbm5lY3Rpb24KICAgICAgICB2YWxpZGF0aW9uIHF1ZXJpZXMuIApvICBEQkNQLTE3NTogIEFkZGVkIGEgY29ubmVjdGlvbkluaXRTcWxzIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyIHRvIEJhc2ljRGF0YVNvdXJjZQogICAgICAgIGFsbG93aW5nIHRoZSB1c2VyIHRvIHNwZWNpZnkgYSBjb2xsZWN0aW9uIG9mIFNRTCBzdGF0ZW1lbnRzIHRvIGV4ZWN1dGUKICAgICAgICBvbmUgdGltZSB3aGVuIGEgcGh5c2ljYWwgZGF0YWJhc2UgY29ubmVjdGlvbiBpcyBmaXJzdCBvcGVuZWQuIFRoYW5rcyB0byBKaXJpIE1lbGljaG5hIGFuZCBKZXJvbWUgTGFjb3N0ZS4gCm8gIERCQ1AtMjI4OiAgQWRkZWQgc3VwcG9ydCBmb3IgcG9vbGluZyBtYW5hZ2VkIGNvbm5lY3Rpb25zLiBUaGFua3MgdG8gRGFpbiBTdW5kc3Ryb20uIApvICBEQkNQLTIzMDogIEFkZGVkIEJhc2ljTWFuYWdlZERhdGFTb3VyY2UsIGV4dGVuZGluZyBCYXNpY0RhdGFTb3VyY2UuCiAgICAgICAgQWxzbyBpbXByb3ZlZCBleHRlbnNpYmlsaXR5IG9mIEJhc2ljRGF0YVNvdXJjZSBieSBlbmNhcHN1bGF0aW5nCiAgICAgICAgbWV0aG9kcyB0byBjcmVhdGUgb2JqZWN0IHBvb2wsIGNvbm5lY3Rpb24gZmFjdG9yeSBhbmQgZGF0YXNvdXJjZQogICAgICAgIGluc3RhbmNlIHByZXZpb3VzbHkgZW1iZWRkZWQgaW4gY3JlYXRlRGF0YVNvdXJjZS4gVGhhbmtzIHRvIERhaW4gU3VuZHN0cm9tLiAKCkZpeGVkIEJ1Z3M6Cm8gIERCQ1AtMzIwOiAgRWxpbWluYXRlZCBwb29sS2V5cyBjYWNoZSBmcm9tIFBlclVzZXJQb29sRGF0YVNvdXJjZS4gCm8gIERCQ1AtMzIxOiAgRWxpbWluYXRlZCB1c2VyS2V5cyBMUlVNYXAgY2FjaGUgZnJvbSBTaGFyZWRQb29sRGF0YVNvdXJjZS4gCm8gIERCQ1AtMzE5OiAgTWFkZSBwcml2YXRlIGZpZWxkcyBmaW5hbCB3aGVyZSBwb3NzaWJsZS4gVGhhbmtzIHRvIFNlYmFzdGlhbiBCYXpsZXkuIApvICBEQkNQLTMxODogIFBlclVzZXJQb29sRGF0YVNvdXJjZS5nZXRQb29sZWRDb25uZWN0aW9uQW5kSW5mbyBtdWx0aS10aHJlYWRpbmcgYnVnLiBUaGFua3MgdG8gU2ViYXN0aWFuIEJhemxleS4gCm8gIERCQ1AtMzE1OiAgUmVtb3ZlIHRocm93cyBjbGF1c2UgZnJvbSBtZXRob2QgdGhhdCBkb2VzIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIFRoYW5rcyB0byBTZWJhc3RpYW4gQmF6bGV5LiAKbyAgREJDUC0zMTM6ICBSZW1vdmUgY29kZSB0aGF0IGNhdGNoZXMgYW5kIGlnbm9yZXMgRXhjZXB0aW9ucyB3aGVuIGNhbGxpbmcKICAgICAgICBQb29sZWRDb25uZWN0aW9uLnJlbW92ZUNvbm5lY3Rpb25FdmVudExpc3RlbmVyKENvbm5lY3Rpb25FdmVudExpc3RlbmVyKQogICAgICAgIGFzIHRoZSBtZXRob2QgZG9lcyBub3QgdGhyb3cgYW55IEV4Y2VwdGlvbnMuIFRoYW5rcyB0byBTZWJhc3RpYW4gQmF6bGV5LiAKbyAgREJDUC0zMTY6ICBSZW1vdmUgaW1wb3NzaWJsZSBudWxsIGNoZWNrLiBUaGFua3MgdG8gU2ViYXN0aWFuIEJhemxleS4gCm8gIERCQ1AtMzAzOiAgRW5zdXJlIFN0YXRlbWVudC5nZXRHZW5lcmF0ZWRLZXlzKCkgd29ya3MgY29ycmVjdGx5IHdpdGggdGhlIENQRFMKICAgICAgICBhZGFwdGVyLiBUaGFua3MgdG8gRGF2ZSBPeGxleS4gCm8gIERCQ1AtMzAyOiAgUmVtb3ZlZCBpbmNvcnJlY3RseSBhZHZlcnRpc2VkIENsYXNzTm90Rm91bmRFeGNlcHRpb24gZnJvbQogICAgICAgIEpPQ0xDb250ZW50SGFuZGxlci5Db25zdHJ1Y3RvckRldGFpbHMuY3JlYXRlT2JqZWN0KCkuIFRoYW5rcyB0byBTZWJhc3RpYW4gQmF6bGV5LiAKbyAgREJDUC04OiAgSGFuZGxlIHVzZXIgcGFzc3dvcmQgY2hhbmdlcyBmb3IgSW5zdGFuY2VLZXlEYXRhU291cmNlcy4gCm8gIERCQ1AtMjk0OiAgQWRkZWQgUG9vbGFibGVNYW5hZ2VkQ29ubmVjdGlvbiBhbmQgUG9vbGFibGVNYW5hZ2VkQ29ubmVjdGlvbkZhY3Rvcnkgc28gdGhhdAogICAgICAgIHBvb2xlZCBtYW5hZ2VkIGNvbm5lY3Rpb25zIGNhbiB1bnJlZ2lzdGVyIHRoZW1zZWx2ZXMgZnJvbSB0cmFuc2FjdGlvbiByZWdpc3RyaWVzLAogICAgICAgIGF2b2lkaW5nIHJlc291cmNlIGxlYWtzLiBUaGFua3MgdG8gUGhpbGlwcGUgTW91YXdhZC4gCm8gIERCQ1AtMjEyOiAgUG9vbGFibGVDb25uZWN0aW9uRmFjdG9yeS5tYWtlT2JqZWN0KCkgaXMgbm8gbG9uZ2VyIHN5bmNocm9uaXplZC4gVGhpcwogICAgICAgIHByb3ZpZGVzIGltcHJvdmVkIHJlc3BvbnNlIHRpbWVzIHdoZW4gbG9hZCBzcGlrZXMgYXQgdGhlIGNvc3Qgb2YgYQogICAgICAgIGZhc3RlciByaXNlIGluIGRhdGFiYXNlIHNlcnZlciBsb2FkLiBUaGlzIGNoYW5nZSB3YXMgbWFkZSBhcyBhIHBhcnRpYWwKICAgICAgICBmaXggZm9yIERCQ1AtMjEyLiAgVGhlIHN5bmNocm9uaXphdGlvbiBjaGFuZ2VzIGluIENvbW1vbnMgUG9vbCAxLjUgY29tcGxldGUKICAgICAgICB0aGUgZml4IGZvciB0aGlzIGlzc3VlLiAKbyAgREJDUC0yNDI6ICBSZXZlcnRlZCBEZWxlZ2F0aW5nQ29ubmVjdGlvbiBjbG9zZSB0byAxLjIuMiB2ZXJzaW9uIHRvIGVuc3VyZQogICAgICAgIG9wZW4gc3RhdGVtZW50cyBhcmUgY2xvc2VkIGJlZm9yZSB0aGUgdW5kZXJseWluZyBjb25uZWN0aW9uIGlzIGNsb3NlZC4gCm8gIERCQ1AtMjM1OiAgUmVmYWN0b3IgRGVsZWdhdGluZ0Nvbm5lY3Rpb24gYW5kIE1hbmFnZWRDb25uZWN0aW9uIGVuYWJsZSBvdmVycmlkZGVuCiAgICAgICAgZXF1YWxzKCkgYW5kIGhhc2hjb2RlKCkgdG8gd29yayBjb3JyZWN0bHkuIApvICBEQkNQLTIxNTogIE1vZGlmaWVkIEJhc2ljRGF0YVNvdXJjZUZhY3RvcnkgdG8gY29tcGxldGUgaW5pdGlhbGl6YXRpb24gb2YgdGhlIHBvb2wKICAgICAgICBieSBjcmVhdGluZyBpbml0aWFsU2l6ZSBjb25uZWN0aW9ucyByYXRoZXIgdGhhbiBsZWF2aW5nIHRoaXMgdG8gbGF6eQogICAgICAgIGluaXRpYWxpemF0aW9uIHdoZW4gdGhlIHBvb2wgaXMgdXNlZC4gCm8gIERCQ1AtMjUzOiAgRWxpbWluYXRlZCBtYXNrZWQgX3N0bXQgZmllbGQgaW4gZGVzY2VuZGVudHMgb2YgRGVsZWdhdGluZ1N0YXRlbWVudC4gCm8gIERCQ1AtMTkxOiAgTW9kaWZpZWQgREJDUCBzb3VyY2VzIHRvIHN1cHBvcnQgY29tcGlsYXRpb24gdW5kZXIgSkRLIDEuNC0xLjYKICAgICAgICB1c2luZyBBbnQgZmxhZ3MgdG8gZG8gY29uZGl0aW9uYWwgY29tcGlsYXRpb24uIFRoYW5rcyB0byBNaWNoYWVsIEhldWVyIGFuZCBKLiBEYXZpZCBCZXV0ZWwuIApvICBEQkNQLTI3MjogIEFkZGVkIGEgc3RhdGljIGluaXRpYWxpemVyIHRvIEJhc2ljRGF0YXNvdXJjZSB0aGF0IGNhbGxzCiAgICAgICAgRHJpdmVyTWFuYWdlci5nZXREcml2ZXJzKCkgdG8gZm9yY2UgaW5pdGlhbGl6YXRpb24gYmVmb3JlIHdlIGV2ZXIgZG8KICAgICAgICBhbnl0aGluZyB0aGF0IG1pZ2h0IHVzZSBDbGFzcy5mb3JOYW1lKCkgdG8gbG9hZCAoYW5kIHJlZ2lzdGVyKSBhIEpEQkMKICAgICAgICBkcml2ZXIuIApvICBEQkNQLTQ6ICBFbGltaW5hdGVkIGRpcmVjdCBTeXN0ZW0ub3V0IGNhbGxzIGluIEFiYW5kb25lZFRyYWNlLiAKbyAgREJDUC0yNjQ6ICBNb2RpZmllZCBEZWxlZ2F0aW5nU3RhdG1lbnQgY2xvc2UgdG8gY2xlYXIgb3BlbiBiYXRjaGVzLiAKbyAgREJDUC0yNTU6ICBFbGltaW5hdGVkIHVudXNlZCBwcml2YXRlICJwYXJlbnQiIGZpZWxkIGluIEFiYW5kb25lZFRyYWNlLiAKbyAgREJDUC0yNzM6ICBGaXhlZCBlcnJvcnMgaGFuZGxpbmcgYm9vbGVhbi12YWx1ZWQgUmVmZXJlbmNlIHByb3BlcnRpZXMgaW4gCiAgICAgICAgSW5zdGFuY2VLZXlPYmplY3RGYWN0b3J5LCBEcml2ZXJBZGFwdGVyQ1BEUyB0aGF0IHdlcmUgY2F1c2luZyAKICAgICAgICB0ZXN0T25Cb3Jyb3cgYW5kIHBvb2xQcmVwYXJlZFN0YXRlbWVudHMgcHJvcGVydGllcyB0byBiZSBpbmNvcnJlY3RseQogICAgICAgIHNldCB3aGVuIGNyZWF0aW5nIG9iamVjdHMgZnJvbSBqYXZheC5uYW1pbmcuUmVmZXJlbmNlIGluc3RhbmNlcy4gVGhhbmtzIHRvIE1hcmsgTGluLiAKbyAgREJDUC0yNzE6ICBNYWRlIHByaXZhdGUgaW5zdGFuY2UgZmllbGRzIG9mIEFiYW5kb25lZFRyYWNlIHZvbGF0aWxlIChwYXJlbnQsCiAgICAgICAgY3JlYXRlZEJ5LCBsYXN0VXNlZCwgY3JlYXRlZFRpbWUpIG9yIGZpbmFsICh0cmFjZSkuIFRoYW5rcyB0byBTZWJhc3RpYW4gQmF6bGV5LiAKbyAgREJDUC0yNzA6ICBOYXJyb3dlZCBzeW5jaHJvbml6YXRpb24gaW4gQWJhbmRvbmVkVHJhY2UgdG8gcmVzb2x2ZSBhbiBFdmljdG9yIGRlYWRsb2NrLiBUaGFua3MgdG8gRmlsaXAgSGFuaWsuIApvICBEQkNQLTIxODogIENvcnJlY3RlZCBKYXZhZG9jIHRvIHN0YXRlIHRoYXQgZ2V0TG9naW5UaW1lb3V0IGFuZCBzZXRMb2dpblRpbWVvdXQgYXJlCiAgICAgICAgTk9UIHN1cHBvcnRlZCBieSBCYXNpY0RhdGFTb3VyY2UuIApvICBEQkNQLTIyMTogIEJhc2ljRGF0YVNvdXJjZS5jbG9zZSgpIG5vdyBwZXJtYW5lbnRseSBtYXJrcyB0aGUgZGF0YSBzb3VyY2UgYXMgY2xvc2VkLAogICAgICAgIGFuZCBubyBuZXcgY29ubmVjdGlvbnMgY2FuIGJlIG9idGFpbmVkIGZyb20gdGhlIGRhdGEgc291cmNlLiBBdCBjbG9zZSBhbGwKICAgICAgICBpZGxlIGNvbm5lY3Rpb25zIGFyZSBkZXN0cm95ZWQgYW5kIHRoZSBtZXRob2QgcmV0dXJucy4gIEFzIHRoZSByZW1haW5pbmcKICAgICAgICBhY3RpdmUgY29ubmVjdGlvbnMgYXJlIGNsb3NlZCwgdGhleSBhcmUgZGVzdHJveWVkLiAKbyAgREJDUC0yNDE6ICBFbGltaW5hdGVkIHBvdGVudGlhbCBzb3VyY2VzIG9mIE51bGxQb2ludGVyRXhjZXB0aW9ucyBpbiAKICAgICAgICBQb29saW5nQ29ubmVjdGlvbi4gCm8gIERCQ1AtMjE2OiAgSW1wcm92ZWQgZXJyb3IgcmVjb3ZlcnkgYW5kIGxpc3RlbmVyIGNsZWFudXAgaW4gCiAgICAgICAgS2V5ZWRDUERTQ29ubmVjdGlvbkZhY3RvcnkuIFN1YnN0aXR1dGVkIGNhbGxzIHRvIGRlc3Ryb3lPYmplY3Qgd2l0aAogICAgICAgICBfcG9vbC5pbnZhbGlkYXRlT2JqZWN0IG9uIGVycm9yIHRvIGVuc3VyZSBwb29sIGFjdGl2ZSBjb3VudCBpcwogICAgICAgIGRlY3JlbWVudGVkIG9uIGVycm9yIGV2ZW50cy4gRW5zdXJlZCB0aGF0IGV2ZW50cyBmcm9tIGNsb3NlZCBvciBpbnZhbGlkCiAgICAgICAgY29ubmVjdGlvbnMgYXJlIGlnbm9yZWQgYW5kIGxpc3RlbmVycyBhcmUgY2xlYW5lZCB1cC4gVGhhbmtzIHRvIE1hcmNvcyBTYW56LiAKbyAgREJDUC0yNDU6ICBGaXhlZCBlcnJvciBpbiBTaGFyZWRQb29sRGF0YVNvdXJjZSBjYXVzaW5nIGluY29ycmVjdCBwYXNzd29yZHMgdG8gYmUgCiAgICAgICAgc3RvcmVkIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucy4gVGhhbmtzIHRvIE1pY2hhZWwgRHJlY2hzZWwuIApvICBEQkNQLTIzNzogIEFkZGVkIGV4Y2VwdGlvbiBoYW5kbGVyIHRvIGVuc3VyZSB0aGF0IFBvb2xlZENvbm5lY3Rpb25zIGFyZSBub3QKICAgICAgICBvcnBoYW5lZCB3aGVuIGFuIGV4Y2VwdGlvbiBvY2N1cnMgaW4gc2V0VXBEZWZhdWx0cyBvciBjbGVhcldhcm5pbmdzIGluIAogICAgICAgIEludGFuY2VLZXlEYXRhU291cmNlLmdldENvbm5lY3Rpb24uIFRoYW5rcyB0byBPbGl2ZXIgTWF0ei4gCm8gIERCQ1AtMjUyOiAgTWFkZSBnZXRQb29sIHN5bmNocm9uaXplZCBpbiBQb29sYWJsZUNvbm5lY3Rpb25GYWN0b3J5LgogICAgICAgIEZpeGVzIGluY29uc2lzdGVudCBzeW5jaHJvbml6YXRpb24gYWNjZXNzaW5nIF9wb29sLiBUaGFua3MgdG8gRmluZEJ1Z3MuIApvICBEQkNQLTI1MjogIEZpeGVkIGluY29uc2lzdGVudCBzeW5jaHJvbml6YXRpb24gb24gX3JvbGxiYWNrQWZ0ZXJWYWxpZGF0aW9uLAogICAgICAgIF92YWxpZGF0aW9uUXVlcnkgYW5kIF9wb29sIGluIENQRFNDb25uZWN0aW9uRmFjdG9yeSBhbmQgCiAgICAgICAgS2V5ZWRDUERTQ29ubmVjdGlvbkZhY3RvcnkgYnkgbWFraW5nIHRoZSBmaXJzdCB0d28gdm9sYXRpbGUgYW5kIG1ha2luZwogICAgICAgIGJvdGggZ2V0dGVyIGFuZCBzZXR0ZXIgZm9yIF9wb29sIHN5bmNocm9uaXplZC4gVGhhbmtzIHRvIEZpbmRCdWdzLiAKCkNoYW5nZXM6Cm8gIERCQ1AtMzE0OiAgUmVuYW1lZCB2YXJpYWJsZXMgd2l0aCBkdXBsaWNhdGUgbmFtZXMgaW4gZGlmZmVyZW50IHNjb3Blcy4gVGhhbmtzIHRvIFNlYmFzdGlhbiBCYXpsZXkuIApvICBEQkNQLTMxMjogIENsYXJpZmllZCBqYXZhZG9jIGZvciBCYXNpY0RhdGFTb3VyY2UgY2xvc2UoKSBtZXRob2QuIFRoYW5rcyB0byBHbGVuIE1henphLiAKbyAgREJDUC0zMDU6ICBVc2UgYW4gQVBJIHNwZWNpZmljIGV4Y2VwdGlvbiBmb3IgbG9nZ2luZyBhYmFuZG9uZWQgb2JqZWN0cyB0byBtYWtlCiAgICAgICAgc2Nhbm5pbmcgdGhlIGxvZ3MgZm9yIHRoZXNlIGV4Y2VwdGlvbnMgc2ltcGxlciBhbmQgdG8gcHJvdmlkZSBhIGJldHRlcgogICAgICAgIG1lc3NhZ2UgdGhhdCBpbmNsdWRlcyB0aGUgY3JlYXRpb24gdGltZSBvZiB0aGUgYWJhbmRvbmVkIG9iamVjdC4gVGhhbmtzIHRvIENocmlzdG9waGVyIFNjaHVsdHouIApvICBEQkNQLTIwMzogIE1ha2UgdGhlIGNsYXNzIGxvYWRlciB1c2VkIHRvIGxvYWQgdGhlIEpEQkMgZHJpdmVyIGNvbmZpZ3VyYWJsZSBmb3IgdGhlCiAgICAgICAgQmFzaWNEYXRhc291cmNlLiBUaGFua3MgdG8gTWFyayBHcmFuZC4gCm8gIERCQ1AtMjg5OiAgTWFkZSBYQURhdGFTb3VyY2UgY29uZmlndXJhYmxlIGluIEJhc2ljTWFuYWdlZERhdGFTb3VyY2UuIFRoYW5rcyB0byBNYXJjIEthbm5lZ2ll32VyLiAKbyAgREJDUC0yNzY6ICBBZGRlZCBjb25uZWN0aW9uUHJvcGVydGllcyBwcm9wZXJ0eSB0byBEcml2ZXJBZGFwdGVyQ1BEUy4gCm8gIERCQ1AtMjY1OiAgQWRkIGEgRGVsZWdhdGluZ0RhdGFiYXNlTWV0YURhdGEgdG8gdHJhY2sgUmVzdWx0U2V0cyByZXR1cm5lZCBmcm9tCiAgICAgICAgRGF0YWJhc2VNZXRhRGF0YSBvYmplY3RzLiAKbyAgREJDUC0yMTE6ICBBZGRlZCBNYXZlbiAyIHBvbS54bWwuIFJlbW92ZWQgYSBibG9jayBvZiBjb2RlIGZyb20gVGVzdEpPQ0xlZCB0aGF0IHNldAogICAgICAgIHRoZSBYZXJjZXMgcGFyc2VyIG1hbnVhbGx5LiBUaGlzIHdhcyB0byBzdXBwb3J0IGVhcmx5IEpES3MuIFRoZSAxLjMKICAgICAgICB2ZXJzaW9uIG9mIERCQ1AgcmVxdWlyZXMgSkRLIDEuNCsuIApvICBEQkNQLTIzMzogIENoYW5nZWQgYmVoYXZpb3IgdG8gYWxsb3cgQ29ubmVjdGlvbiwgU3RhdGVtZW50LCBQcmVwYXJlZFN0YXRlbWVudCwKICAgICAgICBDYWxsYWJsZVN0YXRlbWVudCBhbmQgUmVzdWx0U2V0IHRvIGJlIGNsb3NlZCBtdWx0aXBsZSB0aW1lcy4gVGhlIGZpcnN0CiAgICAgICAgdGltZSBjbG9zZSBpcyBjYWxsZWQgdGhlIHJlc291cmNlIGlzIGNsb3NlZCBhbmQgYW55IHN1YnNlcXVlbnQgY2FsbHMKICAgICAgICBoYXZlIG5vIGVmZmVjdC4gVGhpcyBiZWhhdmlvciBpcyByZXF1aXJlZCBhcyBwZXIgdGhlIEphdmFEb2NzIGZvciB0aGVzZQogICAgICAgIGNsYXNzZXMuIEFsc28gYWRkZWQgdGVzdHMgZm9yIGNsb3NpbmcgYWxsIHR5cGVzIG11bHRpcGxlIHRpbWVzIGFuZAogICAgICAgIHVwZGF0ZWQgYW55IHRlc3RzIHRoYXQgaW5jb3JyZWN0bHkgYXNzZXJ0IHRoYXQgYSByZXNvdXJjZSBjYW4gbm90IGJlCiAgICAgICAgY2xvc2VkIG1vcmUgdGhlbiBvbmNlLiAgRml4ZXMgREJDUC0zLCBEQkNQLTUsIERCQ1AtMjMgYW5kIERCQ1AtMTM0LiBUaGFua3MgdG8gRGFpbiBTdW5kc3Ryb20uIApvICBEQkNQLTExOiAgTW9kaWZpZWQgUG9vbGluZ0RhdGFTb3VyY2UsIFBvb2xpbmdEcml2ZXIgYW5kIERlbGVnYXRpbmdTdGF0ZW1lbnQgdG8KICAgICAgICBhc3N1cmUgdGhhdCBhbGwgcmV0dXJuZWQgU3RhdGVtZW50cywgUHJlcGFyZWRTdGF0ZW1lbnRzLCAKICAgICAgICBDYWxsYWJsZVN0YXRlbWVudHMgYW5kIFJlc3VsdFNldHMgYXJlIHdyYXBwZWQgd2l0aCBhIGRlbGVnYXRpbmcgb2JqZWN0LAogICAgICAgIHdoaWNoIGFscmVhZHkgcHJvcGVybHkgaGFuZGxlIHRoZSBiYWNrIHBvaW50ZXJzIGZvciBDb25uZWN0aW9uIGFuZAogICAgICAgIFN0YXRlbWVudC4gIEFsc28gYWRkZWQgdGVzdHMgdG8gdG8gYXNzdXJlIHRoYXQgdGhlICpzYW1lKiBvYmplY3QgdXNlZCAKICAgICAgICB0byBjcmVhdGUgdGhlIHN0YXRlbWVudCBvciByZXN1bHQgc2V0IGlzIHJldHVybmVkICBmcm9tIGVpdGhlciAKICAgICAgICBnZXRDb25uZWN0aW9uKCkgb3IgZ2V0U3RhdGVtZW50KCkuIFRoYW5rcyB0byBEYWluIFN1bmRzdHJvbS4gCm8gIERCQ1AtMTQzOiAgU1FMTmVzdGVkRXhjZXB0aW9uIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVwbGFjZWQgaW4gREJDUCAyLjAgd2l0aAogICAgICAgIFNRTEV4Y2VwdGlvbiBhbmQgc3RhbmRhcmQgSmF2YSBleGNlcHRpb24gY2hhaW5pbmcuIAoKIApGb3IgY29tcGxldGUgaW5mb3JtYXRpb24gb24gY29tbW9ucy1kYmNwLCBpbmNsdWRpbmcgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byBzdWJtaXQgYnVnIHJlcG9ydHMsCnBhdGNoZXMsIG9yIHN1Z2dlc3Rpb25zIGZvciBpbXByb3ZlbWVudCwgc2VlIHRoZSBjb21tb25zLWRiY3Agd2Vic2l0ZToKCmh0dHA6Ly9jb21tb25zLmFwYWNoZS5vcmcvZGJjcC8KCg==