[ZPT] zpt 1.0 feedback
Joseph Wayne Norton
norton@alum.mit.edu
Mon, 09 Apr 2001 23:27:11 +0900
--Multipart_Mon_Apr__9_23:27:11_2001-1
Content-Type: text/plain; charset=US-ASCII
Evan -
I would like to provide some feedback regarding the zpt 1.0 release.
As a start, we really like the direction taken by the ZPT product and
look forward to using it further.
Here is our current set of issues:
# zpt/zope with go live
a. we tried using the webdav features of go live with zope but ran
into some trouble. go live was not able to see or edit the raw PT
source via webdav mode. either go live or zpt/zope would cause zope
to render the document and then overwrite the PT source with the html
output. i haven't spent enough time yet to investigate the exact
source of the trouble. ftp mode was fine.
b. we tried integrating some existing dtml/python methods with a zpt
but ran into the trouble of the handling of "." in the object names in
zope and go live not understanding (for example) that "index_html" is
really html. probably a pure zpt solution with standard suffixes
(.html,etc.) might be fine. a design or style guide of good practices
on using zope and go live together would be helpful.
# zpt/zope
a. html preview mode generates a URL (<name>/source.html) for browsing
the html source. Due to the additional directory in the name path, we
were having trouble with broken images. Part of my goal for using zpt
is to allow for "demo" html to be equally viewable inside zope and
outside as external files. I would prefer to minimize these issues.
b. we were not able to render the following zpt templates:
------------------------------------------------------------------
<html>
<head>
<title>tag test</title>
</head>
<body bgcolor="#FFFFEE">
<table border="1" cellspacing="0" cellpadding="0" bgcolor="white">
<tr>
<td tal:content="string:<b>I WANT TO BE BOLD!!!</b>">DUMMY
</td>
</tr>
</table>
</body>
</html>
------------------------------------------------------------------
The above template is modifed and stored as the following document:
------------------------------------------------------------------
<html>
<head>
<title>tag test</title>
</head>
<body bgcolor="#FFFFEE">
<table border="1" cellspacing="0" cellpadding="0" bgcolor="white">
<tr>
<td tal:content="string:<b>I WANT TO BE BOLD!!!</b>">
DUMMY
</td>
</tr>
</table>
</body>
</html>
------------------------------------------------------------------
Is this a feature or a limitation?
c. TALES: what is the policy for allowing (or disallowing) nested
single and double quotes in a string TALES expression? I haven't
checked yet, but I'm assuming the python TALES expression is identical
to the python handling of nested quotes.
d. TAL: is possible to construct an else/elsif construct using the
condition statement?
e. TALES: can you provide a few more examples describing the "here"
Optional Name?
f. TALES: i'm not clear on the meaning or usage of the "modules"
Optional Name?
g. TALES: the "request" Optional Name is available but what about
"response"?
i. It would be nice to be able to specify have a "default" TALES
expression type for an entire PT document (or having some other ways
of helping to remove some of the additional typing effort required by
zpt).
# simple demo program
a. we put together a very simple color chart demo using zpt.
regards,
- joe n.
--Multipart_Mon_Apr__9_23:27:11_2001-1
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="color_chart.zexp"
Content-Transfer-Encoding: base64
WkVYUAAAAAAAAGdzAAAAAAAAAUkoKFUKT0ZTLkZvbGRlcnEBVQZGb2xkZXJxAnRxA050Ln1xBChV
BXRpdGxlcQVVAFUDY3NzcQYoVQgAAAAAAABndXEHKGgBVQZGb2xkZXJxCHR0UVUCaWRxCVULY29s
b3JfY2hhcnRxClUSX19hY19sb2NhbF9yb2xlc19fcQt9cQxVBm5vcnRvbnENXXEOVQVPd25lcnEP
YXNVEGNvbG9yX2NoYXJ0Lmh0bWxxEChVCAAAAAAAAGd0cREoVSdQcm9kdWN0cy5QYWdlVGVtcGxh
dGVzLlpvcGVQYWdlVGVtcGxhdGVxElUQWm9wZVBhZ2VUZW1wbGF0ZXETdHRRVQhfb2JqZWN0c3EU
KH1xFShVCW1ldGFfdHlwZXEWVQ1QYWdlIFRlbXBsYXRlcRdoCWgQdX1xGChoFlUGRm9sZGVycRlo
CWgGdXR1LgAAAAAAAGd1AAAAAAAAATkoKFUKT0ZTLkZvbGRlcnEBVQZGb2xkZXJxAnRxA050Ln1x
BChVAmlkcQVVA2Nzc3EGVRJfX2FjX2xvY2FsX3JvbGVzX19xB31xCFUHbWFzYXNoaXEJXXEKVQVP
d25lcnELYXNVCF9vYmplY3RzcQwofXENKFUJbWV0YV90eXBlcQ5VBEZpbGVxD2gFVQdtYWMuY3Nz
cRB1fXERKGgOaA9oBVUHd2luLmNzc3ESdXRVB3dpbi5jc3NxEyhVCAAAAAAAAGd2cRQoVQlPRlMu
SW1hZ2VxFVUERmlsZXEWdHRRVQdtYWMuY3NzcRcoVQgAAAAAAABnd3EYKGgVVQRGaWxlcRl0dFFV
BXRpdGxlcRpVAFUGX293bmVycRsoXXEcVQlhY2xfdXNlcnNxHWFVBm5vcnRvbnEedHUuAAAAAAAA
Z3QAAAAAAAAdUygoVSdQcm9kdWN0cy5QYWdlVGVtcGxhdGVzLlpvcGVQYWdlVGVtcGxhdGVxAVUQ
Wm9wZVBhZ2VUZW1wbGF0ZXECdHEDTnQufXEEKFUFX3RleHRxBVT9GwAAPGh0bWw+CjxoZWFkPgo8
dGl0bGU+REVNTzwvdGl0bGU+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVu
dD0idGV4dC9odG1sOyBjaGFyc2V0PVNoaWZ0X0pJUyI+CjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFT
Y3JpcHQiPgo8IS0tIC8vIC5jc3MgaW5jbHVkZQoKaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLmlu
ZGV4T2YoIk1hYyIpID4gMSkgewoJZG9jdW1lbnQud3JpdGUoIjxsaW5rIHJlbD1zdHlsZXNoZWV0
IHR5cGU9J3RleHQvY3NzJyBocmVmPScvdGVzdC9jc3MvbWFjLmNzcycgdGl0bGU9J21haW4nPiIp
Owp9IGVsc2UgewoJaWYgKG5hdmlnYXRvci5hcHBOYW1lLmNoYXJBdCgwKSA9PSAiTSIpIHsKCQlk
b2N1bWVudC53cml0ZSgiPGxpbmsgcmVsPXN0eWxlc2hlZXQgdHlwZT0ndGV4dC9jc3MnIGhyZWY9
Jy90ZXN0L2Nzcy9tYWMuY3NzJyB0aXRsZT0nbWFpbic+Iik7Cgl9IGVsc2UgewoJCWRvY3VtZW50
LndyaXRlKCI8bGluayByZWw9c3R5bGVzaGVldCB0eXBlPSd0ZXh0L2NzcycgaHJlZj0nL3Rlc3Qv
Y3NzL3dpbi5jc3MnIHRpdGxlPSdtYWluJz4iKTsKCX0KfQovLy0tPgo8L3NjcmlwdD4KPHNjcmlw
dCBsYW5ndWFnZT0iSmF2YVNjcmlwdCI+CjwhLS0gLy8gc3RhbmRlcmQgSlMgYmxvY2sKCmZ1bmN0
aW9uIG1vdmV0byhpbml0KSB7Cgl2YXIgc3BhblggPSAxNTM7Cgl2YXIgc3BhblkgPSAxNTM7CgoJ
aWYgKGRvY3VtZW50LmxheWVycykgewoJCXZhciB3aW5XaWR0aCA9IGlubmVyV2lkdGg7CgkJdmFy
IHdpbkhlaWdodCA9IGlubmVySGVpZ2h0OwoJCXZhciBtZW51V2lkdGggPSBkb2N1bWVudC5sYXll
cnNbImxlZnRtZW51Il0uY2xpcC53aWR0aCAtMTsKCQl2YXIgbWVudUhlaWdodCA9IGRvY3VtZW50
LmxheWVyc1sidG9wbWVudSJdLmNsaXAuaGVpZ2h0IC0xOwoJCXZhciBsYXllcldpZHRoID0gZG9j
dW1lbnQubGF5ZXJzWyJjb250ZW50cyJdLmNsaXAud2lkdGg7CgkJdmFyIGxheWVySGVpZ2h0ID0g
ZG9jdW1lbnQubGF5ZXJzWyJjb250ZW50cyJdLmNsaXAuaGVpZ2h0OwoJCXZhciBsYXllckxlZnQg
PSBkb2N1bWVudC5sYXllcnNbImNvbnRlbnRzIl0ubGVmdDsKCQl2YXIgbGF5ZXJUb3AgPSBkb2N1
bWVudC5sYXllcnNbImNvbnRlbnRzIl0udG9wOwoKCQlpZiAoKGluaXQgPT0gMCkgJiYgKChsYXll
ckxlZnQgKiAtMSkgPCAobGF5ZXJXaWR0aCAtIHdpbldpZHRoKSkpIHsKCQkJZG9jdW1lbnQubGF5
ZXJzWyJjb250ZW50cyJdLm1vdmVCeSgoc3BhblggKiAtMSksIDApOwoJCQlkb2N1bWVudC5sYXll
cnNbInRvcG1lbnUiXS5tb3ZlQnkoKHNwYW5YICogLTEpLCAwKTsKCQl9IGVsc2UgaWYgKChpbml0
ID09IDEpICYmIChsYXllckxlZnQgPCBtZW51V2lkdGgpKSB7CgkJCWRvY3VtZW50LmxheWVyc1si
Y29udGVudHMiXS5tb3ZlQnkoc3BhblgsIDApOwoJCQlkb2N1bWVudC5sYXllcnNbInRvcG1lbnUi
XS5tb3ZlQnkoc3BhblgsIDApOwoJCX0gZWxzZSBpZiAoKGluaXQgPT0gMikgJiYgKChsYXllclRv
cCAqIC0xKSA8IChsYXllckhlaWdodCAtIHdpbkhlaWdodCkpKSB7CgkJCWRvY3VtZW50LmxheWVy
c1siY29udGVudHMiXS5tb3ZlQnkoMCwgKHNwYW5ZICogLTEpKTsKCQkJZG9jdW1lbnQubGF5ZXJz
WyJsZWZ0bWVudSJdLm1vdmVCeSgwLCAoc3BhblkgKiAtMSkpOwoJCX0gZWxzZSBpZiAoKGluaXQg
PT0gMykgJiYgKGxheWVyVG9wIDwgbWVudUhlaWdodCkpIHsKCQkJZG9jdW1lbnQubGF5ZXJzWyJj
b250ZW50cyJdLm1vdmVCeSgwLCBzcGFuWSk7CgkJCWRvY3VtZW50LmxheWVyc1sibGVmdG1lbnUi
XS5tb3ZlQnkoMCwgc3BhblkpOwoJCX0KCX0gZWxzZSBpZiAoZG9jdW1lbnQuYWxsKSB7CgkJdmFy
IHdpbldpZHRoID0gZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDsKCQl2YXIgd2luSGVpZ2h0ID0g
ZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7CgkJdmFyIG1lbnVXaWR0aCA9IGRvY3VtZW50LmFs
bC5sZWZ0bWVudS5vZmZzZXRXaWR0aCAtMTsKCQl2YXIgbWVudUhlaWdodCA9IGRvY3VtZW50LmFs
bC50b3BtZW51Lm9mZnNldEhlaWdodCAtMTsKCQl2YXIgbGF5ZXJXaWR0aCA9IGRvY3VtZW50LmFs
bC5jb250ZW50cy5vZmZzZXRXaWR0aDsKCQl2YXIgbGF5ZXJIZWlnaHQgPSBkb2N1bWVudC5hbGwu
Y29udGVudHMub2Zmc2V0SGVpZ2h0OwoJCXZhciBsYXllckxlZnQgPSBkb2N1bWVudC5hbGwuY29u
dGVudHMub2Zmc2V0TGVmdDsKCQl2YXIgbGF5ZXJUb3AgPSBkb2N1bWVudC5hbGwuY29udGVudHMu
b2Zmc2V0VG9wOwoKCQlpZiAoKGluaXQgPT0gMCkgJiYgKChsYXllckxlZnQgKyBsYXllcldpZHRo
KSA+ICh3aW5XaWR0aCkpKSB7CgkJCWRvY3VtZW50LmFsbFsiY29udGVudHMiXS5zdHlsZS5waXhl
bExlZnQgLT0gc3Bhblg7CgkJCWRvY3VtZW50LmFsbFsidG9wbWVudSJdLnN0eWxlLnBpeGVsTGVm
dCAtPSBzcGFuWDsKCQl9IGVsc2UgaWYgKChpbml0ID09IDEpICYmIChsYXllckxlZnQgPCBtZW51
V2lkdGgpKSB7CgkJCWRvY3VtZW50LmFsbFsiY29udGVudHMiXS5zdHlsZS5waXhlbExlZnQgKz0g
c3Bhblg7CgkJCWRvY3VtZW50LmFsbFsidG9wbWVudSJdLnN0eWxlLnBpeGVsTGVmdCArPSBzcGFu
WDsKCQl9IGVsc2UgaWYgKChpbml0ID09IDIpICYmICgobGF5ZXJUb3AgKiAtMSkgPCAobGF5ZXJI
ZWlnaHQgLSB3aW5IZWlnaHQpKSkgewoJCQlkb2N1bWVudC5hbGxbImNvbnRlbnRzIl0uc3R5bGUu
cGl4ZWxUb3AgLT0gc3Bhblk7CgkJCWRvY3VtZW50LmFsbFsibGVmdG1lbnUiXS5zdHlsZS5waXhl
bFRvcCAtPSBzcGFuWTsKCQl9IGVsc2UgaWYgKChpbml0ID09IDMpICYmIChsYXllclRvcCA8IG1l
bnVIZWlnaHQpKSB7CgkJCWRvY3VtZW50LmFsbFsiY29udGVudHMiXS5zdHlsZS5waXhlbFRvcCAr
PSBzcGFuWTsKCQkJZG9jdW1lbnQuYWxsWyJsZWZ0bWVudSJdLnN0eWxlLnBpeGVsVG9wICs9IHNw
YW5ZOwoJCX0KCX0KfQovLy0tPgo8L3NjcmlwdD4KPC9oZWFkPgoKPGJvZHkgYmdjb2xvcj0iI0ZG
RkZGRiIgbGVmdG1hcmdpbj0iMCIgdG9wbWFyZ2luPSIwIiBtYXJnaW53aWR0aD0iMCIgbWFyZ2lu
aGVpZ2h0PSIwIiBsaW5rPSIjRkY5OTAwIiB2bGluaz0iI0ZGOTkwMCIgYWxpbms9IiNGRjk5MDAi
Pgo8IS0tgUCBnIOMg0ODhIFbgXVOQVZJgXYgLS0+IAo8ZGl2IGlkPSJuYXZpIiBzdHlsZT0icG9z
aXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgdG9wOjA7IHotaW5kZXg6MTA7IHZpc2liaWxpdHk6IHZp
c2libGUiPgoJPHRhYmxlIHdpZHRoPSI1MSIgaGVpZ2h0PSI1MSIgYm9yZGVyPSIwIiBjZWxsc3Bh
Y2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJnY29sb3I9IiM3Nzc3NjYiPjx0cj48dGQgYWxpZ249
ImxlZnQiIHZhbGlnbj0idG9wIj4KCTx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBj
ZWxscGFkZGluZz0iMCIgYmdjb2xvcj0iIzc3Nzc2NiI+CgkJPHRyPgoJCQk8dGQ+CgkJCQk8dGFi
bGUgd2lkdGg9IjQ4IiBoZWlnaHQ9IjQ4IiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxs
cGFkZGluZz0iMCIgYmdjb2xvcj0iI0JCQkJBQSI+CgkJCQkJPHRyPjx0ZCBhbGlnbj0icmlnaHQi
IHZhbGlnbj0ibWlkZGxlIj4KCQkJCQkJCTxpbWcgbmFtZT0ibmF2aV8xIiBzcmM9Ii90ZXN0L2lt
YWdlL25hdmlfMS5naWYiIHdpZHRoPSI0NSIgaGVpZ2h0PSI0NSIgYm9yZGVyPSIwIiB1c2VtYXA9
IiNtX25hdmlfMSI+CgkJCQkJCQk8bWFwIG5hbWU9Im1fbmF2aV8xIj4KCQkJCQkJCQk8YXJlYSBz
aGFwZT0icmVjdCIgY29vcmRzPSIxMiwxMSwzOSwyMiIgaHJlZj0iIyIgb25jbGljaz0ibW92ZXRv
KDApIj4KCQkJCQkJCQk8YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIxMiwyNCwzOSwzNSIgaHJl
Zj0iIyIgb25jbGljaz0ibW92ZXRvKDEpIj4KCQkJCQkJCQk8YXJlYSBzaGFwZT0icmVjdCIgY29v
cmRzPSIxMiwwLDM5LDEwIiBocmVmPSIjIiBvbmNsaWNrPSJtb3ZldG8oMikiPgoJCQkJCQkJCTxh
cmVhIHNoYXBlPSJyZWN0IiBjb29yZHM9IjEyLDM1LDM5LDQ1IiBocmVmPSIjIiBvbmNsaWNrPSJt
b3ZldG8oMykiPgoJCQkJCQkJPC9tYXA+CgkJCQkJCTwvdGQ+CgkJCQkJPC90cj4KCQkJCTwvdGFi
bGU+CgkJCTwvdGQ+CgkJPC90cj4KCTwvdGFibGU+Cgk8L3RkPjwvdHI+PC90YWJsZT4KPC9kaXY+
Cgo8IS0tgUCBnIOMg0ODhIFbgXVUT1BNRU5VgXYgLS0+IAo8ZGl2IGlkPSJ0b3BtZW51IiBzdHls
ZT0icG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6NTA7IHRvcDowOyB6LWluZGV4Ojg7IG92ZXJmbG93
OiBoaWRkZW47IHZpc2liaWxpdHk6IHZpc2libGUiIHRhbDpkZWZpbmU9InJlZCBzdHJpbmc6MDA7
IGJsdWUgc3RyaW5nOjAwIj4KCTx0YWJsZSBoZWlnaHQ9IjUxIiBib3JkZXI9IjAiIGNlbGxzcGFj
aW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYmdjb2xvcj0iIzc3Nzc2NiI+PHRyPjx0ZCB2YWxpZ249
InRvcCI+Cgk8dGFibGUgaGVpZ2h0PSI1MCIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2Vs
bHBhZGRpbmc9IjAiIGJnY29sb3I9IiM3Nzc3NjYiPgoJCTx0cj4KCQkJPHRkIHZhbGlnbj0idG9w
IiB0YWw6cmVwZWF0PSJncmVlbiBweXRob246JzAwJywnMTEnLCcyMicsJzMzJywnNDQnLCc1NScs
JzY2JywnNzcnLCc4OCcsJzk5JywnQUEnLCdCQicsJ0NDJywnREQnLCdFRScsJ0ZGJyI+CgkJCQk8
dGFibGUgd2lkdGg9IjUwIiBoZWlnaHQ9IjQ4IiBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIwIgog
ICAgICAgICAgIGNlbGxwYWRkaW5nPSIwIiBiZ2NvbG9yPSIjMDAwMDAwIgogICAgICAgICAgIHRh
bDphdHRyaWJ1dGVzPSJiZ2NvbG9yIHN0cmluZzojJHJlZCRncmVlbiRibHVlIj4KCQkJCQk8dHI+
CgkJCQkJCTx0ZCBhbGlnbj0iY2VudGVyIiB2YWxpZ249ImNlbnRlciI+CgkJCQkJCQkJPGZvbnQg
ZmFjZT0igmyCciCDU4NWg2KDTiwgT3Nha2EiIGNsYXNzPSJweDEybWVudSIgdGFsOmNvbnRlbnQ9
InN0cmluZzpHOiRncmVlbiI+RzowMAoJCQkJCQkJCTwvZm9udD4KCQkJCQkJCTwvdGQ+CgkJCQkJ
CTwvdHI+CgkJCQk8L3RhYmxlPgoJCQk8L3RkPgoJCTwvdHI+Cgk8L3RhYmxlPgoJPC90ZD48L3Ry
PjwvdGFibGU+CjwvZGl2PgoKPCEtLYFAgZyDjINDg4SBW4F1TEVGVE1FTlWBdiAtLT4gCjxkaXYg
aWQ9ImxlZnRtZW51IiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgdG9wOjUwOyB6
LWluZGV4Ojg7IG92ZXJmbG93OiBoaWRkZW47IHdpZHRoOjUxOyB2aXNpYmlsaXR5OiB2aXNpYmxl
IiB0YWw6ZGVmaW5lPSJyZWQgc3RyaW5nOjAwOyBncmVlbiBzdHJpbmc6MDAiPgoJPHRhYmxlIHdp
ZHRoPSI1MSIgYm9yZGVyPSIwIiBjZWxsc3BhY2luZz0iMCIgY2VsbHBhZGRpbmc9IjAiIGJnY29s
b3I9IiM3Nzc3NjYiPjx0cj48dGQgYWxpZ249ImxlZnQiPgoJPHRhYmxlIHdpZHRoPSI1MCIgYm9y
ZGVyPSIwIiBjZWxsc3BhY2luZz0iMSIgY2VsbHBhZGRpbmc9IjAiIGJnY29sb3I9IiM3Nzc3NjYi
PgoJCTx0ciB0YWw6cmVwZWF0PSJibHVlIHB5dGhvbjonMDAnLCcxMScsJzIyJywnMzMnLCc0NCcs
JzU1JywnNjYnLCc3NycsJzg4JywnOTknLCdBQScsJ0JCJywnQ0MnLCdERCcsJ0VFJywnRkYnIj4K
CQkJPHRkIGFsaWduPSJsZWZ0Ij4KCQkJCTx0YWJsZSB3aWR0aD0iNDgiIGhlaWdodD0iNTAiIGJv
cmRlcj0iMCIgY2VsbHNwYWNpbmc9IjAiCiAgICAgICAgICAgY2VsbHBhZGRpbmc9IjAiIGJnY29s
b3I9IiMwMDAwMDAiCiAgICAgICAgICAgdGFsOmF0dHJpYnV0ZXM9ImJnY29sb3Igc3RyaW5nOiMk
cmVkJGdyZWVuJGJsdWUiPgoJCQkJCTx0cj4KCQkJCQkJPHRkIGFsaWduPSJjZW50ZXIiIHZhbGln
bj0ibWlkZGxlIj4KCQkJCQkJCTxmb250IGZhY2U9IoJsgnIgg1ODVoNig04sIE9zYWthIiBjbGFz
cz0icHgxMm1lbnUiIHRhbDpjb250ZW50PSJzdHJpbmc6QjokYmx1ZSI+QjowMAoJCQkJCQkJPC9m
b250PgoJCQkJCQk8L3RkPgoJCQkJCTwvdHI+CgkJCQk8L3RhYmxlPgoJCQk8L3RkPgoJCTwvdHI+
Cgk8L3RhYmxlPgoJPC90ZD48L3RyPjwvdGFibGU+CjwvZGl2PgoKPCEtLYFAgZyDjINDg4SBW4F1
Q09OVEVOVFOBdiAtLT4gCjxkaXYgaWQ9ImNvbnRlbnRzIiBzdHlsZT0icG9zaXRpb246YWJzb2x1
dGU7IGxlZnQ6NTA7IHRvcDo1MDsgei1pbmRleDowOyBvdmVyZmxvdzogaGlkZGVuOyB2aXNpYmls
aXR5OiB2aXNpYmxlIiB0YWw6ZGVmaW5lPSJyZWQgc3RyaW5nOjAwIj4KCTx0YWJsZSBib3JkZXI9
IjAiIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYmdjb2xvcj0iIzc3Nzc2NiI+PHRy
Pjx0ZD4KCTx0YWJsZSBib3JkZXI9IjAiIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMCIg
Ymdjb2xvcj0iIzc3Nzc2NiI+CgkJPHRyIHRhbDpyZXBlYXQ9ImJsdWUgcHl0aG9uOicwMCcsJzEx
JywnMjInLCczMycsJzQ0JywnNTUnLCc2NicsJzc3JywnODgnLCc5OScsJ0FBJywnQkInLCdDQycs
J0REJywnRUUnLCdGRiciPgoJCQk8dGQgdGFsOnJlcGVhdD0iZ3JlZW4gcHl0aG9uOicwMCcsJzEx
JywnMjInLCczMycsJzQ0JywnNTUnLCc2NicsJzc3JywnODgnLCc5OScsJ0FBJywnQkInLCdDQycs
J0REJywnRUUnLCdGRiciPgoJCQkJPHRhYmxlIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgYm9yZGVy
PSIwIiBjZWxsc3BhY2luZz0iMCIKICAgICAgICAgICBjZWxscGFkZGluZz0iMCIgYmdjb2xvcj0i
IzAwMDAwMCIKICAgICAgICAgICB0YWw6YXR0cmlidXRlcz0iYmdjb2xvciBzdHJpbmc6IyRyZWQk
Z3JlZW4kYmx1ZSI+CgkJCQkJPHRyPgoJCQkJCQk8dGQgYWxpZ249ImNlbnRlciIgdmFsaWduPSJt
aWRkbGUiPgoJCQkJCQkJPGZvbnQgZmFjZT0igmyCciCDU4NWg2KDTiwgT3Nha2EiIGNsYXNzPSJw
eDEwdGV4dCIgdGFsOmNvbnRlbnQ9InN0cmluZzpSOiRyZWQiPlI6MDA8L2ZvbnQ+PGJyPgoJCQkJ
CQkJPGZvbnQgZmFjZT0igmyCciCDU4NWg2KDTiwgT3Nha2EiIGNsYXNzPSJweDEwdGV4dCIgdGFs
OmNvbnRlbnQ9InN0cmluZzpHOiRncmVlbiI+RzowMDwvZm9udD48YnI+CgkJCQkJCQk8Zm9udCBm
YWNlPSKCbIJyIINTg1aDYoNOLCBPc2FrYSIgY2xhc3M9InB4MTB0ZXh0IiB0YWw6Y29udGVudD0i
c3RyaW5nOkI6JGJsdWUiPkI6MDA8L2ZvbnQ+PGJyPgoJCQkJCQk8L3RkPgoJCQkJCTwvdHI+CgkJ
CQk8L3RhYmxlPgoJCQk8L3RkPgoJCTwvdHI+Cgk8L3RhYmxlPgoJPC90ZD48L3RyPjwvdGFibGU+
CjwvZGl2PgoKPC9ib2R5Pgo8L2h0bWw+CnEGVQZleHBhbmRxB0sBVQJpZHEIVRBjb2xvcl9jaGFy
dC5odG1scQlVEl9fYWNfbG9jYWxfcm9sZXNfX3EKfXELVQdtYXNhc2hpcQxdcQ1VBU93bmVycQ5h
c1UGX293bmVycQ8oXXEQVQlhY2xfdXNlcnNxEWFVBm5vcnRvbnESdHETVQtfYmluZF9uYW1lc3EU
KGNTaGFyZWQuREMuU2NyaXB0cy5CaW5kaW5ncwpOYW1lQXNzaWdubWVudHMKcRVvcRZ9cRdVBl9h
c2duc3EYfXEZVQxuYW1lX3N1YnBhdGhxGlUQdHJhdmVyc2Vfc3VicGF0aHEbc3NidS4AAAAAAABn
dgAAAAAAAAHZKChVCU9GUy5JbWFnZXEBVQRGaWxlcQJ0cQNOdC59cQQoVQRzaXplcQVNGgFVBGRh
dGFxBlQaAQAAYTpsaW5re3RleHQtZGVjb3JhdGlvbjpub25lO30KYTp2aXNpdGVke3RleHQtZGVj
b3JhdGlvbjpub25lO30KYTphY3RpdmV7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fQoucHgxMHRleHR7
Zm9udC1zaXplOiAxNHB4OyBsaW5lLWhlaWdodDogMTVweDsgY29sb3I6ICM5OTk5Nzd9Ci5weDEy
bWVudXtmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxNXB4OyBjb2xvcjogI0ZGRkZERH0K
LnB4MTJ0aXRsZXtmb250LXNpemU6IDE0cHg7IGxpbmUtaGVpZ2h0OiAxNXB4OyBjb2xvcjogIzk5
OTk3N30KcQdVCF9fbmFtZV9fcQhVB3dpbi5jc3NxCVUFdGl0bGVxClUAVQxjb250ZW50X3R5cGVx
C1UIdGV4dC9jc3NxDFUMcHJlY29uZGl0aW9ucQ1VAFUSX19hY19sb2NhbF9yb2xlc19fcQ59cQ9V
B21hc2FzaGlxEF1xEVUFT3duZXJxEmFzdS4AAAAAAABndwAAAAAAAAHZKChVCU9GUy5JbWFnZXEB
VQRGaWxlcQJ0cQNOdC59cQQoVQRzaXplcQVNGgFVBGRhdGFxBlQaAQAAYTpsaW5re3RleHQtZGVj
b3JhdGlvbjpub25lO30KYTp2aXNpdGVke3RleHQtZGVjb3JhdGlvbjpub25lO30KYTphY3RpdmV7
dGV4dC1kZWNvcmF0aW9uOm5vbmU7fQoucHgxMHRleHR7Zm9udC1zaXplOiAxMnB4OyBsaW5lLWhl
aWdodDogMTNweDsgY29sb3I6ICM5OTk5Nzd9Ci5weDEybWVudXtmb250LXNpemU6IDEycHg7IGxp
bmUtaGVpZ2h0OiAxM3B4OyBjb2xvcjogI0ZGRkZERH0KLnB4MTJ0aXRsZXtmb250LXNpemU6IDEy
cHg7IGxpbmUtaGVpZ2h0OiAxM3B4OyBjb2xvcjogIzk5OTk3N30KcQdVCF9fbmFtZV9fcQhVB21h
Yy5jc3NxCVUFdGl0bGVxClUAVQxjb250ZW50X3R5cGVxC1UIdGV4dC9jc3NxDFUMcHJlY29uZGl0
aW9ucQ1VAFUSX19hY19sb2NhbF9yb2xlc19fcQ59cQ9VB21hc2FzaGlxEF1xEVUFT3duZXJxEmFz
dS7/////////////////////
--Multipart_Mon_Apr__9_23:27:11_2001-1
Content-Type: text/plain; charset=US-ASCII
--Multipart_Mon_Apr__9_23:27:11_2001-1--