From xemacs-m  Sat Feb 22 16:19:34 1997
Received: from crystal.WonderWorks.COM (crystal.WonderWorks.com [192.203.206.1])
	by xemacs.org (8.8.5/8.8.5) with ESMTP id QAA07798
	for <xemacs-beta@xemacs.org>; Sat, 22 Feb 1997 16:19:24 -0600 (CST)
Received: by crystal.WonderWorks.COM 
	id QQceaz16811; Sat, 22 Feb 1997 17:19:24 -0500 (EST)
Date: Sat, 22 Feb 1997 17:19:24 -0500 (EST)
Message-Id: <QQceaz16811.199702222219@crystal.WonderWorks.COM>
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="XS+MzO/ZHeKYe5P50yTvKWk84W8MKEniWluKztj7"
Content-Transfer-Encoding: 7bit
From: Kyle Jones <kyle_jones@wonderworks.com>
To: xemacs-beta@xemacs.org
Subject: itimer.el 1.01


--XS+MzO/ZHeKYe5P50yTvKWk84W8MKEniWluKztj7
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Here's the updated itimer.el.

Changes from 1.00:

- save match data when running timer functions
- use Emacs' internal timer support as a driver instead of an
  external process if possible.
- allow floats for timeout values
- allow an argument to be passed to the timer function

The auto-save and GC stuff that Jamie put at the bottom of this
file in the distribution is gone.  I moved it to
itimer-autosave.el, which I've also attached.  To keep the status
quo, dump XEmacs with both of these files loaded.  loadup.el will
need to be modified to grab itimer-autosave.  Also the Makefile
will have to know about it also to find the docstrings.


--XS+MzO/ZHeKYe5P50yTvKWk84W8MKEniWluKztj7
Content-Type: application/octet-stream
Content-Description: itimer.el 1.01
Content-Disposition: attachment;
	filename="itimer.el"
Content-Transfer-Encoding: base64

Ozs7IEludGVydmFsIHRpbWVycyBmb3IgR05VIEVtYWNzCjs7OyBDb3B5cmlnaHQgKEMpIDE5
ODgsIDE5OTEsIDE5OTMsIDE5OTcgS3lsZSBFLiBKb25lcwo7OzsKOzs7IFRoaXMgcHJvZ3Jh
bSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k
aWZ5Cjs7OyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo7OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQo7OzsgYW55IGxhdGVy
IHZlcnNpb24uCjs7Owo7OzsgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCjs7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo7OzsgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQo7
OzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KOzs7Cjs7
OyBBIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSBvYnRh
aW5lZCBmcm9tIHRoaXMKOzs7IHByb2dyYW0ncyBhdXRob3IgKHNlbmQgZWxlY3Ryb25pYyBt
YWlsIHRvIGt5bGVAdXVuZXQudXUubmV0KSBvciBmcm9tCjs7OyB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA2NzUgTWFzcyBBdmUsIENhbWJyaWRnZSwgTUEKOzs7IDAy
MTM5LCBVU0EuCjs7Owo7OzsgU2VuZCBidWcgcmVwb3J0cyB0byBreWxlX2pvbmVzQHdvbmRl
cndvcmtzLmNvbQoKKHByb3ZpZGUgJ2l0aW1lcikKCjs7IGBpdGltZXInIGZlYXR1cmUgbWVh
bnMgRW1hY3MtTGlzcCBwcm9ncmFtbWVycyBnZXQ6Cjs7ICAgIGl0aW1lcnAKOzsgICAgaXRp
bWVyLXZhbHVlCjs7ICAgIGl0aW1lci1yZXN0YXJ0Cjs7ICAgIGl0aW1lci1mdW5jdGlvbgo7
OyAgICBpdGltZXItZnVuY3Rpb24tYXJndW1lbnQKOzsgICAgc2V0LWl0aW1lci12YWx1ZQo7
OyAgICBzZXQtaXRpbWVyLXJlc3RhcnQKOzsgICAgc2V0LWl0aW1lci1mdW5jdGlvbgo7OyAg
ICBzZXQtaXRpbWVyLXVzZXMtYXJndW1lbnQKOzsgICAgc2V0LWl0aW1lci1mdW5jdGlvbi1h
cmd1bWVudAo7OyAgICBnZXQtaXRpbWVyCjs7ICAgIHN0YXJ0LWl0aW1lcgo7OyAgICByZWFk
LWl0aW1lcgo7OyAgICBkZWxldGUtaXRpbWVyCjs7Cjs7IEludGVyYWN0aXZlIHVzZXJzIGdl
dCB0aGVzZSBjb21tYW5kczoKOzsgICAgZWRpdC1pdGltZXJzCjs7ICAgIGxpc3QtaXRpbWVy
cwo7OyAgICBzdGFydC1pdGltZXIKOzsKOzsgU2VlIHRoZSBkb2Mgc3RyaW5ncyBvZiB0aGVz
ZSBmdW5jdGlvbnMgZm9yIG1vcmUgaW5mb3JtYXRpb24uCgwKKGRlZnZhciBpdGltZXItdmVy
c2lvbiAiMS4wMSIKICAiVmVyc2lvbiBudW1iZXIgb2YgdGhlIGl0aW1lciBwYWNrYWdlLiIp
CgooZGVmdmFyIGl0aW1lci1saXN0IG5pbAogICJMaXN0IG9mIGFsbCBhY3RpdmUgaXRpbWVy
cy4iKQoKKGRlZnZhciBpdGltZXItcHJvY2VzcyBuaWwKICAiUHJvY2VzcyB0aGF0IGRyaXZl
cyBhbGwgaXRpbWVycywgaWYgYSBzdWJwcm9jZXNzIGlzIGJlaW5nIHVzZWQuIikKCihkZWZ2
YXIgaXRpbWVyLXRpbWVyIG5pbAogICJFbWFjcyBpbnRlcm5hbCB0aW1lciB0aGF0IGRyaXZl
cyB0aGUgaXRpbWVyIHN5c3RlbSwgaWYgYSBzdWJwcm9jZXNzCmlzIG5vdCBiZWluZyB1c2Vk
IHRvIGRyaXZlIHRoZSBzeXN0ZW0uIikKCihkZWZ2YXIgaXRpbWVyLXRpbWVyLWxhc3Qtd2Fr
ZXVwIG5pbAogICJUaGUgdGltZSB0aGUgdGltZXIgZHJpdmVyIGZ1bmN0aW9uIGxhc3QgcmFu
LiIpCgooZGVmdmFyIGl0aW1lci1zaG9ydC1pbnRlcnZhbCAoaWYgKGZlYXR1cmVwICdsaXNw
LWZsb2F0LXR5cGUpIDFlLTMgMSkKICAiSW50ZXJ2YWwgdXNlZCBmb3Igc2NoZWR1bGluZyBh
biBldmVudCBhIHZlcnkgc2hvcnQgdGltZSBpbiB0aGUgZnV0dXJlLgpVc2VkIGludGVybmFs
bHkgdG8gbWFrZSB0aGUgc2NoZWR1bGVyIHdha2UgdXAgZWFybHkuClVuaXQgaXMgc2Vjb25k
cy4iKQoKOzsgVGhpcyB2YWx1ZSBpcyBtYWludGFpbmVkIGludGVybmFsbHk7IGl0IGRvZXMg
bm90IGRldGVybWluZQo7OyBpdGltZXIgZ3JhbnVsYXJpdHkuICBJdGltZXIgZ3JhbnVsYXJp
dHkgaXMgMSBzZWNvbmQgaWYgeW91cgo7OyBFbWFjcyBkb2Vucyd0IHN1cHBvcnQgZmxvYXRz
IG9yIHlvdXIgc3lzdGVtIGRvZXNuJ3QgaGF2ZSBhCjs7IGNsb2NrIHdpdGggbWljcm9zZWNv
bmQgZ3JhbnVsYXJpdHkuICBPdGhlcndpc2UgZ3JhbnVsYXJpdHkgaXMKOzsgdG8gdGhlIG1p
Y3Jvc2VuZCwgYWx0aG91Z2ggeW91IGNhbid0IHBvc3NpYmx5IGdldCB0aW1lcnMgdG8gYmUK
OzsgZXhlY3V0ZWQgd2l0aCB0aGlzIGtpbmQgb2YgYWNjdXJhY3kgaW4gcHJhY3RpY2UuICBU
aGVyZSB3aWxsCjs7IGJlIGRlbGF5cyBkdWUgdG8gc3lzdGVtIGFuZCBFbWFjcyBpbnRlcm5h
bCBhY3Rpdml0eSB0aGF0IGRlbGF5Cjs7IGRlYWxpbmcgd2l0aCBzeXVuY2hyb25vdXMgZXZl
bnRzIGFuZCBwcm9jZXNzIG91dHB1dC4KKGRlZnZhciBpdGltZXItbmV4dC13YWtldXAgaXRp
bWVyLXNob3J0LWludGVydmFsCiAgIkl0aW1lciBwcm9jZXNzIHdpbGwgd2FrZXVwIHRvIHNl
cnZpY2UgcnVubmluZyBpdGltZXJzIHdpdGhpbiB0aGlzCm1hbnkgc2Vjb25kcy4iKQoKKGRl
ZnZhciBpdGltZXItZWRpdC1tYXAgbmlsCiAgIktleW1hcCB1c2VkIHdoZW4gaW4gSXRpbWVy
IEVkaXQgbW9kZS4iKQoKKGlmIGl0aW1lci1lZGl0LW1hcAogICAgKCkKICAoc2V0cSBpdGlt
ZXItZWRpdC1tYXAgKG1ha2Utc3BhcnNlLWtleW1hcCkpCiAgKGRlZmluZS1rZXkgaXRpbWVy
LWVkaXQtbWFwICJzIiAnaXRpbWVyLWVkaXQtc2V0LWZpZWxkKQogIChkZWZpbmUta2V5IGl0
aW1lci1lZGl0LW1hcCAiZCIgJ2l0aW1lci1lZGl0LWRlbGV0ZS1pdGltZXIpCiAgKGRlZmlu
ZS1rZXkgaXRpbWVyLWVkaXQtbWFwICJxIiAnaXRpbWVyLWVkaXQtcXVpdCkKICAoZGVmaW5l
LWtleSBpdGltZXItZWRpdC1tYXAgIlx0IiAnaXRpbWVyLWVkaXQtbmV4dC1maWVsZCkKICAo
ZGVmaW5lLWtleSBpdGltZXItZWRpdC1tYXAgIiAiICduZXh0LWxpbmUpCiAgKGRlZmluZS1r
ZXkgaXRpbWVyLWVkaXQtbWFwICJuIiAnbmV4dC1saW5lKQogIChkZWZpbmUta2V5IGl0aW1l
ci1lZGl0LW1hcCAicCIgJ3ByZXZpb3VzLWxpbmUpCiAgKGRlZmluZS1rZXkgaXRpbWVyLWVk
aXQtbWFwICJcQy0/IiAnaXRpbWVyLWVkaXQtcHJldmlvdXMtZmllbGQpCiAgKGRlZmluZS1r
ZXkgaXRpbWVyLWVkaXQtbWFwICJ4IiAnc3RhcnQtaXRpbWVyKQogIChkZWZpbmUta2V5IGl0
aW1lci1lZGl0LW1hcCAiPyIgJ2l0aW1lci1lZGl0LWhlbHApKQogIAooZGVmdmFyIGl0aW1l
ci1lZGl0LXN0YXJ0LW1hcmtlciBuaWwpCgwKOzsgbWFjcm9zIG11c3QgY29tZSBmaXJzdC4u
LiBvciBieXRlLWNvbXBpbGUnZCBjb2RlIHdpbGwgdGhyb3cgYmFjayBpdHMKOzsgaGVhZCBh
bmQgc2NyZWFtLgoKKGRlZm1hY3JvIGl0aW1lci1kZWNyZW1lbnQgKHZhcmlhYmxlKQogIChs
aXN0ICdzZXRxIHZhcmlhYmxlIChsaXN0ICcxLSB2YXJpYWJsZSkpKQoKKGRlZm1hY3JvIGl0
aW1lci1pbmNyZW1lbnQgKHZhcmlhYmxlKQogIChsaXN0ICdzZXRxIHZhcmlhYmxlIChsaXN0
ICcxKyB2YXJpYWJsZSkpKQoKKGRlZm1hY3JvIGl0aW1lci1zaWdudW0gKG4pCiAgKGxpc3Qg
J2lmIChsaXN0ICc+IG4gMCkgMQogICAgKGxpc3QgJ2lmIChsaXN0ICd6ZXJvcCBuKSAwIC0x
KSkpCgo7OyBJdGltZXIgYWNjZXNzIGZ1bmN0aW9ucyBzaG91bGQgYmVoYXZlIGFzIGlmIHRo
ZXkgd2VyZSBzdWJycy4gIFRoZXNlCjs7IG1hY3JvcyBhcmUgdXNlZCB0byBjaGVjayB0aGUg
YXJndW1lbnRzIHRvIHRoZSBpdGltZXIgZnVuY3Rpb25zIGFuZAo7OyBzaWduYWwgZXJyb3Jz
IGFwcHJvcHJpYXRlbHkgaWYgdGhlIGFyZ3VtZW50cyBhcmUgbm90IHZhbGlkLgoKKGRlZm1h
Y3JvIGNoZWNrLWl0aW1lciAodmFyKQogICJJZiBWQVIgaXMgbm90IGJvdW5kIHRvIGFuIGl0
aW1lciwgc2lnbmFsIHdyb25nLXR5cGUtYXJndW1lbnQuClRoaXMgaXMgYSBtYWNyby4iCiAg
KGxpc3QgJ3NldHEgdmFyCgkobGlzdCAnaWYgKGxpc3QgJ2l0aW1lcnAgdmFyKSB2YXIKCSAg
ICAgIChsaXN0ICdzaWduYWwgJyd3cm9uZy10eXBlLWFyZ3VtZW50CgkJICAgIChsaXN0ICds
aXN0ICcnaXRpbWVycCB2YXIpKSkpKQoKKGRlZm1hY3JvIGNoZWNrLWl0aW1lci1jb2VyY2Ut
c3RyaW5nICh2YXIpCiAgIklmIFZBUiBpcyBub3QgYm91bmQgdG8gYSBzdHJpbmcsIGxvb2sg
dXAgdGhlIGl0aW1lciB0aGF0IGl0IG5hbWVzIGFuZApiaW5kIFZBUiB0byBpdC4gIE90aGVy
d2lzZSBpZiBWQVIgaXMgbm90IGJvdW5kIHRvIGFuIGl0aW1lciwgc2lnbmFsCndyb25nLXR5
cGUtYXJndW1lbnQuICBUaGlzIGlzIGEgbWFjcm8uIgogIChsaXN0ICdzZXRxIHZhcgoJKGxp
c3QgJ2NvbmQKCSAgICAgIChsaXN0IChsaXN0ICdpdGltZXJwIHZhcikgdmFyKQoJICAgICAg
KGxpc3QgKGxpc3QgJ3N0cmluZ3AgdmFyKSAobGlzdCAnZ2V0LWl0aW1lciB2YXIpKQoJICAg
ICAgKGxpc3QgdCAobGlzdCAnc2lnbmFsICcnd3JvbmctdHlwZS1hcmd1bWVudAoJCQkgICAg
KGxpc3QgJ2xpc3QgJydzdHJpbmctb3ItaXRpbWVyLXAgdmFyKSkpKSkpCgooZGVmbWFjcm8g
Y2hlY2stbm9ubmVnYXRpdmUtbnVtYmVyICh2YXIpCiAgIklmIFZBUiBpcyBub3QgYm91bmQg
dG8gYSBudW1iZXIsIHNpZ25hbCB3cm9uZy10eXBlLWFyZ3VtZW50LgpJZiBWQVIgaXMgbm90
IGJvdW5kIHRvIGEgcG9zaXRpdmUgbnVtYmVyLCBzaWduYWwgYXJncy1vdXQtb2YtcmFuZ2Uu
ClRoaXMgaXMgYSBtYWNyby4iCiAgKGxpc3QgJ3NldHEgdmFyCgkobGlzdCAnaWYgKGxpc3Qg
J25vdCAobGlzdCAnbnVtYmVycCB2YXIpKQoJICAgICAgKGxpc3QgJ3NpZ25hbCAnJ3dyb25n
LXR5cGUtYXJndW1lbnQKCQkgICAgKGxpc3QgJ2xpc3QgJyduYXRudW1wIHZhcikpCgkgICAg
ICAobGlzdCAnaWYgKGxpc3QgJzwgdmFyIDApCgkJICAgIChsaXN0ICdzaWduYWwgJydhcmdz
LW91dC1vZi1yYW5nZSAobGlzdCAnbGlzdCB2YXIpKQoJCSAgICB2YXIpKSkpCgooZGVmbWFj
cm8gY2hlY2stc3RyaW5nICh2YXIpCiAgIklmIFZBUiBpcyBub3QgYm91bmQgdG8gYSBzdHJp
bmcsIHNpZ25hbCB3cm9uZy10eXBlLWFyZ3VtZW50LgpUaGlzIGlzIGEgbWFjcm8uIgogIChs
aXN0ICdzZXRxIHZhcgoJKGxpc3QgJ2lmIChsaXN0ICdzdHJpbmdwIHZhcikgdmFyCgkgICAg
ICAobGlzdCAnc2lnbmFsICcnd3JvbmctdHlwZS1hcmd1bWVudAoJCSAgICAobGlzdCAnbGlz
dCAnJ3N0cmluZ3AgdmFyKSkpKSkKDAo7OyBGdW5jdGlvbnMgdG8gYWNjZXNzIGFuZCBtb2Rp
ZnkgaXRpbWVyIGF0dHJpYnV0ZXMuCgooZGVmdW4gaXRpbWVycCAob2JqKQogICJSZXR1cm5z
IG5vbi1uaWwgaWZmIE9CSiBpcyBhbiBpdGltZXIuIgogIChhbmQgKGNvbnNwIG9iaikgKHN0
cmluZ3AgKGNhciBvYmopKSAoZXEgKGxlbmd0aCBvYmopIDYpKSkKCihkZWZ1biBpdGltZXIt
bmFtZSAoaXRpbWVyKQogICJSZXR1cm5zIHRoZSBuYW1lIG9mIElUSU1FUi4iCiAgKGNoZWNr
LWl0aW1lciBpdGltZXIpCiAgKGNhciBpdGltZXIpKQoKKGRlZnVuIGl0aW1lci12YWx1ZSAo
aXRpbWVyKQogICJSZXR1cm5zIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyB1bnRpbCBJVElNRVIg
ZXhwaXJlcy4iCiAgKGNoZWNrLWl0aW1lciBpdGltZXIpCiAgKG50aCAxIGl0aW1lcikpCgoo
ZGVmdW4gaXRpbWVyLXJlc3RhcnQgKGl0aW1lcikKICAiUmV0dXJucyB0aGUgdmFsdWUgdG8g
d2hpY2ggSVRJTUVSIHdpbGwgYmUgc2V0IGF0IHJlc3RhcnQuCm5pbCBpcyByZXR1cm5lZCBp
ZiB0aGlzIGl0aW1lciBkb2Vzbid0IHJlc3RhcnQuIgogIChjaGVjay1pdGltZXIgaXRpbWVy
KQogIChudGggMiBpdGltZXIpKQoKKGRlZnVuIGl0aW1lci1mdW5jdGlvbiAoaXRpbWVyKQog
ICJSZXR1cm5zIHRoZSBmdW5jdGlvbiBvZiBJVElNRVIuClRoaXMgZnVuY3Rpb24gaXMgY2Fs
bGVkIGVhY2ggdGltZSBJVElNRVIgZXhwaXJlcy4iCiAgKGNoZWNrLWl0aW1lciBpdGltZXIp
CiAgKG50aCAzIGl0aW1lcikpCgooZGVmdW4gaXRpbWVyLXVzZXMtYXJndW1lbnQgKGl0aW1l
cikKICAiUmV0dXJucyBub24tbmlsIGlmIHRoZSBmdW5jdGlvbiBvZiBJVElNRVIgd2lsbCBi
ZSBjYWxsZWQgd2l0aCBhbiBhcmdtZW50LgpJVElNRVIncyBmdW5jdGlvbiBpcyBjYWxsZWQg
d2l0aCB0aGlzIGFyZ3VtZW50IGVhY2ggdGltZXIgSVRJTUVSIGV4cGlyZXMuIgogIChjaGVj
ay1pdGltZXIgaXRpbWVyKQogIChudGggNCBpdGltZXIpKQoKKGRlZnVuIGl0aW1lci1mdW5j
dGlvbi1hcmd1bWVudCAoaXRpbWVyKQogICJSZXR1cm5zIHRoZSBmdW5jdGlvbiBhcmd1bWVu
dCBvZiBJVElNRVIuCklUSU1FUidzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aXRoIHRoaXMgYXJn
dW1lbnQgZWFjaCB0aW1lciBJVElNRVIgZXhwaXJlcy4iCiAgKGNoZWNrLWl0aW1lciBpdGlt
ZXIpCiAgKG50aCA1IGl0aW1lcikpCgooZGVmdW4gc2V0LWl0aW1lci12YWx1ZSAoaXRpbWVy
IHZhbHVlKQogICJTZXQgdGhlIHRpbWVvdXQgdmFsdWUgb2YgSVRJTUVSIHRvIGJlIFZBTFVF
LgpJdGltZXIgd2lsbCBleHBpcmUgaXMgdGhpcyBtYW55IHNlY29uZHMuCklmIHlvdXIgdmVy
c2lvbiBvZiBFbWFjcyBzdXBwb3J0cyBmbG9hdGluZyBwb2ludCBudW1iZXJzIHRoZW4KVkFM
VUUgY2FuIGJlIGEgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLiAgT3RoZXJ3aXNlIGl0Cm11c3Qg
YmUgYW4gaW50ZWdlci4KUmV0dXJucyBWQUxVRS4iCiAgKGNoZWNrLWl0aW1lciBpdGltZXIp
CiAgKGNoZWNrLW5vbm5lZ2F0aXZlLW51bWJlciB2YWx1ZSkKICAobGV0ICgoaW5oaWJpdC1x
dWl0IHQpKQogICAgOzsgSWYgdGhlIGl0aW1lciBpcyBpbiB0aGUgYWN0aXZlIGxpc3QsIGFu
ZCB1bmRlciB0aGUgbmV3CiAgICA7OyB0aW1lb3V0IHZhbHVlIHdvdWxkIGV4cGlyZSBiZWZv
cmUgd2Ugd291bGQgbm9ybWFsbHkKICAgIDs7IHdha2V1cCwgd2FrZXVwIG5vdyBhbmQgcmVj
b21wdXRlIGEgbmV3IHdha2V1cCB0aW1lLgogICAgKG9yIChhbmQgKDwgdmFsdWUgaXRpbWVy
LW5leHQtd2FrZXVwKQoJICAgICAoZ2V0LWl0aW1lciAoaXRpbWVyLW5hbWUgaXRpbWVyKSkK
CSAgICAgKHByb2duIChpdGltZXItZHJpdmVyLXdha2V1cCkKCQkgICAgKHNldGNhciAoY2Ry
IGl0aW1lcikgdmFsdWUpCgkJICAgIChpdGltZXItZHJpdmVyLXdha2V1cCkKCQkgICAgdCAp
KQoJKHNldGNhciAoY2RyIGl0aW1lcikgdmFsdWUpKQogICAgdmFsdWUpKQoKOzsgU2FtZSBh
cyBzZXQtaXRpbWVyLXZhbHVlIGJ1dCBkb2VzIG5vdCB3YWtldXAgdGhlIGRyaXZlci4KOzsg
T25seSBzaG91bGQgYmUgdXNlZCBieSB0aGUgZHJpdmVycyB3aGVuIHByb2Nlc3NpbmcgZXhw
aXJlZCB0aW1lcnMuCihkZWZ1biBzZXQtaXRpbWVyLXZhbHVlLWludGVybmFsIChpdGltZXIg
dmFsdWUpCiAgKGNoZWNrLWl0aW1lciBpdGltZXIpCiAgKGNoZWNrLW5vbm5lZ2F0aXZlLW51
bWJlciB2YWx1ZSkKICAoc2V0Y2FyIChjZHIgaXRpbWVyKSB2YWx1ZSkpCgooZGVmdW4gc2V0
LWl0aW1lci1yZXN0YXJ0IChpdGltZXIgcmVzdGFydCkKICAiU2V0IHRoZSByZXN0YXJ0IHZh
bHVlIG9mIElUSU1FUiB0byBiZSBSRVNUQVJULgpJZiBSRVNUQVJUIGlzIG5pbCwgSVRJTUVS
IHdpbGwgbm90IHJlc3RhcnQgd2hlbiBpdCBleHBpcmVzLgpJZiB5b3VyIHZlcnNpb24gb2Yg
RW1hY3Mgc3VwcG9ydHMgZmxvYXRpbmcgcG9pbnQgbnVtYmVycyB0aGVuClJFU1RBUlQgY2Fu
IGJlIGEgZmxvYXRpbmcgcG9pbnQgbnVtYmVyLiAgT3RoZXJ3aXNlIGl0Cm11c3QgYmUgYW4g
aW50ZWdlci4KUmV0dXJucyBSRVNUQVJULiIKICAoY2hlY2staXRpbWVyIGl0aW1lcikKICAo
aWYgcmVzdGFydCAoY2hlY2stbm9ubmVnYXRpdmUtbnVtYmVyIHJlc3RhcnQpKQogIChzZXRj
YXIgKGNkciAoY2RyIGl0aW1lcikpIHJlc3RhcnQpKQoKKGRlZnVuIHNldC1pdGltZXItZnVu
Y3Rpb24gKGl0aW1lciBmdW5jdGlvbikKICAiU2V0IHRoZSBmdW5jdGlvbiBvZiBJVElNRVIg
dG8gYmUgRlVOQ1RJT04uCkZVTkNUSU9OIHdpbGwgYmUgY2FsbGVkIHdoZW4gaXRpbWVyIGV4
cGlyZXMuClJldHVybnMgRlVOQ1RJT04uIgogIChjaGVjay1pdGltZXIgaXRpbWVyKQogIChz
ZXRjYXIgKGNkciAoY2RyIChjZHIgaXRpbWVyKSkpIGZ1bmN0aW9uKSkKCihkZWZ1biBzZXQt
aXRpbWVyLXVzZXMtYXJndW1lbnQgKGl0aW1lciBmbGFnKQogICJTZXRzIHdoZW4gdGhlIGZ1
bmN0aW9uIG9mIElUSU1FUiBpcyBjYWxsZWQgd2l0aCBhbiBhcmd1bWVudC4KSWYgRkxBRyBp
cyBub24tbmlsLCB0aGVuIHRoZSBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aXRoIG9uZSBh
cmd1bWVudCwKb3RoZXJ3aXNlIHRoZSBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aXRoIG5v
IGFyZ3VtZW50cy4KUmV0dXJucyBGTEFHLiIKICAoY2hlY2staXRpbWVyIGl0aW1lcikKICAo
c2V0Y2FyIChudGhjZHIgNCBpdGltZXIpIGZsYWcpKQoKKGRlZnVuIHNldC1pdGltZXItZnVu
Y3Rpb24tYXJndW1lbnQgKGl0aW1lciBhcmd1bWVudCkKICAiU2V0IHRoZSBmdW5jdGlvbiBv
ZiBJVElNRVIgdG8gYmUgQVJHVU1FTlQuClRoZSBmdW5jdGlvbiBvZiBJVElNRVIgd2lsbCBi
ZSBjYWxsZWQgd2l0aCBBUkdVTUVOVCBhcyBpdHMgc29sdCBhcmd1bWVudAp3aGVuIGl0aW1l
ciBleHBpcmVzLgpSZXR1cm5zIEFSR1VNRU5ULiIKICAoY2hlY2staXRpbWVyIGl0aW1lcikK
ICAoc2V0Y2FyIChudGhjZHIgNSBpdGltZXIpIGFyZ3VtZW50KSkKCihkZWZ1biBnZXQtaXRp
bWVyIChuYW1lKQogICJSZXR1cm4gaXRpbWVyIG5hbWVkIE5BTUUsIG9yIG5pbCBpZiB0aGVy
ZSBpcyBub25lLiIKICAoY2hlY2stc3RyaW5nIG5hbWUpCiAgKGFzc29jIG5hbWUgaXRpbWVy
LWxpc3QpKQoKKGRlZnVuIHJlYWQtaXRpbWVyIChwcm9tcHQgJm9wdGlvbmFsIGluaXRpYWwt
aW5wdXQpCiAgIlJlYWQgdGhlIG5hbWUgb2YgYW4gaXRpbWVyIGZyb20gdGhlIG1pbmlidWZm
ZXIgYW5kIHJldHVybiB0aGUgaXRpbWVyCmFzc29jaWF0ZWQgd2l0aCB0aGF0IG5hbWUuICBU
aGUgdXNlciBpcyBwcm9tcHRlZCB3aXRoIFBST01QVC4KT3B0aW9uYWwgc2Vjb25kIGFyZyBJ
TklUSUFMLUlOUFVUIG5vbi1uaWwgaXMgaW5zZXJ0ZWQgaW50byB0aGUKICBtaW5pYnVmZmVy
IGFzIGluaXRpYWwgdXNlciBpbnB1dC4iCiAgKGdldC1pdGltZXIgKGNvbXBsZXRpbmctcmVh
ZCBwcm9tcHQgaXRpbWVyLWxpc3QgbmlsICdjb25maXJtIGluaXRpYWwtaW5wdXQpKSkKCihk
ZWZ1biBkZWxldGUtaXRpbWVyIChpdGltZXIpCiAgIkRlbGV0ZXMgSVRJTUVSLiAgSVRJTUVS
IG1heSBiZSBhbiBpdGltZXIgb3IgdGhlIG5hbWUgb2Ygb25lLiIKICAoY2hlY2staXRpbWVy
LWNvZXJjZS1zdHJpbmcgaXRpbWVyKQogIChzZXRxIGl0aW1lci1saXN0IChkZWxxIGl0aW1l
ciBpdGltZXItbGlzdCkpKQoKKGRlZnVuIHN0YXJ0LWl0aW1lciAobmFtZSBmdW5jdGlvbiB2
YWx1ZSAmb3B0aW9uYWwgcmVzdGFydAoJCSAgICAgd2l0aC1hcmcgZnVuY3Rpb24tYXJndW1l
bnQpCiAgIlN0YXJ0IGFuIGl0aW1lci4KQXJncyBhcmUgTkFNRSwgRlVOQ1RJT04sIFZBTFVF
ICZvcHRpb25hbCBSRVNUQVJULCBXSVRILUFSRywgRlVOQ1RJT04tQVJHVU1FTlQuCk5BTUUg
aXMgYW4gaWRlbnRpZmllciBmb3IgdGhlIGl0aW1lci4gIEl0IG11c3QgYmUgYSBzdHJpbmcu
ICBJZiBhbiBpdGltZXIKICBhbHJlYWR5IGV4aXN0cyB3aXRoIHRoaXMgbmFtZSwgTkFNRSB3
aWxsIGJlIG1vZGlmaWVkIHNsaWdodGx5IHRvIHVudGlsCiAgaXQgaXMgdW5pcXVlLgpGVU5D
VElPTiBzaG91bGQgYmUgYSBmdW5jdGlvbiAob3Igc3ltYm9sIG5hbWluZyBvbmUpIG9mIG9u
ZSBhcmd1bWVudC4gIEl0CiAgd2lsbCBiZSBjYWxsZWQgZWFjaCB0aW1lIHRoZSBpdGltZXIg
ZXhwaXJlcyB3aXRoIGFuIGFyZ3VtZW50IG9mCiAgRlVOQ1RJT04tQVJHVU1FTlQuICBUaGUg
ZnVuY3Rpb24gY2FuIGFjY2VzcyB0aGUgaXRpbWVyIHRoYXQKICBpbnZva2VkIGl0IHRocm91
Z2ggdGhlIHZhcmlhYmxlIGBjdXJyZW50LWl0aW1lcicuICBJZiBXSVRILUFSRwogIGlzIG5p
bCB0aGVuIEZVTkNUSU9OIGlzIGNhbGxlZCB3aXRoIG5vIGFyZ3VtZW50cy4gIFRoaXMgaXMg
Zm9yCiAgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIG9sZGVyIHZlcnNpb25zIG9mIHRo
ZSBpdGltZXIKICBwYWNrYWdlIHdoaWNoIGFsd2F5cyBjYWxsZWQgRlVOQ1RJT04gd2l0aCBu
byBhcmd1bWVudHMuClZBTFVFIGlzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcyB1bnRpbCB0aGlz
IGl0aW1lciBleHBpcmVzLgogIElmIHlvdXIgdmVyc2lvbiBvZiBFbWFjcyBzdXBwb3J0cyBm
bG9hdGluZyBwb2ludCBudW1iZXJzIHRoZW4KICB5b3UgY2FuIFZBTFVFIGNhbiBiZSBhIGZs
b2F0aW5nIHBvaW50IG51bWJlci4gIE90aGVyd2lzZSBpdAogIG11c3QgYmUgYW4gaW50ZWdl
ci4KT3B0aW9uYWwgZm91cnRoIGFyZyBSRVNUQVJUIG5vbi1uaWwgbWVhbnMgdGhhdCB0aGlz
IGl0aW1lciBzaG91bGQgYmUKICByZXN0YXJ0ZWQgYXV0b21hdGljYWxseSBhZnRlciBpdHMg
ZnVuY3Rpb24gaXMgY2FsbGVkLiAgTm9ybWFsbHkgYW4gaXRpbWVyCiAgaXMgZGVsZXRlZCBh
dCBleHBpcmF0aW9uIGFmdGVyIGl0cyBmdW5jdGlvbiBoYXMgcmV0dXJuZWQuIAogIElmIG5v
bi1uaWwgUkVTVEFSVCBzaG91bGQgYmUgYSBudW1iZXIgaW5kaWNhdGluZyB0aGUgdmFsdWUg
YXQgd2hpY2ggdGhlCiAgaXRpbWVyIHNob3VsZCBiZSBzZXQgYXQgcmVzdGFydCB0aW1lLgpS
ZXR1cm5zIHRoZSBuZXdseSBjcmVhdGVkIGl0aW1lci4iCiAgKGludGVyYWN0aXZlCiAgIChs
aXN0IChjb21wbGV0aW5nLXJlYWQgIlN0YXJ0IGl0aW1lcjogIiBpdGltZXItbGlzdCkKCSAo
cmVhZCAoY29tcGxldGluZy1yZWFkICJJdGltZXIgZnVuY3Rpb246ICIgb2JhcnJheSAnZmJv
dW5kcCkpCgkgKGxldCAodmFsdWUpCgkgICAod2hpbGUgKG9yIChub3QgKG51bWJlcnAgdmFs
dWUpKSAoPCB2YWx1ZSAwKSkKCSAgICAgKHNldHEgdmFsdWUgKHJlYWQtZnJvbS1taW5pYnVm
ZmVyICJJdGltZXIgdmFsdWU6ICIgbmlsIG5pbCB0KSkpCgkgICB2YWx1ZSkKCSAobGV0ICgo
cmVzdGFydCB0KSkKCSAgICh3aGlsZSAoYW5kIHJlc3RhcnQgKG9yIChub3QgKG51bWJlcnAg
cmVzdGFydCkpICg8IHJlc3RhcnQgMCkpKQoJICAgICAoc2V0cSByZXN0YXJ0IChyZWFkLWZy
b20tbWluaWJ1ZmZlciAiSXRpbWVyIHJlc3RhcnQ6ICIKCQkJCQkJIG5pbCBuaWwgdCkpKQoJ
ICAgcmVzdGFydCkKCSA7OyBoYXJkIHRvIGltYWdpbmUgdGhlIHVzZXIgc3BlY2lmeWluZyB0
aGVzZSBpbnRlcmFjdGl2ZWx5CgkgbmlsCgkgbmlsICkpCiAgKGNoZWNrLXN0cmluZyBuYW1l
KQogIChjaGVjay1ub25uZWdhdGl2ZS1udW1iZXIgdmFsdWUpCiAgKGlmIHJlc3RhcnQgKGNo
ZWNrLW5vbm5lZ2F0aXZlLW51bWJlciByZXN0YXJ0KSkKICA7OyBNYWtlIHByb3Bvc2VkIGl0
aW1lciBuYW1lIHVuaXF1ZSBpZiBpdCdzIG5vdCBhbHJlYWR5LgogIChsZXQgKChvbmFtZSBu
YW1lKQoJKG51bSAyKSkKICAgICh3aGlsZSAoZ2V0LWl0aW1lciBuYW1lKQogICAgICAoc2V0
cSBuYW1lIChjb25jYXQgb25hbWUgIjwiIG51bSAiPiIpKQogICAgICAoaXRpbWVyLWluY3Jl
bWVudCBudW0pKSkKICA7OyBJZiB0aGVyZSdzIG5vIGl0aW1lciBwcm9jZXNzLCBzdGFydCBv
bmUgbm93LgogIDs7IE90aGVyd2lzZSB3YWtlIHVwIHRoZSBpdGltZXIgcHJvY2VzcyBzbyB0
aGF0IHNlY29uZHMgc2xlcHQgYmVmb3JlCiAgOzsgdGhlIG5ldyBpdGltZXIgaXMgY3JlYXRl
ZCB3b24ndCBiZSBjb3VudGVkIGFnYWluc3QgaXQuCiAgKGlmIChvciBpdGltZXItcHJvY2Vz
cyBpdGltZXItdGltZXIpCiAgICAgIChpdGltZXItZHJpdmVyLXdha2V1cCkKICAgIChpdGlt
ZXItZHJpdmVyLXN0YXJ0KSkKICAobGV0ICgoaW5oaWJpdC1xdWl0IHQpKQogICAgOzsgYWRk
IHRoZSBpdGltZXIgdG8gdGhlIGdsb2JhbCBsaXN0CiAgICAoc2V0cSBpdGltZXItbGlzdAoJ
ICAoY29ucyAobGlzdCBuYW1lIHZhbHVlIHJlc3RhcnQgZnVuY3Rpb24gd2l0aC1hcmcgZnVu
Y3Rpb24tYXJndW1lbnQpCgkJaXRpbWVyLWxpc3QpKQogICAgOzsgSWYgdGhlIGl0aW1lciBw
cm9jZXNzIGlzIHNjaGVkdWxlZCB0byB3YWtlIHVwIHRvbyBsYXRlIGZvciB0aGUgaXRpbWVy
CiAgICA7OyB3ZSB3YWtlIGl0IHVwIHRvIGNhbGN1bGF0ZSBhIGNvcnJlY3Qgd2FrZXVwIHZh
bHVlIGdpdmluZyBjb25zaWRlcmF0aW9uCiAgICA7OyB0byB0aGUgbmV3bHkgYWRkZWQgaXRp
bWVyLgogICAgKGlmICg8IHZhbHVlIGl0aW1lci1uZXh0LXdha2V1cCkKCShpdGltZXItZHJp
dmVyLXdha2V1cCkpKQogIChjYXIgaXRpbWVyLWxpc3QpKQoMCjs7IFVzZXIgbGV2ZWwgZnVu
Y3Rpb25zIHRvIGxpc3QgYW5kIG1vZGlmeSBleGlzdGluZyBpdGltZXJzLgo7OyBJdGltZXIg
RWRpdCBtYWpvciBtb2RlLCBhbmQgdGhlIGVkaXRpbmcgY29tbWFuZHMgdGhlcmVvZi4KCihk
ZWZ1biBsaXN0LWl0aW1lcnMgKCkKICAiUG9wIHVwIGEgYnVmZmVyIGNvbnRhaW5pbmcgYSBs
aXN0IG9mIGFsbCBpdGltZXJzLgpUaGUgbWFqb3IgbW9kZSBvZiB0aGUgYnVmZmVyIGlzIEl0
aW1lciBFZGl0IG1vZGUuICBUaGlzIG1ham9yIG1vZGUgcHJvdmlkZXMKY29tbWFuZHMgdG8g
bWFuaXB1bGF0ZSBpdGltZXJzOyBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yCmBpdGltZXIt
ZWRpdC1tb2RlJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iCiAgKGludGVyYWN0aXZlKQogIChs
ZXQqICgoYnVmIChnZXQtYnVmZmVyLWNyZWF0ZSAiKkl0aW1lciBMaXN0KiIpKQoJIChvcG9p
bnQgKHBvaW50KSkKCSAoc3RhbmRhcmQtb3V0cHV0IGJ1ZikKCSAoaXRpbWVycyAocmV2ZXJz
ZSBpdGltZXItbGlzdCkpKQogICAgKHNldC1idWZmZXIgYnVmKQogICAgKGl0aW1lci1lZGl0
LW1vZGUpCiAgICAoc2V0cSBidWZmZXItcmVhZC1vbmx5IG5pbCkKICAgIChlcmFzZS1idWZm
ZXIpCiAgICAoaW5zZXJ0CiJOYW1lICAgICAgICAgICAgICAgICAgVmFsdWUgICBSZXN0YXJ0
ICAgRnVuY3Rpb24gICAgICAgICAgICAgICAgICAgQXJndW1lbnRcbiIKIi0tLS0gICAgICAg
ICAgICAgICAgICAtLS0tLSAgIC0tLS0tLS0gICAtLS0tLS0tLSAgICAgICAgICAgICAgICAg
ICAtLS0tLS0tLSIpCiAgICAoaWYgKG51bGwgaXRpbWVyLWVkaXQtc3RhcnQtbWFya2VyKQoJ
KHNldHEgaXRpbWVyLWVkaXQtc3RhcnQtbWFya2VyIChwb2ludCkpKQogICAgKHdoaWxlIGl0
aW1lcnMKICAgICAgKG5ld2xpbmUgMSkKICAgICAgKHByaW4xIChpdGltZXItbmFtZSAoY2Fy
IGl0aW1lcnMpKSkKICAgICAgKHRhYi10by10YWItc3RvcCkKICAgICAgKGluc2VydCAoaXRp
bWVyLXRydW5jYXRlLXN0cmluZwoJICAgICAgIChmb3JtYXQgIiU1LjVzIiAoaXRpbWVyLXZh
bHVlIChjYXIgaXRpbWVycykpKSA1KSkKICAgICAgKHRhYi10by10YWItc3RvcCkKICAgICAg
KGluc2VydCAoaXRpbWVyLXRydW5jYXRlLXN0cmluZwoJICAgICAgIChmb3JtYXQgIiU1LjVz
IiAoaXRpbWVyLXJlc3RhcnQgKGNhciBpdGltZXJzKSkpIDUpKQogICAgICAodGFiLXRvLXRh
Yi1zdG9wKQogICAgICAoaW5zZXJ0IChpdGltZXItdHJ1bmNhdGUtc3RyaW5nCgkgICAgICAg
KGZvcm1hdCAiJS4yNnMiIChpdGltZXItZnVuY3Rpb24gKGNhciBpdGltZXJzKSkpIDI2KSkK
ICAgICAgKHRhYi10by10YWItc3RvcCkKICAgICAgKGlmIChpdGltZXItdXNlcy1hcmd1bWVu
dCAoY2FyIGl0aW1lcnMpKQoJICAocHJpbjEgKGl0aW1lci1mdW5jdGlvbi1hcmd1bWVudCAo
Y2FyIGl0aW1lcnMpKSkKCShwcmluMSAnTk9ORSkpCiAgICAgIChzZXRxIGl0aW1lcnMgKGNk
ciBpdGltZXJzKSkpCiAgICA7OyByZXN0b3JlIHBvaW50CiAgICAoZ290by1jaGFyIG9wb2lu
dCkKICAgIChpZiAoPCAocG9pbnQpIGl0aW1lci1lZGl0LXN0YXJ0LW1hcmtlcikKCShnb3Rv
LWNoYXIgaXRpbWVyLWVkaXQtc3RhcnQtbWFya2VyKSkKICAgIChzZXRxIGJ1ZmZlci1yZWFk
LW9ubHkgdCkKICAgIChkaXNwbGF5LWJ1ZmZlciBidWYpKSkKCihkZWZ1biBlZGl0LWl0aW1l
cnMgKCkKICAiRGlzcGxheSBhIGxpc3Qgb2YgYWxsIGl0aW1lcnMgYW5kIHNlbGVjdCBpdCBm
b3IgZWRpdGluZy4KVGhlIG1ham9yIG1vZGUgb2YgdGhlIGJ1ZmZlciBjb250YWluaW5nIHRo
ZSBsaXN0aW5nIGlzIEl0aW1lciBFZGl0IG1vZGUuClRoaXMgbWFqb3IgbW9kZSBwcm92aWRl
cyBjb21tYW5kcyB0byBtYW5pcHVsYXRlIGl0aW1lcnM7IHNlZSB0aGUgZG9jdW1lbnRhdGlv
bgpmb3IgYGl0aW1lci1lZGl0LW1vZGUnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKICAoaW50
ZXJhY3RpdmUpCiAgOzsgc2luY2UgdXNlciBpcyBlZGl0aW5nLCBtYWtlIHN1cmUgZGlzcGxh
eWVkIGRhdGEgaXMgcmVhc29uYWJseSB1cC10by1kYXRlCiAgKGlmIChvciBpdGltZXItcHJv
Y2VzcyBpdGltZXItdGltZXIpCiAgICAgIChpdGltZXItZHJpdmVyLXdha2V1cCkpCiAgKGxp
c3QtaXRpbWVycykKICAoc2VsZWN0LXdpbmRvdyAoZ2V0LWJ1ZmZlci13aW5kb3cgIipJdGlt
ZXIgTGlzdCoiKSkKICAoZ290by1jaGFyIGl0aW1lci1lZGl0LXN0YXJ0LW1hcmtlcikKICAo
aWYgaXRpbWVyLWxpc3QKICAgICAgKHByb2duCgkoZm9yd2FyZC1zZXhwIDIpCgkoYmFja3dh
cmQtc2V4cCkpKQogIChtZXNzYWdlICJ0eXBlIHEgdG8gcXVpdCwgPyBmb3IgaGVscCIpKQoK
Ozsgbm8gcG9pbnQgaW4gbWFraW5nIHRoaXMgaW50ZXJhY3RpdmUuCihkZWZ1biBpdGltZXIt
ZWRpdC1tb2RlICgpCiAgIk1ham9yIG1vZGUgZm9yIG1hbmlwdWxhdGluZyBpdGltZXJzLgpB
dHJyaWJ1dGVzIG9mIHJ1bm5pbmcgaXRpbWVycyBhcmUgY2hhbmdlZCBieSBtb3ZpbmcgdGhl
IGN1cnNvciB0byB0aGUKZGVzaXJlZCBmaWVsZCBhbmQgdHlwaW5nIGBzJyB0byBzZXQgdGhh
dCBmaWVsZC4gIFRoZSBmaWVsZCB3aWxsIHRoZW4gYmUKc2V0IHRvIHRoZSB2YWx1ZSByZWFk
IGZyb20gdGhlIG1pbmlidWZmZXIuCgpDb21tYW5kczoKVEFCICAgIG1vdmUgZm9yd2FyZCBh
IGZpZWxkCkRFTCAgICBtb3ZlIGJhY2t3YXJkIGEgZmllbGQKcyAgICAgIHNldCBhIGZpZWxk
CmQgICAgICBkZWxldGUgdGhlIHNlbGVjdGVkIGl0aW1lcgp4ICAgICAgc3RhcnQgYSBuZXcg
aXRpbWVyCj8gICAgICBoZWxwIgogIChraWxsLWFsbC1sb2NhbC12YXJpYWJsZXMpCiAgKG1h
a2UtbG9jYWwtdmFyaWFibGUgJ3RhYi1zdG9wLWxpc3QpCiAgKHNldHEgbWFqb3ItbW9kZSAn
aXRpbWVyLWVkaXQtbW9kZQoJbW9kZS1uYW1lICJJdGltZXIgRWRpdCIKCXRydW5jYXRlLWxp
bmVzIHQKCXRhYi1zdG9wLWxpc3QgJygyMiAzMiA0MCA2NykpCiAgKGFiYnJldi1tb2RlIDAp
CiAgKGF1dG8tZmlsbC1tb2RlIDApCiAgKGJ1ZmZlci1mbHVzaC11bmRvIChjdXJyZW50LWJ1
ZmZlcikpCiAgKHVzZS1sb2NhbC1tYXAgaXRpbWVyLWVkaXQtbWFwKQogIChzZXQtc3ludGF4
LXRhYmxlIGVtYWNzLWxpc3AtbW9kZS1zeW50YXgtdGFibGUpKQoKKHB1dCAnaXRpbWVyLWVk
aXQtbW9kZSAnbW9kZS1jbGFzcyAnc3BlY2lhbCkKCihkZWZ1biBpdGltZXItZWRpdC1oZWxw
ICgpCiAgIkhlbHAgZnVuY3Rpb24gZm9yIEl0aW1lciBFZGl0LiIKICAoaW50ZXJhY3RpdmUp
CiAgKGlmIChlcSBsYXN0LWNvbW1hbmQgJ2l0aW1lci1lZGl0LWhlbHApCiAgICAgIChkZXNj
cmliZS1tb2RlKQogICAgKG1lc3NhZ2UgIlRBQiwgREVMIHNlbGVjdCBmaWVsZHMsIChzKWV0
IGZpZWxkLCAoZCllbGV0ZSBpdGltZXIgICAodHlwZSA/IGZvciBtb3JlIGhlbHApIikpKQoK
KGRlZnVuIGl0aW1lci1lZGl0LXF1aXQgKCkKICAiRW5kIEl0aW1lciBFZGl0LiIKICAoaW50
ZXJhY3RpdmUpCiAgKGJ1cnktYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikpCiAgKGlmIChvbmUt
d2luZG93LXAgdCkKICAgICAgKHN3aXRjaC10by1idWZmZXIgKG90aGVyLWJ1ZmZlciAoY3Vy
cmVudC1idWZmZXIpKSkKICAgIChkZWxldGUtd2luZG93KSkpCgooZGVmdW4gaXRpbWVyLWVk
aXQtc2V0LWZpZWxkICgpCiAgKGludGVyYWN0aXZlKQogIDs7IEZpcnN0IHR3byBsaW5lcyBp
biBsaXN0IGJ1ZmZlciBhcmUgaGVhZGVycy4KICA7OyBDcnkgb3V0IGFnYWluc3QgdGhlIGx1
c2VyIHdobyBhdHRlbXB0cyB0byBjaGFuZ2UgYSBmaWVsZCB0aGVyZS4KICAoaWYgKDw9IChw
b2ludCkgaXRpbWVyLWVkaXQtc3RhcnQtbWFya2VyKQogICAgICAoZXJyb3IgIiIpKQogIDs7
IGZpZWxkLXZhbHVlIG11c3QgYmUgaW5pdGlhbGl6ZWQgdG8gYmUgc29tZXRoaW5nIG90aGVy
IHRoYW4gYQogIDs7IG51bWJlciwgc3ltYm9sLCBvciBsaXN0LgogIChsZXQgKGl0aW1lciBm
aWVsZCAoZmllbGQtdmFsdWUgIiIpKQogICAgKHNldHEgaXRpbWVyIChzYXZlLWV4Y3Vyc2lv
bgoJCSAgOzsgcmVhZCB0aGUgbmFtZSBvZiB0aGUgaXRpbWVyIGZyb20gdGhlIGJlZ2lubmlu
ZyBvZgoJCSAgOzsgdGhlIGN1cnJlbnQgbGluZS4KCQkgIChiZWdpbm5pbmctb2YtbGluZSkK
CQkgIChnZXQtaXRpbWVyIChyZWFkIChjdXJyZW50LWJ1ZmZlcikpKSkKCSAgZmllbGQgKHNh
dmUtZXhjdXJzaW9uCgkJICAoaXRpbWVyLWVkaXQtYmVnaW5uaW5nLW9mLWZpZWxkKQoJCSAg
KGxldCAoKG9wb2ludCAocG9pbnQpKQoJCQkobiAwKSkKCQkgICAgOzsgY291bnQgdGhlIG51
bWJlciBvZiBzZXhwcnMgdW50aWwgd2UgcmVhY2ggdGhlIGN1cnNvcgoJCSAgICA7OyBhbmQg
dXNlIHRoaXMgaW5mbyB0byBkZXRlcm1pbmUgd2hpY2ggZmllbGQgdGhlIHVzZXIKCQkgICAg
Ozsgd2FudHMgdG8gbW9kaWZ5LgoJCSAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCgkJICAgICh3
aGlsZSAoYW5kICg+PSBvcG9pbnQgKHBvaW50KSkgKDwgbiA1KSkKCQkgICAgICAoZm9yd2Fy
ZC1zZXhwIDIpCgkJICAgICAgKGJhY2t3YXJkLXNleHApCgkJICAgICAgKGl0aW1lci1pbmNy
ZW1lbnQgbikpCgkJICAgIChjb25kICgoZXEgbiAxKSAoZXJyb3IgIkNhbm5vdCBjaGFuZ2Ug
aXRpbWVyIG5hbWUuIikpCgkJCSAgKChlcSBuIDIpICd2YWx1ZSkKCQkJICAoKGVxIG4gMykg
J3Jlc3RhcnQpCgkJCSAgKChlcSBuIDQpICdmdW5jdGlvbikKCQkJICAodCAnZnVuY3Rpb24t
YXJndW1lbnQpKSkpKQogICAgKGNvbmQgKChlcSBmaWVsZCAndmFsdWUpCgkgICAobGV0ICgo
cHJvbXB0ICJTZXQgaXRpbWVyIHZhbHVlOiAiKSkKCSAgICAgKHdoaWxlIChub3QgKG5hdG51
bXAgZmllbGQtdmFsdWUpKQoJICAgICAgIChzZXRxIGZpZWxkLXZhbHVlIChyZWFkLWZyb20t
bWluaWJ1ZmZlciBwcm9tcHQgbmlsIG5pbCB0KSkpKSkKCSAgKChlcSBmaWVsZCAncmVzdGFy
dCkKCSAgIChsZXQgKChwcm9tcHQgIlNldCBpdGltZXIgcmVzdGFydDogIikpCgkgICAgICh3
aGlsZSAoYW5kIGZpZWxkLXZhbHVlIChub3QgKG5hdG51bXAgZmllbGQtdmFsdWUpKSkKCSAg
ICAgICAoc2V0cSBmaWVsZC12YWx1ZSAocmVhZC1mcm9tLW1pbmlidWZmZXIgcHJvbXB0IG5p
bCBuaWwgdCkpKSkpCgkgICgoZXEgZmllbGQgJ2Z1bmN0aW9uKQoJICAgKGxldCAoKHByb21w
dCAiU2V0IGl0aW1lciBmdW5jdGlvbjogIikpCgkgICAgICh3aGlsZSAobm90IChvciAoYW5k
IChzeW1ib2xwIGZpZWxkLXZhbHVlKSAoZmJvdW5kcCBmaWVsZC12YWx1ZSkpCgkJCSAgICAg
KGFuZCAoY29uc3AgZmllbGQtdmFsdWUpCgkJCQkgIChtZW1xIChjYXIgZmllbGQtdmFsdWUp
ICcobGFtYmRhIG1hY3JvKSkpKSkKCSAgICAgICAoc2V0cSBmaWVsZC12YWx1ZQoJCSAgICAg
KHJlYWQgKGNvbXBsZXRpbmctcmVhZCBwcm9tcHQgb2JhcnJheSAnZmJvdW5kcCBuaWwpKSkp
KSkKCSAgKChlcSBmaWVsZCAnZnVuY3Rpb24tYXJndW1lbnQpCgkgICAobGV0ICgocHJvbXB0
ICJTZXQgaXRpbWVyIGZ1bmN0aW9uIGFyZ3VtZW50OiAiKSkKCSAgICAgKHNldHEgZmllbGQt
dmFsdWUgKHJlYWQtZXhwcmVzc2lvbiBwcm9tcHQpKQoJICAgICAoc2V0LWl0aW1lci11c2Vz
LWFyZ3VtZW50IGl0aW1lciB0KSkpKQogICAgOzsgc2V0IHRoZSBpdGltZXIgZmllbGQKICAg
IChmdW5jYWxsIChpbnRlcm4gKGNvbmNhdCAic2V0LWl0aW1lci0iIChzeW1ib2wtbmFtZSBm
aWVsZCkpKQoJICAgICBpdGltZXIgZmllbGQtdmFsdWUpCiAgICA7OyBtb3ZlIHRvIGJlZ2lu
bmluZyBvZiBmaWVsZCB0byBiZSBjaGFuZ2VkCiAgICAoaXRpbWVyLWVkaXQtYmVnaW5uaW5n
LW9mLWZpZWxkKQogICAgOzsgbW9kaWZ5IHRoZSBsaXN0IGJ1ZmZlciB0byByZWZsZWN0IHRo
ZSBjaGFuZ2UuCiAgICAobGV0IChidWZmZXItcmVhZC1vbmx5IGtpbGwtcmluZykKICAgICAg
KGtpbGwtc2V4cCAxKQogICAgICAoa2lsbC1yZWdpb24gKHBvaW50KSAocHJvZ24gKHNraXAt
Y2hhcnMtZm9yd2FyZCAiIFx0IikgKHBvaW50KSkpCiAgICAgIChwcmluMSBmaWVsZC12YWx1
ZSAoY3VycmVudC1idWZmZXIpKQogICAgICAoaWYgKG5vdCAoZW9scCkpCgkgICh0YWItdG8t
dGFiLXN0b3ApKQogICAgICAoYmFja3dhcmQtc2V4cCkpKSkKCihkZWZ1biBpdGltZXItZWRp
dC1kZWxldGUtaXRpbWVyICgpCiAgKGludGVyYWN0aXZlKQogIDs7IEZpcnN0IHR3byBsaW5l
cyBpbiBsaXN0IGJ1ZmZlciBhcmUgaGVhZGVycy4KICA7OyBDcnkgb3V0IGFnYWluc3QgdGhl
IGx1c2VyIHdobyBhdHRlbXB0cyB0byBjaGFuZ2UgYSBmaWVsZCB0aGVyZS4KICAoaWYgKDw9
IChwb2ludCkgaXRpbWVyLWVkaXQtc3RhcnQtbWFya2VyKQogICAgICAoZXJyb3IgIiIpKQog
IChkZWxldGUtaXRpbWVyCiAgIChyZWFkLWl0aW1lciAiRGVsZXRlIGl0aW1lcjogIgoJICAg
ICAgIChzYXZlLWV4Y3Vyc2lvbiAoYmVnaW5uaW5nLW9mLWxpbmUpIChyZWFkIChjdXJyZW50
LWJ1ZmZlcikpKSkpCiAgOzsgdXBkYXRlIGxpc3QgaW5mb3JtYXRpb24KICAobGlzdC1pdGlt
ZXJzKSkKCihkZWZ1biBpdGltZXItZWRpdC1uZXh0LWZpZWxkIChjb3VudCkKICAoaW50ZXJh
Y3RpdmUgInAiKQogIChpdGltZXItZWRpdC1iZWdpbm5pbmctb2YtZmllbGQpCiAgKGNvbmQg
KCg+IChpdGltZXItc2lnbnVtIGNvdW50KSAwKQoJICh3aGlsZSAobm90ICh6ZXJvcCBjb3Vu
dCkpCgkgICAoZm9yd2FyZC1zZXhwKQoJICAgOzsgd3JhcCBmcm9tIGVvYiB0byBpdGltZXIt
ZWRpdC1zdGFydC1tYXJrZXIKCSAgIChpZiAoZW9icCkKCSAgICAgICAocHJvZ24KCQkgKGdv
dG8tY2hhciBpdGltZXItZWRpdC1zdGFydC1tYXJrZXIpCgkJIChmb3J3YXJkLXNleHApKSkK
CSAgIChmb3J3YXJkLXNleHApCgkgICAoYmFja3dhcmQtc2V4cCkKCSAgIDs7IHRyZWF0IGZp
ZWxkcyBhdCBiZWdpbm5pbmcgb2YgbGluZSBhcyBpZiB0aGV5IHdlcmVuJ3QgdGhlcmUuCgkg
ICAoaWYgKGJvbHApCgkgICAgICAgKHByb2duCgkJIChmb3J3YXJkLXNleHAgMikKCQkgKGJh
Y2t3YXJkLXNleHApKSkKCSAgIChpdGltZXItZGVjcmVtZW50IGNvdW50KSkpCgkoKDwgKGl0
aW1lci1zaWdudW0gY291bnQpIDApCgkgKHdoaWxlIChub3QgKHplcm9wIGNvdW50KSkKCSAg
IChiYWNrd2FyZC1zZXhwKQoJICAgOzsgdHJlYXQgZmllbGRzIGF0IGJlZ2lubmluZyBvZiBs
aW5lIGFzIGlmIHRoZXkgd2VyZW4ndCB0aGVyZS4KCSAgIChpZiAoYm9scCkKCSAgICAgICAo
YmFja3dhcmQtc2V4cCkpCgkgICA7OyB3cmFwIGZyb20gaXRpbWVyLWVkaXQtc3RhcnQtbWFy
a2VyIHRvIGZpZWxkIGF0IGVvYi4KCSAgIChpZiAoPD0gKHBvaW50KSBpdGltZXItZWRpdC1z
dGFydC1tYXJrZXIpCgkgICAgICAgKHByb2duCgkJIChnb3RvLWNoYXIgKHBvaW50LW1heCkp
CgkJIChiYWNrd2FyZC1zZXhwKSkpCgkgICAoaXRpbWVyLWluY3JlbWVudCBjb3VudCkpKSkp
CgooZGVmdW4gaXRpbWVyLWVkaXQtcHJldmlvdXMtZmllbGQgKGNvdW50KQogIChpbnRlcmFj
dGl2ZSAicCIpCiAgKGl0aW1lci1lZGl0LW5leHQtZmllbGQgKC0gY291bnQpKSkKCihkZWZ1
biBpdGltZXItZWRpdC1iZWdpbm5pbmctb2YtZmllbGQgKCkKICAobGV0ICgoZm9ydy1iYWNr
IChzYXZlLWV4Y3Vyc2lvbiAoZm9yd2FyZC1zZXhwKSAoYmFja3dhcmQtc2V4cCkgKHBvaW50
KSkpCgkoYmFjayAoc2F2ZS1leGN1cnNpb24gKGJhY2t3YXJkLXNleHApIChwb2ludCkpKSkK
ICAgIChjb25kICgoZXEgZm9ydy1iYWNrIGJhY2spIChiYWNrd2FyZC1zZXhwKSkKCSAgKChl
cSBmb3J3LWJhY2sgKHBvaW50KSkgdCkKCSAgKHQgKGJhY2t3YXJkLXNleHApKSkpKQoKKGRl
ZnVuIGl0aW1lci10cnVuY2F0ZS1zdHJpbmcgKHN0ciBsZW4pCiAgKGlmICg8PSAobGVuZ3Ro
IHN0cikgbGVuKQogICAgICBzdHIKICAgIChzdWJzdHJpbmcgc3RyIDAgbGVuKSkpCgwKOzsg
aW50ZXJuYWxzIG9mIHRoZSBpdGltZXIgaW1wbGVtZW50YXRpb24uCgooZGVmdW4gaXRpbWVy
LXJ1bi1leHBpcmVkLXRpbWVycyAodGltZS1lbGFwc2VkKQogIChsZXQgKChpdGltZXJzIChj
b3B5LXNlcXVlbmNlIGl0aW1lci1saXN0KSkKCShpdGltZXIpCgkobmV4dC13YWtldXAgNjAw
KQoJOzsgcHJvY2VzcyBmaWx0ZXJzIGNhbiBiZSBoaXQgYnkgc3RyYXkgQy1nJ3MgZnJvbSB0
aGUgdXNlciwKCTs7IHNvIHdlIG11c3QgcHJvdGVjdCB0aGlzIHN0dWZmIGFwcHJvcHJpYXRl
bHkuCgk7OyBRdWl0J3MgYXJlIGFsbG93ZWQgZnJvbSB3aXRoaW4gaXRpbWVyIGZ1bmN0aW9u
cywgYnV0IHdlCgk7OyBjYXRjaCB0aGVtIGFuZCBwcmludCBhIG1lc3NhZ2UuCgkoaW5oaWJp
dC1xdWl0IHQpKQogICAgKHNldHEgbmV4dC13YWtldXAgNjAwKQogICAgKHdoaWxlIGl0aW1l
cnMKICAgICAgKHNldHEgaXRpbWVyIChjYXIgaXRpbWVycykpCiAgICAgIChzZXQtaXRpbWVy
LXZhbHVlLWludGVybmFsIGl0aW1lciAobWF4IDAgKC0gKGl0aW1lci12YWx1ZSBpdGltZXIp
CgkJCQkJCSAgdGltZS1lbGFwc2VkKSkpCiAgICAgIChpZiAoPiAoaXRpbWVyLXZhbHVlIGl0
aW1lcikgMCkKCSAgKHNldHEgbmV4dC13YWtldXAKCQkobWluIG5leHQtd2FrZXVwIChpdGlt
ZXItdmFsdWUgaXRpbWVyKSkpCgk7OyBpdGltZXIgaGFzIGV4cGlyZWQsIHdlIG11c3QgY2Fs
bCBpdHMgZnVuY3Rpb24uCgk7OyBwcm90ZWN0IG91ciBsb2NhbCB2YXJzIGZyb20gdGhlIGl0
aW1lciBmdW5jdGlvbi4KCTs7IGFsbG93IGtleWJvYXJkIHF1aXQgdG8gb2NjdXIsIGJ1dCBj
YXRjaCBhbmQgcmVwb3J0IGl0LgoJOzsgcHJvdmlkZSB0aGUgdmFyaWFibGUgYGN1cnJlbnQt
aXRpbWVyJyBpbiBjYXNlIHRoZSBmdW5jdGlvbgoJOzsgaXMgaW50ZXJlc3RlZC4KCShjb25k
aXRpb24tY2FzZSBjb25kaXRpb24tZGF0YQoJICAgIChzYXZlLW1hdGNoLWRhdGEKCSAgICAg
IChsZXQqICgoY3VycmVudC1pdGltZXIgaXRpbWVyKQoJCSAgICAgKHF1aXQtZmxhZyBuaWwp
CgkJICAgICAoaW5oaWJpdC1xdWl0IG5pbCkKCQkgICAgIGl0aW1lciBpdGltZXJzIHRpbWUt
ZWxhcHNlZCkKCQkoaWYgKGl0aW1lci11c2VzLWFyZ3VtZW50IGN1cnJlbnQtaXRpbWVyKQoJ
CSAgICAoZnVuY2FsbCAoaXRpbWVyLWZ1bmN0aW9uIGN1cnJlbnQtaXRpbWVyKQoJCQkgICAg
IChpdGltZXItZnVuY3Rpb24tYXJndW1lbnQgY3VycmVudC1pdGltZXIpKQoJCSAgKGZ1bmNh
bGwgKGl0aW1lci1mdW5jdGlvbiBjdXJyZW50LWl0aW1lcikpKSkpCgkgIChlcnJvciAobWVz
c2FnZSAiaXRpbWVyIFwiJXNcIiBzaWduYWxlZDogJXMiIChpdGltZXItbmFtZSBpdGltZXIp
CgkJCSAgKHByaW4xLXRvLXN0cmluZyBjb25kaXRpb24tZGF0YSkpKQoJICAocXVpdCAobWVz
c2FnZSAiaXRpbWVyIFwiJXNcIiBxdWl0IiAoaXRpbWVyLW5hbWUgaXRpbWVyKSkpKQoJOzsg
cmVzdGFydCB0aGUgaXRpbWVyIGlmIHdlIHNob3VsZCwgb3RoZXJ3aXNlIGRlbGV0ZSBpdC4K
CShpZiAobnVsbCAoaXRpbWVyLXJlc3RhcnQgaXRpbWVyKSkKCSAgICAoZGVsZXRlLWl0aW1l
ciBpdGltZXIpCgkgIChzZXQtaXRpbWVyLXZhbHVlLWludGVybmFsIGl0aW1lciAoaXRpbWVy
LXJlc3RhcnQgaXRpbWVyKSkKCSAgKHNldHEgbmV4dC13YWtldXAgKG1pbiBuZXh0LXdha2V1
cCAoaXRpbWVyLXZhbHVlIGl0aW1lcikpKSkpCiAgICAgIChzZXRxIGl0aW1lcnMgKGNkciBp
dGltZXJzKSkpCiAgICA7OyBpZiB1c2VyIGlzIGVkaXRpbmcgaXRpbWVycywgdXBkYXRlIGRp
c3BsYXllZCBpbmZvCiAgICAoaWYgKGVxIG1ham9yLW1vZGUgJ2l0aW1lci1lZGl0LW1vZGUp
CgkobGlzdC1pdGltZXJzKSkKICAgIG5leHQtd2FrZXVwICkpCgooZGVmdW4gaXRpbWVyLXBy
b2Nlc3MtZmlsdGVyIChwcm9jZXNzIHN0cmluZykKICA7OyBJZiB0aGUgaXRpbWVyIHByb2Nl
c3MgZGllcyBhbmQgZ2VuZXJhdGVzIG91dHB1dCB3aGlsZSBkb2luZwogIDs7IHNvLCB3ZSBt
YXkgYmUgY2FsbGVkIGJlZm9yZSB0aGUgcHJvY2Vzcy1zZW50aW5lbC4gIFNhbml0eQogIDs7
IGNoZWNrIHRoZSBvdXRwdXQganVzdCBpbiBjYXNlLi4uCiAgKGlmIChub3QgKHN0cmluZy1t
YXRjaCAiXlswLTldIiBzdHJpbmcpKQogICAgICAocHJvZ24gKG1lc3NhZ2UgIml0aW1lciBw
cm9jZXNzIGdhdmUgb2RkIG91dHB1dDogJXMiIHN0cmluZykKCSAgICAgOzsgaXQgbWF5IGJl
IHN0aWxsIGFsaXZlIGFuZCB3YWl0aW5nIGZvciBpbnB1dAoJICAgICAocHJvY2Vzcy1zZW5k
LXN0cmluZyBpdGltZXItcHJvY2VzcyAiM1xuIikpCiAgICA7OyBpZiB0aGVyZSBhcmUgbm8g
YWN0aXZlIGl0aW1lcnMsIHJldHVybiBxdWlja2x5LgogICAgKGlmIGl0aW1lci1saXN0Cgko
c2V0cSBpdGltZXItbmV4dC13YWtldXAKCSAgICAgIChpdGltZXItcnVuLWV4cGlyZWQtdGlt
ZXJzIChzdHJpbmctdG8taW50IHN0cmluZykpKQogICAgICAoc2V0cSBpdGltZXItbmV4dC13
YWtldXAgNjAwKSkKICAgIDs7IHRlbGwgaXRpbWVyLXByb2Nlc3Mgd2hlbiB0byB3YWtldXAg
YWdhaW4KICAgIChwcm9jZXNzLXNlbmQtc3RyaW5nIGl0aW1lci1wcm9jZXNzCgkJCSAoY29u
Y2F0IChpbnQtdG8tc3RyaW5nIGl0aW1lci1uZXh0LXdha2V1cCkKCQkJCSAiXG4iKSkpKQoK
KGRlZnVuIGl0aW1lci1wcm9jZXNzLXNlbnRpbmVsIChwcm9jZXNzIG1lc3NhZ2UpCiAgKGxl
dCAoKGluaGliaXQtcXVpdCB0KSkKICAgIChpZiAoZXEgKHByb2Nlc3Mtc3RhdHVzIHByb2Nl
c3MpICdzdG9wKQoJKGNvbnRpbnVlLXByb2Nlc3MgcHJvY2VzcykKICAgICAgOzsgbm90IHN0
b3BwZWQsIHNvIGl0IG11c3QgaGF2ZSBkaWVkLgogICAgICA7OyBjbGVhbnVwIGZpcnN0Li4u
CiAgICAgIChkZWxldGUtcHJvY2VzcyBwcm9jZXNzKQogICAgICAoc2V0cSBpdGltZXItcHJv
Y2VzcyBuaWwpCiAgICAgIDs7IG5vdywgaWYgdGhlcmUgYXJlIGFueSBhY3RpdmUgaXRpbWVy
cyB0aGVuIHdlIG5lZWQgdG8gaW1tZWRpYXRlbHkKICAgICAgOzsgc3RhcnQgYW5vdGhlciBp
dGltZXIgcHJvY2Vzcywgb3RoZXJ3aXNlIHdlIGNhbiB3YWl0IHVudGlsIHRoZSBuZXh0CiAg
ICAgIDs7IHN0YXJ0LWl0aW1lciBjYWxsLCB3aGljaCB3aWxsIHN0YXJ0IG9uZSBhdXRvbWF0
aWNhbGx5LgogICAgICAoaWYgKG51bGwgaXRpbWVyLWxpc3QpCgkgICgpCgk7OyB0aGVyZSBt
YXkgaGF2ZSBiZWVuIGFuIGVycm9yIG1lc3NhZ2UgaW4gdGhlIGVjaG8gYXJlYTsKCTs7IGdp
dmUgdGhlIHVzZXIgYXQgbGVhc3QgYSBsaXR0bGUgdGltZSB0byByZWFkIGl0LgoJKHNpdC1m
b3IgMikKCShtZXNzYWdlICJpdGltZXIgcHJvY2VzcyAlcy4uLiByZXNwYXduaW5nLiIgKHN1
YnN0cmluZyBtZXNzYWdlIDAgLTEpKQoJKGl0aW1lci1wcm9jZXNzLXN0YXJ0KSkpKSkKCihk
ZWZ1biBpdGltZXItcHJvY2Vzcy1zdGFydCAoKQogIChsZXQgKChpbmhpYml0LXF1aXQgdCkK
CShwcm9jZXNzLWNvbm5lY3Rpb24tdHlwZSBuaWwpKQogICAgKHNldHEgaXRpbWVyLXByb2Nl
c3MgKHN0YXJ0LXByb2Nlc3MgIml0aW1lciIgbmlsICJpdGltZXIiKSkKICAgIChwcm9jZXNz
LWtpbGwtd2l0aG91dC1xdWVyeSBpdGltZXItcHJvY2VzcykKICAgIChzZXQtcHJvY2Vzcy1m
aWx0ZXIgaXRpbWVyLXByb2Nlc3MgJ2l0aW1lci1wcm9jZXNzLWZpbHRlcikKICAgIChzZXQt
cHJvY2Vzcy1zZW50aW5lbCBpdGltZXItcHJvY2VzcyAnaXRpbWVyLXByb2Nlc3Mtc2VudGlu
ZWwpCiAgICA7OyBUZWxsIGl0aW1lciBwcm9jZXNzIHRvIHdha2UgdXAgcXVpY2tseSwgc28g
dGhhdCBhIGNvcnJlY3QKICAgIDs7IHdha2V1cCB0aW1lIGNhbiBiZSBjb21wdXRlZC4gIFpl
cm8gbG9zZXMgYmVjYXVzZSBvZgogICAgOzsgdW5kZXJseWluZyBpdGltZXIgaW1wbGVtZW50
YXRpb25zIHRoYXQgdXNlIDAgdG8gbWVhbgogICAgOzsgYGRpc2FibGUgdGhlIGl0aW1lcicu
CiAgICAoc2V0cSBpdGltZXItbmV4dC13YWtldXAgaXRpbWVyLXNob3J0LWludGVydmFsKQog
ICAgKHByb2Nlc3Mtc2VuZC1zdHJpbmcgaXRpbWVyLXByb2Nlc3MKCQkJIChmb3JtYXQgIiVz
XG4iIGl0aW1lci1uZXh0LXdha2V1cCkpKSkKCihkZWZ1biBpdGltZXItcHJvY2Vzcy13YWtl
dXAgKCkKICAoaW50ZXJydXB0LXByb2Nlc3MgaXRpbWVyLXByb2Nlc3MpCiAgKGFjY2VwdC1w
cm9jZXNzLW91dHB1dCkpCgooZGVmdW4gaXRpbWVyLXRpbWVyLXN0YXJ0ICgpCiAgKGxldCAo
KGluaGliaXQtcXVpdCB0KSkKICAgIChzZXRxIGl0aW1lci1uZXh0LXdha2V1cCBpdGltZXIt
c2hvcnQtaW50ZXJ2YWwKCSAgaXRpbWVyLXRpbWVyLWxhc3Qtd2FrZXVwIChjdXJyZW50LXRp
bWUpCgkgIGl0aW1lci10aW1lciAoYWRkLXRpbWVvdXQgaXRpbWVyLXNob3J0LWludGVydmFs
CgkJCQkgICAgJ2l0aW1lci10aW1lci1kcml2ZXIgbmlsIG5pbCkpKSkKCihkZWZ1biBpdGlt
ZXItdGltZXItd2FrZXVwICgpCiAgKGxldCAoKGluaGliaXQtcXVpdCB0KSkKICAgIChjb25k
ICgoZmJvdW5kcCAnY2FuY2VsLXRpbWVyKQoJICAgKGNhbmNlbC10aW1lciBpdGltZXItdGlt
ZXIpKQoJICAoKGZib3VuZHAgJ2Rpc2FibGUtdGltZW91dCkKCSAgIChkaXNhYmxlLXRpbWVv
dXQgaXRpbWVyLXRpbWVyKSkpCiAgICAoc2V0cSBpdGltZXItdGltZXIgKGFkZC10aW1lb3V0
IGl0aW1lci1zaG9ydC1pbnRlcnZhbAoJCQkJICAgICdpdGltZXItdGltZXItZHJpdmVyIG5p
bCBuaWwpKSkpCgooZGVmdW4gaXRpbWVyLXRpbWUtZGlmZmVyZW5jZSAodDEgdDIpCiAgOzsg
aWdub3JlIGhpZ2ggMTYgYml0cyBzaW5jZSB3ZSB3aWxsIG5ldmVyIGJlIGRlYWxpbmcgd2l0
aAogIDs7IHRpbWVzIHRoYXQgbG9uZy4KICAoc2V0cSB0MSAoY2RyIHQxKQoJdDIgKGNkciB0
MikpCiAgKGxldCAoKHVzZWNzICgtIChudGggMSB0MSkgKG50aCAxIHQyKSkpCgkoc2VjcyAo
LSAoY2FyIHQxKSAoY2FyIHQyKSkpKQogICAgIChpZiAoPCB1c2VjcyAwKQoJIChzZXRxIHNl
Y3MgKDEtIHNlY3MpCgkgICAgICAgdXNlY3MgKCsgdXNlY3MgMTAwMDAwMCkpKQogICAgICgr
IHNlY3MgKC8gdXNlY3MgKGlmIChmZWF0dXJlcCAnbGlzcC1mbG9hdC10eXBlKSAxZTYgMTAw
MDAwMCkpKSkpCgooZGVmdW4gaXRpbWVyLXRpbWVyLWRyaXZlciAoJnJlc3QgaWdub3JlZCkK
ICA7OyBpbmhpYml0IHF1aXQgYmVjYXVzZSBpZiB0aGUgdXNlciBxdWl0cyBhdCBhbiBpbm9w
cG9ydHVuZQogIDs7IHRpbWUsIHRoZSB0aW1lciBwcm9jZXNzIHdvbid0IGJuZSBsYXVuY2hl
ZCBhZ2FpbiBhbmQgdGhlCiAgOzsgc3lzdGVtIHN0b3BzIHdvcmtpbmcuICBpdGltZXItcnVu
LWV4cGlyZWQtdGltZXJzIGFsbG93cwogIDs7IGluZGl2aWR1YWwgdGltZXIgZnVuY3Rpb24g
dG8gYmUgYWJvcnRlZCwgc28gdGhlIHVzZXIgY2FuCiAgOzsgZXNjYXBlIGEgZmVyYWwgdGlt
ZXIgZnVuY3Rpb24uCiAgKGxldCogKChpbmhpYml0LXF1aXQgdCkKCSAobm93IChjdXJyZW50
LXRpbWUpKQoJIChlbGFwc2VkIChpdGltZXItdGltZS1kaWZmZXJlbmNlIG5vdyBpdGltZXIt
dGltZXItbGFzdC13YWtldXApKQoJIHNsZWVwKQogICAgKHNldHEgaXRpbWVyLXRpbWVyLWxh
c3Qtd2FrZXVwIG5vdwoJICBzbGVlcCAoaXRpbWVyLXJ1bi1leHBpcmVkLXRpbWVycyBlbGFw
c2VkKQoJICBpdGltZXItbmV4dC13YWtldXAgc2xlZXAKCSAgaXRpbWVyLXRpbWVyIChhZGQt
dGltZW91dCBzbGVlcCAnaXRpbWVyLXRpbWVyLWRyaXZlciBuaWwgbmlsKSkpKQoKKGRlZnVu
IGl0aW1lci1kcml2ZXItc3RhcnQgKCkKICAoaWYgKGZib3VuZHAgJ2FkZC10aW1lb3V0KQog
ICAgICAoaXRpbWVyLXRpbWVyLXN0YXJ0KQogICAgKGl0aW1lci1wcm9jZXNzLXN0YXJ0KSkp
CgooZGVmdW4gaXRpbWVyLWRyaXZlci13YWtldXAgKCkKICAoaWYgKGZib3VuZHAgJ2FkZC10
aW1lb3V0KQogICAgICAoaXRpbWVyLXRpbWVyLXdha2V1cCkKICAgIChpdGltZXItcHJvY2Vz
cy13YWtldXApKSkK
--XS+MzO/ZHeKYe5P50yTvKWk84W8MKEniWluKztj7
Content-Type: application/octet-stream
Content-Description: jwz's itimer-autosave stuff
Content-Disposition: attachment;
	filename="itimer-autosave.el"
Content-Transfer-Encoding: base64

Ozs7IGl0aW1lci1kcml2ZW4gYXV0by1zYXZlcwoKO2p3ejogdGhpcyBpcyBwcmVsb2FkZWQg
c28gZG9uJ3QgOzs7IyMjYXV0b2xvYWQKKGRlZnZhciBhdXRvLXNhdmUtdGltZW91dCAzMAog
ICIqTnVtYmVyIG9mIHNlY29uZHMgaWRsZSB0aW1lIGJlZm9yZSBhdXRvLXNhdmUuClplcm8g
b3IgbmlsIG1lYW5zIGRpc2FibGUgYXV0by1zYXZpbmcgZHVlIHRvIGlkbGVuZXNzLgoKVGhl
IGFjdHVhbCBhbW91bnQgb2YgaWRsZSB0aW1lIGJldHdlZW4gYXV0by1zYXZlcyBpcyBsb2dh
cml0aG1pY2FsbHkgcmVsYXRlZAp0byB0aGUgc2l6ZSBvZiB0aGUgY3VycmVudCBidWZmZXIu
ICBUaGlzIHZhcmlhYmxlIGlzIHRoZSBudW1iZXIgb2Ygc2Vjb25kcwphZnRlciB3aGljaCBh
biBhdXRvLXNhdmUgd2lsbCBoYXBwZW4gd2hlbiB0aGUgY3VycmVudCBidWZmZXIgaXMgNTBr
IG9yIGxlc3M7CnRoZSB0aW1lb3V0IHdpbGwgYmUgMiAxLzQgdGltZXMgdGhpcyBpbiBhIDIw
MGsgYnVmZmVyLCAzIDMvNCB0aW1lcyB0aGlzIGluIGEKMTAwMGsgYnVmZmVyLCBhbmQgNCAx
LzIgdGltZXMgdGhpcyBpbiBhIDIwMDBrIGJ1ZmZlci4KClNlZSBhbHNvIHRoZSB2YXJpYWJs
ZSBgYXV0by1zYXZlLWludGVydmFsJywgd2hpY2ggY29udHJvbHMgYXV0by1zYXZpbmcgYmFz
ZWQKb24gdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHR5cGVkLiIpCgo7and6OiB0aGlzIGlz
IHByZWxvYWRlZCBzbyBkb24ndCA7OzsjIyNhdXRvbG9hZAooZGVmdmFyIGF1dG8tZ2MtdGhy
ZXNob2xkICgvIGdjLWNvbnMtdGhyZXNob2xkIDMpCiAgIipHQyB3aGVuIHRoaXMgbWFueSBi
eXRlcyBoYXZlIGJlZW4gY29uc2VkIHNpbmNlIHRoZSBsYXN0IEdDLCAKYW5kIHRoZSB1c2Vy
IGhhcyBiZWVuIGlkbGUgZm9yIGBhdXRvLXNhdmUtdGltZW91dCcgc2Vjb25kcy4iKQoKKGRl
ZnVuIGF1dG8tc2F2ZS1pdGltZXIgKCkKICAiRm9yIHVzZSBhcyBhIGl0aW1lciBjYWxsYmFj
ayBmdW5jdGlvbi4KQXV0by1zYXZlcyBhbmQgZ2FyYmFnZS1jb2xsZWN0cyBiYXNlZCBvbiB0
aGUgc2l6ZSBvZiB0aGUgY3VycmVudCBidWZmZXIKYW5kIHRoZSB2YWx1ZSBvZiBgYXV0by1z
YXZlLXRpbWVvdXQnLCBgYXV0by1nYy10aHJlc2hvbGQnLCBhbmQgdGhlIGN1cnJlbnQKa2V5
Ym9hcmQgaWRsZS10aW1lLiIKICAoaWYgKG9yIChudWxsIGF1dG8tc2F2ZS10aW1lb3V0KQoJ
ICAoPD0gYXV0by1zYXZlLXRpbWVvdXQgMCkKCSAgKGVxIChtaW5pYnVmZmVyLXdpbmRvdykg
KHNlbGVjdGVkLXdpbmRvdykpKQogICAgICBuaWwKICAgIChsZXQgKChidWYtc2l6ZSAoMSsg
KGFzaCAoYnVmZmVyLXNpemUpIC04KSkpCgkgIChkZWxheS1sZXZlbCAwKQoJICAobm93IChj
dXJyZW50LXRpbWUpKQoJICBkZWxheSkKICAgICAgKHdoaWxlICg+IGJ1Zi1zaXplIDY0KQoJ
KHNldHEgZGVsYXktbGV2ZWwgKDErIGRlbGF5LWxldmVsKQoJICAgICAgYnVmLXNpemUgKC0g
YnVmLXNpemUgKGFzaCBidWYtc2l6ZSAtMikpKSkKICAgICAgKGlmICg8IGRlbGF5LWxldmVs
IDQpCgkgIChzZXRxIGRlbGF5LWxldmVsIDQpKQogICAgICA7OyBkZWxheV9sZXZlbCBpcyA0
IGZvciBmaWxlcyB1bmRlciBhcm91bmQgNTBrLCA3IGF0IDEwMGssIDkgYXQgMjAwaywKICAg
ICAgOzsgMTEgYXQgMzAwaywgYW5kIDEyIGF0IDUwMGssIDE1IGF0IDEgbWVnLCBhbmQgMTcg
YXQgMiBtZWcuCiAgICAgIChzZXRxIGRlbGF5ICgvICgqIGRlbGF5LWxldmVsIGF1dG8tc2F2
ZS10aW1lb3V0KSA0KSkKICAgICAgKGxldCAoKGlkbGUtdGltZSAoaWYgKG9yIChub3QgKGNv
bnNwIGxhc3QtaW5wdXQtdGltZSkpCgkJCSAgICAgICAoLz0gKGNhciBub3cpIChjYXIgbGFz
dC1pbnB1dC10aW1lKSkpCgkJCSAgICgxKyBkZWxheSkKCQkJICgtIChjYXIgKGNkciBub3cp
KSAoY2RyIGxhc3QtaW5wdXQtdGltZSkpKSkpCgkoYW5kICg+IGlkbGUtdGltZSBkZWxheSkK
CSAgICAgKGRvLWF1dG8tc2F2ZSkpCgkoYW5kICg+IGlkbGUtdGltZSBhdXRvLXNhdmUtdGlt
ZW91dCkKCSAgICAgKD4gKGNvbnNpbmctc2luY2UtZ2MpIGF1dG8tZ2MtdGhyZXNob2xkKQoJ
ICAgICAoZ2FyYmFnZS1jb2xsZWN0KSkpKSkKICA7OyBMb29rIGF0IHRoZSBpdGltZXIgdGhh
dCdzIGN1cnJlbnRseSBydW5uaW5nOyBpZiB0aGUgdXNlciBoYXMgY2hhbmdlZAogIDs7IHRo
ZSB2YWx1ZSBvZiBhdXRvLXNhdmUtdGltZW91dCwgbW9kaWZ5IHRoaXMgaXRpbWVyIHRvIGhh
dmUgdGhlIGNvcnJlY3QKICA7OyByZXN0YXJ0IHRpbWUuICBUaGVyZSB3aWxsIGJlIHNvbWUg
bGF0ZW5jeSBiZXR3ZWVuIHdoZW4gdGhlIHVzZXIgY2hhbmdlcwogIDs7IHRoaXMgdmFyaWFi
bGUgYW5kIHdoZW4gaXQgdGFrZXMgZWZmZWN0LCBidXQgaXQgd2lsbCBoYXBwZW4gZXZlbnR1
YWxseS4KICAobGV0ICgoc2VsZiAoZ2V0LWl0aW1lciAiYXV0by1zYXZlIikpKQogICAgKG9y
IHNlbGYgKGVycm9yICJhdXRvLXNhdmUtaXRpbWVyIGNhbid0IGZpbmQgaXRzZWxmIikpCiAg
ICAoaWYgKGFuZCBhdXRvLXNhdmUtdGltZW91dCAoPiBhdXRvLXNhdmUtdGltZW91dCA0KSkK
CShvciAoPSAoaXRpbWVyLXJlc3RhcnQgc2VsZikgKC8gYXV0by1zYXZlLXRpbWVvdXQgNCkp
CgkgICAgKHNldC1pdGltZXItcmVzdGFydCBzZWxmICgvIGF1dG8tc2F2ZS10aW1lb3V0IDQp
KSkpKQogIG5pbCkKCihkZWZ1biBpdGltZXItaW5pdC1hdXRvLWdjICgpCiAgKG9yIG5vbmlu
dGVyYWN0aXZlIDsgbWF5IGJlIGJlaW5nIHJ1biBmcm9tIGFmdGVyLWluaXQtaG9vayBpbiAt
YmF0Y2ggbW9kZS4KICAgICAgKGdldC1pdGltZXIgImF1dG8tc2F2ZSIpCiAgICAgIDs7IHRo
ZSB0aW1lIGhlcmUgaXMganVzdCB0aGUgZmlyc3QgaW50ZXJ2YWw7IGlmIHRoZSB1c2VyIGNo
YW5nZXMgaXQKICAgICAgOzsgbGF0ZXIsIGl0IHdpbGwgYWRqdXN0LgogICAgICAobGV0ICgo
dGltZSAobWF4IDIgKC8gKG9yIGF1dG8tc2F2ZS10aW1lb3V0IDMwKSA0KSkpKQoJKHN0YXJ0
LWl0aW1lciAiYXV0by1zYXZlIiAnYXV0by1zYXZlLWl0aW1lciB0aW1lIHRpbWUpKSkpCgoo
Y29uZCAocHVyaWZ5LWZsYWcKICAgICAgIDs7IFRoaXMgZmlsZSBpcyBiZWluZyBwcmVsb2Fk
ZWQgaW50byBhbiBlbWFjcyBhYm91dCB0byBiZSBkdW1wZWQuCiAgICAgICA7OyBTbyBhcnJh
bmdlIGZvciB0aGUgYXV0by1zYXZlIGl0aW1lciB0byBiZSBzdGFydGVkIG9uY2UgZW1hY3MK
ICAgICAgIDs7IGlzIGxhdW5jaGVkLgogICAgICAgKGFkZC1ob29rICdhZnRlci1pbml0LWhv
b2sgJ2l0aW1lci1pbml0LWF1dG8tZ2MpKQogICAgICAodAogICAgICAgOzsgT3RoZXJ3aXNl
LCB0aGlzIGZpbGUgaXMgYmVpbmcgbG9hZGVkIGludG8gYSBub3JtYWwsIGludGVyYWN0aXZl
CiAgICAgICA7OyBlbWFjcy4gIFN0YXJ0IHRoZSBhdXRvLXNhdmUgdGltZXIgbm93LgogICAg
ICAgKGl0aW1lci1pbml0LWF1dG8tZ2MpKSkK
--XS+MzO/ZHeKYe5P50yTvKWk84W8MKEniWluKztj7
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit



--XS+MzO/ZHeKYe5P50yTvKWk84W8MKEniWluKztj7--

