Home » Archimedes archive » Acorn User » AU 1997-Xmas B.adf » PD » NetPlex/!Netplex/!Help/HTML/cgi-bin/imagemap

NetPlex/!Netplex/!Help/HTML/cgi-bin/imagemap

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Archimedes archive » Acorn User » AU 1997-Xmas B.adf » PD
Filename: NetPlex/!Netplex/!Help/HTML/cgi-bin/imagemap
Read OK:
File size: 0BAD bytes
Load address: 0000
Exec address: 0000
File contents
   10REM >cgi-bin.imagemap  (Netplex)
   20REM =========================================================================
   30REM Redirects clients to web pages based on a point specified in a map.
   40REM =========================================================================
   50
   60REM Wimpslot 16K
   70END=&C000
   80
   90LIBRARY "<Netplex$Dir>.CGILibrary"
  100REM Set up error handler, redirection and library variables.
  110PROCcgi_init
  120
  130mapname$=FNsystem_getvar("CGI$PathInfo")
  140IF mapname$="" ERROR 1,"No imagemap name was supplied"
  150
  160m$=FNsystem_getvar("CGI$QueryString")
  170IF m$="" ERROR 1,"No coordinates were supplied"
  180
  190X=0:Y=1:MAXVERTS=128
  200
  210DIM p(1),q(1,MAXVERTS-1)
  220z%=INSTR(m$,",")
  230p()=VALLEFT$(m$,z%-1),VALMID$(m$,z%+1)
  240
  250rd%=OPENIN "<Netplex$WebPagesDir>.Imagemaps"
  260IF rd%=0 ERROR 1,"Imagemap configuration file could not be found"
  270WHILE LEFT$(GET$#rd%,1)="#"
  280ENDWHILE
  290REPEAT
  300  m$=GET$#rd%
  310  z%=INSTR(m$,":")
  320  mapname2$=LEFT$(m$,z%-1)
  330  mappath$=MID$(m$,z%+1)
  340UNTIL mapname$=mapname2$ OR EOF#rd%
  341CLOSE#rd%
  342
  350IF mapname$<>mapname2$ AND EOF#rd% ERROR 1,"Map entry not found in configuration file"
  370
  380rd%=OPENIN mappath$
  390IF rd%=0 ERROR 1,"Map file could not be opened"
  400defaulturl$="/":cgi_headered%=FALSE
  410REPEAT
  420  m$=GET$#rd%
  430  IF LEFT$(m$,1)<>"#" THEN
  440    type$=FNrts
  450    url$=FNrts
  460
  470    y=0
  480    REPEAT
  490      n$=FNrts
  500      z%=INSTR(n$,",")
  510      IF z% THEN
  520        q(X,y)=VALLEFT$(n$,z%-1)
  530        q(Y,y)=VALMID$(n$,z%+1)
  540        y+=1
  550      ENDIF
  560    UNTIL z%=0
  570    q(X,y)=-1
  580
  590    CASE type$ OF
  600      WHEN "default":defaulturl$=url$
  610      WHEN "rect"   :IF FNrect PROCheader
  620      WHEN "circle" :IF FNcircle PROCheader
  630      WHEN "poly"   :IF FNpoly PROCheader
  640      REM WHEN "point"
  650    ENDCASE
  660
  670  ENDIF
  680UNTIL EOF#rd% OR cgi_headered%
  690CLOSE#rd%
  700
  710IF NOT cgi_headered% url$=defaulturl$:PROCheader
  720
  730END
  740
  750DEF FNrts
  760z%=INSTR(m$+" "," ")
  770n$=LEFT$(m$,z%-1)
  780m$=MID$(m$,z%+1)
  790=n$
  800
  810DEF PROCheader
  820PROCcgi_statusline(302,"Imagemap Redirection")
  830IF INSTR(url$,"://")=0 THEN
  840  r$="http://"+FNsystem_getvar("CGI$ServerName")
  850  port%=VALFNsystem_getvar("CGI$ServerPort")
  851  IF port%<>80 THEN r$+=":"+STR$port%
  860  url$=r$+url$
  870ENDIF
  880PROCcgi_headerline("Location",url$)
  890PROCcgi_header("text/html",-1)
  900
  910PRINT "<HTML><HEAD><TITLE>Imagemap Redirection</TITLE></HEAD>"
  920PRINT "<BODY><H1>Imagemap Redirection</H1><HR>"
  930PRINT "The requested URL is no longer available at this location.  "
  940PRINT "It can now be found at <A HREF="+CHR$34+url$+CHR$34+">"+url$"</A>."
  950PRINT "</BODY></HTML>"
  960ENDPROC
  970
  980DEF FNrect
  990=((p(0)>=q(X,0))AND(p(0)<=q(X,1))AND(p(1)>=q(Y,0))AND(p(1)<=q(Y,1)))
 1000
 1010DEF FNcircle
 1040=(((q(Y,0)-p(Y))*(q(Y,0)-p(Y)))+((q(X,0)-p(X))*(q(X,0)-p(X)))<=((q(Y,0)-q(Y,1))*(q(Y,0)-q(Y,1)))+((q(X,0)-q(X,1))*(q(X,0)-q(X,1))))
 1050
 1060DEF FNpoly
 1070numverts%=0:WHILE q(X,numverts%)<>-1:numverts%+=1:ENDWHILE
 1080vtx0%=numverts%-1:yflag0%=q(Y,vtx0%)>=p(Y):vtx1%=0:inside%=0
 1090FORA%=1TOnumverts%
 1100yflag1%=q(Y,vtx1%)>=p(Y)
 1110IFyflag0%<>yflag1%IF((q(Y,vtx1%)-p(Y))*(q(X,vtx0%)-q(X,vtx1%))>=(q(X,vtx1%)-p(X))*(q(Y,vtx0%)-q(Y,vtx1%)))=yflag1%inside%=NOTinside%
 1120yflag0%=yflag1%:vtx0%=vtx1%:vtx1%+=1
 1130NEXT
 1140=inside%

"� >cgi-bin.imagemap  (Netplex)
O� =========================================================================
I� Redirects clients to web pages based on a point specified in a map.
(O� =========================================================================
2
<� Wimpslot 16K
F�=&C000
P
Z!ț "<Netplex$Dir>.CGILibrary"
d>� Set up error handler, redirection and library variables.
n
�cgi_init
x
�+mapname$=�system_getvar("CGI$PathInfo")
�5� mapname$="" � 1,"No imagemap name was supplied"
�
�(m$=�system_getvar("CGI$QueryString")
�.� m$="" � 1,"No coordinates were supplied"
�
�X=0:Y=1:MAXVERTS=128
�
�� p(1),q(1,MAXVERTS-1)
�z%=�m$,",")
�p()=��m$,z%-1),��m$,z%+1)
�
�+rd%=� "<Netplex$WebPagesDir>.Imagemaps"
@� rd%=0 � 1,"Imagemap configuration file could not be found"
ȕ ��#rd%,1)="#"
�
"�
,  m$=�#rd%
6  z%=�m$,":")
@  mapname2$=�m$,z%-1)
J  mappath$=�m$,z%+1)
T � mapname$=mapname2$ � �#rd%
U	�#rd%
V
^Q� mapname$<>mapname2$ � �#rd% � 1,"Map entry not found in configuration file"
r
|rd%=� mappath$
�.� rd%=0 � 1,"Map file could not be opened"
�#defaulturl$="/":cgi_headered%=�
��
�  m$=�#rd%
�  � �m$,1)<>"#" �
�    type$=�rts
�    url$=�rts
�
�    y=0
�	    �
�      n$=�rts
�      z%=�n$,",")
�      � z% �
        q(X,y)=��n$,z%-1)
        q(Y,y)=��n$,z%+1)
        y+=1
&      �
0    � z%=0
:    q(X,y)=-1
D
N    Ȏ type$ �
X&      � "default":defaulturl$=url$
b%      � "rect"   :� �rect �header
l'      � "circle" :� �circle �header
v%      � "poly"   :� �poly �header
�      � WHEN "point"
�	    �
�
�  �
�� �#rd% � cgi_headered%
�	�#rd%
�
�.� � cgi_headered% url$=defaulturl$:�header
�
��
�
�
� �rts
�z%=�m$+" "," ")
n$=�m$,z%-1)
m$=�m$,z%+1)
=n$
 
*
� �header
4/�cgi_statusline(302,"Imagemap Redirection")
>� �url$,"://")=0 �
H3  r$="http://"+�system_getvar("CGI$ServerName")
R-  port%=��system_getvar("CGI$ServerPort")
S"  � port%<>80 � r$+=":"+�port%
\  url$=r$+url$
f�
p$�cgi_headerline("Location",url$)
z�cgi_header("text/html",-1)
�
�>� "<HTML><HEAD><TITLE>Imagemap Redirection</TITLE></HEAD>"
�/� "<BODY><H1>Imagemap Redirection</H1><HR>"
�D� "The requested URL is no longer available at this location.  "
�D� "It can now be found at <A HREF="+�34+url$+�34+">"+url$"</A>."
�� "</BODY></HTML>"
��
�
�� �rect
�B=((p(0)>=q(X,0))�(p(0)<=q(X,1))�(p(1)>=q(Y,0))�(p(1)<=q(Y,1)))
�
�
� �circle
�=(((q(Y,0)-p(Y))*(q(Y,0)-p(Y)))+((q(X,0)-p(X))*(q(X,0)-p(X)))<=((q(Y,0)-q(Y,1))*(q(Y,0)-q(Y,1)))+((q(X,0)-q(X,1))*(q(X,0)-q(X,1))))

$� �poly
.4numverts%=0:ȕ q(X,numverts%)<>-1:numverts%+=1:�
8@vtx0%=numverts%-1:yflag0%=q(Y,vtx0%)>=p(Y):vtx1%=0:inside%=0
B�A%=1�numverts%
Lyflag1%=q(Y,vtx1%)>=p(Y)
V��yflag0%<>yflag1%�((q(Y,vtx1%)-p(Y))*(q(X,vtx0%)-q(X,vtx1%))>=(q(X,vtx1%)-p(X))*(q(Y,vtx0%)-q(Y,vtx1%)))=yflag1%inside%=�inside%
`(yflag0%=yflag1%:vtx0%=vtx1%:vtx1%+=1
j�
t=inside%
�
00000000  0d 00 0a 22 f4 20 3e 63  67 69 2d 62 69 6e 2e 69  |...". >cgi-bin.i|
00000010  6d 61 67 65 6d 61 70 20  20 28 4e 65 74 70 6c 65  |magemap  (Netple|
00000020  78 29 0d 00 14 4f f4 20  3d 3d 3d 3d 3d 3d 3d 3d  |x)...O. ========|
00000030  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
00000070  3d 0d 00 1e 49 f4 20 52  65 64 69 72 65 63 74 73  |=...I. Redirects|
00000080  20 63 6c 69 65 6e 74 73  20 74 6f 20 77 65 62 20  | clients to web |
00000090  70 61 67 65 73 20 62 61  73 65 64 20 6f 6e 20 61  |pages based on a|
000000a0  20 70 6f 69 6e 74 20 73  70 65 63 69 66 69 65 64  | point specified|
000000b0  20 69 6e 20 61 20 6d 61  70 2e 0d 00 28 4f f4 20  | in a map...(O. |
000000c0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
00000100  3d 3d 3d 3d 3d 3d 3d 3d  3d 0d 00 32 04 0d 00 3c  |=========..2...<|
00000110  12 f4 20 57 69 6d 70 73  6c 6f 74 20 31 36 4b 0d  |.. Wimpslot 16K.|
00000120  00 46 0b e0 3d 26 43 30  30 30 0d 00 50 04 0d 00  |.F..=&C000..P...|
00000130  5a 21 c8 9b 20 22 3c 4e  65 74 70 6c 65 78 24 44  |Z!.. "<Netplex$D|
00000140  69 72 3e 2e 43 47 49 4c  69 62 72 61 72 79 22 0d  |ir>.CGILibrary".|
00000150  00 64 3e f4 20 53 65 74  20 75 70 20 65 72 72 6f  |.d>. Set up erro|
00000160  72 20 68 61 6e 64 6c 65  72 2c 20 72 65 64 69 72  |r handler, redir|
00000170  65 63 74 69 6f 6e 20 61  6e 64 20 6c 69 62 72 61  |ection and libra|
00000180  72 79 20 76 61 72 69 61  62 6c 65 73 2e 0d 00 6e  |ry variables...n|
00000190  0d f2 63 67 69 5f 69 6e  69 74 0d 00 78 04 0d 00  |..cgi_init..x...|
000001a0  82 2b 6d 61 70 6e 61 6d  65 24 3d a4 73 79 73 74  |.+mapname$=.syst|
000001b0  65 6d 5f 67 65 74 76 61  72 28 22 43 47 49 24 50  |em_getvar("CGI$P|
000001c0  61 74 68 49 6e 66 6f 22  29 0d 00 8c 35 e7 20 6d  |athInfo")...5. m|
000001d0  61 70 6e 61 6d 65 24 3d  22 22 20 85 20 31 2c 22  |apname$="" . 1,"|
000001e0  4e 6f 20 69 6d 61 67 65  6d 61 70 20 6e 61 6d 65  |No imagemap name|
000001f0  20 77 61 73 20 73 75 70  70 6c 69 65 64 22 0d 00  | was supplied"..|
00000200  96 04 0d 00 a0 28 6d 24  3d a4 73 79 73 74 65 6d  |.....(m$=.system|
00000210  5f 67 65 74 76 61 72 28  22 43 47 49 24 51 75 65  |_getvar("CGI$Que|
00000220  72 79 53 74 72 69 6e 67  22 29 0d 00 aa 2e e7 20  |ryString")..... |
00000230  6d 24 3d 22 22 20 85 20  31 2c 22 4e 6f 20 63 6f  |m$="" . 1,"No co|
00000240  6f 72 64 69 6e 61 74 65  73 20 77 65 72 65 20 73  |ordinates were s|
00000250  75 70 70 6c 69 65 64 22  0d 00 b4 04 0d 00 be 18  |upplied"........|
00000260  58 3d 30 3a 59 3d 31 3a  4d 41 58 56 45 52 54 53  |X=0:Y=1:MAXVERTS|
00000270  3d 31 32 38 0d 00 c8 04  0d 00 d2 1a de 20 70 28  |=128......... p(|
00000280  31 29 2c 71 28 31 2c 4d  41 58 56 45 52 54 53 2d  |1),q(1,MAXVERTS-|
00000290  31 29 0d 00 dc 0f 7a 25  3d a7 6d 24 2c 22 2c 22  |1)....z%=.m$,","|
000002a0  29 0d 00 e6 1d 70 28 29  3d bb c0 6d 24 2c 7a 25  |)....p()=..m$,z%|
000002b0  2d 31 29 2c bb c1 6d 24  2c 7a 25 2b 31 29 0d 00  |-1),..m$,z%+1)..|
000002c0  f0 04 0d 00 fa 2b 72 64  25 3d 8e 20 22 3c 4e 65  |.....+rd%=. "<Ne|
000002d0  74 70 6c 65 78 24 57 65  62 50 61 67 65 73 44 69  |tplex$WebPagesDi|
000002e0  72 3e 2e 49 6d 61 67 65  6d 61 70 73 22 0d 01 04  |r>.Imagemaps"...|
000002f0  40 e7 20 72 64 25 3d 30  20 85 20 31 2c 22 49 6d  |@. rd%=0 . 1,"Im|
00000300  61 67 65 6d 61 70 20 63  6f 6e 66 69 67 75 72 61  |agemap configura|
00000310  74 69 6f 6e 20 66 69 6c  65 20 63 6f 75 6c 64 20  |tion file could |
00000320  6e 6f 74 20 62 65 20 66  6f 75 6e 64 22 0d 01 0e  |not be found"...|
00000330  14 c8 95 20 c0 be 23 72  64 25 2c 31 29 3d 22 23  |... ..#rd%,1)="#|
00000340  22 0d 01 18 05 ce 0d 01  22 05 f5 0d 01 2c 0e 20  |"......."....,. |
00000350  20 6d 24 3d be 23 72 64  25 0d 01 36 11 20 20 7a  | m$=.#rd%..6.  z|
00000360  25 3d a7 6d 24 2c 22 3a  22 29 0d 01 40 19 20 20  |%=.m$,":")..@.  |
00000370  6d 61 70 6e 61 6d 65 32  24 3d c0 6d 24 2c 7a 25  |mapname2$=.m$,z%|
00000380  2d 31 29 0d 01 4a 18 20  20 6d 61 70 70 61 74 68  |-1)..J.  mappath|
00000390  24 3d c1 6d 24 2c 7a 25  2b 31 29 0d 01 54 20 fd  |$=.m$,z%+1)..T .|
000003a0  20 6d 61 70 6e 61 6d 65  24 3d 6d 61 70 6e 61 6d  | mapname$=mapnam|
000003b0  65 32 24 20 84 20 c5 23  72 64 25 0d 01 55 09 d9  |e2$ . .#rd%..U..|
000003c0  23 72 64 25 0d 01 56 04  0d 01 5e 51 e7 20 6d 61  |#rd%..V...^Q. ma|
000003d0  70 6e 61 6d 65 24 3c 3e  6d 61 70 6e 61 6d 65 32  |pname$<>mapname2|
000003e0  24 20 80 20 c5 23 72 64  25 20 85 20 31 2c 22 4d  |$ . .#rd% . 1,"M|
000003f0  61 70 20 65 6e 74 72 79  20 6e 6f 74 20 66 6f 75  |ap entry not fou|
00000400  6e 64 20 69 6e 20 63 6f  6e 66 69 67 75 72 61 74  |nd in configurat|
00000410  69 6f 6e 20 66 69 6c 65  22 0d 01 72 04 0d 01 7c  |ion file"..r...||
00000420  12 72 64 25 3d 8e 20 6d  61 70 70 61 74 68 24 0d  |.rd%=. mappath$.|
00000430  01 86 2e e7 20 72 64 25  3d 30 20 85 20 31 2c 22  |.... rd%=0 . 1,"|
00000440  4d 61 70 20 66 69 6c 65  20 63 6f 75 6c 64 20 6e  |Map file could n|
00000450  6f 74 20 62 65 20 6f 70  65 6e 65 64 22 0d 01 90  |ot be opened"...|
00000460  23 64 65 66 61 75 6c 74  75 72 6c 24 3d 22 2f 22  |#defaulturl$="/"|
00000470  3a 63 67 69 5f 68 65 61  64 65 72 65 64 25 3d a3  |:cgi_headered%=.|
00000480  0d 01 9a 05 f5 0d 01 a4  0e 20 20 6d 24 3d be 23  |.........  m$=.#|
00000490  72 64 25 0d 01 ae 15 20  20 e7 20 c0 6d 24 2c 31  |rd%....  . .m$,1|
000004a0  29 3c 3e 22 23 22 20 8c  0d 01 b8 12 20 20 20 20  |)<>"#" .....    |
000004b0  74 79 70 65 24 3d a4 72  74 73 0d 01 c2 11 20 20  |type$=.rts....  |
000004c0  20 20 75 72 6c 24 3d a4  72 74 73 0d 01 cc 04 0d  |  url$=.rts.....|
000004d0  01 d6 0b 20 20 20 20 79  3d 30 0d 01 e0 09 20 20  |...    y=0....  |
000004e0  20 20 f5 0d 01 ea 11 20  20 20 20 20 20 6e 24 3d  |  .....      n$=|
000004f0  a4 72 74 73 0d 01 f4 15  20 20 20 20 20 20 7a 25  |.rts....      z%|
00000500  3d a7 6e 24 2c 22 2c 22  29 0d 01 fe 10 20 20 20  |=.n$,",")....   |
00000510  20 20 20 e7 20 7a 25 20  8c 0d 02 08 1d 20 20 20  |   . z% .....   |
00000520  20 20 20 20 20 71 28 58  2c 79 29 3d bb c0 6e 24  |     q(X,y)=..n$|
00000530  2c 7a 25 2d 31 29 0d 02  12 1d 20 20 20 20 20 20  |,z%-1)....      |
00000540  20 20 71 28 59 2c 79 29  3d bb c1 6e 24 2c 7a 25  |  q(Y,y)=..n$,z%|
00000550  2b 31 29 0d 02 1c 10 20  20 20 20 20 20 20 20 79  |+1)....        y|
00000560  2b 3d 31 0d 02 26 0b 20  20 20 20 20 20 cd 0d 02  |+=1..&.      ...|
00000570  30 0e 20 20 20 20 fd 20  7a 25 3d 30 0d 02 3a 11  |0.    . z%=0..:.|
00000580  20 20 20 20 71 28 58 2c  79 29 3d 2d 31 0d 02 44  |    q(X,y)=-1..D|
00000590  04 0d 02 4e 12 20 20 20  20 c8 8e 20 74 79 70 65  |...N.    .. type|
000005a0  24 20 ca 0d 02 58 26 20  20 20 20 20 20 c9 20 22  |$ ...X&      . "|
000005b0  64 65 66 61 75 6c 74 22  3a 64 65 66 61 75 6c 74  |default":default|
000005c0  75 72 6c 24 3d 75 72 6c  24 0d 02 62 25 20 20 20  |url$=url$..b%   |
000005d0  20 20 20 c9 20 22 72 65  63 74 22 20 20 20 3a e7  |   . "rect"   :.|
000005e0  20 a4 72 65 63 74 20 f2  68 65 61 64 65 72 0d 02  | .rect .header..|
000005f0  6c 27 20 20 20 20 20 20  c9 20 22 63 69 72 63 6c  |l'      . "circl|
00000600  65 22 20 3a e7 20 a4 63  69 72 63 6c 65 20 f2 68  |e" :. .circle .h|
00000610  65 61 64 65 72 0d 02 76  25 20 20 20 20 20 20 c9  |eader..v%      .|
00000620  20 22 70 6f 6c 79 22 20  20 20 3a e7 20 a4 70 6f  | "poly"   :. .po|
00000630  6c 79 20 f2 68 65 61 64  65 72 0d 02 80 18 20 20  |ly .header....  |
00000640  20 20 20 20 f4 20 57 48  45 4e 20 22 70 6f 69 6e  |    . WHEN "poin|
00000650  74 22 0d 02 8a 09 20 20  20 20 cb 0d 02 94 04 0d  |t"....    ......|
00000660  02 9e 07 20 20 cd 0d 02  a8 1b fd 20 c5 23 72 64  |...  ...... .#rd|
00000670  25 20 84 20 63 67 69 5f  68 65 61 64 65 72 65 64  |% . cgi_headered|
00000680  25 0d 02 b2 09 d9 23 72  64 25 0d 02 bc 04 0d 02  |%.....#rd%......|
00000690  c6 2e e7 20 ac 20 63 67  69 5f 68 65 61 64 65 72  |... . cgi_header|
000006a0  65 64 25 20 75 72 6c 24  3d 64 65 66 61 75 6c 74  |ed% url$=default|
000006b0  75 72 6c 24 3a f2 68 65  61 64 65 72 0d 02 d0 04  |url$:.header....|
000006c0  0d 02 da 05 e0 0d 02 e4  04 0d 02 ee 0a dd 20 a4  |.............. .|
000006d0  72 74 73 0d 02 f8 13 7a  25 3d a7 6d 24 2b 22 20  |rts....z%=.m$+" |
000006e0  22 2c 22 20 22 29 0d 03  02 10 6e 24 3d c0 6d 24  |"," ")....n$=.m$|
000006f0  2c 7a 25 2d 31 29 0d 03  0c 10 6d 24 3d c1 6d 24  |,z%-1)....m$=.m$|
00000700  2c 7a 25 2b 31 29 0d 03  16 07 3d 6e 24 0d 03 20  |,z%+1)....=n$.. |
00000710  04 0d 03 2a 0d dd 20 f2  68 65 61 64 65 72 0d 03  |...*.. .header..|
00000720  34 2f f2 63 67 69 5f 73  74 61 74 75 73 6c 69 6e  |4/.cgi_statuslin|
00000730  65 28 33 30 32 2c 22 49  6d 61 67 65 6d 61 70 20  |e(302,"Imagemap |
00000740  52 65 64 69 72 65 63 74  69 6f 6e 22 29 0d 03 3e  |Redirection")..>|
00000750  16 e7 20 a7 75 72 6c 24  2c 22 3a 2f 2f 22 29 3d  |.. .url$,"://")=|
00000760  30 20 8c 0d 03 48 33 20  20 72 24 3d 22 68 74 74  |0 ...H3  r$="htt|
00000770  70 3a 2f 2f 22 2b a4 73  79 73 74 65 6d 5f 67 65  |p://"+.system_ge|
00000780  74 76 61 72 28 22 43 47  49 24 53 65 72 76 65 72  |tvar("CGI$Server|
00000790  4e 61 6d 65 22 29 0d 03  52 2d 20 20 70 6f 72 74  |Name")..R-  port|
000007a0  25 3d bb a4 73 79 73 74  65 6d 5f 67 65 74 76 61  |%=..system_getva|
000007b0  72 28 22 43 47 49 24 53  65 72 76 65 72 50 6f 72  |r("CGI$ServerPor|
000007c0  74 22 29 0d 03 53 22 20  20 e7 20 70 6f 72 74 25  |t")..S"  . port%|
000007d0  3c 3e 38 30 20 8c 20 72  24 2b 3d 22 3a 22 2b c3  |<>80 . r$+=":"+.|
000007e0  70 6f 72 74 25 0d 03 5c  12 20 20 75 72 6c 24 3d  |port%..\.  url$=|
000007f0  72 24 2b 75 72 6c 24 0d  03 66 05 cd 0d 03 70 24  |r$+url$..f....p$|
00000800  f2 63 67 69 5f 68 65 61  64 65 72 6c 69 6e 65 28  |.cgi_headerline(|
00000810  22 4c 6f 63 61 74 69 6f  6e 22 2c 75 72 6c 24 29  |"Location",url$)|
00000820  0d 03 7a 1f f2 63 67 69  5f 68 65 61 64 65 72 28  |..z..cgi_header(|
00000830  22 74 65 78 74 2f 68 74  6d 6c 22 2c 2d 31 29 0d  |"text/html",-1).|
00000840  03 84 04 0d 03 8e 3e f1  20 22 3c 48 54 4d 4c 3e  |......>. "<HTML>|
00000850  3c 48 45 41 44 3e 3c 54  49 54 4c 45 3e 49 6d 61  |<HEAD><TITLE>Ima|
00000860  67 65 6d 61 70 20 52 65  64 69 72 65 63 74 69 6f  |gemap Redirectio|
00000870  6e 3c 2f 54 49 54 4c 45  3e 3c 2f 48 45 41 44 3e  |n</TITLE></HEAD>|
00000880  22 0d 03 98 2f f1 20 22  3c 42 4f 44 59 3e 3c 48  |".../. "<BODY><H|
00000890  31 3e 49 6d 61 67 65 6d  61 70 20 52 65 64 69 72  |1>Imagemap Redir|
000008a0  65 63 74 69 6f 6e 3c 2f  48 31 3e 3c 48 52 3e 22  |ection</H1><HR>"|
000008b0  0d 03 a2 44 f1 20 22 54  68 65 20 72 65 71 75 65  |...D. "The reque|
000008c0  73 74 65 64 20 55 52 4c  20 69 73 20 6e 6f 20 6c  |sted URL is no l|
000008d0  6f 6e 67 65 72 20 61 76  61 69 6c 61 62 6c 65 20  |onger available |
000008e0  61 74 20 74 68 69 73 20  6c 6f 63 61 74 69 6f 6e  |at this location|
000008f0  2e 20 20 22 0d 03 ac 44  f1 20 22 49 74 20 63 61  |.  "...D. "It ca|
00000900  6e 20 6e 6f 77 20 62 65  20 66 6f 75 6e 64 20 61  |n now be found a|
00000910  74 20 3c 41 20 48 52 45  46 3d 22 2b bd 33 34 2b  |t <A HREF="+.34+|
00000920  75 72 6c 24 2b bd 33 34  2b 22 3e 22 2b 75 72 6c  |url$+.34+">"+url|
00000930  24 22 3c 2f 41 3e 2e 22  0d 03 b6 16 f1 20 22 3c  |$"</A>."..... "<|
00000940  2f 42 4f 44 59 3e 3c 2f  48 54 4d 4c 3e 22 0d 03  |/BODY></HTML>"..|
00000950  c0 05 e1 0d 03 ca 04 0d  03 d4 0b dd 20 a4 72 65  |............ .re|
00000960  63 74 0d 03 de 42 3d 28  28 70 28 30 29 3e 3d 71  |ct...B=((p(0)>=q|
00000970  28 58 2c 30 29 29 80 28  70 28 30 29 3c 3d 71 28  |(X,0)).(p(0)<=q(|
00000980  58 2c 31 29 29 80 28 70  28 31 29 3e 3d 71 28 59  |X,1)).(p(1)>=q(Y|
00000990  2c 30 29 29 80 28 70 28  31 29 3c 3d 71 28 59 2c  |,0)).(p(1)<=q(Y,|
000009a0  31 29 29 29 0d 03 e8 04  0d 03 f2 0d dd 20 a4 63  |1)))......... .c|
000009b0  69 72 63 6c 65 0d 04 10  87 3d 28 28 28 71 28 59  |ircle....=(((q(Y|
000009c0  2c 30 29 2d 70 28 59 29  29 2a 28 71 28 59 2c 30  |,0)-p(Y))*(q(Y,0|
000009d0  29 2d 70 28 59 29 29 29  2b 28 28 71 28 58 2c 30  |)-p(Y)))+((q(X,0|
000009e0  29 2d 70 28 58 29 29 2a  28 71 28 58 2c 30 29 2d  |)-p(X))*(q(X,0)-|
000009f0  70 28 58 29 29 29 3c 3d  28 28 71 28 59 2c 30 29  |p(X)))<=((q(Y,0)|
00000a00  2d 71 28 59 2c 31 29 29  2a 28 71 28 59 2c 30 29  |-q(Y,1))*(q(Y,0)|
00000a10  2d 71 28 59 2c 31 29 29  29 2b 28 28 71 28 58 2c  |-q(Y,1)))+((q(X,|
00000a20  30 29 2d 71 28 58 2c 31  29 29 2a 28 71 28 58 2c  |0)-q(X,1))*(q(X,|
00000a30  30 29 2d 71 28 58 2c 31  29 29 29 29 0d 04 1a 04  |0)-q(X,1))))....|
00000a40  0d 04 24 0b dd 20 a4 70  6f 6c 79 0d 04 2e 34 6e  |..$.. .poly...4n|
00000a50  75 6d 76 65 72 74 73 25  3d 30 3a c8 95 20 71 28  |umverts%=0:.. q(|
00000a60  58 2c 6e 75 6d 76 65 72  74 73 25 29 3c 3e 2d 31  |X,numverts%)<>-1|
00000a70  3a 6e 75 6d 76 65 72 74  73 25 2b 3d 31 3a ce 0d  |:numverts%+=1:..|
00000a80  04 38 40 76 74 78 30 25  3d 6e 75 6d 76 65 72 74  |.8@vtx0%=numvert|
00000a90  73 25 2d 31 3a 79 66 6c  61 67 30 25 3d 71 28 59  |s%-1:yflag0%=q(Y|
00000aa0  2c 76 74 78 30 25 29 3e  3d 70 28 59 29 3a 76 74  |,vtx0%)>=p(Y):vt|
00000ab0  78 31 25 3d 30 3a 69 6e  73 69 64 65 25 3d 30 0d  |x1%=0:inside%=0.|
00000ac0  04 42 13 e3 41 25 3d 31  b8 6e 75 6d 76 65 72 74  |.B..A%=1.numvert|
00000ad0  73 25 0d 04 4c 1c 79 66  6c 61 67 31 25 3d 71 28  |s%..L.yflag1%=q(|
00000ae0  59 2c 76 74 78 31 25 29  3e 3d 70 28 59 29 0d 04  |Y,vtx1%)>=p(Y)..|
00000af0  56 84 e7 79 66 6c 61 67  30 25 3c 3e 79 66 6c 61  |V..yflag0%<>yfla|
00000b00  67 31 25 e7 28 28 71 28  59 2c 76 74 78 31 25 29  |g1%.((q(Y,vtx1%)|
00000b10  2d 70 28 59 29 29 2a 28  71 28 58 2c 76 74 78 30  |-p(Y))*(q(X,vtx0|
00000b20  25 29 2d 71 28 58 2c 76  74 78 31 25 29 29 3e 3d  |%)-q(X,vtx1%))>=|
00000b30  28 71 28 58 2c 76 74 78  31 25 29 2d 70 28 58 29  |(q(X,vtx1%)-p(X)|
00000b40  29 2a 28 71 28 59 2c 76  74 78 30 25 29 2d 71 28  |)*(q(Y,vtx0%)-q(|
00000b50  59 2c 76 74 78 31 25 29  29 29 3d 79 66 6c 61 67  |Y,vtx1%)))=yflag|
00000b60  31 25 69 6e 73 69 64 65  25 3d ac 69 6e 73 69 64  |1%inside%=.insid|
00000b70  65 25 0d 04 60 28 79 66  6c 61 67 30 25 3d 79 66  |e%..`(yflag0%=yf|
00000b80  6c 61 67 31 25 3a 76 74  78 30 25 3d 76 74 78 31  |lag1%:vtx0%=vtx1|
00000b90  25 3a 76 74 78 31 25 2b  3d 31 0d 04 6a 05 ed 0d  |%:vtx1%+=1..j...|
00000ba0  04 74 0c 3d 69 6e 73 69  64 65 25 0d ff           |.t.=inside%..|
00000bad