#!/usr/bin/python


#  PROJECT HONEY POT ADDRESS DISTRIBUTION SCRIPT
#  For more information visit: http://www.projecthoneypot.org/
#  Copyright (C) 2004-2015, Unspam Technologies, Inc.
#
#  This program is free software; you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation; either version 2 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software
#  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
#  02111-1307  USA
#
#  If you choose to modify or redistribute the software, you must
#  completely disconnect it from the Project Honey Pot Service, as
#  specified under the Terms of Service Use. These terms are available
#  here:
#
#  http://www.projecthoneypot.org/terms_of_service_use.php
#
#  The required modification to disconnect the software from the
#  Project Honey Pot Service is explained in the comments below. To find the
#  instructions, search for:  *** DISCONNECT INSTRUCTIONS ***
#
#  Generated On: Sat, 10 Jan 2015 12:36:51 -0800
#  For Domain: www.jaraco.com
#
#


#  *** DISCONNECT INSTRUCTIONS ***
#
#  You are free to modify or redistribute this software. However, if
#  you do so you must disconnect it from the Project Honey Pot Service.
#  To do this, you must delete the lines of code below located between the
#  *** START CUT HERE *** and *** FINISH CUT HERE *** comments. Under the
#  Terms of Service Use that you agreed to before downloading this software,
#  you may not recreate the deleted lines or modify this software to access
#  or otherwise connect to any Project Honey Pot server.
#
#  *** START CUT HERE ***
#
__REQUEST_HOST    = 'hpr6.projecthoneypot.org'
__REQUEST_PORT    = '80'
__REQUEST_SCRIPT  = '/cgi/serve.php'
#
#  *** FINISH CUT HERE ***
#

__HPOT_TAG1       = 'beb55980f32e6db44574361f639647a7'
__HPOT_TAG2       = 'b6fceffd64e7de1ac86c48c9fda3d71b'
__HPOT_TAG3       = 'd19f5da5c91195b739432dac8050cc1c'

__CLASS_STYLE_1   = 'yetajat'
__CLASS_STYLE_2   = 'mapatr'

__DIV1            = 'pr849ch2xos'

__VANITY_L1       = 'MEMBER OF PROJECT HONEY POT'
__VANITY_L2       = 'Spam Harvester Protection Network'
__VANITY_L3       = 'provided by Unspam'

__DOC_TYPE1       = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\n'
__HEAD1           = '<html>\n<head>\n'
__HEAD2           = '<title>www.jaraco.com</title>\n</head>\n'
__ROBOT1          = '<meta name="robots" content="noindex">\n<meta name="robots" content="noarchive,follow">\n'
__NOCOLLECT1      = '<meta name="no-email-collection" content="/">\n'
__TOP1            = '<body>\n<div align="center">\n'
__EMAIL1A         = '<a href="mailto:'
__EMAIL1B         = '" style="display: none;">'
__EMAIL1C         = '</a>'
__EMAIL2A         = '<a href="mailto:'
__EMAIL2B         = '" style="display:none;">'
__EMAIL2C         = '</a>'
__EMAIL3A         = '<a style="display: none;" href="mailto:'
__EMAIL3B         = '">'
__EMAIL3C         = '</a>'
__EMAIL4A         = '<a style="display:none;" href="mailto:'
__EMAIL4B         = '">'
__EMAIL4C         = '</a>'
__EMAIL5A         = '<a href="mailto:'
__EMAIL5B         = '"></a>'
__EMAIL5C         = '..'
__EMAIL6A         = '<span style="display: none;"><a href="mailto:'
__EMAIL6B         = '">'
__EMAIL6C         = '</a></span>'
__EMAIL7A         = '<span style="display:none;"><a href="mailto:'
__EMAIL7B         = '">'
__EMAIL7C         = '</a></span>'
__EMAIL8A         = '<!-- <a href="mailto:'
__EMAIL8B         = '">'
__EMAIL8C         = '</a> -->'
__EMAIL9A         = '<div id="'+__DIV1+'"><a href="mailto:'
__EMAIL9B         = '">'
__EMAIL9C         = '</a></div><br><script language="JavaScript" type="text/javascript">document.getElementById(\''+__DIV1+'\').innerHTML=\'\';</script>'
__EMAIL10A        = '<a href="mailto:'
__EMAIL10B        = '"><!-- '
__EMAIL10C        = ' --></a>'
__LEGAL1          = ''
__LEGAL2          = '\n'
__STYLE1          = '\n<style>a.'+__CLASS_STYLE_1+'{color:#FFF;font:bold 10px arial,sans-serif;text-decoration:none;}</style>'
__VANITY1         = '<table cellspacing="0"cellpadding="0"border="0"style="background:#999;width:230px;"><tr><td valign="top"style="padding: 1px 2px 5px 4px;border-right:solid 1px #CCC;"><span style="font:bold 30px arial,sans-serif;color:#666;top:0px;position:relative;">@</span></td><td valign="top" align="left" style="padding:3px 0 0 4px;"><a href="http://www.projecthoneypot.org/" class="'+__CLASS_STYLE_1+'">'+__VANITY_L1+'</a><br><a href="http://www.unspam.com"class="'+__CLASS_STYLE_1+'">'+__VANITY_L2+'<br>'+__VANITY_L3+'</a></td></tr></table>\n'
__BOTTOM1         = '</div>\n</body>\n</html>\n'


def _getLegalContent():
    return '<table cellspacing="0" cellpadding="0" border="0"><tr>\n<td><font face="courier">&nbsp;<b><span style="color:#FFF;">i</span></b><br>&nbsp;<br>&#84;h<br>&#116;o<br>ot<br>W&#101;<br>re<br>ag<br>&#116;h<br>no<br>We<br><br>&nbsp; <br>&nbsp;<br>Sp<br>No<br>&#115;p<br>pr<br>au<br><br>Em<br>I&#116;<br>a&#108;<br>&#104;a<br>st<br>&#118;a<br>s&#116;<br>ag<br><br>&nbsp; <br>&nbsp;<br>Ea<br>ag<br>(<!-- dna correct ambitious -->"<br>th<br>&#115;u<br>&#97;&#110;<br>of<br>an<br>Se<br>th<br><br>&nbsp; <br>&nbsp;<br>Yo<br>ma<br>ab<br>Vi<br><br>V<!-- traffic -->I<br>PA<br>SU<br></font></td>\n<td><font face="courier">&nbsp; <br><br>&#101; <br>&nbsp;&#121;<br>&#104;e<br>bs<br>ad<br>en<br>em<br>n-<br>bs<br><br>&nbsp; <br><br>e<!-- encounter legionary desert -->c<!-- joint liquid mosquitoes turndown ransom --><br>n&#45;<br>id<br>og<br>t&#111;<br><br>&#97;i<br>&nbsp;i<br>on<!-- planoconcave junk publicity knowledge priest --><br>s <br>or<br>lu<br>&#111;&#114;<br>re<br><br>&nbsp; <br><br>ch<br>ai<br>Ju<br>e <br>ch<br>d <br>&nbsp;f<br>y <br>rv<br>e <br><br><b><span style="color:#FFF;">d</span></b>&nbsp;<br><br>u <br>y<span style="color:#FFF;">h</span><br>us<br>si<br><br>SI<br>RT<br>BS<br></font></td>\n<td><font face="courier">&nbsp; <br><br>we<br>ou<br>r <br>it<br>&nbsp;&#116;<br>ts<br>&#46; <br>&#116;r<br>it<br><br>&nbsp; <br><br>ia<br>Hu<br>er<br>ra<br>&#109;a<br><br>l <br>s <br>e.<br>a <br>ag<br>e <br>in<br>em<br><br><b><span style="color:#FFF;">h</span></b>&nbsp;<br><br>&nbsp;p<br>ns<br>&#100;i<br>re<!-- rarefied felonious --><br>&nbsp;&#108;<br>&#112;e<br>ed<br>ac<br>ic<br>ab<br><br>&nbsp; <br><br>co<br>&#97;p<br>e.<br>to<br><br>TO<br>Y <br>EQ<br></font></td>\n<td><font face="courier">&nbsp; <br><br>bs<br>&nbsp;s<br>te<br>e <br>he<br>&nbsp;o<br>Th<br>an<br>e.<br><br>&nbsp; <br><br>l <br>ma<br>s,<br>ms<br>ti<br><br>ad<br>re<br>&nbsp;Y<br>va<br>e,<br>of<br>g <br>&#101;n<br><br>&nbsp; <br><br>ar<br>t <br>ci<br>gi<br>aw<br>rf<br>er<br>ti<br>e.<br>ov<br><br><b><span style="color:#FFF;">e</span></b>&nbsp;<br><br>ns<br>pe<br>&nbsp;T<br>rs<br><br>RS<br>OR<br>&#85;E<br></font></td>\n<td><font face="courier">&nbsp; <br><br>it<br>&#117;b<br>&#114;m<br>yo<br>m <br>f <br>e <br>sf<br><br><br>&nbsp; <br><br>re<br>n <br>&nbsp;b<br>&nbsp;d<br>ca<br><br>&#100;r<br>co<br>ou<br>lu<br>&nbsp;a<br>&nbsp;t<br>th<br>t<span style="color:#FFF;">f</span><br><br>&nbsp;<b><span style="color:#FFF;">c</span></b><br><br>ty<br>th<br>al<br>st<br>s <br>or<br>&#97;l<br>on<br>&nbsp;Y<br>e <br><br>&nbsp; <br><br>en<br>ar<br>he<br>&nbsp;a<br><br><span style="color:#FFF;">k</span>A<br><span style="color:#FFF;">c</span>S<br>NT<br></font></td>\n<td><font face="courier">&nbsp;<b><span style="color:#FFF;">t</span></b><br><br>e<span style="color:#FFF;">t</span><br>je<br>s <br>u<span style="color:#FFF;">p</span><br>ca<br>th<!-- perfoliate inclined convenient --><br>ac<br>er<br><br><br>&nbsp; <br><br>st<br>V&#105;<br>ot<br>es<br>&#108;l<br><br>es<br>gn<br>&nbsp;a<br>e <br>nd<br>he<br>is<br>an<br><br>&nbsp; <br><br>&nbsp;a<br>e <br>&nbsp;A<br>er<br>ar<br>me<br>&nbsp;a<br>&nbsp;b<br>o<!-- offbeat entire unfair question -->u<br>a&#103;<br><br><b><span style="color:#FFF;">h</span></b>&nbsp;<br><br>t<span style="color:#FFF;">h</span><br><span style="color:#FFF;">d</span>s<br><span style="color:#FFF;">p</span>I<br>gr<br><br>GR<br>EN<br><span style="color:#FFF;">e</span>&#66;<br></font></td>\n<td><font face="courier">&nbsp; <br><br>fr<br>ct<br>go<br>ac<br>re<br>e <br>ce<br>ab<br><br><br>&nbsp; <br><br>r&#105;<br>s&#105;<br>s,<br>ig<br>y.<br><br>se<br>iz<br>ck<br>no<br>/o<br>s&#101;<br>&nbsp;W<br>d <br><br>&nbsp; <br><br>gr<br>ot<br>ct<br>&#101;d<br>e <br>d<span style="color:#FFF;">s</span><br>nd<br>r&#111;<br>&nbsp;c<br>re<br><br>&nbsp; <br><br>to<br>om<br>de<br>&#101;e<br><br>EE<br>DI<br>RE<br></font></td>\n<td><font face="courier">&nbsp;<b><span style="color:#FFF;">e</span></b><br><br>om<br>&nbsp;&#116;<br>ve<br>&#99;e<br>fu<br>i&#110;<br>s&#115;<br>le<br><br><br>&nbsp;<b>S</b><br><br>ct<br>to<br>&nbsp;i<!-- royal --><br>n&#101;<br><br><br>s <br>&#101;d<br>&#110;o<br>t <br>r <br>&nbsp;a<br>e&#98;<br>ex<br><br>&nbsp;<b><span style="color:#FFF;">h</span></b><br><br>ee<br>he<br>io<br>&nbsp;A<br>ap<br>en<br>&nbsp;s<br>u&#103;<br>&#111;n<br>em<br><br>&nbsp; <br><br>&nbsp;h<br>&#101;w<br>nt<br>&nbsp;&#110;<br><br>&nbsp;T<br>NG<br>AC<br></font></td>\n<td><font face="courier">&nbsp; <br><br>&nbsp;w<br>o <br>rn<br>p&#116;<br>ll<br>di<br>&nbsp;r<br>&nbsp;w<br><br><br><b>&#80;E</b><br><br>io<br>r&#115;<br>nd<br>d <br><br><br>on<br>&nbsp;t<br>wl<br>&#108;&#101;<br>di<br>d&#100;<br>s&#105;<br>pr<br><br>&nbsp; <br><br>&#115;<span style="color:#FFF;">k</span><br>r <br>n"<br>dm<br>p&#108;<br>ti<br>ta<br>ht<br>se<br>en<br><br>&nbsp; <br><br>av<br>&#104;e<br>if<br>ot<br><br>H&#65;<br>&nbsp;A<br>H <br></font></td>\n<td><font face="courier">&nbsp;<b><span style="color:#FFF;">p</span></b><br><br>hi<br>t&#104;<br>in<br><span style="color:#FFF;">o</span>t<br>y.<br>vi<br>ig<br>it<br><br><br><b>CI</b><br><br>&#110;s<br>. <br>ex<br>to<br><br><br>&nbsp;t<br>h&#97;<br>ed<br>ss<br>st<br>re<br>te<br>es<br><br>&nbsp; <br><br>th<br>in<br>)<span style="color:#FFF;">k</span><br>in<br>&#105;e<br>re<br>te<br>&nbsp;a<br>nt<br>t&#46;<br><br>&nbsp; <br><br>in<br>re<br>i&#101;<br>&nbsp;t<br><br>T <br>NY<br>OF<br></font></td>\n<td><font face="courier">&nbsp; <br><br>ch<br>e <br>g <br>he<br>&nbsp;A<br>du<br>ht<br>ho<br><br><br><b>AL</b><br><br>&nbsp;o<br>No<br>er<br>&nbsp;a<br><br><br>hi<br>t<span style="color:#FFF;">e</span><br>g&#101;<br>&nbsp;t<br>&#114;i<br>s&#115;<br>\'s<br>sl<br><br>&nbsp; <br><br>at<br>&nbsp;c<br>sh<br>is<br>d <br>ly<br>&nbsp;c<br>ga<br>&nbsp;t<br><br><br>&nbsp; <br><br>g <br>&nbsp;o<br>r <br>o <br><br>&#72;A<br>&nbsp;M<br>&nbsp;T<br></font></td>\n<td><font face="courier">&nbsp; <br><br>&nbsp;y<br>fo<br>ac<br>se<br>ny<br>al<br>s <br>u&#116;<br><br><br>&nbsp;<b>L</b><br><br>n <br>n-<br>&#115;,<br>cc<br><br><br>s <br>t&#104;<br>&nbsp;&#97;<br>ha<br>&#98;u<br>es<br>&nbsp;e<br>y <br><br>&nbsp; <br><br>&nbsp;a<br>&#111;n<br>al<br>tr<br>&#116;o<br>&nbsp;w<br>o<!-- humanity -->u<br>in<br>o <br><br><br>&nbsp;<b><span style="color:#FFF;">c</span></b><br><br>yo<br>n <br>&#105;s<br>us<br><br>RV<br>ES<br>&#72;E<br></font></td>\n<td><font face="courier">&nbsp; <br><br>ou<br>l&#108;<br>&#99;e<br><span style="color:#FFF;">o</span>t<br>&nbsp;N<br>(s<!-- cormorants turndown nomadic --><br>gr<br>&nbsp;t<br><br><br><b>IC</b><br><br>a <br>Hu<br>&nbsp;r<br>e&#115;<br><br><br>si<br>es<br>nd<br>n <br>ti<br>.<span style="color:#FFF;">s</span><br>ma<br>pr<br><br>&nbsp;<b>A</b><br><br>ny<br>ne<br>&#108; <br>a&#116;<br>&nbsp;&#97;<br>it<br>rt<br>st<br>el<br><br><br><b>RE</b><br><br>ur<br>t&#104;<br>&nbsp;u<br>e<!-- offbeat -->&nbsp;<br><br>ES<br>SA<br>SE<br></font></td>\n<td><font face="courier">&nbsp;<b>T</b><br><br>&nbsp;a<br>o&#119;<br>ss<br>er<br>on<br>) <br>an<br>he<br><br><br><b>&#69;N</b><br><br>v&#105;<br>ma<br>ob<br>s,<br><br><br>te<br>e <br>&nbsp;a<br>US<br>&#111;n<br>In<br>il<br>oh<br><br><b>PP</b><br><br>&nbsp;s<br>c&#116;<br>be<br>iv<!-- stative waspy rascal --><br>gr<br>hi<br>s <br>&nbsp;h<!-- miniature restoration --><br>ec<br><br><br><b>CO</b><br><br>&nbsp;I<br>is<br>ni<br>t<!-- strand lackadaisical -->h<br><br>TI<br>GE<br>&nbsp;T<br></font></td>\n<td><font face="courier"><b>ER</b><br><br>cc<br>in<br><span style="color:#FFF;">p</span>t<br>ms<br>-H<br>wh<br>te<br>&nbsp;&#101;<br><br><br><b>SE</b><br><br>&#115;i<br>n <br>ot<br>&nbsp;r<br><br><br>&nbsp;a<br>e&#109;<br>g&#114;<br>&nbsp;$<br><span style="color:#FFF;">h</span>&#111;<br>t&#101;<br>&nbsp;a<br>i&#98;<br><br><b>L&#73;</b><br><br>ui<br>io<br>&nbsp;g<br>e <br>ee<br>n<span style="color:#FFF;">p</span><br>wi<br>im<br>tr<br><br><br><b>R&#68;</b><br><br>nt<br>&nbsp;p<br>qu<br>is<br><br>NG<br>(S<br>ER<br></font></td>\n<td><font face="courier"><b>MS</b><br><br>es<br>g <br>o<!-- speech settlement exact -->&nbsp;<br><span style="color:#FFF;">h</span>a<br>&#117;m<br>o <br>d <br>xp<br><br><br>&nbsp;<b>R</b><br><br>t&#111;<br>&#86;&#105;<br>s,<br>ea<br><br><br>re<br>ai<br>ee<br>&#53;&#48;<br>f<span style="color:#FFF;">f</span><br>nt<br>d&#100;<br>it<br><br><b>CA</b><br><br>t,<br>&#110; <br>ov<br>Co<br>me<br>th<br>th<br>&nbsp;&#105;<br>on<br><br><br><b>S</b>&nbsp;<br><br>er<br>ag<br>el<br>&nbsp;&#97;<br><br>, <br>) <br>&#77;S<br></font></td>\n<td><font face="courier">&nbsp;<b>A</b><br><br>se<br>co<br>th<br>nd<br>&#97;n<br>c&#111;<br>to<br>re<br><br><br><b>ES</b><br><br>r\'<br>si<br><span style="color:#FFF;">d</span>c<br>&#100;,<br><br><br>&nbsp;c<br>l <br>&nbsp;t<br>. <br>th<br>io<br>re<br>ed<br><br><b>BL</b><br><br>&nbsp;a<br>w&#105;<br>er<br>nt<br>nt<br>e <br>in<br>n <br>&#105;c<br><br><br><b>OF</b><br><br>ne<br>e <br>y <br>dd<br><br>&#71;A<br>TO<br><span style="color:#FFF;">f</span>O<br></font></td>\n<td><font face="courier"><b>ND</b><br><br>d <br>nd<br>e <br>&nbsp;c<br><span style="color:#FFF;">h</span>V<br>&#110;t<br>&nbsp;y<br>ss<br><br><br><b>TR</b><br><br>s <br>to<!-- dear --><br>ra<br>&nbsp;c<br><br><br>on<br>ad<br>&#104;a<br>Yo<br>es<br>na<br>s&#115;<br>.<br><br><b>&#69;<span style="color:#FFF;">h</span></b><br><br>ct<br>th<br>ne<br>ac<br>s <br>A&#100;<br>&nbsp;&#116;<br>co<br>&nbsp;s<br><br><br>&nbsp;<b>V</b><br><br>t<span style="color:#FFF;">p</span><br>(t<br>ma<br>r<!-- gabled impression expected toplevel -->e<br><br>TH<br>&nbsp;T<br>F <br></font></td>\n<td><font face="courier">&nbsp;<b>C</b><br><br>th<br>it<br>We<br>o<!-- mimic dizzy delay true accountant -->n<br>is<br>ro<br>o&#117;<br>&nbsp;w<br><br><br><b>IC</b><br><br>l&#105;<br>&#114;s<br>wl<br>&#111;m<br><br><br>si<br>dr<br>t <br>u <br>e <br>l <br>es<br><br><br><b>LA</b><br><br>io<br><span style="color:#FFF;">a</span>o<br>d <br>t <br>be<br>&#109;i<br>he<br>nn<br>er<br><br><br><b>IS</b><br><br>Pr<br>&#104;e<br>tc<br>ss<br><br>ER<br>&#72;E<br>S&#69;<br></font></td>\n<td><font face="courier"><b>ON</b><br><br>i&#115;<br>io<br>bs<br>di<br>it<br>ls<br>&nbsp;u<br>ri<br><br><br><b>T&#73;</b><br><br>ce<br>&nbsp;i<br>er<br>pi<br><br><br>de<br>&#101;s<br>ea<br>fu<br>ad<br>co<br><span style="color:#FFF;">a</span>&#105;<br><br><br><b>W</b>&nbsp;<br><br>n <br>r <br>&#98;y<br>&#40;t<br>tw<br>n <br>&nbsp;&#65;<br>ec<br>v&#105;<br><br><br><b>IT</b><br><br>ot<br>&nbsp;"<br>&#104;e<br>&nbsp;f<br><br>IN<br>&nbsp;I<br>R&#86;<br></font></td>\n<td><font face="courier"><b>DI</b><br><br>&nbsp;a<br>ns<br>it<br>&#116;i<br>or<br>, <br>nd<br>tt<br><br><br><b>ON</b><br><br>ns<br>nc<br>s,<br>le<br><br><br>re<br>&#115;e<br>ch<br>rt<br>dr<br>ll<br>s <br><br><br><b>A&#78;</b><br><br>&#111;r<br>a&#114;<br>&nbsp;t<br>he<br>&#101;e<br>S&#116;<br>&#100;m<br>ti<br>ce<br><br><br><b>&#79;R</b><br><br>&#111;c<br>Id<br>d <br>or<br><br>G&#44;<br>&#68;E<br>IC<br></font></td>\n<td><font face="courier"><b>T&#73;</b><br><br>gr<br>. <br>e.<br>on<!-- method para dietetic --><br>s <br>au<br>er<br>e&#110;<br><br><br><b>S</b>&nbsp;<br><br>e <br>lu<br>&nbsp;h<br>&nbsp;o<br><br><br>d <br>s <br>&nbsp;e<br>he<br>es<br>ec<br>re<br><br><br><b>D</b>&nbsp;<br><br>&nbsp;p<br>is<br>he<br>&nbsp;"<br>n <br>at<br>in<br>on<br>&nbsp;o<br><br><br>&nbsp;<b>U</b><br><br>ol<br>en<br>to<br>&nbsp;a<br><br><span style="color:#FFF;">p</span>&#83;<br>NT<br>E&#46;<br></font></td>\n<td><font face="courier"><b>ON</b><br><br>e&#101;<br>Th<br>&nbsp;B<br>&#115; <br>to<br>th<br>&nbsp;&#116;<br><span style="color:#FFF;">c</span>p<br><br><br><b>FO</b><br><br>&#116;o<br>d&#101;<br>ar<!-- favour --><br>r <br><br><br>p&#114;<br>ar<br>ma<br>r <br>s&#101;<br>&#116;&#105;<br>co<br><br><br><b>JU</b><br><br>ro<br>in<br>&nbsp;l<br>&#65;&#100;<br>Ad<br>e.<br>&nbsp;S<br>&nbsp;w<br>&#102; <br><br><br><b>&#83;E</b><br><br>&nbsp;a<br>ti<br>&nbsp;y<br>ny<br><br>TO<br>IF<br><br></font></td>\n<td><font face="courier"><b>S</b>&nbsp;<br><br>m&#101;<br>e&#115;<br>y <br>(t<br>&nbsp;t<br>o&#114;<br>he<br>e&#114;<br><br><br><b>R</b>&nbsp;<br><br>&nbsp;a<br>, <br>ve<br>g&#97;<br><br><br>op<br>e <br>il<br>ag<br>s <br>on<br>g&#110;<br><br><br><b>RI</b><br><br>ce<br>&#103; <br>aw<br>mi<br>mi<br>&nbsp;Y<br>ta<br>it<br>pr<br><br><br>&nbsp;<b>A</b><br><br>dd<br>&#102;i<br>ou<br>&nbsp;&#114;<br><br>R&#73;<br>IE<br><br></font></td>\n<td><font face="courier"><b>OF</b><br><br>nt<br>e <br>vi<br>he<br>he<br>s <br>&nbsp;T<br>mi<br><br><br><b>NO</b><br><br>cc<br>bu<br>st<br>t&#104;<br><br><br>&#114;&#105;<br>pr<br>&nbsp;a<br>r&#101;<br>su<br>, <br>iz<br><br><br><b>SD</b><br><br>ed<br>fr<br>&nbsp;o<br>n <br>n <br>ou<br>te<br>h <br>oc<br><br><br><b>N&#68;</b><br><br>re<br>er<br>&#114; <br>ea<br><br>NG<br>R <br><br></font></td>\n<td><font face="courier">&nbsp;<b>&#85;</b><br><br>&nbsp;(<br>t&#101;<br>si<br>&nbsp;"<br>&nbsp;W<br>or<br>&#101;r<br>&#115;s<br><br><br><b>&#78;-</b><br><br>es<br>t <br>er<br>er<br><br><br>&#101;t<br>ov<br>d&#100;<br>&#101; <br>bs<br>ha<br>ed<br><br><br><b>IC</b><br><br>in<!-- automation fat stanch controlled gays --><br>om<br>f<span style="color:#FFF;">o</span><br>S&#116;<br>S&#116;<br>&nbsp;&#99;<br>. <br>br<br>es<br><br><br>&nbsp;<b>A</b><br><br>ss<br>")<br>&#73;n<br>so<br><br>,<!-- divorce constituent calculating initiative polypetalous -->&nbsp;<br>CO<br><br></font></td>\n<td><font face="courier"><b>SE</b><br><br>"t<br>rm<br>ti<br>Te<br>e&#98;<br>&nbsp;o<br>ms<br>&#105;&#111;<br><br><br><b>HU</b><br><br>&#115; <br>ar<br>s,<br>&nbsp;c<br><br><br>ar<br>i&#100;<br>re<br>t&#104;<br>ta<br>&#114;v<br>&nbsp;a<br><br><br><b>&#84;I</b><br><br>g <br>&nbsp;t<br>th<br>&#97;t<br>at<br>on<br>Yo<br>ea<br>s <br><br><br><b>BU</b><br><br>&nbsp;&#114;<br>&nbsp;i<br>te<br>n.<br><br>TR<br>NS<!-- medal clergy depression statistical --><br><br></font></td>\n<td><font face="courier">&nbsp;<br><br>he<br>s<span style="color:#FFF;">a</span><br>ng<br>rm<br>si<br>th<br>&nbsp;o<br>&#110; <br><br><br><b>MA</b><br><br>&#116;h<br>e <br>&nbsp;&#111;<br>&#111;n<br><br><br>y <br>ed<br>ss<!-- triumphal temporary round --><br>at<br>nt<!-- everyday deranged bony librarians strongminded --><br>&#101;s<br>s<span style="color:#FFF;">i</span><br><br><br><b>ON</b><br><br>br<br>he<br>e <br>&#101;"<br>e <br>se<br>u <br>ch<br>re<br><br><br><b>&#83;E</b><br><br>ec<br>f <br>rn<br><br><br>AN<br>TI<!-- unflappable coots --><br><br></font></td>\n<td><font face="courier"><br><br>&nbsp;W<br>a<!-- sulky -->r<br>&nbsp;(<br>s<span style="color:#FFF;">p</span><br>te<br>er<br>f<!-- insipid nursing evil consanguineous -->&nbsp;<br>of<br><br><br><b>N<span style="color:#FFF;">c</span></b><br><br>e <br>no<br>&#114; <br>te<br><br><br>in<br>&nbsp;f<br>&nbsp;t<br>&nbsp;t<br>ia<br>&#116;i<br>a <br><br><br>&nbsp;<br><br>o&#117;<br>&nbsp;T<br>s<!-- minority aslope -->t<br>) <br>re<br>nt<!-- locusts --><br>co<br>&#101;s<br>ga<br><br><br><b><span style="color:#FFF;">f</span></b><br><br>or<br>we<br>et<!-- students pumped statuesque --><br><br><br>SF<br>TU<br><br></font></td>\n<td><font face="courier"><br><br>eb<br>e <br>i&#110;<br>o&#102;<br>&nbsp;s<br>wi<!-- frowzy relational --><br>Se<br>&nbsp;t<br><br><br><b>VI</b><br><br>We<br>t<span style="color:#FFF;">d</span><br>an<br>nt<br><br><br>te<br>or<br>he<br>he<br>&#108;l<br>n&#103;<br>vi<br><br><br><br><br>gh<br>er<br>&#97;t<br>&#102;o<br>si<br><span style="color:#FFF;">f</span>t<br>n&#115;<br>&nbsp;o<br>rd<br><br><br><br><br>de<br>&nbsp;s<br>&nbsp;P<br><br><br>ER<br>TE<br><br></font></td>\n<td><font face="courier"><br><br>si<br>in<br>&nbsp;a<br>&nbsp;S<br>ha<br>&#115;e<br>r<!-- lamp bracing chesty vermiform -->v<br>he<br><br><br><b>SI</b><br><br>bs<br>&#108;i<br>y<span style="color:#FFF;">k</span><br>&nbsp;&#102;<br><br><br>ll<br>&nbsp;h<br>&nbsp;W<br>&nbsp;c<br>&#121; <br>, <br>o&#108;<br><br><br><br><br>t <br>ms<br>e <br>r <br>de<br>o <br>en<br>f <br>i&#110;<br><br><br><br><br>&#100;.<br>us<br>ro<br><br><br>RI<br>S <br><br></font></td>\n<td><font face="courier"><br><br>t&#101;<br>&nbsp;a<br>&#110;y<br>er<br>&#108;l<br>&nbsp;m<br>&#105;c<br>&nbsp;o<br><br><br><b>TO</b><br><br>it<br>mi<br>o&#116;<br>r<!-- technique afro portrait dwelling -->o<br><br><br>ec<br>um<br>eb<br>&#111;&#109;<br>di<br>ga<br>&#97;t<br><br><br><br><br>&#98;y<br>&nbsp;o<br>o<!-- inch exclusion ordinal poisonpen illdisposed -->f<br>th<br>n&#116;<br>th<br>&#116; <br>th<br>g <br><br><br><br><br>&nbsp;A<br>pe<br>to<br><br><br>NG<br>AN<br><br></font></td>\n<td><font face="courier"><br><br>")<br>dd<br>&nbsp;m<br>vi<br>&nbsp;b<br>&#97;&#107;<br>e <br>&#119;n<br><br><br><b>&#82;S</b><br><br>e<span style="color:#FFF;">d</span><br>te<br>&#104;e<br>m <br><br><br>tu<br>an<br>&#115;i<br>&#112;i<br>mi<br>th<br>i&#111;<br><br><br><br><br><span style="color:#FFF;">h</span>s<br>f <br>&nbsp;r<br>e <br>s <br>&#101; <br>to<br>es<br>ac<br><br><br><br><br>n <br>ct<br>co<br><br><br>&nbsp;T<br>&nbsp;A<br><br></font></td>\n<td><font face="courier"><br><br>&nbsp;i<br>it<br>an<br>ce<br>e <br>es<br>ar<br>er<br><br><br>&nbsp;<br><br>ap<br>d <br>r <br>t<!-- statuary -->h<br><br><br>al<br>&nbsp;v<br>te<br>la<br>ni<!-- pigeons exile nonsense obeisant --><br>er<br>&#110; <br><br><br><br><br>u&#99;<br>Se<br>es<br>We<br>en<br>ju<br>&nbsp;t<br>e <br>ti<br><br><br><br><br>em<br>&nbsp;&#112;<br>l <br><br><br>O <br>&#67;C<br><br></font></td>\n<td><font face="courier"><br><br>s <br>io<br>ne<br>")<br>co<br>&nbsp;u<br>e<br>&nbsp;o<br><br><br><br><br>p&#108;<br>to<br>co<br>e <br><br><br>&nbsp;p<br>is<br>&nbsp;c<br>ti<br>sh<br>in<br>of<br><br><br><br><br>h<span style="color:#FFF;">t</span><br>&#114;v<br>id<br>bs<br>te<br>ri<br>he<br>Te<br>on<br><br><br><br><br>ai<br>o&#116;<br>a&#100;<br><br><br>A <br>EP<br><br></font></td>\n<td><font face="courier"><br><br>pr<br>&#110; <br>r)<br>. <br>ns<br>&#115;&#101;<br><br>f <br><br><br><br><br>y <br>, <br>mp<br>We<br><br><br>ro<br>it<br>on<br>o&#110;<br>&#101;s<br>g,<br>&nbsp;t<br><br><br><br><br>pa<br>ic<br>en<br>&#105;&#116;<br>&#114;e<br>sd<br>&nbsp;v<br>rm<br>s<span style="color:#FFF;">h</span><br><br><br><br><br>l <br>en<br>dr<br><br><br>&#84;H<br>T&#65;<br><br></font></td>\n<td><font face="courier"><br><br>o&#118;<br>to<br>&nbsp;t<br>Pl<br>id<br>&nbsp;o<br><br>th<br><br><br><br><br>to<br>we<br>&#117;t<br>bs<br><br><br>pe<br>or<br>ta<br>&#44;<br>&nbsp;&#116;<br>&nbsp;a<br>hi<br><br><br><br><br>rt<br>&#101;<br>ce<br>e<span style="color:#FFF;">f</span><br>d <br>ic<br>en<br>s<span style="color:#FFF;">d</span><br>&#117;n<br><br><br><br><br>ad<br>&#116;i<br>es<br><br><br>IR<br>NC<br><br></font></td>\n<td><font face="courier"><br><br>id<br>&nbsp;a<br>h&#101;<br>e&#97;<br>er<br>f<br><br>e<br><br><br><br><br><br>b<br>er<br>i&#116;<br><br><br>rt<br>s<br>i&#110;<br><br>he<br>nd<br>s<br><br><br><br><br>y<br><br>&nbsp;o<br>as<br>&#105;n<br>t&#105;<br>ue<br>of<br>de<br><br><br><br><br>dr<br>al<br>s.<br><br><br>D<br>E <br><br></font></td>\n<td><font face="courier"><br><br>&#101;d<br>ny<br><br>se<br>ed<br><br><br><br><br><br><br><br><br><br><br>e<br><br><br>y.<br><br>s<br><br><br>/&#111;<br><br><br><br><br><br><br><br>f<br><br>to<br>on<br><span style="color:#FFF;">e</span>i<br><br>r<br><br><br><br><br>es<br><br><br><br><br><br>AN<br><br></font></td>\n<td><font face="courier"><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>r<br><br><br><br><br><br><br><br><br><br><br><br>n<br><br><br><br><br><br><br>s<br><br><br><br><br><br>D<br><br></font></td>\n</tr>\n</table>\n<br>'







del __CLASS_STYLE_1, __CLASS_STYLE_2, __DIV1, __VANITY_L1, __VANITY_L2, __VANITY_L3

__version__ = "1.3"

def _formatHTML( s ):
    return s.replace( r"\n", "\n" )

def _getDocType( _formatHTML = _formatHTML, __DOC_TYPE1 = __DOC_TYPE1 ):
    return _formatHTML( __DOC_TYPE1 )
del __DOC_TYPE1

def _getHeadHTML1( _formatHTML = _formatHTML, __HEAD1 = __HEAD1 ):
    return _formatHTML( __HEAD1 )
del __HEAD1

def _getRobotHTML( _formatHTML = _formatHTML, __ROBOT1 = __ROBOT1 ):
    return _formatHTML( __ROBOT1 )
del __ROBOT1

def _getNoCollectHTML( _formatHTML = _formatHTML,
                       __NOCOLLECT1 = __NOCOLLECT1 ):
    return _formatHTML( __NOCOLLECT1 )
del __NOCOLLECT1

def _getHeadHTML2( _formatHTML = _formatHTML, __HEAD2 = __HEAD2 ):
    return _formatHTML( __HEAD2 )
del __HEAD2

def _getTopHTML( _formatHTML = _formatHTML, __TOP1 = __TOP1 ):
    return _formatHTML( __TOP1 )
del __TOP1

def _getEmailHTML( method, m,
                   _formatHTML = _formatHTML,
                   __EMAIL1A = __EMAIL1A, __EMAIL1B = __EMAIL1B, __EMAIL1C = __EMAIL1C,
                   __EMAIL2A = __EMAIL2A, __EMAIL2B = __EMAIL2B, __EMAIL2C = __EMAIL2C,
                   __EMAIL3A = __EMAIL3A, __EMAIL3B = __EMAIL3B, __EMAIL3C = __EMAIL3C,
                   __EMAIL4A = __EMAIL4A, __EMAIL4B = __EMAIL4B, __EMAIL4C = __EMAIL4C,
                   __EMAIL5A = __EMAIL5A, __EMAIL5B = __EMAIL5B, __EMAIL5C = __EMAIL5C,
                   __EMAIL6A = __EMAIL6A, __EMAIL6B = __EMAIL6B, __EMAIL6C = __EMAIL6C,
                   __EMAIL7A = __EMAIL7A, __EMAIL7B = __EMAIL7B, __EMAIL7C = __EMAIL7C,
                   __EMAIL8A = __EMAIL8A, __EMAIL8B = __EMAIL8B, __EMAIL8C = __EMAIL8C,
                   __EMAIL9A = __EMAIL9A, __EMAIL9B = __EMAIL9B, __EMAIL9C = __EMAIL9C,
                   __EMAIL10A = __EMAIL10A, __EMAIL10B = __EMAIL10B, __EMAIL10C = __EMAIL10C ):
    return { 0: "",
             1: _formatHTML( __EMAIL1A + m + __EMAIL1B + m + __EMAIL1C ),
             2: _formatHTML( __EMAIL2A + m + __EMAIL2B + m + __EMAIL2C ),
             3: _formatHTML( __EMAIL3A + m + __EMAIL3B + m + __EMAIL3C ),
             4: _formatHTML( __EMAIL4A + m + __EMAIL4B + m + __EMAIL4C ),
             5: _formatHTML( __EMAIL5A + m + __EMAIL5B ),
             6: _formatHTML( __EMAIL6A + m + __EMAIL6B + m + __EMAIL6C ),
             7: _formatHTML( __EMAIL7A + m + __EMAIL7B + m + __EMAIL7C ),
             8: _formatHTML( __EMAIL8A + m + __EMAIL8B + m + __EMAIL8C ),
             9: _formatHTML( __EMAIL9A + m + __EMAIL9B + m + __EMAIL9C ),
             }.get( method, # if not found then default to method 10
                    _formatHTML( __EMAIL10A + m + __EMAIL10B + m + __EMAIL10C ) )
del __EMAIL1A, __EMAIL1B, __EMAIL1C
del __EMAIL2A, __EMAIL2B, __EMAIL2C
del __EMAIL3A, __EMAIL3B, __EMAIL3C
del __EMAIL4A, __EMAIL4B, __EMAIL4C
del __EMAIL5A, __EMAIL5B, __EMAIL5C
del __EMAIL6A, __EMAIL6B, __EMAIL6C
del __EMAIL7A, __EMAIL7B, __EMAIL7C
del __EMAIL8A, __EMAIL8B, __EMAIL8C
del __EMAIL9A, __EMAIL9B, __EMAIL9C
del __EMAIL10A, __EMAIL10B, __EMAIL10C

def _getLegalHTML( _formatHTML = _formatHTML, __LEGAL1 = __LEGAL1,
                   _getLegalContent = _getLegalContent, __LEGAL2 = __LEGAL2 ):
    return _formatHTML( __LEGAL1 + _getLegalContent() + __LEGAL2 )
del __LEGAL1, _getLegalContent, __LEGAL2

def _getStyleHTML( _formatHTML = _formatHTML, __STYLE1 = __STYLE1 ):
    return _formatHTML( __STYLE1 )
del __STYLE1

def _getVanityHTML( _formatHTML = _formatHTML, __VANITY1 = __VANITY1 ):
    return _formatHTML( __VANITY1 )
del __VANITY1

def _getBottomHTML( _formatHTML = _formatHTML, __BOTTOM1 = __BOTTOM1 ):
    return _formatHTML( __BOTTOM1 )
del __BOTTOM1

def _performRequest( request,
                     __REQUEST_HOST = __REQUEST_HOST,
                     __REQUEST_PORT = __REQUEST_PORT,
                     __REQUEST_SCRIPT = __REQUEST_SCRIPT,
                     __HPOT_TAG2 = __HPOT_TAG2 ):
    import http.client
    headers = { "User-Agent": "PHPot" + " " + __HPOT_TAG2,
                "Host": __REQUEST_HOST,
                "Content-Type": "application/x-www-form-urlencoded",
                "Connection": "close",
                }
    h = http.client.HTTPConnection( "%s:%s" % ( __REQUEST_HOST, __REQUEST_PORT ) )
    h.request( "POST", __REQUEST_SCRIPT, request, headers )
    return h.getresponse().read().decode('utf-8')
del __REQUEST_HOST, __REQUEST_PORT, __REQUEST_SCRIPT

def _whoAmI():
    import hashlib
    try:
        r = __file__
    except:
        import sys
        r = sys.argv[ 0 ]
    body = open( r, 'rb' ).read()
    body = body.split( b"\n", 1 )[ 1 ]
    return hashlib.md5( body ).hexdigest()

def _prepareRequest( REQUEST, forcePortNumber = None,
                     _whoAmI = _whoAmI, __HPOT_TAG1 = __HPOT_TAG1,
                     __HPOT_TAG2 = __HPOT_TAG2, __HPOT_TAG3 = __HPOT_TAG3 ):
    from sys import version
    postvars = {}
    postvars[ "tag1" ] = __HPOT_TAG1
    postvars[ "tag2" ] = __HPOT_TAG2
    postvars[ "tag3" ] = __HPOT_TAG3
    postvars[ "tag4" ] = _whoAmI()
    postvars[ "ip" ] = REQUEST[ "REMOTE_ADDR" ]
    postvars[ "svrn" ] = ( REQUEST.get( "HTTP_HOST", "" )
                           or REQUEST.get( "SERVER_NAME", "" ) )
    postvars[ "svp" ] = forcePortNumber or REQUEST.get( "SERVER_PORT", "80" )
    postvars[ "svip" ] = REQUEST.get( "SERVER_ADDR", "" )
    postvars[ "rquri" ] = ( REQUEST.get( "REQUEST_URI", "" )
                            or REQUEST.get( "PATH_INFO", "" ) )
    postvars[ "version" ] = __version__ + "-" + version.split()[ 0 ]
    postvars[ "sn" ] = ( REQUEST.get( "SCRIPT_NAME", "" )
                         or REQUEST.get( "PATH_TRANSLATED", "" ) )
    postvars[ "ref" ] = REQUEST.get( "HTTP_REFERER", "" )
    postvars[ "uagnt" ] = REQUEST.get( "HTTP_USER_AGENT", "" )
    return postvars
del _whoAmI, __HPOT_TAG1, __HPOT_TAG2, __HPOT_TAG3

def _transcribeResponse( response ):
    import urllib.parse
    settings = {}
    isParam = 0
    for line in response.split( "\n" ):
        if line == "<END>":
            isParam = 0
        if isParam:
            pieces = line.split( "=", 1 )
            settings[ pieces[ 0 ] ] = urllib.parse.unquote_plus( pieces[ 1 ] )
        if line == "<BEGIN>":
            isParam = 1
    if "directives" in settings:
        settings[ "directives" ] = settings[ "directives" ].split( "," )
    else:
        settings[ "directives" ] = [ "1" ] * 10
    settings[ "directives" ] = list( map( int, settings[ "directives" ] ) )
    for k, v in settings.items():
        try:
            settings[ k ] = int( v )
        except:
            pass
    return settings

def _getSettings( REQUEST, forcePortNumber = None,
                  _performRequest = _performRequest,
                  _prepareRequest = _prepareRequest,
                  _transcribeResponse = _transcribeResponse ):
    import urllib.parse
    request = []
    for k, v in _prepareRequest( REQUEST, forcePortNumber ).items():
        request.append( k + "=" + urllib.parse.quote( v ) )
    request = "&".join( request )
    response = _performRequest( request )
    return _transcribeResponse( response )
del _performRequest, _prepareRequest, _transcribeResponse

def _makeHTML( settings,
               _formatHTML = _formatHTML,
               _getBottomHTML = _getBottomHTML, _getDocType = _getDocType,
               _getEmailHTML = _getEmailHTML, _getHeadHTML1 = _getHeadHTML1,
               _getHeadHTML2 = _getHeadHTML2, _getLegalHTML = _getLegalHTML,
               _getNoCollectHTML = _getNoCollectHTML,
               _getRobotHTML = _getRobotHTML, _getStyleHTML = _getStyleHTML,
               _getTopHTML = _getTopHTML, _getVanityHTML = _getVanityHTML ):
    directives = settings[ "directives" ]
    email = settings.get( "email", None )
    emailmethod = settings.get( "emailmethod", None )
    return "".join ( [ directives[ 0 ] and _getDocType()  or "",
                       settings.get( "injDocType", 0 ) and _formatHTML( settings.get( "injDocTypeMsg", "" ) ) or "",
                       directives[ 1 ] and _getHeadHTML1() or "",
                       settings.get( "injHead1HTML", 0 ) and _formatHTML( settings.get( "injHead1HTMLMsg", "" ) ) or "",
                       directives[ 8 ] and _getRobotHTML() or "",
                       settings.get( "injRobotHTML", 0 ) and _formatHTML( settings.get( "injRobotHTMLMsg", "" ) ) or "",
                       directives[ 9 ] and _getNoCollectHTML() or "",
                       settings.get( "injNoCollectHTML", 0 ) and _formatHTML( settings.get( "injNoCollectHTMLMsg", "" ) ) or "",
                       directives[ 1 ] and _getHeadHTML2() or "",
                       settings.get( "injHead2HTML", 0 ) and _formatHTML( settings.get( "injHead2HTMLMsg", "" ) ) or "",
                       directives[ 2 ] and _getTopHTML() or "",
                       settings.get( "injTopHTML", 0 ) and _formatHTML( settings.get( "injTopHTMLMsg", "" ) ) or "",

                       settings.get( "actMsgOn", 0 ) and _formatHTML( settings.get( "actMsg", "" ) ) or "",
                       settings.get( "errMsgOn", 0 ) and _formatHTML( settings.get( "errMsg", "" ) ) or "",
                       settings.get( "customMsgOn", 0 ) and _formatHTML( settings.get( "customMsg", "" ) ) or "",

                       directives[ 3 ] and _getLegalHTML() or "",
                       settings.get( "injLegalHTML", 0 ) and _formatHTML( settings.get( "injLegalHTMLMsg", "" ) ) or "",
                       settings.get( "altLegalOn", 0 ) and _formatHTML( settings.get( "altLegalMsg", "" ) ) or "",

                       directives[ 4 ] and _getEmailHTML( emailmethod, email ) or "",
                       settings.get( "injEmailHTML", 0 ) and _formatHTML( settings.get( "injEmailHTMLMsg", "" ) ) or "",
                       directives[ 5 ] and _getStyleHTML() or "",
                       settings.get( "injStyleHTML", 0 ) and _formatHTML( settings.get( "injStyleHTMLMsg", "" ) ) or "",

                       directives[ 6 ] and _getVanityHTML() or "",
                       settings.get( "injVanityHTML", 0 ) and _formatHTML( settings.get( "injVanityHTMLMsg", "" ) ) or "",
                       settings.get( "altVanityOn", 0 ) and _formatHTML( settings.get( "altVanityMsg", "" ) ) or "",

                       directives[ 7 ] and _getBottomHTML() or "",
                       settings.get( "injBottomHTML", 0 ) and _formatHTML( settings.get( "injBottomHTMLMsg", "" ) ) or "",
                       ] )
del _formatHTML
del _getBottomHTML, _getDocType, _getEmailHTML
del _getHeadHTML1, _getHeadHTML2, _getLegalHTML, _getNoCollectHTML
del _getRobotHTML, _getStyleHTML, _getTopHTML, _getVanityHTML


def from_cgi( _getSettings = _getSettings, _makeHTML = _makeHTML ):
    """This function is to be called by CGI scripts.  It will print
    (to standard output) the Content-Type header and full page HTML)
    for your honeypot."""
    print("Content-Type: text/html")
    print("Cache-Control: no-cache")
    print()
    import os
    settings = _getSettings( os.environ )
    print(_makeHTML( settings ))


try:
    if __name__ == '__main__':
        from_cgi()
    else:
        del from_cgi
        def from_zope( REQUEST, forcePortNumber = None,
                       _getSettings = _getSettings, _makeHTML = _makeHTML ):
            """Pass this function the Zope REQUEST and it will return the
            full page HTML for your honeypot."""
            _getSettings = getattr( from_zope, 'getSettings', _getSettings )
            _makeHTML = getattr( from_zope, 'makeHTML', _makeHTML )
            if forcePortNumber:
                forcePortNumber = str( forcePortNumber )
            settings = _getSettings( REQUEST, forcePortNumber )
            return _makeHTML( settings )
        try:
            from_zope.getSettings = _getSettings
            from_zope.makeHTML = _makeHTML
        except:
            pass
        try:
            from_zope = from_zope.__call__
        except:
            pass
finally:
    try:
        del from_cgi
    except:
        pass
    del _getSettings, _makeHTML
