CSoqKiBUaGlzIGZpbGUgaXMgb2Jzb2xldGUuIENoYW5nZXMgYXJlIGxpc3RlZCBpbiB0aGUgbWFpbgoJKioqIENoYW5nZUxvZyBub3cuIFBsZWFzZSBkbyBub3QgZWRpdC4KCkZyaSBKdW4gMTIgMjM6Mjk6NDQgMTk5OCAgTWFyY2VsIEJhdXIgIDxtYmF1ckBnMjYuZXRoei5jaD4KICAgICAgICAtIEZpeGVkIEdldERhdGVGb3JtYXQoKS0+R2V0VGltZUZvcm1hdCgpIGZvciBsb2NhbGUgdGltZS4KCk1vbiBNYXkgMjUgMTQ6MzA6MDAgMTk5OCAgSGVucmlrIE9sc2VuIDxoZW5yaWtAaWFlc3RlLmRrPgogICAgICAgICogW0RhLnJjXQogICAgICAgIC0gQWRkZWQgRGFuaXNoIGxhbmd1YWdlIHN1cHBvcnQuCgpGcmkgTWF5IDE1IDIzOjU5OjIyIDE5OTggIE1hcmNlbCBCYXVyIDxtYmF1ckBnMjYuZXRoei5jaD4KICAgICAgICAtIERhdGUvVGltZSBub3cgdXNlcyBsb2NhbGUtc3BlY2lmaWMgZm9ybWF0cwogICAgICAgIC0gTGFuZ3VhZ2Utc3BlY2lmaWMgd2luZG93IGNhcHRpb24sIGRpc3BsYXlzIGZpbGUgYmVpbmcgZWRpdGVkLgogICAgICAgIC0gU3RhcnRlZCB3aXRoIHBhcnNpbmcgb2YgY29tbWFuZCBsaW5lIHNldHRpbmdzCiAgICAgICAgLSBTdGFydGVkIHdpdGggRG9PcGVuRmlsZSwgRG9DbG9zZUZpbGUsIERvU2F2ZUZpbGUgbG9naWNzCiAgICAgICAgLSBQcm9tcHQgdXNlciB0byBzYXZlIHNldHRpbmdzIHdoZW4gY2xvc2luZyBhIGZpbGUKICAgICAgICAgIC0+IEludHJvZHVjZWQgYSBuZXcgbWVzc2FnZSBib3ggKG5vdCB5ZXQgZmluaXNoZWQpCiAgICAgICAgLSBGaXhlZCBtaW5vciBmZWF0dXJlcyAobWlzc2luZyBJRFMgaW4gbWFpbi5oLCAuLi4pCgpTdW4gTWFyIDI5IDIwOjI5OjQxIDE5OTggIExhdXJlbnQgQnVmZmxlciA8bGF1cmVudEBibHVld2luLmNoPgogICAgICAgICogW0ZyLnJjXQogICAgICAgIC0gQWRkZWQgRnJlbmNoIGxhbmd1YWdlIHN1cHBvcnQuCgpGcmkgRmViIDI3IDIxOjAzOjM3IDE5OTggIEthcmwgQmFja3N0cvZtIDxrYXJsX2JAZ2VvY2l0aWVzLmNvbT4KICAgICAgICAtIEZpeGVkIHNvbWUgbWlub3IgZmVhdHVyZXMuCgpTYXQgRmViIDE0IDE3OjQyOjI5IDE5OTggIEthcmwgQmFja3N0cvZtIDxrYXJsX2JAZ2VvY2l0aWVzLmNvbT4KICAgICAgICAqIE5FVyBbbGFuZ3VhZ2UuY10gW2xhbmd1YWdlLmhdCiAgICAgICAgLSBUYWtlcyBjYXJlIG9mIGFsbCBsYW5ndWFnZSByZWxhdGVkIHN0dWZmLgogICAgICAgIC0gQSBuZXcgW3Byb2dyYW1zXSBpbiAud2luZXJjIGlzIGluIHVzZS4KClR1ZSBGZWIgMTAgMjM6MzQ6MDggMTk5OCAgTWFyY2VsIEJhdXIgPG1iYXVyQGcyNi5ldGh6LmNoPgogICAgICAgIC0gRml4ZWQgYnJva2VuIGxhbmd1YWdlIG1lbnVzCgpGcmkgRmViIDA2IDIzLjU0LjM1IDE5OTggIEthcmwgQmFja3N0cvZtIDxrYXJsX2JAZ2VvY2l0aWVzLmNvbT4KICAgICAgICAqIFttYWluLmNdIFttYWluLmhdIFtub3RlcGFkLnJjXQogICAgICAgIC0gRml4ZWQgbGFuZ3VhZ2Ugc3VwcG9ydCBmb3IgbWVudXMuICAgICAKICAgICAgICAqIE5FVyBbZGlhbG9nLmNdIFtkaWFsb2cuaF0KICAgICAgICAtIE1vdmVkIGFsbCBtZW51IGFuZCBkaWFsb2cgcmVsYXRlZCBzdHVmZiBoZXJlLgoKU3VuIEphbiAxOCAyMzowNTowNCAxOTk4ICBLYXJsIEJhY2tzdHL2bSA8a2FybF9iQGdlb2NpdGllcy5jb20+CiAgICAgICAgKiBbU3cucmNdCiAgICAgICAgLSBBZGRlZC91cGRhdGVkIFN3ZWRpc2ggbGFuZ3VhZ2Ugc3VwcG9ydC4KClR1ZSBEZWMgMjMgMjM6MzU6MDQgMTk5NyAgTWFyY2VsIEJhdXIgPG1iYXVyQGcyNi5ldGh6LmNoPgogICAgICAgIC0gRml4ZWQgbG90cyBvZiBidWdzIHcvIHJlc291cmNlcyBpbiAqLnJjCiAgICAgICAgLSBtb3ZlZCBbbm90ZXBhZC5jXSBpbnRvIFttYWluLmNdCiAgICAgICAgLSBtb3ZlZCBbbm90ZXBhZC5oXSBpbnRvIFttYWluLmhdCiAgICAgICAKRnJpIERlYyAwNSAyMDo1MTo1NSAxOTk3ICBNYXJjZWwgQmF1ciA8bWJhdXJAZzI2LmV0aHouY2g+CiAgICAgICAgKiBbbm90ZXBhZC5jXSBbbm90ZXBhZC5oXSBbbm90ZXBhZC5yY10gW0VuLnJjXSBbRGUucmNdCiAgICAgICAgICBbbGljZW5zZS5jXSBbbGljZW5zZS5oXSBbTGljZW5zZV9Fbi5jXQogICAgICAgICAgW1JFQURNRV0gW1RPRE9dIFtDaGFuZ2VMb2ddCiAgICAgICAgLSBPcmlnaW5hbHMgYnkgTWFyY2VsIEJhdXIKCgo=