From xemacs-m  Tue Mar 18 15:30:10 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 PAA14689
	for <xemacs-beta@xemacs.org>; Tue, 18 Mar 1997 15:30:04 -0600 (CST)
Received: by crystal.WonderWorks.COM 
	id QQchlk11933; Tue, 18 Mar 1997 16:03:25 -0500 (EST)
Date: Tue, 18 Mar 1997 16:03:25 -0500 (EST)
Message-Id: <QQchlk11933.199703182103@crystal.WonderWorks.COM>
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="Cy1xKAyCJrQ6fAQ0uuba7j7wLzN7jLrm+hYIhKKr"
Content-Transfer-Encoding: 7bit
From: Kyle Jones <kyle_jones@wonderworks.com>
To: xemacs-beta@xemacs.org
Subject: floating toolbar 1.02
X-Mailer: VM 6.20 under 19.15 XEmacs Lucid (beta99)
X-Face: /cA45WHG7jWq>(O3&Z57Y<"WsX5ddc,4c#w0F*zrV#=M
        0@~@,s;b,aMtR5Sqs"+nU.z^CSFQ9t`z2>W,S,]:[+2^
        Nbf6v4g>!&,7R4Ot4Wg{&tm=WX7P["9%a)_da48-^tGy
        ,qz]Z,Zz\{E.,]'EO+F)@$KtF&V


--Cy1xKAyCJrQ6fAQ0uuba7j7wLzN7jLrm+hYIhKKr
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Changes from 1.01:

give junk parent frame a junk buffer so it won't wind up being
made visible to display a user buffer.
convert to XEmacs comment style, banner and all that.


--Cy1xKAyCJrQ6fAQ0uuba7j7wLzN7jLrm+hYIhKKr
Content-Type: application/octet-stream
Content-Description: floating toolbar 1.02
Content-Disposition: attachment;
	filename="floating-toolbar.el"
Content-Transfer-Encoding: base64

Ozs7IGZsb2F0aW5nLXRvb2xiYXIuZWwgLS0gcG9wdXAgdG9vbGJhciBzdXBwb3J0IGZvciBY
RW1hY3MuCjs7IENvcHlyaWdodCAoQykgMTk5NyBLeWxlIEUuIEpvbmVzCgo7OyBBdXRob3I6
IEt5bGUgSm9uZXMgPGt5bGVfam9uZXNAd29uZGVyd29ya3MuY29tPgo7OyBLZXl3b3Jkczog
bGlzcAoKOzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgWEVtYWNzLgoKOzsgWEVtYWNzIGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKOzsg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkKOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
IHZlcnNpb24gMSwgb3IgKGF0IHlvdXIgb3B0aW9uKQo7OyBhbnkgbGF0ZXIgdmVyc2lvbi4K
Cjs7IFhFbWFjcyBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAo7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgo7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCjs7IEdOVSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgo7OyBBIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGNhbiBiZSBvYnRhaW5lZCBmcm9tIHRoaXMKOzsgcHJvZ3JhbSdz
IGF1dGhvciAoc2VuZCBlbGVjdHJvbmljIG1haWwgdG8ga3lsZUB1dW5ldC51dS5uZXQpIG9y
IGZyb20KOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxl
IFBsYWNlIC0gU3VpdGUgMzMwLAo7OyBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KCjs7
OyBDb21tZW50YXJ5OgoKOzsgUG9wdXAgdG9vbGJhciBmb3IgWEVtYWNzIChwcm9iYWJseSBy
ZXF1aXJlIFhFbWFjcyAxOS4xNCBvciBsYXRlcikKOzsgU2VuZCBidWcgcmVwb3J0cyB0byBr
eWxlX2pvbmVzQHdvbmRlcndvcmtzLmNvbQoKOzsgVGhlIGNvbW1hbmQgYGZsb2F0aW5nLXRv
b2xiYXInIHBvcHMgdXAgYSBzbWFsbCBmcmFtZQo7OyBjb250YWluaW5nIGEgdG9vbGJhci4g
IFRoZSBjb21tYW5kIHNob3VsZCBiZSBib3VuZCB0byBhCjs7IGJ1dHRvbi1wcmVzcyBldmVu
dC4gIElmIHRoZSBtb3VzZSBwcmVzcyBoYXBwZW5zIG92ZXIgYW4KOzsgZXh0ZW50IHRoYXQg
aGFzIGEgbm9uLW5pbCAnZmxvYXRpbmctdG9vbGJhciBwcm9wZXJ0eSwgdGhlCjs7IHZhbHVl
IG9mIHRoYXQgcHJvcGVydHkgaXMgdGhlIHRvb2xiYXIgaW5zdGFudGlhdG9yIHRoYXQgd2ls
bAo7OyBiZSBkaXNwbGF5ZWQuICBPdGhlcndpc2UgdGhlIHRvb2xiYXIgZGlzcGxheWVkIGlz
IHRha2VuIGZyb20KOzsgdGhlIHZhcmlhYmxlIGBmbG9hdGluZy10b29sYmFyJy4gIFRoaXMg
dmFyaWFibGUgY2FuIGJlIG1hZGUKOzsgYnVmZmVyIGxvY2FsIHRvIHByb2R1Y2UgYnVmZmVy
IGxvY2FsIGZsb2F0aW5nIHRvb2xiYXJzLgo7Owo7OyBgZmxvYXRpbmctdG9vbGJhci1vci1w
b3B1cC1tb2RlLW1lbnUnIHdvcmtzIGxpa2UgYGZsb2F0aW5nLXRvb2xiYXInCjs7IGV4Y2Vw
dCB0aGF0IGlmIG5vIHRvb2xiYXIgaXMgZm91bmQsIGBwb3B1cC1tb2RlLW1lbnUnIGlzIGNh
bGxlZC4KOzsKOzsgYGZsb2F0aW5nLXRvb2xiYXItZnJvbS1leHRlbnQtb3ItcG9wdXAtbW9k
ZS1tZW51JyB3b3JrcyBsaWtlCjs7IGBmbG9hdGluZy10b29sYmFyLW9yLXBvcHVwLW1vZGUt
bWVudScgZXhjZXB0IG9ubHkgZXh0ZW50IGxvY2FsCjs7IHRvb2xiYXJzIGFyZSB1c2VkOyB0
aGUgdmFsdWUgb2YgZmxvYXRpbmctdG9vbGJhciBpcyBub3QgdXNlZC4KOzsKOzsgSW5zdGFs
bGF0aW9uOgo7Owo7OyBCeXRlLWNvbXBpbGUgdGhlIGZpbGUgZmxvYXRpbmctdG9vbGJhci5l
bCAod2l0aCBNLXggYnl0ZS1jb21waWxlLWZpbGUpCjs7IGFuZCBwdXQgdGhlIC5lbGMgZmls
ZSBpbiBhIGRpcmVjdG9yeSBpbiB5b3VyIGxvYWQtcGF0aC4gIEFkZCB0aGUKOzsgZm9sbG93
aW5nIGxpbmUgdG8geW91ciAuZW1hY3M6Cjs7Cjs7IChyZXF1aXJlICdmbG9hdGluZy10b29s
YmFyKQo7Owo7OyBZb3Ugd2lsbCBhbHNvIG5lZWQgdG8gYmluZCBhIG1vdXNlIGNsaWNrIHRv
IGBmbG9hdGluZy10b29sYmFyJyBvciB0bwo7OyBgZmxvYXRpbmctdG9vbGJhci1vci1wb3B1
cC1tb2RlLW1lbnUnLgo7OyAKOzsgRm9yIDE5LjEyIHVzZXJzOgo7OyAgICBJZiB5b3UgYXJl
IHVzaW5nIGZ2d20sIFt0dl10d20gb3Igb2xbdl13bSwgeW91IGNhbiBhbHNvIGFkZAo7OyAg
ICB0aGUgZm9sbG93aW5nIGxpbmVzIHRvIHZhcmlvdXMgY29uZmlndXJhdGlvbiBmaWxlIHRv
IHVzZQo7OyAgICBtaW5pbWFsIGRlY29yYXRpb25zIG9uIHRoZSB0b29sYmFyIGZyYW1lLgo7
Owo7OyAgICBJbiAuZW1hY3M6Cjs7ICAgICAgIChzZXRxIGZsb2F0aW5nLXRvb2xiYXItZnJh
bWUtbmFtZSAiZmxvYXRpbmctdG9vbGJhciIpCjs7Cjs7ICAgIEZvciBvbFt2XXdtIHVzZSB0
aGlzIGluIC5YZGVmYXVsdHM6Cjs7ICAgICAgIG9sdndtLk5vRGVjb3I6IGZsb2F0aW5nLXRv
b2xiYXIKOzsgICAgICAgICBvcgo7OyAgICAgICBvbHdtLk1pbmltYWxEZWNvcjogZmxvYXRp
bmctdG9vbGJhcgo7Owo7OyAgICBGb3IgZnZ2bSB1c2UgdGhpcyBpbiB5b3VyIC5mdndtcmM6
Cjs7ICAgICAgIE5vVGl0bGUgZmxvYXRpbmctdG9vbGJhcgo7OyAgICBvcgo7OyAgICAgICBT
dHlsZSAiZmxvYXRpbmctdG9vbGJhciIgTm9UaXRsZSwgTm9IYW5kbGVzLCBCb3JkZXJXaWR0
aCAwCjs7Cjs7ICAgIEZvciB0d20gdXNlIHRoaXMgaW4geW91ciAudHdtcmM6Cjs7ICAgICAg
IE5vVGl0bGUgeyAiZmxvYXRpbmctdG9vbGJhciIgfQo7OyAKOzsgVW5kZXIgMTkuMTMgYW5k
IGxhdGVyIHZlcnNpb25zIHRoZSBmbG9hdGluZy10b29sYmFyIGZyYW1lIHVzZXMgYQo7OyB0
cmFuc2llbnQgd2luZG93IHRoYXQgaXMgbm90IG5vcm1hbGx5IGRlY29yYXRlZCBieSB3aW5k
b3cKOzsgbWFuYWdlcnMuICBTbyB0aGUgd2luZG93IG1hbmFnZXIgZGlyZWN0aXZlcyBzaG91
bGQgbm90IGJlCjs7IG5lZWRlZCBmb3IgWEVtYWNzIDE5LjEzIGFuZCBiZXlvbmQuCgo7Ozsg
Q29kZToKCihwcm92aWRlICdmbG9hdGluZy10b29sYmFyKQoKKHJlcXVpcmUgJ3Rvb2xiYXIp
CihyZXF1aXJlICd4KQoKKGRlZnZhciBmbG9hdGluZy10b29sYmFyLXZlcnNpb24gIjEuMDIi
CiAgIlZlcnNpb24gc3RyaW5nIGZvciB0aGUgZmxvYXRpbmctdG9vbGJhciBwYWNrYWdlLiIp
CgooZGVmdmFyIGZsb2F0aW5nLXRvb2xiYXItdXNlLXNvdW5kIG5pbAogICIqTm9uLW5pbCB2
YWx1ZSBtZWFucyBwbGF5IGEgc291bmQgdG8gaGVyYWxkIHRoZSBhcHBlYXJhbmNlCmFuZCBk
aXNhcHBlYXJhbmNlIG9mIHRoZSBmbG9hdGluZyB0b29sYmFyLgoKYGZsb2F0aW5nLXRvb2xi
YXItYXBwZWFycycgd2lsbCBiZSBwbGF5ZWQgd2hlbiB0aGUgdG9vbGJhciBhcHBlYXJzLgpg
ZmxvYXRpbmctdG9vbGJhci1kaXNhcHBlYXJzJyB3aWxsIGJlIHBsYXllZCB3aGVuIHRoZSB0
b29sYmFyIGRpc2FwcGVhcnMuCgpTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBmdW5j
dGlvbiBgbG9hZC1zb3VuZC1maWxlJyB0byBzZWUgaG93CmRlZmluZSBzb3VuZHMuIikKCihk
ZWZ2YXIgZmxvYXRpbmctdG9vbGJhciBuaWwKICAiKlRvb2xiYXIgaW5zdGFudGlhdG9yIHVz
ZWQgaWYgbW91c2UgZXZlbnQgaXMgbm90IG92ZXIgYW4gZXh0ZW50CndpdGggYSBub24tbmls
ICdmbG9hdGluZy10b29sYmFyIHByb3BlcnR5LiAgVGhpcyB2YXJpYWJsZSBjYW4gYmUKbWFk
ZSBsb2NhbCB0byBhIGJ1ZmZlciB0byBoYXZlIGJ1ZmZlciBsb2NhbCBmbG9hdGluZyB0b29s
YmFycy4iKQoKKGRlZnZhciBmbG9hdGluZy10b29sYmFyLWhlbHAtZm9udCBuaWwKICAiKk5v
bi1uaWwgdmFsdWUgc2hvdWxkIGJlIGEgZm9udCB0byBiZSB1c2VkIHRvIGRpc3BsYXkgdG9v
bGJhciBoZWxwCm1lc3NhZ2VzLiAgVGhlIGZsb2F0aW5nIHRvb2xiYXIgZnJhbWUgd2lsbCBo
YXZlIGEgbWluaWJ1ZmZlciB3aW5kb3cKc28gdGhhdCBpdCBjYW4gZGlzcGxheSBhbnkgaGVs
cCB0ZXh0IHRoYXQgaXMgYXR0YWNoZWQgdG8gdGhlIHRvb2xiYXIKYnV0dG9ucy4iKQoKKGRl
ZnZhciBmbG9hdGluZy10b29sYmFyLWZyYW1lLW5hbWUgbmlsCiAgIipUaGUgZnJhbWUgbmFt
ZSBmb3IgdGhlIGZyYW1lIHVzZWQgdG8gZGlzcGxheSB0aGUgZmxvYXRpbmcgdG9vbGJhci4i
KQoKOzs7Cjs7OyBFbmQgb2YgdXNlciB2YXJpYWJsZXMuCjs7OwoKKGRlZnZhciBmbG9hdGlu
Zy10b29sYmFyLWZyYW1lIG5pbAogICJUaGUgZmxvYXRpbmcgdG9vbGJhciBpcyBkaXNwbGF5
ZWQgaW4gdGhpcyBmcmFtZS4iKQoKKGRlZnZhciBmbG9hdGluZy10b29sYmFyLWRpc3BsYXkt
cGVuZGluZyBuaWwKICAiTm9uLW5pbCB2YWx1ZSBtZWFucyB0aGUgdG9vbGJhciBmcmFtZSB3
aWxsIGJlIHZpc2libGUgYXMgc29vbgphcyB0aGUgWCBzZXJ2ZXIgZ2V0cyBhcm91bmQgdG8g
ZGlzcGxheWluZyBpdC4gIE5pbCBtZWFucyBpdAp3aWxsIGJlIGludmlzaWJsZSBhcyBzb29u
IGFzIHRoZSBYIHNlcnZlciBkZWNpZGVzIHRvIGhpZGUgaXQuIikKCihkZWZ1biBmbG9hdGlu
Zy10b29sYmFyLWRpc3BsYXllZCAoKQogIChhbmQgKGZyYW1lLWxpdmUtcCBmbG9hdGluZy10
b29sYmFyLWZyYW1lKQogICAgICAgKGZyYW1lLXZpc2libGUtcCBmbG9hdGluZy10b29sYmFy
LWZyYW1lKSkpCgo7OzsjIyNhdXRvbG9hZAooZGVmdW4gZmxvYXRpbmctdG9vbGJhciAoZXZl
bnQgJm9wdGlvbmFsIGV4dGVudC1sb2NhbC1vbmx5KQogICJQb3B1cCBhIHRvb2xiYXIgbmVh
ciB0aGUgY3VycmVudCBtb3VzZSBwb3NpdGlvbi4KVGhlIHRvb2xiYXIgaW5zdGFudGlhdG9y
IHVzZWQgaXMgdGFrZW4gZnJvbSB0aGUgJ2Zsb2F0aW5nLXRvb2xiYXIKcHJvcGVydHkgb2Yg
YW55IGV4dGVudCB1bmRlciB0aGUgbW91c2UuICBJZiBubyBzdWNoIG5vbi1uaWwKcHJvcGVy
dHkgZXhpc3RzIGZvciBhbnkgZXh0ZW50IHVuZGVyIHRoZSBtb3VzZSwgdGhlbiB0aGUgdmFs
dWUgb2YgdGhlCnZhcmlhYmxlIGBmbG9hdGluZy10b29sYmFyJyBpcyBjaGVja2VkLiAgSWYg
aXRzIHZhbHVlIHNpIG5pbCwgdGhlbgpubyB0b29sYmFyIHdpbGwgYmUgZGlzcGxheWVkLgoK
VGhpcyBjb21tYW5kIHNob3VsZCBiZSBib3VuZCB0byBhIGJ1dHRvbiBwcmVzcyBldmVudC4K
CldoZW4gY2FsbGVkIGZyb20gYSBwcm9ncmFtLCBmaXJzdCBhcmcgRVZFTlQgc2hvdWxkIGJl
IHRoZSBidXR0b24KcHJlc3MgZXZlbnQuICBPcHRpb25hbCBzZWNvbmQgYXJnIEVYVEVOVC1M
T0NBTC1PTkxZIHNwZWNpZmllcwp0aGF0IG9ubHkgZXh0ZW50IGxvY2FsIHRvb2xiYXJzIHNo
b3VsZCBiZSB1c2VkOyB0aGlzIG1lYW5zIHRoZQpgZmxvYXRpbmctdG9vbGJhcicgdmFyaWFi
bGUgd2lsbCBub3QgYmUgY29uc3VsdGVkLiIKICAoaW50ZXJhY3RpdmUgIl9lIikKICAoaWYg
KG5vdCAobW91c2UtZXZlbnQtcCBldmVudCkpCiAgICAgIG5pbAogICAgKGxldCogKChidWZm
ZXIgKGV2ZW50LWJ1ZmZlciBldmVudCkpCgkgICAod2luZG93IChldmVudC13aW5kb3cgZXZl
bnQpKQoJICAgKGZyYW1lIChldmVudC1mcmFtZSBldmVudCkpCgkgICAocG9pbnQgKGFuZCBi
dWZmZXIgKGV2ZW50LXBvaW50IGV2ZW50KSkpCgkgICAoZ2x5cGgtZXh0ZW50IChldmVudC1n
bHlwaC1leHRlbnQgZXZlbnQpKQoJICAgKGdseXBoLWV4dGVudCAoaWYgKGFuZCBnbHlwaC1l
eHRlbnQKCQkJCSAgKGV4dGVudC1wcm9wZXJ0eSBnbHlwaC1leHRlbnQKCQkJCQkJICAgJ2Zs
b2F0aW5nLXRvb2xiYXIpKQoJCQkgICAgIGdseXBoLWV4dGVudCkpCgkgICAoZXh0ZW50IChv
ciBnbHlwaC1leHRlbnQKCQkgICAgICAgKGFuZCBwb2ludAoJCQkgICAgKGV4dGVudC1hdCBw
b2ludCBidWZmZXIgJ2Zsb2F0aW5nLXRvb2xiYXIpKSkpCgkgICAodG9vbGJhciAob3IgKGFu
ZCBleHRlbnQgKGdldCBleHRlbnQgJ2Zsb2F0aW5nLXRvb2xiYXIpKQoJCQkoYW5kIChub3Qg
ZXh0ZW50LWxvY2FsLW9ubHkpCgkJCSAgICAgKHN5bWJvbC12YWx1ZS1pbi1idWZmZXIgJ2Zs
b2F0aW5nLXRvb2xiYXIKCQkJCQkJICAgICBidWZmZXIgbmlsKSkpKQoJICAgKHggbmlsKQoJ
ICAgKHkgbmlsKQoJICAgKGVjaG8ta2V5c3Ryb2tlcyAwKQoJICAgKGF3YWl0aW5nLXJlbGVh
c2UgdCkKCSAgIChkb25lIG5pbCkpCiAgICAgIChpZiAobm90IChjb25zcCB0b29sYmFyKSkK
CSAgbmlsCgk7OyBldmVudC1beHldLXBpeGVsIGFyZSByZWxhdGl2ZSB0byB0aGUgdG9wIGxl
ZnQgY29ybmVyCgk7OyBvZiB0aGUgZnJhbWUuICBUaGUgcHJlc2VuY2Ugb2YgdG9wIGFuZCBs
ZWZ0IHRvb2xiYXIKCTs7IGFuZCB0aGUgbWVudWJhciBjYW4gbW92ZSB0aGlzIHBvc2l0aW9u
IGRvd24gYW5kCgk7OyBsZWZ0d2FyZCwgYnV0IFhFbWFjcyBkb2Vzbid0IGNvbXBlbnNhdGUg
Zm9yIHRoaXMgaW4KCTs7IHRoZSB2YWx1ZXMgcmV0dXJuZWQuICBTbyB3ZSBkbyBpdCBoZXJl
LCBhcyBiZXN0IHdlCgk7OyBjYW4uCgkobGV0KiAoKHBhcmFtcyAoZnJhbWUtcGFyYW1ldGVy
cyBmcmFtZSkpCgkgICAgICAgKHRvcCAoY2RyIChhc3NxICd0b3AgcGFyYW1zKSkpCgkgICAg
ICAgKGxlZnQgKGNkciAoYXNzcSAnbGVmdCBwYXJhbXMpKSkKCSAgICAgICAoeHRvcC10b29s
YmFyLWhlaWdodAoJCShpZiAoc3BlY2lmaWVyLWluc3RhbmNlIHRvcC10b29sYmFyKQoJCSAg
ICAoc3BlY2lmaWVyLWluc3RhbmNlIHRvcC10b29sYmFyLWhlaWdodCkKCQkgIDApKQoJICAg
ICAgICh4bGVmdC10b29sYmFyLXdpZHRoCgkJKGlmIChzcGVjaWZpZXItaW5zdGFuY2UgbGVm
dC10b29sYmFyKQoJCSAgICAoc3BlY2lmaWVyLWluc3RhbmNlIGxlZnQtdG9vbGJhci13aWR0
aCkKCQkgIDApKQoJICAgICAgIDs7IGJldHRlciB0aGFuIG5vdGhpbmcKCSAgICAgICAobWVu
dWJhci1oZWlnaHQgKGlmIGN1cnJlbnQtbWVudWJhciAyMiAwKSkpCgkgIChzZXRxIHggKCsg
bGVmdCB4bGVmdC10b29sYmFyLXdpZHRoIChldmVudC14LXBpeGVsIGV2ZW50KSkKCQl5ICgr
IHRvcCB4dG9wLXRvb2xiYXItaGVpZ2h0IG1lbnViYXItaGVpZ2h0CgkJICAgICAoZXZlbnQt
eS1waXhlbCBldmVudCkpKSkKCTs7IGZvciB0b29sYmFyIHNwZWMgYnVmZmVyIGxvY2FsIHZh
cmlhYmxlIHZhbHVlcwoJKGFuZCBidWZmZXIgKHNldC1idWZmZXIgYnVmZmVyKSkKCShmbG9h
dGluZy10b29sYmFyLWRpc3BsYXktdG9vbGJhciB0b29sYmFyIHggeSkKCSh3aGlsZSAobm90
IGRvbmUpCgkgIChzZXRxIGV2ZW50IChuZXh0LWNvbW1hbmQtZXZlbnQpKQoJICAoY29uZCAo
KGFuZCBhd2FpdGluZy1yZWxlYXNlIChidXR0b24tcmVsZWFzZS1ldmVudC1wIGV2ZW50KSkK
CQkgKHNldHEgYXdhaXRpbmctcmVsZWFzZSBuaWwpKQoJCSgoYW5kIChidXR0b24tcmVsZWFz
ZS1ldmVudC1wIGV2ZW50KQoJCSAgICAgIChldmVudC1vdmVyLXRvb2xiYXItcCBldmVudCkK
CQkgICAgICAoZXEgZmxvYXRpbmctdG9vbGJhci1mcmFtZSAoZXZlbnQtZnJhbWUgZXZlbnQp
KSkKCQkgKGZsb2F0aW5nLXRvb2xiYXItdW5kaXNwbGF5LXRvb2xiYXIpCgkJIChhbmQgd2lu
ZG93IChzZWxlY3QtZnJhbWUgKHdpbmRvdy1mcmFtZSB3aW5kb3cpKSkKCQkgKGFuZCB3aW5k
b3cgKHNlbGVjdC13aW5kb3cgd2luZG93KSkKCQkgKGRpc3BhdGNoLWV2ZW50IGV2ZW50KQoJ
CSAoc2V0cSBkb25lIHQpKQoJCSgoYW5kIChidXR0b24tcHJlc3MtZXZlbnQtcCBldmVudCkK
CQkgICAgICAoZXZlbnQtb3Zlci10b29sYmFyLXAgZXZlbnQpCgkJICAgICAgKGVxIGZsb2F0
aW5nLXRvb2xiYXItZnJhbWUgKGV2ZW50LWZyYW1lIGV2ZW50KSkpCgkJIChzZXRxIGF3YWl0
aW5nLXJlbGVhc2UgbmlsKQoJCSAoZGlzcGF0Y2gtZXZlbnQgZXZlbnQpKQoJCSh0CgkJIDs7
IHB1c2ggYmFjayB0aGUgZXZlbnQgaWYgaXQgd2FzIGluIGFub3RoZXIgZnJhbWUuCgkJIDs7
IGVhdCBpdCBpZiBpdCB3YXMgaW4gdGhlIHRvb2xiYXIgZnJhbWUuCgkJIChpZiAoYW5kIChl
dmVudC1mcmFtZSBldmVudCkKCQkJICAobm90IChlcSBmbG9hdGluZy10b29sYmFyLWZyYW1l
CgkJCQkgICAoZXZlbnQtZnJhbWUgZXZlbnQpKSkpCgkJICAgICAoc2V0cSB1bnJlYWQtY29t
bWFuZC1ldmVudHMKCQkJICAgKGNvbnMgZXZlbnQgdW5yZWFkLWNvbW1hbmQtZXZlbnRzKSkp
CgkJIChmbG9hdGluZy10b29sYmFyLXVuZGlzcGxheS10b29sYmFyKQoJCSAoc2V0cSBkb25l
IHQpKSkpCgl0ICkpKSkKCjs7OyMjI2F1dG9sb2FkCihkZWZ1biBmbG9hdGluZy10b29sYmFy
LW9yLXBvcHVwLW1vZGUtbWVudSAoZXZlbnQpCiAgIkxpa2UgZmxvYXRpbmctdG9vbGJhciwg
YnV0IGlmIG5vIHRvb2xiYXIgaXMgZGlzcGxheWVkCnJ1biBwb3B1cC1tb2RlLW1lbnUuIgog
IChpbnRlcmFjdGl2ZSAiX2UiKQogIChvciAoZmxvYXRpbmctdG9vbGJhciBldmVudCkgKHBv
cHVwLW1vZGUtbWVudSkpKQoKOzs7IyMjYXV0b2xvYWQKKGRlZnVuIGZsb2F0aW5nLXRvb2xi
YXItZnJvbS1leHRlbnQtb3ItcG9wdXAtbW9kZS1tZW51IChldmVudCkKICAiTGlrZSBmbG9h
dGluZy10b29sYmFyLW9yLXBvcHVwLW1vZGUtbWVudSwgYnV0IHNlYXJjaCBvbmx5IGZvciBh
bgpleHRlbnQgbG9jYWwgdG9vbGJhci4iCiAgKGludGVyYWN0aXZlICJfZSIpCiAgKG9yIChm
bG9hdGluZy10b29sYmFyIGV2ZW50IHQpIChwb3B1cC1tb2RlLW1lbnUpKSkKCihkZWZ1biBm
bG9hdGluZy10b29sYmFyLWRpc3BsYXktdG9vbGJhciAodG9vbGJhciB4IHkpCiAgKGlmIChu
b3QgKGZyYW1lLWxpdmUtcCBmbG9hdGluZy10b29sYmFyLWZyYW1lKSkKICAgICAgKHNldHEg
ZmxvYXRpbmctdG9vbGJhci1mcmFtZSAoZmxvYXRpbmctdG9vbGJhci1tYWtlLXRvb2xiYXIt
ZnJhbWUgeCB5KSkpCiAgKHNldC1zcGVjaWZpZXIgdG9wLXRvb2xiYXIKCQkgKGNvbnMgKHdp
bmRvdy1idWZmZXIKCQkJKGZyYW1lLXNlbGVjdGVkLXdpbmRvdyBmbG9hdGluZy10b29sYmFy
LWZyYW1lKSkKCQkJdG9vbGJhcikpCiAgKGZsb2F0aW5nLXRvb2xiYXItcmVzaXplLXRvb2xi
YXItZnJhbWUgdG9vbGJhcikKICA7OyBmaWRkbGUgd2l0aCB0aGUgeCB2YWx1ZSB0byB0cnkg
dG8gY2VudGVyIHRoZSB0b29sYmFyIHJlbGF0aXZlIHRvCiAgOzsgdGhlIG1vdXNlIHBvc2l0
aW9uLgogIChzZXRxIHggKG1heCAwICgtIHggKC8gKGZyYW1lLXBpeGVsLXdpZHRoIGZsb2F0
aW5nLXRvb2xiYXItZnJhbWUpIDIpKSkpCiAgKGZsb2F0aW5nLXRvb2xiYXItc2V0LXRvb2xi
YXItZnJhbWUtcG9zaXRpb24geCB5KQogIChmbG9hdGluZy10b29sYmFyLWV4cG9zZS10b29s
YmFyLWZyYW1lKSkKCihkZWZ1biBmbG9hdGluZy10b29sYmFyLXVuZGlzcGxheS10b29sYmFy
ICgpCiAgKGZsb2F0aW5nLXRvb2xiYXItaGlkZS10b29sYmFyLWZyYW1lKSkKCihkZWZ1biBm
bG9hdGluZy10b29sYmFyLWhpZGUtdG9vbGJhci1mcmFtZSAoKQogIChpZiAoZmxvYXRpbmct
dG9vbGJhci1kaXNwbGF5ZWQpCiAgICAgIChwcm9nbgoJKG1ha2UtZnJhbWUtaW52aXNpYmxl
IGZsb2F0aW5nLXRvb2xiYXItZnJhbWUpCgkoaWYgKGFuZCBmbG9hdGluZy10b29sYmFyLXVz
ZS1zb3VuZCBmbG9hdGluZy10b29sYmFyLWRpc3BsYXktcGVuZGluZykKCSAgICAocGxheS1z
b3VuZCAnZmxvYXRpbmctdG9vbGJhci1kaXNhcHBlYXJzKSkKCShzZXRxIGZsb2F0aW5nLXRv
b2xiYXItZGlzcGxheS1wZW5kaW5nIG5pbCkpKSkKCihkZWZ1biBmbG9hdGluZy10b29sYmFy
LWV4cG9zZS10b29sYmFyLWZyYW1lICgpCiAgKGlmIChub3QgKGZsb2F0aW5nLXRvb2xiYXIt
ZGlzcGxheWVkKSkKICAgICAgKHByb2duCgkobWFrZS1mcmFtZS12aXNpYmxlIGZsb2F0aW5n
LXRvb2xiYXItZnJhbWUpCgkoaWYgKGFuZCBmbG9hdGluZy10b29sYmFyLXVzZS1zb3VuZAoJ
CSAobnVsbCBmbG9hdGluZy10b29sYmFyLWRpc3BsYXktcGVuZGluZykpCgkgICAgKHBsYXkt
c291bmQgJ2Zsb2F0aW5nLXRvb2xiYXItYXBwZWFycykpCgkoc2V0cSBmbG9hdGluZy10b29s
YmFyLWRpc3BsYXktcGVuZGluZyB0KSkpKQoKKGRlZnVuIGZsb2F0aW5nLXRvb2xiYXItcmVz
aXplLXRvb2xiYXItZnJhbWUgKHRvb2xiYXIpCiAgKGxldCAoKHdpZHRoIDApCgkoaGVpZ2h0
IG5pbCkKCShiZXZlbCAoKiAyIChvciAoY2RyIChhc3NxICd0b29sYmFyLXNoYWRvdy10aGlj
a25lc3MgKGZyYW1lLXBhcmFtZXRlcnMpKSkKCQkJMCkpKQoJKGNhcHRpb25lZCAoc3BlY2lm
aWVyLWluc3RhbmNlIHRvb2xiYXItYnV0dG9ucy1jYXB0aW9uZWQtcCkpCglidXR0b24gZ2x5
cGggZ2x5cGgtbGlzdCkKICAgICh3aGlsZSB0b29sYmFyCiAgICAgIChzZXRxIGJ1dHRvbiAo
Y2FyIHRvb2xiYXIpKQogICAgICAoY29uZCAoKG51bGwgYnV0dG9uKQoJICAgICAoc2V0cSB3
aWR0aCAoKyB3aWR0aCA4KSkpCgkgICAgKChlcSAoZWx0IGJ1dHRvbiAwKSAnOnNpemUpCgkg
ICAgIChzZXRxIHdpZHRoICgrIHdpZHRoIChlbHQgYnV0dG9uIDEpKSkpCgkgICAgKChhbmQg
KGVxIChlbHQgYnV0dG9uIDApICc6c3R5bGUpCgkJICAoPSAobGVuZ3RoIGJ1dHRvbikgNCkK
CQkgIChlcSAoZWx0IGJ1dHRvbiAyKSAnOnNpemUpKQoJICAgICAoc2V0cSB3aWR0aCAoKyB3
aWR0aCBiZXZlbCAoZWx0IGJ1dHRvbiAzKSkpKQoJICAgICh0CgkgICAgICAoc2V0cSBnbHlw
aC1saXN0IChlbHQgYnV0dG9uIDApKQoJICAgICAgKGlmIChzeW1ib2xwIGdseXBoLWxpc3Qp
CgkJICAoc2V0cSBnbHlwaC1saXN0IChzeW1ib2wtdmFsdWUgZ2x5cGgtbGlzdCkpKQoJICAg
ICAgKGlmIChhbmQgY2FwdGlvbmVkICg+IChsZW5ndGggZ2x5cGgtbGlzdCkgMykpCgkJICAo
c2V0cSBnbHlwaCAob3IgKG50aCAzIGdseXBoLWxpc3QpCgkJCQkgIChudGggNCBnbHlwaC1s
aXN0KQoJCQkJICAobnRoIDUgZ2x5cGgtbGlzdCkpKQoJCShzZXRxIGdseXBoIChjYXIgZ2x5
cGgtbGlzdCkpKQoJICAgICAgKHNldHEgd2lkdGggKCsgd2lkdGggYmV2ZWwgKGdseXBoLXdp
ZHRoIGdseXBoKSkpCgkgICAgICAob3IgaGVpZ2h0IChzZXRxIGhlaWdodCAoKyBiZXZlbCAo
Z2x5cGgtaGVpZ2h0IGdseXBoKSkpKSkpCiAgICAgIChzZXRxIHRvb2xiYXIgKGNkciB0b29s
YmFyKSkpCiAgICAoc2V0LXNwZWNpZmllciB0b3AtdG9vbGJhci1oZWlnaHQgaGVpZ2h0IGZs
b2F0aW5nLXRvb2xiYXItZnJhbWUpCiAgICAoc2V0LWZyYW1lLXdpZHRoIGZsb2F0aW5nLXRv
b2xiYXItZnJhbWUKCQkgICAgICgxKyAoLyB3aWR0aCAoZm9udC13aWR0aCAoZmFjZS1mb250
ICdkZWZhdWx0KQoJCQkJCSAgZmxvYXRpbmctdG9vbGJhci1mcmFtZSkpKSkpKQoKKGRlZnVu
IGZsb2F0aW5nLXRvb2xiYXItc2V0LXRvb2xiYXItZnJhbWUtcG9zaXRpb24gKHggeSkKICAo
c2V0LWZyYW1lLXBvc2l0aW9uIGZsb2F0aW5nLXRvb2xiYXItZnJhbWUgeCB5KSkKCihkZWZ1
biBmbG9hdGluZy10b29sYmFyLW1ha2UtanVuay1mcmFtZSAoKQogIChsZXQgKCh3aW5kb3ct
bWluLWhlaWdodCAxKQoJKHdpbmRvdy1taW4td2lkdGggMSkpCiAgICAoc2F2ZS1leGN1cnNp
b24KICAgICAgKHNldC1idWZmZXIgKGdlbmVyYXRlLW5ldy1idWZmZXIgIipqdW5rLWZyYW1l
LWJ1ZmZlcioiKSkKICAgICAgKHByb2cxCgkgIChtYWtlLWZyYW1lICcobWluaWJ1ZmZlciB0
IGluaXRpYWxseS11bm1hcHBlZCB0IHdpZHRoIDEgaGVpZ2h0IDEpKQoJKHJlbmFtZS1idWZm
ZXIgIiAqanVuay1mcmFtZS1idWZmZXIqIiB0KSkpKSkKCihkZWZ1biBmbG9hdGluZy10b29s
YmFyLW1ha2UtdG9vbGJhci1mcmFtZSAoeCB5KQogIChzYXZlLWV4Y3Vyc2lvbgogICAgKGxl
dCAoKHdpbmRvdy1taW4taGVpZ2h0IDEpCgkgICh3aW5kb3ctbWluLXdpZHRoIDEpCgkgIChi
Zy1jb2xvciAob3IgKHgtZ2V0LXJlc291cmNlICJiYWNrZ3JvdW5kVG9vbEJhckNvbG9yIgoJ
CQkJCSJCYWNrZ3JvdW5kVG9vbEJhckNvbG9yIgoJCQkJCSdzdHJpbmcKCQkJCQknZ2xvYmFs
CgkJCQkJKHNlbGVjdGVkLWRldmljZSkKCQkJCQl0KQoJCQkiZ3JleTc1IikpCgkgIChidWZm
ZXIgKGdldC1idWZmZXItY3JlYXRlICIgKmZsb2F0aW5nLXRvb2xiYXItYnVmZmVyKiIpKQoJ
ICAoZnJhbWUgbmlsKSkKICAgICAgKHNldC1idWZmZXIgYnVmZmVyKQogICAgICAoc2V0LWJ1
ZmZlci1tZW51YmFyIG5pbCkKICAgICAgKGlmIGZsb2F0aW5nLXRvb2xiYXItaGVscC1mb250
CgkgIChwcm9nbiAoc2V0LWJ1ZmZlciAod2luZG93LWJ1ZmZlciAobWluaWJ1ZmZlci13aW5k
b3cpKSkKCQkgKHNldC1idWZmZXItbWVudWJhciBuaWwpKSkKICAgICAgKHNldHEgZnJhbWUg
KG1ha2UtZnJhbWUgKGxpc3QKCQkJICAgICAgICcoaW5pdGlhbGx5LXVubWFwcGVkIC4gdCkK
CQkJICAgICAgIDs7IHRyeSB0byBldmFkZSBmcmFtZSBkZWNvcmF0aW9ucwoJCQkgICAgICAg
KGNvbnMgJ25hbWUgKG9yIGZsb2F0aW5nLXRvb2xiYXItZnJhbWUtbmFtZQoJCQkJCSAgICAg
ICAieGNsb2NrIikpCgkJCSAgICAgICAnKGJvcmRlci13aWR0aCAuIDIpCgkJCSAgICAgICAo
Y29ucyAnYm9yZGVyLWNvbG9yIGJnLWNvbG9yKQoJCQkgICAgICAgKGNvbnMgJ3RvcCB5KQoJ
CQkgICAgICAgKGNvbnMgJ2xlZnQgeCkKCQkJICAgICAgIChjb25zICdwb3B1cAoJCQkJICAg
ICAoZmxvYXRpbmctdG9vbGJhci1tYWtlLWp1bmstZnJhbWUpKQoJCQkgICAgICAgKGlmIGZs
b2F0aW5nLXRvb2xiYXItaGVscC1mb250CgkJCQkgICAnKG1pbmlidWZmZXIgLiBvbmx5KQoJ
CQkJICcobWluaWJ1ZmZlciAuIG5pbCkpCgkJCSAgICAgICAnKHdpZHRoIC4gMykKCQkJICAg
ICAgICcoaGVpZ2h0IC4gMSkpKSkKICAgICAgKHNldC1zcGVjaWZpZXIgdGV4dC1jdXJzb3It
dmlzaWJsZS1wIChjb25zIGZyYW1lIG5pbCkpCiAgICAgIChpZiBmbG9hdGluZy10b29sYmFy
LWhlbHAtZm9udAoJICAoc2V0LWZhY2UtZm9udCAnZGVmYXVsdCBmbG9hdGluZy10b29sYmFy
LWhlbHAtZm9udCBmcmFtZSkKCShzZXQtZmFjZS1mb250ICdkZWZhdWx0ICJuaWwyIiBmcmFt
ZSkpCiAgICAgIChzZXQtZmFjZS1iYWNrZ3JvdW5kICdkZWZhdWx0IGJnLWNvbG9yIGZyYW1l
KQogICAgICAoc2V0LWZhY2UtYmFja2dyb3VuZCAnbW9kZWxpbmUgYmctY29sb3IgZnJhbWUp
CiAgICAgIChzZXQtc3BlY2lmaWVyIG1vZGVsaW5lLXNoYWRvdy10aGlja25lc3MgKGNvbnMg
ZnJhbWUgMSkpCiAgICAgIChzZXQtc3BlY2lmaWVyIGhhcy1tb2RlbGluZS1wIChjb25zIGZy
YW1lIG5pbCkpCiAgICAgIChzZXQtZmFjZS1iYWNrZ3JvdW5kLXBpeG1hcCAnZGVmYXVsdCAi
IiBmcmFtZSkKICAgICAgKHNldC13aW5kb3ctYnVmZmVyIChmcmFtZS1zZWxlY3RlZC13aW5k
b3cgZnJhbWUpIGJ1ZmZlcikKICAgICAgKHNldC1zcGVjaWZpZXIgdG9wLXRvb2xiYXItaGVp
Z2h0IChjb25zIGZyYW1lIDApKQogICAgICAoc2V0LXNwZWNpZmllciBsZWZ0LXRvb2xiYXIt
d2lkdGggKGNvbnMgZnJhbWUgMCkpCiAgICAgIChzZXQtc3BlY2lmaWVyIHJpZ2h0LXRvb2xi
YXItd2lkdGggKGNvbnMgZnJhbWUgMCkpCiAgICAgIChzZXQtc3BlY2lmaWVyIGJvdHRvbS10
b29sYmFyLWhlaWdodCAoY29ucyBmcmFtZSAwKSkKICAgICAgKHNldC1zcGVjaWZpZXIgdG9w
LXRvb2xiYXIgKGNvbnMgZnJhbWUgbmlsKSkKICAgICAgKHNldC1zcGVjaWZpZXIgbGVmdC10
b29sYmFyIChjb25zIGZyYW1lIG5pbCkpCiAgICAgIChzZXQtc3BlY2lmaWVyIHJpZ2h0LXRv
b2xiYXIgKGNvbnMgZnJhbWUgbmlsKSkKICAgICAgKHNldC1zcGVjaWZpZXIgYm90dG9tLXRv
b2xiYXIgKGNvbnMgZnJhbWUgbmlsKSkKICAgICAgKHNldC1zcGVjaWZpZXIgc2Nyb2xsYmFy
LXdpZHRoIChjb25zIGZyYW1lIDApKQogICAgICAoc2V0LXNwZWNpZmllciBzY3JvbGxiYXIt
aGVpZ2h0IChjb25zIGZyYW1lIDApKQogICAgICBmcmFtZSApKSkKCjs7IGZpcnN0IHBvcHVw
IHNob3VsZCBiZSBmYXN0ZXIgaWYgd2UgZ28gYWhlYWQgYW5kIG1ha2UgdGhlIGZyYW1lIG5v
dy4KKG9yIGZsb2F0aW5nLXRvb2xiYXItZnJhbWUKICAgIChub3QgKGVxIChkZXZpY2UtdHlw
ZSkgJ3gpKQogICAgKHNldHEgZmxvYXRpbmctdG9vbGJhci1mcmFtZSAoZmxvYXRpbmctdG9v
bGJhci1tYWtlLXRvb2xiYXItZnJhbWUgMCAwKSkpCgo7OzsgZmxvYXRpbmctdG9vbGJhci5l
bCBlbmRzIGhlcmUK
--Cy1xKAyCJrQ6fAQ0uuba7j7wLzN7jLrm+hYIhKKr--

