CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVCBJIE0gRSBMIEkgTiBFCgoKICBXaGF0IGlzIHRoaXM/CiAgLS0tLS0tLS0tLS0tLQoKICBUaW1lbGluZSBpcyBhIERIVE1MLWJhc2VkIEFKQVh5IHRpbWVsaW5lLgoKCiAgUnVubmluZyBUaW1lbGluZQogIC0tLS0tLS0tLS0tLS0tLS0KCiAgVGltZWxpbmUgY29uc2lzdHMgb2Ygc3RhdGljIHJlc291cmNlcywgSmF2YXNjcmlwdCBsaWJyYXJpZXMsCiAgaW1hZ2UgZmlsZXMgYW5kIGNzcyBmaWxlcy4gQWxsIHlvdSByZWFsbHkgbmVlZCBpcyB0bwogIHNlcnZlIHRob3NlIHJlc291cmNlcyBvZmYgYSB3ZWIgc2VydmVyLiBBbnkgd2ViIHNlcnZlciB3aWxsIGRvLgoKICBUd28gd2F5cyB0byBhY2Nlc3MgdGhlIGxpYnJhcnkKICAKICAxLiBVbnppcCBlaXRoZXIgdGltZWxpbmVfc291cmNlLnppcCBvciB0aW1lbGluZV9saWJyYXJpZXMuemlwIGludG8KICAgICBhIGRpcmVjdG9yeSBzZXJ2ZWQgYnkgYSB3ZWJzZXJ2ZXIuCiAgICAgCiAgICAgdGltZWxpbmVfc291cmNlLnppcCBpbmNsdWRlcyBjb21wbGV0ZSBzb3VyY2UgYW5kIGV4YW1wbGUgZmlsZXMuIFVzZSB5b3VyCiAgICAgYnJvd3NlciB0byBzZWUgdGhlIGV4YW1wbGVzIGF0CiAgICAgLi4uL3RpbWVsaW5lX2RpcmVjdG9yeS9zcmMvd2ViYXBwCiAgICAgCiAgICAgdGltZWxpbmVfbGlicmFyaWVzLnppcCBpcyB0aGUgbWluaW11bSBpbnN0YWxsIG9mIHRoZSBidW5kbGVkIGpzIGxpYnJhcmllcywKICAgICBjc3MgYW5kIGltYWdlIGZpbGVzCiAgICAgCiAgMi4gTm8gd2ViIHNlcnZlcj8gVGhlIHRpbWVsaW5lIHByb2plY3QgaW5jbHVkZXMgYSBzbWFsbCB3ZWJzZXJ2ZXIgY2FsbGVkCiAgICAgSmV0dHkgKHVzZSB0aGUgdGltZWxpbmVfc291cmNlLnppcCBmaWxlKQogICAgIGEpIGluc3RhbGwgdGhlIEphdmEgcnVudGltZSBmcm9tIFN1bgogICAgIGIpIHVuemlwIHRpbWVsaW5lX3NvdXJjZS56aXAgdG8gYW4gaW5zdGFsbCBkaXJlY3RvcnkKICAgICBjKSBPcGVuIGEgc2hlbGwgb3IgY29tbWFuZCBwcm9tcHQgdG8gdGhlIGluc3RhbGwgZGlyZWN0b3J5IGFuZCB0eXBlOgogIAogICAgIFt3aW4zMl0+IHJ1bgogICAgIFt1bml4L21hY29zeF0+IGNobW9kICt4IHJ1bjsgLi9ydW4KCiAgICAgYW5kIHRoZW4gcG9pbnQgeW91ciBicm93c2VyIHRvCiAgCiAgICAgaHR0cDovLzEyNy4wLjAuMTo5OTk5L3RpbWVsaW5lLwogIAoKICBIb3cgZG8gSSBjdXN0b21pemUgVGltZWxpbmU/CiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICBSZWZlciB0byB0aGUgVGltZWxpbmUgd2ViIHNpdGUgYXQgCiAgaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL3NpbWlsZS13aWRnZXRzLwoKICAKICBNYWlsaW5nIExpc3QgYW5kIEZvcnVtCiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIAogIEpvaW4gdGhlIGNvbW11bml0eSBieSBqb2luaW5nIHRoZSBHb29nbGUgR3JvdXAgU0lNSUxFIFdpZGdldHMKICBodHRwOi8vZ3JvdXBzLmdvb2dsZS5jb20vZ3JvdXAvc2ltaWxlLXdpZGdldHMvCgoKICBMaWNlbnNpbmcgYW5kIGxlZ2FsIGlzc3VlcwogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogIFRpbWVsaW5lIGlzIG9wZW4gc291cmNlIHNvZnR3YXJlIGFuZCBhcmUgbGljZW5zZWQgdW5kZXIgdGhlIEJTRCBsaWNlbnNlCiAgbG9jYXRlZCBpbiB0aGUgTElDRU5TRS50eHQgZmlsZSBsb2NhdGVkIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGlzIHZlcnkgZmlsZQogIHlvdSBhcmUgcmVhZGluZy4KCgoKICBDcmVkaXRzCiAgLS0tLS0tLQoKICBUaGlzIHNvZnR3YXJlIHdhcyBjcmVhdGVkIGJ5IHRoZSBTSU1JTEUgcHJvamVjdCBhbmQgb3JpZ2luYWxseSB3cml0dGVuCiAgYnkgdGhlIFNJTUlMRSBkZXZlbG9wbWVudCB0ZWFtIChpbiBhbHBoYWJldGljYWwgb3JkZXIpOgoKICAgLSBEYXZpZCBGcmFu529pcyBIdXluaCA8ZGZodXluaCBhdCBjc2FpbC5taXQuZWR1PgoKCgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0gbyAtLS0KCgogIFRoYW5rcyBmb3IgeW91ciBpbnRlcmVzdC4KCgoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIFNJTUlMRSBQcm9qZWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly9zaW1pbGUubWl0LmVkdS8KCg==