ELF@x@8@ZZxx Z Z ZppD ???4<@=@<@=@<gA=sA<A DA?A40 9 =AB5= AA  4 =AB5@ > A=AB<A5p> A=AB<A5p> A=kAB<A5p> A=;AB<A5p> A==AB<A5p> A=?AB<A5p> A=AB<A5p> A=9AB<A5p> A=AB<A5p> A=AB<A5p> A=AB<A5p> A=AB<A5p> AC AAA499 CAAA4CAAA4p<A<A<B@ 00 6m88= AB 5 p@ > A=BB<B5p> B= BB< B5p> B= BB<B5p=BA4= BA4pA  4 00p00 `PCB@@4`DBBB4@0`6B8`6K8`F0CB@B4@CB@@400@0P@CB@@5@99QGDBAB400`0@CA@A4` DAAA47 00 0 DAAA47 00 0@CA@@4`DAAA400`6/8`688`F QCA|@V@4@QCAu@O@5P99QGDAAA4@0`0@0P00 DrAnAlA47 00 0 D~A`A|A47 00 0pCAL@*@4p9DOAKAIA4P0p6p8p6y8pF@CgA/@?4P#6%DmAiAgA4@=><gA0P9Q!#RPSP%DWASAQA4@=o><QA0P9Q! S@C4A??509Q!9QGDA@A4`0p0P0p "0pC'A?u?4p9  D@@@47 00 0 D@@@47 00 09A 9  ) 9 )  " C8A?6A4C>A?@4`C2A>0A4P0`00p 0 9 )CA>M>40 !0 CA>>4 CA>>40 00093 3 3 39 CA>A4 5 R5 4 S 5 9 4Q Q5C@>@4CA>A4pC A>A4`CA>A4P00  a000p CA>A4C A> A4pCA>A4`00p C As>U>4680 CAc>A490 C@W>'=9<@440P00  RP4D@;@400@0P  "D@;@4P680P00@0`  "!0p)C@>@4 404 4 0 4%RPSPD@>@40688@8PD@>@4P !D???4=,<<?0P 0p PC@=@4@9 !7P4 0@00C@=@4@7P4P0@0P00  9D@_;@4PD@Y;@4@D@S;@4068p8`000 p 9 0@` <@ 0 `9D@-;@4@<@0`D@ ;@4@7p7p0@000p0 @D@;@4P0@@"D@;@4PD@:@40@<@000 0@09  C@4=@47 00 007070700 00009 )C@#=s<40 !0 D?=?4 680D?=?400 0000 Cb@<b<47 00 0@CU@<<4@6J8`0@0P00CE@<=4`0P6A8P<7@F`CB@<@@4`6E8P@ 2GC,@<t<4@0P0P0@0`00 C$@<"@47 00 0 C @<R<47 00 09 C @<@4 C @~<@4 C @x<@4 C@r<?49D@:@4`0  "4`0  "4`0  "4`0 "no o o oo 7  o 7  o 7  o70  HHHHC ?<?4 9 H C ?<?4  2 I 00 2 I0 2 I0 2 I0 2 I = ?< ?< ?9 Q  D?h9?40p00 00 0 = ?< ?< ?9Q D?N9?40p00 00 0 = v?< v?< |?9Q D?49?400 0p00 0 = \?< \?< b?9Q Dp?9n?4000 @0p00 0 `3 p93pCe?y;c?4P0p "Cc?k;a?4@0p 5@Cb?^;`?4@40 6D888p6n888pF00` 2 G4P0` "C%?-;#?4P0` 5 PC $? ;"?4 4p00  0`@C> ;>407@0""C>:>407@07@50C>:>407@4 7@000@09 @C>:>407@0""C>:>407@07@50C>:>407@4 7@000@09 `933C>:>4@0pp "C>:>400pp 50C>:>400pp 506C8p8P86p8p8P8F 0` 2 G4@0p` "C>g:>4@4P0@0p C>Z:~>4P40P0p @C>>H:">407@0"%C;>9:9>407@07@50C7>):5>407@07@509 9 PC>:=4@7P0""C>:>4@7P407P0@C>9>4@7P407P0@0P0 9 C >9>4=>0 6 8 6 8 F 9 C >9 >40P "C >9 >40P !9(8C>9>4p<>0`00P  Q  940  "C=9=4`0  !0( 4p0`0P  Q  !C =9=40 2 GC =s9C:40   00 0 0 0C=_9=4 ==700 000 C=O9:47 00 0PC=Q9=4@7`0P@"C=A9=4@7`0@0P0`009  C=w9 940<k=68 0C=g9 94 6708700 0009 C=Q9=4`<===7@ C=@9=4P0`P "C=29094P0`P "hC=$9=4P<=P C=9<4@0P Cz= 9<4@0P Cq=9<4@0P Ch=8;4@0P C_=884P70PP CS=874PCY=8W=4@<U=0p` 68`80P0@CT=8R=4p70p0`00P=P= pCM=8;;4`<I=CO=8}84@770@00` 0`0P00@09CB=8@=4 =F=0 00@09 )C9=8w;4p !0`C8=86=4`=$=0`0p0PP"*C(=v8`84`0pC=k8;4`0pP"C=]8<4`90`0p009 9 ?&5<!5O>&5?(5<#5O>(5=&5>&5?*5$5?-5<(5O>-5?/5<*5O>/5?15<,5O>15=/5>/5=!5>/5?/5)5=5>,5?,5&5?-5<(5O>-5=+5P>*5?,5?15<,5O>15=/5P>.5=4>,5=4>,5?,5&5=4>)5?)5#5?(5$5?+5<&5O>+5?-5<(5O>-5=+5>+5=5>+5?+5%5?*5&5?-5<(5O>-5=+5>+5=5>+5?+5%5?*5&5?-5u<(5O>-5=+5>+5=4>+5?+5%5?*5&5?-5e<(5O>-5=+5>+5=4>+5?+5%5?*5&5?-5U<(5O>-5?/5S<*5O>/5=-5>-5=5>-5?-5'5?,5(5?/5E<*5O>/5=-5>-5=4>-5?-5'5?,5(5?/57<*5O>/5?155<,5O>15=/5>/5=!5>/5?/5)5=4>,5?,5&5?-5!<(5O>-5=+5P>*5?,5<'5O>,5=*5>*5?,5(5=5>+5?+5%5?*55?)5#5?*5<%5O>*5?,5<'5O>,5=*5>*5=5>*5?*5$5?)5%5?,5<'5O>,5=*5>*5=5>*5?*5$5?)5%5?*5&5?+5 5?*5$5?)54?(5"5?'54?&5 5?%54?$55?#5Y4?"55?!5=4? 55?5!4?55?54?55?53?55?5<5O>5=5P>5?5<5O>5?5<5O>5?5<5O>5? 5<5O> 5?"5<5O>"5= 5> 5=5> 5? 55=5>5?55=4>5?55=4>5?55?5<5O>5?5<5O>5?5<5O>5? 5<5O> 5?$5<5O>$5?&5?)5<$5O>)5?+5?.5?15y?45?75E?:5<55O>:5?<5_??5?B5z<=5O>B5?D5??G5w<B5O>G5?I5?L5x<G5O>L5?N5?Q5y<L5O>Q5?S5U?V5x<Q5O>V5?Z5z<U5O>Z5?^5z<Y5O>^5?b5z?g5?l5?q5<l5O>q5?u5<p5O>u5?w5?z5<u5O>z5?|5?5<z5O>5?5?5<}5O>5?5<5O>5?5<5O>5?52?5<5O>5?5<5O>5?5<5O>5?5<5O>5?52?5?5<5O>5=5P>5=5>5?5<5O>5=5P>5=5>5?5<5O>5=5P>5=5>5?55?55?55?5}5?55?5m<5O>5?5m<5O>5?5k<5O>5?5k<5O>5?5i<5O>5?5g<5O>5?5g<5O>5?5g<5O>5?5g<5O>5?5g<5O>5?5e<5O>5=5P>5=5>5?55?5W?5^<5O>5?5\<5O>5?5Z<5O>5?5X<5O>5?5V<5O>5?5T<5O>5?6T<5O>6?6R<5O>6?6R<6O>6? 6P<6O> 6?6N< 6O>6?6?6I<6O>6?6G<6O>6?!6E<6O>!6?%6C< 6O>%6?)6E<$6O>)6?-6E<(6O>-6?16C<,6O>16?56C<06O>56?96C<46O>96?=6C<86O>=6?A6?B6B<=6O>B6?F6@?K6I<F6O>K6?O6I<J6O>O6?S6I<N6O>S6?W6K?\6N<W6O>\6?h6y?i6I<d6O>i6?o6M<j6O>o6?s6M<n6O>s6?w6O<r6O>w6?{6Q<v6O>{6?6S<|6O>6?6S<6O>6?6S<6O>6?6S<6O>6?6S?6X?6_<6O>6?6_<6O>6?6_<6O>6?6_<6O>6?6a<6O>6?6a<6O>6?6a<6O>6?6a<6O>6?6c<6O>6?6a<6O>6?6_<6O>6?6_<6O>6?6a<6O>6?6c?6h<6O>6?6l<6O>6?6l<6O>6?6l<6O>6?6l?6o<6O>6?6m<6O>6?6m<6O>6?6m? 7p<7O> 7?7p?7s<7O>7?7s<7O>7?7q?"7<7O>"7?&7<!7O>&7?*7<%7O>*79 'define-module*'guile'system'repl'server'filename'system/repl/server.scm'imports'ice-9'threads'rdelim'match'iconv'rnrs' bytevectors' binary-ports'io'ports'select'call-with-port'srfi'srfi-1'srfi-26'exports'make-tcp-server-socket'make-unix-domain-server-socket' run-server' spawn-server'stop-server-and-clients!'set-current-module'*open-sockets*' make-mutex' sockets-lock' close-socket!'add-open-socket!' run-server*' serve-client'with-temporary-port-encoding'with-saved-port-line+column'drain-input-and-close'ucs-range->char-set' make-regexp' string-append'2^(OPTIONS|GET|HEAD|POST|PUT|DELETE|TRACE|CONNECT) '[^ ]+ '!HTTP/[0123456789]+.[0123456789]+$'permissive-http-request-line?'check-for-http-request'guard-against-http-request'maybe-check-for-http-request' add-hook!'before-read-hook' lock-mutex' assq-remove!' unlock-mutex' close-port'error'no matching pattern'host'addr'port' inet-pton'AF_INET'INADDR_LOOPBACK'socket'PF_INET' SOCK_STREAM' setsockopt' SOL_SOCKET' SO_REUSEADDR'bind'path'/tmp/guile-socket'PF_UNIX'AF_UNIX'pipe'fcntl'F_SETFL' O_NONBLOCK'F_GETFL' sigaction'SIGPIPE'SIG_IGN'listen'memq'catch'close'call-with-new-thread'%thread-handler'display' force-output'for-each' string-split'call-with-output-string'format'Failed to accept client:'print-exception' string-null?'current-warning-port';;; ~a 'accept'with-continuation-barrier' cancel-thread'current-input-port'current-output-port'current-error-port' parameter?' *repl-stack*' start-repl'wrong-type-arg' parameterize'Not a parameter: ~S' scm-error' port-closed?' port-encoding'set-port-encoding!' port-line' port-column'set-port-line!'set-port-column!'setvbuf'block' char-ready?'get-bytevector-some'bytevector->string' ISO-8859-1'string-concatenate-reverse' string-every' regexp-exec'read-delimited' 'peek' eof-object?'%make-void-port'rw' dup->port'w' unread-string'done' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ POSSIBLE BREAK-IN ATTEMPT ON THE REPL SERVER @@ @@ BY AN HTTP INTER-PROTOCOL EXPLOITATION ATTACK. See: @@ @@ @@ @@ Possible HTTP request received: ~S @@ The associated socket has been closed. @@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ '%set-port-property!'guard-against-http-request?'%port-property@@ A4BCDEFGlHITJK$ L M0 N O P Q R SdUXZ(\X^`c4fik l`ortsuvwdxyz{|}X~0Pp HpdHP T$ X   !t!!D"""(#P####,$$(&X&&&&('T'''(()*,*  (*  * ****  * *** *** ***"""" ****("""`7A`7`7`7x l+`7HV       EEEEEE EE EEEE  2!EEE             E  E E                 4BBx A*HVHV< Z ZpE @NM< UpAAk$ zC_48 4(78@7Z88\Hx@^@$@xxx$$0 #0 h vh  !  | a | pJp  8  8  > PJ PV  4| 4| |   \ O\)   l  l D!o D!" "P$ &P$$w$$$P% P%%%%%()()q )@)@)*                        $ ,4<DL T$h| ! #  %16 : 04Th      $ $!? # %16 :0 4T hx $ $ #K S UY# U# UU[ : 6 48Xl        $ $p`ejo`  ej   ,TXlp  $$(wow  0DH\`t x|    |o | 04LPdh||   116  6  :    Y#  04$HPX \ d hlp  $$(8(0  $,$,$, $(4((,00(((,(( ,(004(8,04   ( ,X\dhK    $ ( <@TXd jK  (P T \d!   64PThl  $ |o | 04LPdht $e [ : , dh  $ $6    K          [ :[:[:[:[: 16 : 16 : 16 : 16 :04H L `dh|$$$  ,0,0,0 0     j   [    :  $(@\`x$     6 $8TX `t|   6 $8TX `t|j   [    : $(@\`x     %6 $8TX `t|    6 $8TX`dl       [ :$DXh|      $$$  $, $  6$<X\d $0  (0 @       6 (08L` d|           $ 8<DL h  ( o    66 04LPdhp \c"$iP%)g@)$3A P(8`888,   8P 8E \x X{ dX|| 8488Hd88`DT!,""@8%@x%8% 8&@x&T&h)")@=(*Dl+L%... . Guile 2.2.7close-socket!add-open-socket!stop-server-and-clients!make-tcp-server-socketmake-unix-domain-server-socketrun-serverrun-server*shutdown-serverspawn-serverserve-clientwith-temporary-port-encodingwith-saved-port-line+columndrain-input-and-closecheck-for-http-requestguard-against-http-requestmaybe-check-for-http-requestX* system/repl/server.scm w;yw0  -$  --) Xmw,> Y}hw(/i -X 4xY!%!<6w<0J\i<4 vhYo.  Jxi{,Kxhd Y.<+$IY2JiyY YvwzXWr)YwYL&R  x v h  hVz h hx Y  w Y w h hx hz h x Y w wy Y ~,V YsY#xh6,Gh<wtwrzJb Y h (-X- { Z"0, J0',#-0 ,ivZhJ!wxwh,jK l , h P@8x888 $ 0 8h 89 P Xo z| p||884P84H|88`\l D!"@P$@$8$P%@%T%()@1@)D*Lclose-socket!add-open-socket!stop-server-and-clients!make-tcp-server-socketmake-unix-domain-server-socketrun-serverrun-server*shutdown-serverspawn-serverserve-clientwith-temporary-port-encodingwith-saved-port-line+columndrain-input-and-closecheck-for-http-requestguard-against-http-requestmaybe-check-for-http-requestclosureboxargtmpnamemodulesxunspecifiedtailvalprocforce-closepublic?vnilwvalshostaddrportunboundpathserver-socketserve-clientshutdown-pipesshutdown-read-pipeshutdown-write-pipemonitored-portsbound?unboxedready-portskeyargsclientthreadt-733ce3ad9f392e4-132t-733ce3ad9f392e4-133t-733ce3ad9f392e4-134t-733ce3ad9f392e4-135t-733ce3ad9f392e4-13ft-733ce3ad9f392e4-140t-733ce3ad9f392e4-141t-733ce3ad9f392e4-142t-733ce3ad9f392e4-158encodingthunksaved-encodingsaved-linesaved-columnsocketresultchunkslinescopet-733ce3ad9f392e4-217Call THUNK in a dynamic environment in which the encoding of PORT is temporarily set to ENCODING.Save the line and column of PORT before entering THUNK, and restore their previous values upon normal or non-local exit from THUNK.Drain input from SOCKET using ISO-8859-1 encoding until it would block, and then close it. Return the drained input as a string.Return true if LINE might plausibly be an HTTP request-line, otherwise return #f.Check for a possible HTTP request in the initial input from SOCKET. If one is found, close the socket and print a report to STDERR (fdes 2). Otherwise, put back the bytes.Arrange for the Guile REPL to check for an HTTP request in the initial input from SOCKET, in which case the socket will be closed. This guards against HTTP inter-protocol exploitation attacks, a scenario whereby an attacker can, via an HTML page, cause a web browser to send data to TCP servers listening on a loopback interface or private network.Apply check-for-http-request to SOCKET if previously requested by guard-against-http-request. This procedure is intended to be added to before-read-hook..guile.procprops.rodata.data.rtl-text.guile.frame-maps.dynamic.strtab.symtab.guile.arities.strtab.guile.arities.guile.docstrs.strtab.guile.docstrs.debug_info.debug_abbrev.debug_str.debug_loc.debug_line.shstrtab