From edu500ac@yahoo.com Tue Dec 13 14:29:22 2011 From: Eduardo Costa To: gambit-list@iro.umontreal.ca Subject: [gambit-list] cgi in Gambit Date: Tue, 13 Dec 2011 11:16:09 -0800 Message-ID: <1323803769.11114.YahooMailClassic@web31803.mail.mud.yahoo.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============9075938507860186526==" --===============9075938507860186526== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable I need to use Scheme or Common Lisp for writing CGI scripts to process the XS= L/XML protocols of a law firm. I started with Stalin, since it is easier to c= ompile. The resulting exec files work perfectly well, and have small foot pri= nts. However, the Stalin community does not seem to be very active. Besides t= his, Stalin is very slow to compile, and does not provide an interpreter. The= refore, I decided to switch to Gambit, Bigloo or SBCL.=C2=A0 Gambit has the advantage of providing native infix notation. However, it is n= ot working in most commercial servers that the law firm uses. I am using the = following command line to create the exec files: $ ./gsc -exe gambtest.scm Where gambtest.scm contains the following lines: (display "Content-type: text/html")(newline)(newline)(display=C2=A0"=C2= =A0 =C2=A0 =C2=A0

Hello from Gambit

=C2=A0 " )(new= line) It generates an executable file that works perfectly well in my machine, but = not in the servers that host the pages of the law firm.=C2=A0 $ ./gambtest=C2=A0Content-type: text/html =C2=A0 =C2=A0 =C2=A0

Hello from Gambit

=C2=A0 For reasons that I cannot fathom, the law firm uses many hosting providers. I= also tried to use Gambit as a scripting language. The result is the same. = =C2=A0In the case of Bigloo, the problem lies in the fact that it uses dynami= c libraries incompatible with the server. =C2=A0I cannot understand why this = happens, since Stalin works even when linked to dynamic libraries. By the way= , I prefer the scripting solution, since the static exec files are very large. I installed gambit in the hosting provider, making sure that both gsi and gsi= -script have permission to execute. I also tested the scripts with Dorai Sita= ram's Scheme in Common Lisp to make sure that everything is working fine. =C2= =A0Here is the script (that works in my machine): #! ./gsi-script -:d- (display "Content-type: text/html")(newline)(newline)(display=C2=A0"=C2= =A0 =C2=A0 =C2=A0

Hello from Gambit

=C2=A0 " )(new= line) Here is the message that I get from Hostgator both for the scripting version = and the compiled version: Internal Server ErrorThe server encountered an internal error or misconfigura= tion and was unable to complete your request.Please contact the server admini= strator, webmaster(a)advogadosmg.org and inform them of the time the error oc= curred, and anything you might have done that may have caused the error.More = information about this error may be available in the server error log.Additio= nally, a 404 Not Found error was encountered while trying to use an ErrorDocu= ment to handle the request.Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r= DAV/2 mod_fcgid/2.3.6 FrontPage/5.0.2.2635 mod_bwlimited/1.4 mod_auth_passth= rough/2.1 Server at advogadosmg.org Port 80 --===============9075938507860186526== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.htm" MIME-Version: 1.0 PHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjZWxscGFkZGluZz0iMCIgYm9yZGVyPSIwIiA+PHRyPjx0 ZCB2YWxpZ249InRvcCIgc3R5bGU9ImZvbnQ6IGluaGVyaXQ7Ij48Zm9udCBjbGFzcz0iQXBwbGUt c3R5bGUtc3BhbiIgZmFjZT0iYXJpYWwiIHNpemU9IjIiPkkgbmVlZCB0byB1c2UgU2NoZW1lIG9y IENvbW1vbiBMaXNwIGZvciB3cml0aW5nIENHSSBzY3JpcHRzIHRvIHByb2Nlc3MgdGhlIFhTTC9Y TUwgcHJvdG9jb2xzIG9mIGEgbGF3IGZpcm0uIEkgc3RhcnRlZCB3aXRoIFN0YWxpbiwgc2luY2Ug aXQgaXMgZWFzaWVyIHRvIGNvbXBpbGUuIFRoZSByZXN1bHRpbmcgZXhlYyBmaWxlcyB3b3JrIHBl cmZlY3RseSB3ZWxsLCBhbmQgaGF2ZSBzbWFsbCBmb290IHByaW50cy4gSG93ZXZlciwgdGhlIFN0 YWxpbiBjb21tdW5pdHkgZG9lcyBub3Qgc2VlbSB0byBiZSB2ZXJ5IGFjdGl2ZS4gQmVzaWRlcyB0 aGlzLCBTdGFsaW4gaXMgdmVyeSBzbG93IHRvIGNvbXBpbGUsIGFuZCBkb2VzIG5vdCBwcm92aWRl IGFuIGludGVycHJldGVyLiBUaGVyZWZvcmUsIEkgZGVjaWRlZCB0byBzd2l0Y2ggdG8gR2FtYml0 LCBCaWdsb28gb3IgU0JDTC4mbmJzcDs8L2ZvbnQ+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IGFy aWFsOyBmb250LXNpemU6IDEwcHQ7ICI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5 OiBhcmlhbDsgZm9udC1zaXplOiAxMHB0OyAiPkdhbWJpdCBoYXMgdGhlIGFkdmFudGFnZSBvZiBw cm92aWRpbmcgbmF0aXZlIGluZml4IG5vdGF0aW9uLiBIb3dldmVyLCBpdCBpcyBub3Qgd29ya2lu ZyBpbiBtb3N0IGNvbW1lcmNpYWwgc2VydmVycyB0aGF0IHRoZSBsYXcgZmlybSB1c2VzLiBJIGFt IHVzaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZCBsaW5lIHRvIGNyZWF0ZSB0aGUgZXhlYyBmaWxl czo8L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogYXJpYWw7IGZvbnQtc2l6ZTogMTBwdDsK ICI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBhcmlhbDsgZm9udC1zaXplOiAx MHB0OyAiPiQgLi9nc2MgLWV4ZSBnYW1idGVzdC5zY208L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZh bWlseTogYXJpYWw7IGZvbnQtc2l6ZTogMTBwdDsgIj48YnI+PC9kaXY+PGRpdiBzdHlsZT0iZm9u dC1mYW1pbHk6IGFyaWFsOyBmb250LXNpemU6IDEwcHQ7ICI+V2hlcmUgZ2FtYnRlc3Quc2NtIGNv bnRhaW5zIHRoZSBmb2xsb3dpbmcgbGluZXM6PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6 IGFyaWFsOyBmb250LXNpemU6IDEwcHQ7ICI+PGJyPjwvZGl2PjxkaXY+PGRpdj48Zm9udCBjbGFz cz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iYXJpYWwiIHNpemU9IjIiPihkaXNwbGF5ICJDb250 ZW50LXR5cGU6IHRleHQvaHRtbCIpPC9mb250PjwvZGl2PjxkaXY+PGZvbnQgY2xhc3M9IkFwcGxl LXN0eWxlLXNwYW4iIGZhY2U9ImFyaWFsIiBzaXplPSIyIj4obmV3bGluZSk8L2ZvbnQ+PC9kaXY+ PGRpdj48Zm9udCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iYXJpYWwiIHNpemU9IjIi PihuZXdsaW5lKTwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFu IiBmYWNlPSJhcmlhbCIgc2l6ZT0iMiI+KGRpc3BsYXkmbmJzcDs8L2ZvbnQ+PC9kaXY+PGRpdj48 Zm9udCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iYXJpYWwiIHNpemU9IjIiPiImbHQ7 aHRtbCZndDs8L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIg ZmFjZT0iYXJpYWwiIHNpemU9IjIiPiZuYnNwOyAmbHQ7Ym9keSZndDs8L2ZvbnQ+PC9kaXY+PGRp dj48Zm9udCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iYXJpYWwiIHNpemU9IjIiPiZu YnNwOyAmbmJzcDsmbHQ7aDEmZ3Q7SGVsbG8gZnJvbQogR2FtYml0Jmx0Oy9oMSZndDs8L2ZvbnQ+ PC9kaXY+PGRpdj48Zm9udCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iYXJpYWwiIHNp emU9IjIiPiZuYnNwOyAmbHQ7L2JvZHkmZ3Q7PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgY2xhc3M9 IkFwcGxlLXN0eWxlLXNwYW4iIGZhY2U9ImFyaWFsIiBzaXplPSIyIj4mbHQ7L2h0bWwmZ3Q7IiAp PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGZhY2U9ImFy aWFsIiBzaXplPSIyIj4obmV3bGluZSk8L2ZvbnQ+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1p bHk6IGFyaWFsOyBmb250LXNpemU6IDEwcHQ7ICI+PGJyPjwvZGl2PjwvZGl2PjxkaXY+PGRpdj48 c3BhbiBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgc3R5bGU9ImZvbnQtZmFtaWx5OiBhcmlhbDsg Zm9udC1zaXplOiAxM3B4OyAiPkl0IGdlbmVyYXRlcyBhbiBleGVjdXRhYmxlIGZpbGUgdGhhdCB3 b3JrcyBwZXJmZWN0bHkgd2VsbCBpbiBteSBtYWNoaW5lLCBidXQgbm90IGluIHRoZSBzZXJ2ZXJz IHRoYXQgaG9zdCB0aGUgcGFnZXMgb2YgdGhlIGxhdyBmaXJtLiZuYnNwOzwvc3Bhbj48L2Rpdj48 L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogYXJpYWw7IGZvbnQtc2l6ZTogMTBwdDsgIj48 YnI+PC9kaXY+PGRpdj48ZGl2Pjxmb250IGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJh cmlhbCIgc2l6ZT0iMiI+JCAuL2dhbWJ0ZXN0Jm5ic3A7PC9mb250PjwvZGl2PjxkaXY+PGZvbnQg Y2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGZhY2U9ImFyaWFsIiBzaXplPSIyIj5Db250ZW50LXR5 cGU6IHRleHQvaHRtbDwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGNsYXNzPSJBcHBsZS1zdHlsZS1z cGFuIiBmYWNlPSJhcmlhbCIgc2l6ZT0iMiI+PGJyPjwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGNs YXNzPSJBcHBsZS1zdHlsZS1zcGFuIgogZmFjZT0iYXJpYWwiIHNpemU9IjIiPiZsdDtodG1sJmd0 OzwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJh cmlhbCIgc2l6ZT0iMiI+Jm5ic3A7ICZsdDtib2R5Jmd0OzwvZm9udD48L2Rpdj48ZGl2Pjxmb250 IGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJhcmlhbCIgc2l6ZT0iMiI+Jm5ic3A7ICZu YnNwOyZsdDtoMSZndDtIZWxsbyBmcm9tIEdhbWJpdCZsdDsvaDEmZ3Q7PC9mb250PjwvZGl2Pjxk aXY+PGZvbnQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGZhY2U9ImFyaWFsIiBzaXplPSIyIj4m bmJzcDsgJmx0Oy9ib2R5Jmd0OzwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGNsYXNzPSJBcHBsZS1z dHlsZS1zcGFuIiBmYWNlPSJhcmlhbCIgc2l6ZT0iMiI+Jmx0Oy9odG1sJmd0OzwvZm9udD48L2Rp dj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogYXJpYWw7IGZvbnQtc2l6ZTogMTBwdDsgIj48YnI+ PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IGFyaWFsOyBmb250LXNpemU6IDEw cHQ7ICI+Rm9yIHJlYXNvbnMgdGhhdCBJIGNhbm5vdCBmYXRob20sIHRoZSBsYXcgZmlybSB1c2Vz IG1hbnkgaG9zdGluZyBwcm92aWRlcnMuIEkgYWxzbyB0cmllZCB0byB1c2UgR2FtYml0IGFzIGEg c2NyaXB0aW5nIGxhbmd1YWdlLiBUaGUgcmVzdWx0IGlzIHRoZSBzYW1lLiAmbmJzcDtJbiB0aGUg Y2FzZSBvZiBCaWdsb28sIHRoZSBwcm9ibGVtIGxpZXMgaW4gdGhlIGZhY3QgdGhhdCBpdCB1c2Vz IGR5bmFtaWMgbGlicmFyaWVzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBzZXJ2ZXIuICZuYnNwO0kg Y2Fubm90IHVuZGVyc3RhbmQgd2h5IHRoaXMgaGFwcGVucywgc2luY2UgU3RhbGluIHdvcmtzIGV2 ZW4gd2hlbiBsaW5rZWQgdG8gZHluYW1pYyBsaWJyYXJpZXMuIEJ5IHRoZSB3YXksIEkgcHJlZmVy IHRoZSBzY3JpcHRpbmcKIHNvbHV0aW9uLCBzaW5jZSB0aGUgc3RhdGljIGV4ZWMgZmlsZXMgYXJl IHZlcnkgbGFyZ2UuPC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IGFyaWFsOyBmb250LXNp emU6IDEwcHQ7ICI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBhcmlhbDsgZm9u dC1zaXplOiAxMHB0OyAiPkkgaW5zdGFsbGVkIGdhbWJpdCBpbiB0aGUgaG9zdGluZyBwcm92aWRl ciwgbWFraW5nIHN1cmUgdGhhdCBib3RoIGdzaSBhbmQgZ3NpLXNjcmlwdCBoYXZlIHBlcm1pc3Np b24gdG8gZXhlY3V0ZS4gSSBhbHNvIHRlc3RlZCB0aGUgc2NyaXB0cyB3aXRoIERvcmFpIFNpdGFy YW0ncyBTY2hlbWUgaW4gQ29tbW9uIExpc3AgdG8gbWFrZSBzdXJlIHRoYXQgZXZlcnl0aGluZyBp cyB3b3JraW5nIGZpbmUuICZuYnNwO0hlcmUgaXMgdGhlIHNjcmlwdCAodGhhdCB3b3JrcyBpbiBt eSBtYWNoaW5lKTo8L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogYXJpYWw7IGZvbnQtc2l6 ZTogMTBwdDsgIj48YnI+PC9kaXY+PGRpdj48ZGl2Pjxmb250IGNsYXNzPSJBcHBsZS1zdHlsZS1z cGFuIiBmYWNlPSJhcmlhbCIgc2l6ZT0iMiI+IyEgLi9nc2ktc2NyaXB0IC06ZC08L2ZvbnQ+PC9k aXY+PGRpdj48Zm9udCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iYXJpYWwiIHNpemU9 IjIiPjxicj48L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIg ZmFjZT0iYXJpYWwiIHNpemU9IjIiPihkaXNwbGF5ICJDb250ZW50LXR5cGU6IHRleHQvaHRtbCIp PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGZhY2U9ImFy aWFsIiBzaXplPSIyIj4obmV3bGluZSk8L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBjbGFzcz0iQXBw bGUtc3R5bGUtc3BhbiIgZmFjZT0iYXJpYWwiIHNpemU9IjIiPihuZXdsaW5lKTwvZm9udD48L2Rp dj48ZGl2Pjxmb250CiBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iYXJpYWwiIHNpemU9 IjIiPihkaXNwbGF5Jm5ic3A7PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgY2xhc3M9IkFwcGxlLXN0 eWxlLXNwYW4iIGZhY2U9ImFyaWFsIiBzaXplPSIyIj4iJmx0O2h0bWwmZ3Q7PC9mb250PjwvZGl2 PjxkaXY+PGZvbnQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGZhY2U9ImFyaWFsIiBzaXplPSIy Ij4mbmJzcDsgJmx0O2JvZHkmZ3Q7PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgY2xhc3M9IkFwcGxl LXN0eWxlLXNwYW4iIGZhY2U9ImFyaWFsIiBzaXplPSIyIj4mbmJzcDsgJm5ic3A7Jmx0O2gxJmd0 O0hlbGxvIGZyb20gR2FtYml0Jmx0Oy9oMSZndDs8L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBjbGFz cz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iYXJpYWwiIHNpemU9IjIiPiZuYnNwOyAmbHQ7L2Jv ZHkmZ3Q7PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGZh Y2U9ImFyaWFsIiBzaXplPSIyIj4mbHQ7L2h0bWwmZ3Q7IiApPC9mb250PjwvZGl2PjxkaXY+PGZv bnQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGZhY2U9ImFyaWFsIiBzaXplPSIyIj4obmV3bGlu ZSk8L2ZvbnQ+PC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6IGFyaWFsOyBmb250 LXNpemU6IDEwcHQ7ICI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBhcmlhbDsg Zm9udC1zaXplOiAxMHB0OyAiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogYXJp YWw7IGZvbnQtc2l6ZTogMTBwdDsgIj5IZXJlIGlzIHRoZSBtZXNzYWdlIHRoYXQgSSBnZXQgZnJv bSBIb3N0Z2F0b3IgYm90aCBmb3IgdGhlIHNjcmlwdGluZyB2ZXJzaW9uIGFuZCB0aGUgY29tcGls ZWQgdmVyc2lvbjo8L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTogYXJpYWw7IGZvbnQtc2l6 ZTogMTBwdDsKICI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBhcmlhbDsgZm9u dC1zaXplOiAxMHB0OyAiPjxoMSBzdHlsZT0iZm9udC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4n OyAiPkludGVybmFsIFNlcnZlciBFcnJvcjwvaDE+PHAgc3R5bGU9ImZvbnQtZmFtaWx5OiAnVGlt ZXMgTmV3IFJvbWFuJzsgZm9udC1zaXplOiBtZWRpdW07ICI+VGhlIHNlcnZlciBlbmNvdW50ZXJl ZCBhbiBpbnRlcm5hbCBlcnJvciBvciBtaXNjb25maWd1cmF0aW9uIGFuZCB3YXMgdW5hYmxlIHRv IGNvbXBsZXRlIHlvdXIgcmVxdWVzdC48L3A+PHAgc3R5bGU9ImZvbnQtZmFtaWx5OiAnVGltZXMg TmV3IFJvbWFuJzsgZm9udC1zaXplOiBtZWRpdW07ICI+UGxlYXNlIGNvbnRhY3QgdGhlIHNlcnZl ciBhZG1pbmlzdHJhdG9yLCB3ZWJtYXN0ZXJAYWR2b2dhZG9zbWcub3JnIGFuZCBpbmZvcm0gdGhl bSBvZiB0aGUgdGltZSB0aGUgZXJyb3Igb2NjdXJyZWQsIGFuZCBhbnl0aGluZyB5b3UgbWlnaHQg aGF2ZSBkb25lIHRoYXQgbWF5IGhhdmUgY2F1c2VkIHRoZSBlcnJvci48L3A+PHAgc3R5bGU9ImZv bnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJzsgZm9udC1zaXplOiBtZWRpdW07ICI+TW9yZSBp bmZvcm1hdGlvbiBhYm91dCB0aGlzIGVycm9yIG1heSBiZSBhdmFpbGFibGUgaW4gdGhlIHNlcnZl ciBlcnJvciBsb2cuPC9wPjxwIHN0eWxlPSJmb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbic7 IGZvbnQtc2l6ZTogbWVkaXVtOyAiPkFkZGl0aW9uYWxseSwgYSA0MDQgTm90IEZvdW5kIGVycm9y IHdhcyBlbmNvdW50ZXJlZCB3aGlsZSB0cnlpbmcgdG8gdXNlIGFuIEVycm9yRG9jdW1lbnQgdG8g aGFuZGxlIHRoZSByZXF1ZXN0LjwvcD48aHIgc3R5bGU9ImZvbnQtZmFtaWx5OiAnVGltZXMgTmV3 IFJvbWFuJzsgZm9udC1zaXplOiBtZWRpdW07ICI+PGFkZHJlc3Mgc3R5bGU9ImZvbnQtZmFtaWx5 OiAnVGltZXMKIE5ldyBSb21hbic7IGZvbnQtc2l6ZTogbWVkaXVtOyAiPkFwYWNoZS8yLjIuMjEg KFVuaXgpIG1vZF9zc2wvMi4yLjIxIE9wZW5TU0wvMC45LjhyIERBVi8yIG1vZF9mY2dpZC8yLjMu NiBGcm9udFBhZ2UvNS4wLjIuMjYzNSBtb2RfYndsaW1pdGVkLzEuNCBtb2RfYXV0aF9wYXNzdGhy b3VnaC8yLjEgU2VydmVyIGF0IGFkdm9nYWRvc21nLm9yZyBQb3J0IDgwPC9hZGRyZXNzPjxhZGRy ZXNzIHN0eWxlPSJmb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbic7IGZvbnQtc2l6ZTogbWVk aXVtOyAiPjxicj48L2FkZHJlc3M+PGFkZHJlc3Mgc3R5bGU9ImZvbnQtZmFtaWx5OiAnVGltZXMg TmV3IFJvbWFuJzsgZm9udC1zaXplOiBtZWRpdW07ICI+PGJyPjwvYWRkcmVzcz48L2Rpdj48L3Rk PjwvdHI+PC90YWJsZT4= --===============9075938507860186526==-- From feeley@iro.umontreal.ca Tue Dec 13 14:38:58 2011 From: Marc Feeley To: gambit-list@iro.umontreal.ca Subject: Re: [gambit-list] cgi in Gambit Date: Tue, 13 Dec 2011 14:38:31 -0500 Message-ID: <8523A35E-BDCC-4492-BF74-2522613ECC5C@iro.umontreal.ca> In-Reply-To: <1323803769.11114.YahooMailClassic@web31803.mail.mud.yahoo.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============4148168949485497049==" --===============4148168949485497049== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable On 2011-12-13, at 2:16 PM, Eduardo Costa wrote: > #! ./gsi-script -:d- >=20 > (display "Content-type: text/html") > (newline) > (newline) > (display=20 > " > >

Hello from Gambit

> > " ) > (newline) >=20 >=20 > Here is the message that I get from Hostgator both for the scripting versio= n and the compiled version: >=20 It is very probable that the current-directory that is in effect when the CGI= script is executed is **not** the one that contains the gsi-script executabl= e. Please: 1) figure out where the gsi-script executable is on the **server** machine (f= or example, /usr/bin/gsi-script) 2) put the complete path of the gsi-script executable in the first line of yo= ur script, i.e. #! /usr/bin/gsi-script -:d- ... An alternative that might work on the server is to use #! /usr/bin/env gsi-script -:d- This assumes that the PATH is properly setup on the server. Marc --===============4148168949485497049==-- From ceving@gmail.com Wed Dec 14 04:56:02 2011 From: Vok Vojwo To: gambit-list@iro.umontreal.ca Subject: Re: [gambit-list] cgi in Gambit Date: Wed, 14 Dec 2011 10:55:47 +0100 Message-ID: In-Reply-To: <1323803769.11114.YahooMailClassic@web31803.mail.mud.yahoo.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6414302299694791354==" --===============6414302299694791354== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable 2011/12/13 Eduardo Costa > > Therefore, I decided to switch to Gambit, Bigloo or SBCL. Maybe you should consider also Chicken: www.call-cc.org. Chicken has many modules. Some are buggy but most work right out of the box. Last week I had to write a HTTP server which acts as a XML transformer between a client talking HTTP and a server talking HTTPS. It took me less than a week to finish the daemon with all the Unix goodies: syslog, fork, signals etc. Calling continuations in signal handlers is really funny. I have no idea how this works but it seems to. > Here is the script (that works in my machine): > > #! ./gsi-script -:d- > > (display "Content-type: text/html") > (newline) > (newline) > (display > " > =C2=A0 > =C2=A0 =C2=A0

Hello from Gambit

> =C2=A0 > " ) > (newline) > > The server encountered an internal error or misconfiguration and was unable= to complete your request. HTTP headers must be delimited with CRNL. The same applies to CGI programs. You should not rely on newline, because it is likely that it does different things on different systems. This would be a valid response on every machine: (display "Content-type: text/html\r\n") (display "\r\n") (display "hello") But if you need the best CGI support you should probably use Perl instead: http://search.cpan.org/~lds/CGI.pm-3.43/CGI.pm --===============6414302299694791354==-- From asandroq@gmail.com Wed Dec 14 04:59:36 2011 From: Alex Queiroz To: gambit-list@iro.umontreal.ca Subject: Re: [gambit-list] cgi in Gambit Date: Wed, 14 Dec 2011 10:59:08 +0100 Message-ID: In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============6247353616364107553==" --===============6247353616364107553== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Hallo, On Wed, Dec 14, 2011 at 10:55 AM, Vok Vojwo wrote: > > But if you need the best CGI support you should probably use Perl instead: > http://search.cpan.org/~lds/CGI.pm-3.43/CGI.pm > _______________________________________________ Or he could stab himself in the eye. :) -- -alex http://www.artisancoder.com/ --===============6247353616364107553==-- From mikael.rcv@gmail.com Wed Dec 14 12:26:34 2011 From: Mikael To: gambit-list@iro.umontreal.ca Subject: Re: [gambit-list] cgi in Gambit Date: Wed, 14 Dec 2011 19:25:36 +0200 Message-ID: In-Reply-To: <1323803769.11114.YahooMailClassic@web31803.mail.mud.yahoo.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============5771443130449906260==" --===============5771443130449906260== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit CGI ought to be the simplest protocol ever, you should get this running fast. Check: * Try to run your app individually as to doublecheck that it outputs the right thing (=right function) * Try another CGI app as to doublecheck your app outputs the same thing as the other app (=ensure sufficient protocol conformance for this one) * Check so that you output the right type of newline expected by the caller and output by the test app, check with a hex editor - \n only or \r\n ? (=") * Insert a force-output call somewhere maybe * Make it log its executions to some file so you know it actually got run and how far When it spins, let the ml know how you got it there 2011/12/13 Eduardo Costa > I need to use Scheme or Common Lisp for writing CGI scripts to process the > XSL/XML protocols of a law firm. I started with Stalin, since it is easier > to compile. The resulting exec files work perfectly well, and have small > foot prints. However, the Stalin community does not seem to be very active. > Besides this, Stalin is very slow to compile, and does not provide an > interpreter. Therefore, I decided to switch to Gambit, Bigloo or SBCL. > > Gambit has the advantage of providing native infix notation. However, it > is not working in most commercial servers that the law firm uses. I am > using the following command line to create the exec files: > > $ ./gsc -exe gambtest.scm > > Where gambtest.scm contains the following lines: > > (display "Content-type: text/html") > (newline) > (newline) > (display > " > >

Hello from Gambit

> > " ) > (newline) > > It generates an executable file that works perfectly well in my machine, > but not in the servers that host the pages of the law firm. > > $ ./gambtest > Content-type: text/html > > > >

Hello from Gambit

> > > > For reasons that I cannot fathom, the law firm uses many hosting > providers. I also tried to use Gambit as a scripting language. The result > is the same. In the case of Bigloo, the problem lies in the fact that it > uses dynamic libraries incompatible with the server. I cannot understand > why this happens, since Stalin works even when linked to dynamic libraries. > By the way, I prefer the scripting solution, since the static exec files > are very large. > > I installed gambit in the hosting provider, making sure that both gsi and > gsi-script have permission to execute. I also tested the scripts with Dorai > Sitaram's Scheme in Common Lisp to make sure that everything is working > fine. Here is the script (that works in my machine): > > #! ./gsi-script -:d- > > (display "Content-type: text/html") > (newline) > (newline) > (display > " > >

Hello from Gambit

> > " ) > (newline) > > > Here is the message that I get from Hostgator both for the scripting > version and the compiled version: > > Internal Server Error > > The server encountered an internal error or misconfiguration and was > unable to complete your request. > > Please contact the server administrator, webmaster(a)advogadosmg.org and > inform them of the time the error occurred, and anything you might have > done that may have caused the error. > > More information about this error may be available in the server error log. > > Additionally, a 404 Not Found error was encountered while trying to use an > ErrorDocument to handle the request. > ------------------------------ > Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8r DAV/2 mod_fcgid/2.3.6 > FrontPage/5.0.2.2635 mod_bwlimited/1.4 mod_auth_passthrough/2.1 Server at > advogadosmg.org Port 80 > > > _______________________________________________ > Gambit-list mailing list > Gambit-list(a)iro.umontreal.ca > https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list > > --===============5771443130449906260== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.htm" MIME-Version: 1.0 PGRpdj5DR0kgb3VnaHQgdG8gYmUgdGhlIHNpbXBsZXN0IHByb3RvY29sIGV2ZXIsIHlvdSBzaG91 bGQgZ2V0IHRoaXMgcnVubmluZyBmYXN0LiBDaGVjazo8L2Rpdj48ZGl2Pjxicj48L2Rpdj6gKiBU cnkgdG8gcnVuIHlvdXIgYXBwIGluZGl2aWR1YWxseSBhcyB0byBkb3VibGVjaGVjayB0aGF0IGl0 IG91dHB1dHMgdGhlIHJpZ2h0IHRoaW5nICg9cmlnaHQgZnVuY3Rpb24pPGRpdj6gKiBUcnkgYW5v dGhlciBDR0kgYXBwIGFzIHRvIGRvdWJsZWNoZWNrIHlvdXIgYXBwIG91dHB1dHMgdGhlIHNhbWUg dGhpbmcgYXMgdGhlIG90aGVyIGFwcCAoPWVuc3VyZSBzdWZmaWNpZW50IHByb3RvY29sIGNvbmZv cm1hbmNlIGZvciB0aGlzIG9uZSk8L2Rpdj4KCjxkaXY+oCogQ2hlY2sgc28gdGhhdCB5b3Ugb3V0 cHV0IHRoZSByaWdodCB0eXBlIG9mIG5ld2xpbmUgZXhwZWN0ZWQgYnkgdGhlIGNhbGxlciBhbmQg b3V0cHV0IGJ5IHRoZSB0ZXN0IGFwcCwgY2hlY2sgd2l0aCBhIGhleCBlZGl0b3IgLSBcbiBvbmx5 IG9yIFxyXG4gPyAoPSZxdW90Oyk8L2Rpdj48ZGl2PjxkaXY+oCogSW5zZXJ0IGEgZm9yY2Utb3V0 cHV0IGNhbGwgc29tZXdoZXJlIG1heWJlPC9kaXY+Cgo8ZGl2PqAqIE1ha2UgaXQgbG9nIGl0cyBl eGVjdXRpb25zIHRvIHNvbWUgZmlsZSBzbyB5b3Uga25vdyBpdCBhY3R1YWxseSBnb3QgcnVuIGFu ZCBob3cgZmFyPGJyPjxicj48L2Rpdj48ZGl2PldoZW4gaXQgc3BpbnMsIGxldCB0aGUgbWwga25v dyBob3cgeW91IGdvdCBpdCB0aGVyZTwvZGl2PjxkaXY+PGJyPjxkaXYgY2xhc3M9ImdtYWlsX3F1 b3RlIj4yMDExLzEyLzEzIEVkdWFyZG8gQ29zdGEgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVm PSJtYWlsdG86ZWR1NTAwYWNAeWFob28uY29tIj5lZHU1MDBhY0B5YWhvby5jb208L2E+Jmd0Ozwv c3Bhbj48YnI+Cgo8YmxvY2txdW90ZSBjbGFzcz0iZ21haWxfcXVvdGUiIHN0eWxlPSJtYXJnaW46 MCAwIDAgLjhleDtib3JkZXItbGVmdDoxcHggI2NjYyBzb2xpZDtwYWRkaW5nLWxlZnQ6MWV4Ij48 dGFibGUgY2VsbHNwYWNpbmc9IjAiIGNlbGxwYWRkaW5nPSIwIiBib3JkZXI9IjAiPjx0Ym9keT48 dHI+PHRkIHZhbGlnbj0idG9wIiBzdHlsZT0iZm9udDppbmhlcml0Ij48Zm9udCBmYWNlPSJhcmlh bCI+SSBuZWVkIHRvIHVzZSBTY2hlbWUgb3IgQ29tbW9uIExpc3AgZm9yIHdyaXRpbmcgQ0dJIHNj cmlwdHMgdG8gcHJvY2VzcyB0aGUgWFNML1hNTCBwcm90b2NvbHMgb2YgYSBsYXcgZmlybS4gSSBz dGFydGVkIHdpdGggU3RhbGluLCBzaW5jZSBpdCBpcyBlYXNpZXIgdG8gY29tcGlsZS4gVGhlIHJl c3VsdGluZyBleGVjIGZpbGVzIHdvcmsgcGVyZmVjdGx5IHdlbGwsIGFuZCBoYXZlIHNtYWxsIGZv b3QgcHJpbnRzLiBIb3dldmVyLCB0aGUgU3RhbGluIGNvbW11bml0eSBkb2VzIG5vdCBzZWVtIHRv IGJlIHZlcnkgYWN0aXZlLiBCZXNpZGVzIHRoaXMsIFN0YWxpbiBpcyB2ZXJ5IHNsb3cgdG8gY29t cGlsZSwgYW5kIGRvZXMgbm90IHByb3ZpZGUgYW4gaW50ZXJwcmV0ZXIuIFRoZXJlZm9yZSwgSSBk ZWNpZGVkIHRvIHN3aXRjaCB0byBHYW1iaXQsIEJpZ2xvbyBvciBTQkNMLqA8L2ZvbnQ+PGRpdiBz dHlsZT0iZm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjEwcHQiPgoKPGJyPjwvZGl2PjxkaXYg c3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsO2ZvbnQtc2l6ZToxMHB0Ij5HYW1iaXQgaGFzIHRoZSBh ZHZhbnRhZ2Ugb2YgcHJvdmlkaW5nIG5hdGl2ZSBpbmZpeCBub3RhdGlvbi4gSG93ZXZlciwgaXQg aXMgbm90IHdvcmtpbmcgaW4gbW9zdCBjb21tZXJjaWFsIHNlcnZlcnMgdGhhdCB0aGUgbGF3IGZp cm0gdXNlcy4gSSBhbSB1c2luZyB0aGUgZm9sbG93aW5nIGNvbW1hbmQgbGluZSB0byBjcmVhdGUg dGhlIGV4ZWMgZmlsZXM6PC9kaXY+Cgo8ZGl2IHN0eWxlPSJmb250LWZhbWlseTphcmlhbDtmb250 LXNpemU6MTBwdCI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsO2ZvbnQt c2l6ZToxMHB0Ij4kIC4vZ3NjIC1leGUgZ2FtYnRlc3Quc2NtPC9kaXY+PGRpdiBzdHlsZT0iZm9u dC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjEwcHQiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJmb250 LWZhbWlseTphcmlhbDtmb250LXNpemU6MTBwdCI+CgpXaGVyZSBnYW1idGVzdC5zY20gY29udGFp bnMgdGhlIGZvbGxvd2luZyBsaW5lczo8L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTphcmlh bDtmb250LXNpemU6MTBwdCI+PGJyPjwvZGl2PjxkaXY+PGRpdj48Zm9udCBmYWNlPSJhcmlhbCI+ KGRpc3BsYXkgJnF1b3Q7Q29udGVudC10eXBlOiB0ZXh0L2h0bWwmcXVvdDspPC9mb250PjwvZGl2 PjxkaXY+PGZvbnQgZmFjZT0iYXJpYWwiPihuZXdsaW5lKTwvZm9udD48L2Rpdj4KCjxkaXY+PGZv bnQgZmFjZT0iYXJpYWwiPihuZXdsaW5lKTwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGZhY2U9ImFy aWFsIj4oZGlzcGxheaA8L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBmYWNlPSJhcmlhbCI+JnF1b3Q7 Jmx0O2h0bWwmZ3Q7PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgZmFjZT0iYXJpYWwiPqAgJmx0O2Jv ZHkmZ3Q7PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgZmFjZT0iYXJpYWwiPqAgoCZsdDtoMSZndDtI ZWxsbyBmcm9tCiBHYW1iaXQmbHQ7L2gxJmd0OzwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGZhY2U9 ImFyaWFsIj6gICZsdDsvYm9keSZndDs8L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBmYWNlPSJhcmlh bCI+Jmx0Oy9odG1sJmd0OyZxdW90OyApPC9mb250PjwvZGl2PjxkaXY+PGZvbnQgZmFjZT0iYXJp YWwiPihuZXdsaW5lKTwvZm9udD48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTphcmlhbDtm b250LXNpemU6MTBwdCI+Cgo8YnI+PC9kaXY+PC9kaXY+PGRpdj48ZGl2PjxzcGFuIHN0eWxlPSJm b250LWZhbWlseTphcmlhbDtmb250LXNpemU6MTNweCI+SXQgZ2VuZXJhdGVzIGFuIGV4ZWN1dGFi bGUgZmlsZSB0aGF0IHdvcmtzIHBlcmZlY3RseSB3ZWxsIGluIG15IG1hY2hpbmUsIGJ1dCBub3Qg aW4gdGhlIHNlcnZlcnMgdGhhdCBob3N0IHRoZSBwYWdlcyBvZiB0aGUgbGF3IGZpcm0uoDwvc3Bh bj48L2Rpdj48L2Rpdj4KCjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsO2ZvbnQtc2l6ZTox MHB0Ij48YnI+PC9kaXY+PGRpdj48ZGl2Pjxmb250IGZhY2U9ImFyaWFsIj4kIC4vZ2FtYnRlc3Sg PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgZmFjZT0iYXJpYWwiPkNvbnRlbnQtdHlwZTogdGV4dC9o dG1sPC9mb250PjwvZGl2PjxkaXY+PGZvbnQgZmFjZT0iYXJpYWwiPjxicj48L2ZvbnQ+PC9kaXY+ PGRpdj48Zm9udCBmYWNlPSJhcmlhbCI+Jmx0O2h0bWwmZ3Q7PC9mb250PjwvZGl2PgoKPGRpdj48 Zm9udCBmYWNlPSJhcmlhbCI+oCAmbHQ7Ym9keSZndDs8L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBm YWNlPSJhcmlhbCI+oCCgJmx0O2gxJmd0O0hlbGxvIGZyb20gR2FtYml0Jmx0Oy9oMSZndDs8L2Zv bnQ+PC9kaXY+PGRpdj48Zm9udCBmYWNlPSJhcmlhbCI+oCAmbHQ7L2JvZHkmZ3Q7PC9mb250Pjwv ZGl2PjxkaXY+PGZvbnQgZmFjZT0iYXJpYWwiPiZsdDsvaHRtbCZndDs8L2ZvbnQ+PC9kaXY+Cgo8 ZGl2IHN0eWxlPSJmb250LWZhbWlseTphcmlhbDtmb250LXNpemU6MTBwdCI+PGJyPjwvZGl2Pjwv ZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsO2ZvbnQtc2l6ZToxMHB0Ij5Gb3IgcmVh c29ucyB0aGF0IEkgY2Fubm90IGZhdGhvbSwgdGhlIGxhdyBmaXJtIHVzZXMgbWFueSBob3N0aW5n IHByb3ZpZGVycy4gSSBhbHNvIHRyaWVkIHRvIHVzZSBHYW1iaXQgYXMgYSBzY3JpcHRpbmcgbGFu Z3VhZ2UuIFRoZSByZXN1bHQgaXMgdGhlIHNhbWUuIKBJbiB0aGUgY2FzZSBvZiBCaWdsb28sIHRo ZSBwcm9ibGVtIGxpZXMgaW4gdGhlIGZhY3QgdGhhdCBpdCB1c2VzIGR5bmFtaWMgbGlicmFyaWVz IGluY29tcGF0aWJsZSB3aXRoIHRoZSBzZXJ2ZXIuIKBJIGNhbm5vdCB1bmRlcnN0YW5kIHdoeSB0 aGlzIGhhcHBlbnMsIHNpbmNlIFN0YWxpbiB3b3JrcyBldmVuIHdoZW4gbGlua2VkIHRvIGR5bmFt aWMgbGlicmFyaWVzLiBCeSB0aGUgd2F5LCBJIHByZWZlciB0aGUgc2NyaXB0aW5nCiBzb2x1dGlv biwgc2luY2UgdGhlIHN0YXRpYyBleGVjIGZpbGVzIGFyZSB2ZXJ5IGxhcmdlLjwvZGl2PjxkaXYg c3R5bGU9ImZvbnQtZmFtaWx5OmFyaWFsO2ZvbnQtc2l6ZToxMHB0Ij48YnI+PC9kaXY+PGRpdiBz dHlsZT0iZm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjEwcHQiPkkgaW5zdGFsbGVkIGdhbWJp dCBpbiB0aGUgaG9zdGluZyBwcm92aWRlciwgbWFraW5nIHN1cmUgdGhhdCBib3RoIGdzaSBhbmQg Z3NpLXNjcmlwdCBoYXZlIHBlcm1pc3Npb24gdG8gZXhlY3V0ZS4gSSBhbHNvIHRlc3RlZCB0aGUg c2NyaXB0cyB3aXRoIERvcmFpIFNpdGFyYW0mIzM5O3MgU2NoZW1lIGluIENvbW1vbiBMaXNwIHRv IG1ha2Ugc3VyZSB0aGF0IGV2ZXJ5dGhpbmcgaXMgd29ya2luZyBmaW5lLiCgSGVyZSBpcyB0aGUg c2NyaXB0ICh0aGF0IHdvcmtzIGluIG15IG1hY2hpbmUpOjwvZGl2PgoKPGRpdiBzdHlsZT0iZm9u dC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjEwcHQiPjxicj48L2Rpdj48ZGl2PjxkaXY+PGZvbnQg ZmFjZT0iYXJpYWwiPiMhIC4vZ3NpLXNjcmlwdCAtOmQtPC9mb250PjwvZGl2PjxkaXY+PGZvbnQg ZmFjZT0iYXJpYWwiPjxicj48L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBmYWNlPSJhcmlhbCI+KGRp c3BsYXkgJnF1b3Q7Q29udGVudC10eXBlOiB0ZXh0L2h0bWwmcXVvdDspPC9mb250PjwvZGl2PgoK PGRpdj48Zm9udCBmYWNlPSJhcmlhbCI+KG5ld2xpbmUpPC9mb250PjwvZGl2PjxkaXY+PGZvbnQg ZmFjZT0iYXJpYWwiPihuZXdsaW5lKTwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGZhY2U9ImFyaWFs Ij4oZGlzcGxheaA8L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBmYWNlPSJhcmlhbCI+JnF1b3Q7Jmx0 O2h0bWwmZ3Q7PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgZmFjZT0iYXJpYWwiPqAgJmx0O2JvZHkm Z3Q7PC9mb250PjwvZGl2PgoKPGRpdj48Zm9udCBmYWNlPSJhcmlhbCI+oCCgJmx0O2gxJmd0O0hl bGxvIGZyb20gR2FtYml0Jmx0Oy9oMSZndDs8L2ZvbnQ+PC9kaXY+PGRpdj48Zm9udCBmYWNlPSJh cmlhbCI+oCAmbHQ7L2JvZHkmZ3Q7PC9mb250PjwvZGl2PjxkaXY+PGZvbnQgZmFjZT0iYXJpYWwi PiZsdDsvaHRtbCZndDsmcXVvdDsgKTwvZm9udD48L2Rpdj48ZGl2Pjxmb250IGZhY2U9ImFyaWFs Ij4obmV3bGluZSk8L2ZvbnQ+PC9kaXY+Cgo8L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTph cmlhbDtmb250LXNpemU6MTBwdCI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OmFy aWFsO2ZvbnQtc2l6ZToxMHB0Ij48YnI+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6YXJp YWw7Zm9udC1zaXplOjEwcHQiPkhlcmUgaXMgdGhlIG1lc3NhZ2UgdGhhdCBJIGdldCBmcm9tIEhv c3RnYXRvciBib3RoIGZvciB0aGUgc2NyaXB0aW5nIHZlcnNpb24gYW5kIHRoZSBjb21waWxlZCB2 ZXJzaW9uOjwvZGl2PgoKPGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6YXJpYWw7Zm9udC1zaXplOjEw cHQiPjxicj48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTphcmlhbDtmb250LXNpemU6MTBw dCI+PGgxIHN0eWxlPSJmb250LWZhbWlseTomIzM5O1RpbWVzIE5ldyBSb21hbiYjMzk7Ij5JbnRl cm5hbCBTZXJ2ZXIgRXJyb3I8L2gxPjxwIHN0eWxlPSJmb250LWZhbWlseTomIzM5O1RpbWVzIE5l dyBSb21hbiYjMzk7O2ZvbnQtc2l6ZTptZWRpdW0iPgoKVGhlIHNlcnZlciBlbmNvdW50ZXJlZCBh biBpbnRlcm5hbCBlcnJvciBvciBtaXNjb25maWd1cmF0aW9uIGFuZCB3YXMgdW5hYmxlIHRvIGNv bXBsZXRlIHlvdXIgcmVxdWVzdC48L3A+PHAgc3R5bGU9ImZvbnQtZmFtaWx5OiYjMzk7VGltZXMg TmV3IFJvbWFuJiMzOTs7Zm9udC1zaXplOm1lZGl1bSI+UGxlYXNlIGNvbnRhY3QgdGhlIHNlcnZl ciBhZG1pbmlzdHJhdG9yLCA8YSBocmVmPSJtYWlsdG86d2VibWFzdGVyQGFkdm9nYWRvc21nLm9y ZyIgdGFyZ2V0PSJfYmxhbmsiPndlYm1hc3RlckBhZHZvZ2Fkb3NtZy5vcmc8L2E+IGFuZCBpbmZv cm0gdGhlbSBvZiB0aGUgdGltZSB0aGUgZXJyb3Igb2NjdXJyZWQsIGFuZCBhbnl0aGluZyB5b3Ug bWlnaHQgaGF2ZSBkb25lIHRoYXQgbWF5IGhhdmUgY2F1c2VkIHRoZSBlcnJvci48L3A+Cgo8cCBz dHlsZT0iZm9udC1mYW1pbHk6JiMzOTtUaW1lcyBOZXcgUm9tYW4mIzM5Oztmb250LXNpemU6bWVk aXVtIj5Nb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoaXMgZXJyb3IgbWF5IGJlIGF2YWlsYWJsZSBp biB0aGUgc2VydmVyIGVycm9yIGxvZy48L3A+PHAgc3R5bGU9ImZvbnQtZmFtaWx5OiYjMzk7VGlt ZXMgTmV3IFJvbWFuJiMzOTs7Zm9udC1zaXplOm1lZGl1bSI+QWRkaXRpb25hbGx5LCBhIDQwNCBO b3QgRm91bmQgZXJyb3Igd2FzIGVuY291bnRlcmVkIHdoaWxlIHRyeWluZyB0byB1c2UgYW4gRXJy b3JEb2N1bWVudCB0byBoYW5kbGUgdGhlIHJlcXVlc3QuPC9wPgoKPGhyIHN0eWxlPSJmb250LWZh bWlseTomIzM5O1RpbWVzIE5ldyBSb21hbiYjMzk7O2ZvbnQtc2l6ZTptZWRpdW0iPjxhZGRyZXNz PkFwYWNoZS8yLjIuMjEgKFVuaXgpIG1vZF9zc2wvMi4yLjIxIE9wZW5TU0wvMC45LjhyIERBVi8y IG1vZF9mY2dpZC8yLjMuNiBGcm9udFBhZ2UvNS4wLjIuMjYzNSBtb2RfYndsaW1pdGVkLzEuNCBt b2RfYXV0aF9wYXNzdGhyb3VnaC8yLjEgU2VydmVyIGF0IDxhIGhyZWY9Imh0dHA6Ly9hZHZvZ2Fk b3NtZy5vcmciIHRhcmdldD0iX2JsYW5rIj5hZHZvZ2Fkb3NtZy5vcmc8L2E+IFBvcnQgODA8L2Fk ZHJlc3M+PGFkZHJlc3Mgc3R5bGU9ImZvbnQtZmFtaWx5OiYjMzk7VGltZXMgTmV3IFJvbWFuJiMz OTs7Zm9udC1zaXplOm1lZGl1bSI+PGJyPgoKPC9hZGRyZXNzPjxhZGRyZXNzIHN0eWxlPSJmb250 LWZhbWlseTomIzM5O1RpbWVzIE5ldyBSb21hbiYjMzk7O2ZvbnQtc2l6ZTptZWRpdW0iPjxicj48 L2FkZHJlc3M+PC9kaXY+PC90ZD48L3RyPjwvdGJvZHk+PC90YWJsZT48YnI+X19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+CkdhbWJpdC1saXN0IG1haWxp bmcgbGlzdDxicj4KPGEgaHJlZj0ibWFpbHRvOkdhbWJpdC1saXN0QGlyby51bW9udHJlYWwuY2Ei PkdhbWJpdC1saXN0QGlyby51bW9udHJlYWwuY2E8L2E+PGJyPgo8YSBocmVmPSJodHRwczovL3dl Ym1haWwuaXJvLnVtb250cmVhbC5jYS9tYWlsbWFuL2xpc3RpbmZvL2dhbWJpdC1saXN0IiB0YXJn ZXQ9Il9ibGFuayI+aHR0cHM6Ly93ZWJtYWlsLmlyby51bW9udHJlYWwuY2EvbWFpbG1hbi9saXN0 aW5mby9nYW1iaXQtbGlzdDwvYT48YnI+Cjxicj48L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPjwvZGl2 PjwvZGl2Pgo= --===============5771443130449906260==--