#!/usr/local/bin/ocamlrun T)* VC D 2" @(()*c|Vc( `h yV5?[o n2$ ]h yV5?[c }V] h `c]c(m] mh `cY 2!"Z( 6 CyV(T[]()* ^()* ^()* ^()* ^(](]()* ^(](](](]G()* ^(](](]()* ^(c!](hC%h!c%C +I(]](h!](h!]J(]%l ^]("g ^](!&!&&^(l ^]("g ^(!&!&&^()*c {U ]n}V5 % $)*c {U ]n}V5 % `(h6 'h6 ')* _](]]()*c _()*c {U ]n}V5% `()*]h `(l6'l6')* _](6^(6^K(6 ^Vc(5 ^Vd(5%V5(5(c {Ug }V5%()*] ] n] h ha ha(g u(c ~V(m()* ^V(()* ^V((6@[6@[+ +6?6? + + + +hlivyVgTg>iv  +p +W +H +) + + ,c]i]j] + + + ++ + + + +t +i+G ,+,+  + + ++++++++r+b +Q +E +9+)? + + +  + + + + + + + + #! +)(* +. +x +o +c3 +T +G79 +6 +,?>@&(*,.02468:<>@BRTVXZ\^`bdhhhlnpuuuu>E59T))* V D 2&()*|V  $eq o  n n2  n2  n n$ )*c TE\ n^ n? T\C^ C_ C~Vc C^"}Uc C_ |Uc()*c "|V._ {V ^2$ o$ _ {V ^ 2$ o$ )* nn  , ^^$)* + + ,O |V hh$ e q oh^ ^  h   h c h $)* "h ^"}V^ _ 2' _()*Y #Z(  CyV D _(T[)* " ^ _ 2&)*f q YzZT hXV 58@[c ^"{V^ _c }V 2&h_( _()*Y"Z(  CyVD (T[)* nn ? {V0c ^ ^"{V Ic ^ C^"{V IC( {Vc ^ ^"{V( {V(@[)* + ,,,+V,Ok qh T\ ^  # ~Ucj T \ ^h ^  _h"" ~Ucd }Vd ^h ^i _h _( )*? Oh T\C ^ " I ~UcC()*?hO T\^ C" I |UcC()* VC D _ 2&(VC D h"^ ,i &:()*c {V( ^ @ 2&,c O &)*Oh yV:(c ^ h " ^ i  T\^ " _  |Uc()*c O T\^ " |Uc()*Oh yV:(c ^ ! ^ i  T\^ ! _  |Uc()*c O T \^ ! |Uc()*c{Uc {UO n}Uc{U On}V58% {V"h T\n ^ n_  ~Uc(c T\n ^ n_  |Uc()*c {Uc {U O n}V58% n T \ _  |Uc()*c {Uc {U O n}V58%c yV:( ^ ^ i T\n^ _  |Uc( VC Dh O}V h ^ &2%:(, %)* V C D On2&()* V-C Dh O T\^ n_  |Uc On2&c()*, h "^ ,h "()*O Oh yV c yV:(ch }VT^ n^ h  T\^ _  |Ucc  T\^  n_  |Uc(Oh yV:(c ^ ^ i  T\^ _  |Uc()*: ^ h  T\^ Q |Uc()*c yV:(c ! ^ i  T\! _  |Uc(+ + +n + + + +! + +q +N + + + + ,+b + +6 ? +Ll  +  !$&(>9!T)* V D 2&()* V C DhyV(c}V 2&5"8%5#8%)* V C D @ 2&( VC D 2! 8&c()* VC D ! 2" @(c()* V C D !2&c()* VC D "2' ()* VC D 2# &()* V!C D VC D  "  2# @( T  VTc(5$8%)* VC D VC D  " 2'T  VTc(5%8%)* V C D VC D    # 2$T  VT(5&8%)* V$C D VC D  2   'T  VT(5'8%)* VC D !V2&(d()* VC D !U2&(c()* V!C D VC D  "V 2'( T  VTd(5(8%)* V!C D VC D  "U 2'( T  VTc(5)8%)* VC D ^U2&(c()* VC D yU2&(c()* VC C D D ^V(2& 5?[)* VC C D D yV(2& 5?[)* VC C D ^U2&(c()* VC C D yU2&(c()* VC C D ^V(2" @(c()* VC C D yV(2" @(c()* VC D !V(2&5?[)* VC D !V @2'  @2' ! !@()*,hh ' VC C D D 2! C D @ @@( 5*()* VC D VC D 2" @@( T  VTc(5+8%)*8! ! 8!"%)*c |V( yV^  ^@2' ^@2'O , h ')* VC D !V  @2&2&%,c %)* VC D VC D  "@2'T  VT(5,8%)*, h ')* VC D  !@2&()*,h &c & VD (5-8% VC (5.8%h&,+ + + ,7 , + , ,(+ ,:,L,_,r+b ,,,,H,^,t,,,,,-,J,c,{,,+ ,,,+ +M  !#%')+.0/358:9>>BDCGIKM>')9/Tga ~Vgz |Ug ~Vg |U g ~V g |V((gA ~VgZ |Ug ~Vg |U g ~V g |V ((g' {Vg yV50(g yV51(g' yV52(g\ yV53(]V d] h S(l]l\h Sgd ql0ni Sg l qrl0nj Sg rl0nk S(c {Ug }V548%(+ +z +J + >95T)* ~V5?[ RyV(  2$)*c {V5?[ RyV(  2')*h ')*c {U] ~V568%Y #cdZ( 6 CyVc(T[)*c {U] }V578%Y   ]  cdZ( 6 CyVc(T[)*g {U] ~V588% ')* ] ')*c {U] }V598% ] $)*h ] $85&85&)*c ]yV(!h R !h S(85&85&)*]h yV(]h  T\R! S |Uc(c?h ] T/\R 6:^VcTTeT ]VdTg Cn I |Uc] CyV(C]h Ic ] T\R 6;^VcTTg\CSCST| WT#g\CSgtCST_g\CSgnCSTN ]VCST?l\CSgd ql0nCSg l qrl0nCSg rl0nCS |URc(]Cha]CnI]Cha]CnI(]CnI()* V@C Dh?h? +8/ "C]p Cn]]h ha]?  +8/ "( 5<()*c{Uc {U] n}Uc{U ]n}V5=8%a()*c {Uc {U ] n}V5>8% `()*c {Uc {U ] n}V5?8%] h a(] ] h ha()*] h `(+ + + + +M + + + +u +j+K +? +4 , + + ,4+ ++ +L +?     "$&>9@T"?[V +?&c&)* ^c(c]h] C D iv l qph? +lllllllllllllllllllll6A? +    "$&(*,.22574;>9BTG Fn(G Fn()* Gn D^(G Go ] h GDa(d M(dhhhhh]6C8 " +> ()*h 87$+%chllllll]l] "> ()*] "h }VTdMc G{VBEj p ] h DaJKFoLGnMGnMGnMEohD Da EoDhaFnLGoMGoMGoM(+i +G +< + + + + +    >9DTc(C%G oG oF^(G oG oE^(G F^(hG }VG G oE^(G F^()* G o D^()* ` W&*2:p!GFnMGFnM i2&?[c!cj2&c!ck2&YG C^!l@ZT  CyVcl@TTT[ C D 2&5EG !cl2&]V  ]E^y( D^y()* ,QG G GGGGG MMY ch "Z( GM M MMMM CyVD ( +I[c(  cGhD8! cM(Gj ph ^ h ^ h ^ h^ hhC8! I hhD8! J hhE8! K hhF8! LM(5F?6G?hhhhhhhhhhhldhld^ hld^ hld^ hld^ > +n +T +M?  + +%+++++ +     > 9HT)*V C" D 2&()* "U(VC D ^V( 2" !&()*V C" D 2&()*VC D "V 2" !& 2&(V D2! C&(V D2! CC@()*V!C C D 8/"V 2" D @@( 2&()*VC D U %2#8 " !8 &5I()* 8/&)* 8/"V( @(c @()* {V  2" @(,h &+ + + + , ,,,,*,4,?,c   >  9JT})*V  D2" C@((Fh3"6K8 " E!8 "6L8 " D8!8 "6M8 " C8!8 "6N8 &W  D2! C!8 "6O8 &h"6P8 &W  D2! C!8 "6Q8 &l"6R8 &)*.,.,W -Fn"C%Dl2"6S8 "Cl 2"8 "l~&D !C!8 "6T8 "l ~&Eh2"6U8 "D !8 "C!8 "6V8 "l~&Eh2"6W8 "D !8 "C!8 "6X8 "l~&C8%C8 %5YC6Zh2!8J #8 "6[8 &El2"6\8 "D8!8 "6]8 "C8!8 "6^8 "l~&El2"6_8 "D8!8 "6`8 "C8!8 "6a8 "l~&D6b18J #6c8 "Cl2"8 "6d8 "l~&E8J! F!8J&/+ 8/ " 8J%W .;PSVbglC8J%D2! C2!8J&C8J! D2!8J&D E C@@2%C E @2! D @2!8J&c(c(C28/ "8J%E2%E2%D1! C2!8J&)*VC E ^U F "Vd(D 2&()*.,W !1H_beou{ C^(C 2"UD 2&( C^XVD 2&(D 2"U C^XVE 2&( C^XVD 2"UE 2&(c(c(C 2!8/&E 2&E 2&C 2"UD &()*VhC C D E FD ^V 2# >@(  "V#!  2#  ?##  >@(  2#  #>@( ')*.,W +^C ^V(?( D2#C2#@(C D ^V @( "V! ?2#2# @( 2# @(C ED2# ^V A( "V! ?2#2# A( 2# A(C D E ^V A( "V%! ?2# ?2#  2#  2#A(  2#2#A(C?(C?(C2+8/ " ?( E2# D CA( E2# D CA ( C2#D# @ (h&)*V5e 8 "6f8 &()*8!6g8 " 8!8 "6h8 &WC(D8!6i8 " C8 &WC%C%5j%CIC @(c? + + + ,r+ + +q ,t+` ,fv, ,   >9kT)*W /`5l(5m(C%Dh2"6n8 " Cl 2"8 "l ~&C VDU5o Ch2"8 "6p8 &5q(6rl2!8J #l ~&C VDU5s Ch2"8 "6t8 &5u(6vl2!8J #l ~&%%W  /c(c(C8J%D2! C2!8J&C2+8/ "8J%C2+8/ "8J%C D!8J&VCD! D2! 8J&(C Dh yV%!6w8 " 6x8J #8 "6y8 &h&WC(D8!6z8 " C8 &)*V5{ 8 "6|8 &(c!?(W5}%C%5~%CIC @(c? + + + + + + ,Y+| +N ,,%,+   >  95?6?6?6?6?6?6?6?6?6?   >  9TW  C W aC WM5 C^V@D W #*.26TTTTTTCX?(TTTTTTC W 159=AEIMQC WC6 ^V{D W #eimqTKTGTCT?T;T7D W #-159T#TTTTTCVC?(TTTTTTTT5 ^VzD W `dhlpTTTTTD W (,048TTTTTC Cq?(TTTT}TyTuTqTmTiTe5 ^VzD W `dhlpTJTFTBT>T:D W (,048T&T"TTTC Cy?(T TTTTTTTTT5 ^VzD W `dhlpTTTTTD W (,048TTTTTC C~?(TTTT}TyTuTqTmTiTe5 ^VzD W `dhlpTJTFTBT>T:D W (,048T&T"TTTC C}?(T TTTTTTTTT5 ^VzD W `dhlpTTTTTD W (,048TTTTTC C|?(TTTT}TyTuTqTmTiTe5 ^VzD W `dhlpTJTFTBT>T:D W (,048T&T"TTTC C{?(T TTTTTTTTT5 ^VzD W `dhlpTTTTTD W (,048TTTTTC Co?(TTTT}TyTuTqTmTiTe5 ^VzD W `dhlpTJTFTBT>T:D W (,048T&T"TTTC Cr?(T TTTTTTTTT5 ^VzD W `dhlpTTTTTD W (,048TTTTTC Cp?(TTTT}TyTuTqTmTiTe5 ^VzD W `dhlpTJTFTBT>T:D W (,048T&T"TTTC Cz?(T TTTTTTTTT5 ^V{D W #eimqTTTTTTD W #-159TTTTTTCUC?(TT|TxTtTpTlThTd5 ^VzD W `dhlpTITETAT=T9D W (,048T%T!TTTC Cn?(TTTTTTTTTTTTC W fjnrvz~C WR5 C^VED W #/37;TTTTTTCVD(D(TTT}TyTuTqTmTiTeTaT]TYTUTQTMTITETAT=T9T5T1T-T)T%T!TTTTT T TT?[)*Y!Z( ^V  8 A[[)* + W  C W C WC6 ^V[5 ^V[5 ^V[5 ^V[5 ^V[5 ^V[5 ^V[5 ^V[5 ^V[5 ^V[5 ^V[5 ^V$D W  CX?(5 " 6@( 5 ^V[5 ^V[T&T"C W UC WAC6 ^VND W 888888 8888CD W  VC?( 5  " ?6@@( 5 "D 6@@( 5 ^VMD W 77777 77777CD W  C q?( 5  " ?6@@( 5 "D 6@@( 5 ^VMD W 77777 77777CD W  C y?( 5  " ?6@@( 5 "D 6@@( 5 ^VMD W 77777 77777CD W  C ~?( 5  " ?6@@( 5 "D 6@@( 5 ^VMD W 77777 77777CD W  C }?( 5  " ?6@@( 5 "D 6@@( 5 ^VMD W 77777 77777CD W  C |?( 5  " ?6@@( 5 "D 6@@( 5 ^VMD W 77777 77777CD W  C {?( 5  " ?6@@( 5 "D 6@@( 5 ^VMD W 77777 77777CD W  C o?( 5  " ?6@@( 5 "D 6@@( 5 ^VMD W 77777 77777CD W  C r?( 5  " ?6@@( 5 "D 6@@( 5 ^VMD W 77777 77777CD W  C p?( 5  " ?6@@( 5 "D 6@@( 5 ^VMD W 77777 77777CD W  C z?( 5  " ?6@@( 5 "D 6@@( 5 ^VND W 888888 8888CD W  UC?( 5  " ?6@@( 5 "D 6@@( 5 ^VMD W 77777 77777CD W  C n?( 5  " ?6@@( 5 "D 6@@( TTC W RVZ^bfjnrvC W>5 C^V1D W  CVD( D( 5 "DD 6@@@( TuTqTmTiTeTaT]TYTUTQTMTITETAT=T9T5T1T-T)T%T!TTTTT T TT?[5?66 ,+h ??@h@@@6@@??@?@i@h@@6@@6@6@6@6@6@6@6@6@6@6@6@6@6@6@6   >9TV!C D Y !@Z( CyV 2! @([?[V9C C D E FD Y!  >@Z( CyV2!  >@([c(C CyVD Dy(.,.,Y 8!Z(8 CyV\W HR]?[C W  D C D8k'D Y 2!@Z( CyV 2! @([D2!C@(DCE8k'CDE Y2!  AZ( CyV 2! A( [?[?[C !?(CE Y$W  C8/"T56@[Z(6 CyV 5 D^VcT 5 CyV c2!DA([E2!DCA (CD Y1W ######### #+ 8/"E E F8k#T56@[Z(6 CyVcT 5 CyVcY 2!@ Z( CyV !@ ([[[Y !2!Z( CyV([5? ,h , A9TC CyVD Dy(Y ?28#Z(8 CyV6W GKVgkos?[C W  D C D8k'Y D2!@Z( CyV 68 A[[?[D C E8k'C D A E8k'?[?[?[C E W 3333333 333Y C8/"Z(6 CyV5  D^V 6 8 A[[Y2!  DAZ( CyV 6 8 A[[?[C W 999999999 9Y+D 8/"E E F8k#Z(6 CyV 6 8 A[[Y2!D @ Z( CyV 6 8 A[[[Y !2!Z( CyV([W d(d(d(d(d(d(c(5? ,s ,, >9T)* i8H$58%c 8H" (d 8H"h 8H" @(d 8H"h 8H" D CA(d 8H"h 8H" D CA (d 8H"h 8H" ?@(c 8H"h ?@(e 8H"h 8H" @(e 8H"h 8H"h @ @(g 8H"l 8H"j 8H"h8H" ?DC>@(f 8H"j 8H"h 8H"h ?DC>@(d 8H" (c 8H" ??(e 8H"h 8H" 8k&c 8H" ?(c 8H" ?(g 8H"j 8H"h 8H" ?A(g 8H"l 8H"j 8H"h8H" 8k"?A(g 8H"j 8H"h 8H" ?A(g 8H"l 8H"j 8H"h8H" 8k"?A(d 8H" ?(5(e 8H"h 8H" !V @ (8@[c 8H"8H@[CD D^(V +8/&d(+hhlllllll l l l l lll>hlllll>6666666l366 + +o +g +X +, + + + + + + +z +m +G + + + + + + + +x +k +`>8H    > +0 ?9T1c 3&)* _ W:EHKORVZ^beiT1%1%8D! Y 8/"Z(6 CyV?([8D!]J?(c(d(g(e(g(g(g (g(f(g (Y 8D!!?Z( CyV8D! 8D!8D!8>[[Y 8D!!?Z( CyV8D! 8D!8D!8>[[8D! 8D! 8D!8>[ C! 2&g/ 8@" ] j8@# o 8@# ]J ]Ji ~V |V d }V @(?[56? +6 ,  >9T<8D! %8D! %Y 88"Z(8H CyV8D! 8D! 8A[[+ + + A9 T)*W %/c(c(C ^Vd(C 2"UD 2&(C 2!8/&C 2!8/&)*W  -((C &D 2" C 2"@(C 2!8/ "?(C 2!8/ "?()*VC D 2" D " C@@()*VVD D2" C " C "" &VT(5!8@[)*.,W44444C WcC? @@( "V  8A[c @@(WC "V  8A[c @@(W@{Wc(Wc(WC C2" D "D " 2" & C W 2ThTdT`T\C 8/! 8/!zV 8A[ &T<C W T-T)T%T!TC 8/! 8/!zV 8A[ & 8A["" @()*8J ! 8J !8J" + 8/ &D8 %?(8%)*C 8J" +8/ " 8J" 8J" +8/ " 8/$"D " @( )*+ 8 ! 8J " +8/ " 8J! " D" C@()*Y 8/"Z(6 CyV?([,M+ ,+ ,+2 ,   >9"T`W"IXo8Qj5# C!8 "6$8 &E2!6%8 " D!8 "6&8 " C!8 "6'8 &5( C8 "6)8 &D2!6*8 " C8 "6+8 &D2!6,8 " C!8 "6-8 &D2!6.8 " C!8 "6/8 &D2!608 " C!8 "618 &D2!628 " C!8 "638 &E2!648 " D!8 "658 " C!8 "668 &D2!678 " C8 "688 &E2!698 " D!8 "6:8 " C!8 "6;8 &D2!6<8 " C!8 "6=8 &D2!6>8 " C!8 "6?8 &D2!6@8 " C!8 "6A8 &D2!6B8 " C!8 "6C8 &D2!6D8 " C!8 "6E8 &D2!6F8 " C!8 "6G8 &5H !8 &5I !8 &cIcI(+h !C! D6J8J #C6K+8J #C6L+8J #6M6N8 "6O8 " 8 "6P8 "8 "6Q8 "6R8 "6S8 "6T8 "6U8 " 8 "6V8 "6W8 "6X8 " 8 "6Y8 "6Z8 &CC 8J"I5[ D!8 "6\8 " !8 "6]8 &WC%C8%C%WC%5^ D8!8 "6_8 " C!8 "6`8 &(5a ^VcT15b ^VcT'5c ^VcT5d ^VcT5e ^VcT 5f ^Vc(C 8J"I(CIC8!6g8 &CIC8!6h8 &c?h?h? +h? + +v +o +@ +$ ,s +  +M   >  9iT)*V+V/C C A! 8""D 8"!8/ " D 2# 8"& VT(5j8@[)*VGC F C8/"h@E@@A! 8"" 8"!8/ " 8""   D2  8"& (c8%8J! +8/ &C D E2,U.,+W 6cv}C Y 8/" !  8""Z(6 CyV8@[[c8! @CA2! 8"" 8""  D A2! 8"&Ch8!h8! @8"" 8"" 8"" 8""  dh@   Dh@ @@A2! 8"&Ch8! D A2! 8"" 8"" 8"" 8 ! 8 ! 8J"  c @ E@ @@A2! 8"&Ch8! D h@@@A2! 8"" 8"" 8"" 8 ! 8 ! 8J"  c @ E@ @@A2! 8"&c8"& d8"& C 8/! ! ?8"" 8"!8/ " 8""   # 8"&D !C 8/"8"" 8"!8/ " 8"" ? E A2! 8"&D ! ?8"" 8"!8/ " 8""C8/" E A2! 8"&D VCDTc ! ?C A2! 8"" 8"!8/ " 8""     8"&cIc8! ? 8A! I 8"&8!? @(C +8/ " D 8"&VRC E DD F|VA {Uc{V7DC8""6k 8 !8 "6l8 "C8k!8 "l 8@"8 " 2!8 &2%5m(Y d]J@ZT<6 CyV15n ^V5oT(5p ^V5qT5r ^V5sT5t ^V5uT5vT[ C ,ZC %)*8/!C >@I(c?h? + + + ,p+   >9wT.)*VD  2# @?C@@()*V;C D Uc @(c8i! 2# C ?@ ?A h@@ D 8" @( 5x8@[)*V D2  C@A(()* " D C@@( &?(c8i%)* +8/ " +8/ " 8/! 8k 8/ "8J! +8/ " 8/!  h  8"  n? ?A 6y# 4+ 8/#8/! @( )* h@1$)* !4$ &)*W &r!L C"6zh @?? ?Ah @(C D W  2" C C"@ D @( 2" C6{@  6| 4  D D8" C@(c8i!? ? C@@ D2" C @6}@ D @(c8i! ?? C@@ E2"  C  D4  D D8" C@(c8i! ?? C@@ E2"  C D4  D D8" C@(5~6 ? ? ?? @ ?@C? Ah @(CVdTc66 ? ? ?? @ ?@? Ah @(C 8/!h yV5(8!h8i! ?2+ 8/ " 8/#! D8/! Ci?# D8" C@6 8 "@@(  E2" C C?@ D @(C 6@??6@  6E4  D 8k" C6@ @ D @( C2" C6@  6D1  D D8" C@(7 &)*V(C D C ^VD^V2# F E@@(2'( '()* # V"C DV58k"8 "68 "C!((5 8k"8 "68 "C!5(,+ VCD 8J! +8/ " +8/ &()*Y 8/"Z(6 CyV8@[[68 "8%+ ? + ,,,"+ ,U+   >  9T)68 "8 "68 "8%)*W $c(d(W5 C"?(d(d(d(d()*Yg.8@" h8@#8 "Z(6 CyV 8 &[)*W 58%8%C8#! 8(" 80%)*8w! 8w!8!8!68 "8%8k ! Y8!2!68 "8 "Z(8 CyV(7 CyVD68 "68 " 8 &[)*W3;8 ! 8i %Y8! 8k !Z(8 CyV D68 &[,~ %8k %W)58!d%78 %C82! 8 ! 8?!(C8 ! ( yV(Y^6 ^VcT 5 ^Vcc!T5 ^VcT 5 ^Vcc!T5 ^VcT 5 ^V ccK2!T5 ^VcT 5 ^V cdK2!Tk5 ^VcT 5 ^V ccJ2!TN5 ^VcT 5 ^V cdJ2!T15 ^VcT 5 ^V ceJ2!T5 ^VcT 5 ^V cfJ2!T5 ^VcT 5 ^Vc^M2!T5 ^VcT 5 ^V cdL2!T5 ^V^?I2!T5 ^VcT 5 ^Vc^?M2!Tv5 ^V^?I2!T\5 ^VcT 5 ^V cdI2!T?5 ^V dM2!T,c ]}Vg-h ^yV68 "8!d!T ?I2!Z(6 CyV5 D^V 58!d%[5hhihh> O ,d %568 "8!8A%76 !5 !5 !5 !5 !5 !5 !5 !5 !5 !5 !5 !5 !5 !5 !5 !5 !5 !5 !5 !8A%58!8A%W 5(5(C(5(+ + +z +d +D + + +S +' + +8B!h GyV D C " MC ! + 8IY>C !iEyVG  "dFyVcDyV8!T  D"  G"ZT6 CyVD8!d8A!T7 CyV35 E8!8 "68 " D8!8 "68 " 8 "8!d8A!T7 CyV?5 D8 "68 " F8!8 "68 " E8!8 "68 " 8 "8!d8A!Tx7 CyV D8k! 68 "8 "8!d8A!TQ7 CyV>E8!68 " D8!8 "68 " 8 "8!58!G8w!8!d8A!T 7 CyV:5 D8 "68 " F8!8 "68 " E8!8 "68 " 8 "8!T7 CyV568 " D8 "68 "8!T7 CyV:5 D8 "68 " F8!8 "68 " E8!8 "68 " 8 "8!Th7 CyV:5 D8 "68 " F8!8 "68 " E8!8 "68 " 8 "8!T'7 CyVD68k8J #68 " 8 "8!T[   >  9c8D!:9alloc_dummyupdate_dummyarray_get_addrarray_get_floatarray_getarray_set_addrarray_set_floatarray_setarray_unsafe_get_floatarray_unsafe_getarray_unsafe_set_addrarray_unsafe_set_floatarray_unsafe_setmake_vectmake_arraycompareequalnotequallessthanlessequalgreaterthangreaterequaloutput_valueoutput_value_to_stringoutput_value_to_bufferformat_floatfloat_of_stringint_of_floatfloat_of_intneg_floatabs_floatadd_floatsub_floatmul_floatdiv_floatexp_floatfloor_floatfmod_floatfrexp_floatldexp_floatlog_floatlog10_floatmodf_floatsqrt_floatpower_floatsin_floatsinh_floatcos_floatcosh_floattan_floattanh_floatasin_floatacos_floatatan_floatatan2_floatceil_floateq_floatneq_floatle_floatlt_floatge_floatgt_floatgc_statgc_countersgc_getgc_setgc_minorgc_majorgc_full_majorgc_compactionhash_univ_paraminput_valueinput_value_from_stringmarshal_data_sizeint_of_stringformat_intint32_negint32_addint32_subint32_mulint32_divint32_modint32_andint32_orint32_xorint32_shift_leftint32_shift_rightint32_shift_right_unsignedint32_of_intint32_to_intint32_of_floatint32_to_floatint32_formatint32_of_stringint64_negint64_addint64_subint64_mulint64_divint64_modint64_andint64_orint64_xorint64_shift_leftint64_shift_rightint64_shift_right_unsignedint64_of_intint64_to_intint64_of_floatint64_to_floatint64_of_int32int64_to_int32int64_of_nativeintint64_to_nativeintint64_formatint64_of_stringnativeint_negnativeint_addnativeint_subnativeint_mulnativeint_divnativeint_modnativeint_andnativeint_ornativeint_xornativeint_shift_leftnativeint_shift_rightnativeint_shift_right_unsignednativeint_of_intnativeint_to_intnativeint_of_floatnativeint_to_floatnativeint_of_int32nativeint_to_int32nativeint_formatnativeint_of_stringcaml_open_descriptorchannel_descriptorcaml_close_channelcaml_channel_sizecaml_set_binary_modecaml_flush_partialcaml_flushcaml_output_charcaml_output_intcaml_output_partialcaml_outputcaml_seek_outcaml_pos_outcaml_input_charcaml_input_intcaml_inputcaml_seek_incaml_pos_incaml_input_scan_linelex_enginemd5_stringmd5_changet_global_datareify_bytecoderealloc_globalavailable_primitivesget_current_environmentinvoke_traced_functionstatic_allocstatic_freestatic_resizeobj_is_blockobj_tagobj_blockobj_dupobj_truncateparse_engineinstall_signal_handlerml_string_lengthcreate_stringstring_getstring_setstring_equalstring_notequalblit_stringfill_stringis_printablebitvect_testsys_exitsys_opensys_closesys_file_existssys_removesys_renamesys_chdirsys_getcwdsys_getenvsys_get_argvsys_system_commandsys_timesys_random_seedsys_get_configterminfo_setupterminfo_backupterminfo_standoutterminfo_resumeregister_named_valueweak_createweak_setweak_getweak_checkfinal_register/{ -Out_of_memory)Sys_error'Failure0Invalid_argument+End_of_file0Division_by_zero)Not_found-Match_failure.Stack_overflow.Sys_blocked_io,really_input%input@F@@G@&outputACDF@ACDG@%%.12g"%d%false$true.bool_of_string$true%false+char_of_int/Pervasives.Exit9Pervasives.Assert_failure@(array.ml*Array.blit*Array.fill)Array.sub,Array.Bottom@(List.nth#nth)List.map2*List.iter2/List.fold_left20List.fold_right2-List.for_all2,List.exists2@@,List.combine-List.rev_map2"tl"hd@"\t"\n"\'"\\(Char.chr@5String.rcontains_from4String.contains_from2String.rindex_from1String.index_from   +String.blit+String.fill*String.sub@)Sys.Break@ @,syntax error.Parsing.YYexit3Parsing.Parse_error@ @$ -> ! !/"in! !.! # = ! !\$ in $let $ in (let rec !)", !(! !/"pi! !/"in# | $ of %case !)!(!/"in!! @#int$bool$ -> !)#(+ !0!+!)#(* !1!*!.! 'forall !!!)!( @0Exn.Syntax_error5Exn.Illegal_character1Exn.Illegal_range6Exn.Illegal_projection5Exn.Illegal_injection4Exn.Illegal_casedist4Exn.Unbound_variable6Exn.Compiler_exception/Exn.Can't_unify0Exn.Runtimeerror@#not#and÷%equal#geq'greater#leq$less%minus#mod$mult#neq"or$plus"if#and÷%equal#geq'greater#leq$less%minus#mod$mult#neq#not8illegal argument for not#not"or$plus#and8illegal argument for and#and8illegal argument for and#and÷illegal argument for divide÷illegal argument for divide÷%equal:illegal argument for equal%equal:illegal argument for equal%equal#geq8illegal argument for geq#geq8illegal argument for geq#geq'greaterTk^h{$.  > > ^   ^ @@4Unifier.unify_tlists@") 2 JUMP (") ", 2 LOAD (#") 3 EXIT ("#") 3 EXITOES ("") 2 EXITOESINT (") 2 EXITOESBOOL (") 2 POP (") 2 PUSH (") ", 2 ALLOC (") 2 COMMENT (") ", 2 CMP (") 2 BE (") 2 BG (") 2 BL (") 2 BNE (") 2 BGE (") 2 BLE (!,!, ! ! (ENDCODE 7#include "stdcode.pc" ! ! +BEGINCODE )ENDDATA %BEGINDATA #include "stddata.pc" +ENDLABELS > #include "stdlabels.pc" ,LABELS .ENDREGISTERS ! /REGISTERS 8#include "pseudolib.h" ! ") &LABEL(!)!,$MEM(!A!C!R"SP"SS!V%label#reg@6Typing.typeinfer_tuple! # : #allA#let@$none@@#topA@@@@/Compiler.switch!C!C!A!A"fn!V!R!V!R"()@&-tuple!C!A!A!C!A!A4 in case distinction.multiple case 4 in case distinction-missing case -match#failure)Warning: @": )Warning: ".c9ppl: no output file given6Most general type is: ! /Runtime error: ! /Runtime error: 6ppl: no filename given&--help"-h)--version"-v)--untyped"-u'--typed"-t)--compile"-c(--reduce"-r&--step"-s'--parse"-p*--typeinfo"-i*--optimize"-z&--term(--output"-o'--input!-'--stdin(--stdout5ppl: unknown option: )Array.get9ppl: invalid command line$none4Peter Selinger 2000. +PPL Version 0.1 copyright Ari Lamstein and 0Usage: ppl [options] [outputmethod] inputmethod -Inputmethods: 1 filename | --input filename: read from file 9 --term term: read from command line < - | --stdin: read from standard input .Outputmethods: 0 -o filename | --output filename: write to file 3 --stdout: write to stdout (Options: 8 -h | --help: print this message and exit ? -v | --version: print version information and exit 0 -u | --untyped: omit type inference . -t | --typed: do type inference 8 -c | --compile: output pseudo assembly code ; -r | --reduce: reduce term to cbn normal form 9 -s | --step: print cbn reduction sequence 5 -p | --parse: parse and typecheck only @ -z | --optimize: optimize program before compilation C -i mode | --typeinfo mode: mode for reporting intermediate types: F mode = none, all, top, let, or an integer HUsage: ppl [options] [outputmethod] inputmethod. Try --help for details.)(unknown)'(stdin)'(input).: syntax error!-#:c.!'5: illegal character '!-#:c.6: undeclared variable % and ;: type error; cannot unify = typeinference until failure:!'8: integer out of range '!-#:c.2selinger@umich.edu= Please send a bug report to .ppl: fatal error: internal bug encountered at !'6: illegal projection '!-#:c.!'5: illegal injection '!-#:c.# | <: illegal case distinction: @@7g@@%ArrayAa@@#CbnA@AB@$CharAu@@(CompilerA@A@#ExnA@@(FrontendA @AB@&LambdaAk@@%LexerA@ACD@&LexingAD@@'LibraryAJ@A@$ListAo@@#OptA@A@&ParserA@@'ParsingAH@ABCE@*PervasivesA[@@#PplA@A@&PseudoAi@@(Std_exitA@AB@&StdlibA@@&StringA@@AC@#SysAB@@%TypesA@A@&TypingAw@@'UnifierA"@ABO-Match_failureAG@P-Out_of_memoryA@@Q0Invalid_argumentAC@ABCDR'FailureAB@S)Not_foundAF@AT)Sys_errorAA@BU+End_of_fileAD@V0Division_by_zeroAE@AW.Stack_overflowAH@X.Sys_blocked_ioAI@ABCEFCODEJPRIM DATA/3SYMBKCaml1999X006