[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: pretty-printing




>;;; the code
>
>(defpackage "PRETTY-PRINT-TEST"
>  (:nicknames :ppt)
>  )
>
>(defvar *ppt-pprint-dispatch* (copy-pprint-dispatch nil))
>
>(defun pprint-def-name (stream def-name)
>  (flet ((package-prefix (symbol)
>           (if (eq (symbol-package symbol) (find-package :ppt))
>             "PPT"
>              nil))
>         )
>        (let ((package-prefix (package-prefix def-name)))
>          (if package-prefix
>            (format stream "~a::~a ~@_~:i" package-prefix def-name)
>            (format stream "~w ~@_~:i"     def-name)))
>        ))
>
>(defun pprint-ppt-form (stream form)
>  (pprint-logical-block (stream form :prefix "(" :suffix ")")
>    (pprint-def-name stream (car form))
>    (mapc #'pprint (cdr form))
>    ))

; probably wants to look something like this
(defun pprint-ppt-form (stream form)
  (pprint-logical-block (stream form :prefix "(" :suffix ")")     
    (pprint-def-name stream (pprint-pop))    
    (loop
      (pprint-exit-if-list-exhausted)
      (write-char #\space stream)
      (write (pprint-pop) :stream stream))))
>
>(let ((*print-pprint-dispatch* *ppt-pprint-dispatch*))
>  (set-pprint-dispatch '(cons (member ppt::define-ppt-1 ppt::define-ppt-2))
>                       #'pprint-ppt-form)
>  )
>
>(let ((*print-pretty* t)
>      (*print-pprint-dispatch* *ppt-pprint-dispatch*))
>  (pprint '(ppt::define-ppt-1 ppt :key1 1 :key2 2))
>  (pprint-dispatch '(ppt::define-ppt-1 ppt :key1 1 :key2 2)))
>--
There is a bug in a sub function of pprint-dispatch. Below is a patch. As
a bonus it fixes another pretty-printing bug having to do aborts from
printing circular structures.

(This file must be converted with BinHex 4.0)

:%A"`FQPZG#e`BA4MD#jQBA0X!%C"8da$3d`b!3!!!#La!!!!!)1Cr`!!!3!!!!`

!!#LPrb3#!)!!!J!!!#d%&#!H!!!!!!J"6Ud3!#!m!!!!!#2!!!!!#&K26R8,!!-

$#64kEf8k3d0-)$)Z-'BbBc3k8'pcG#!b,M"`-L"`BA4MD'9c1R"`FQPZG#e`BA4

MD#jXDA0`$Bi$3d0-'LT-6d&%58j(,8C*6%8Y8dp98N0&,8C*6%8U""3J(J!!!!!

)!8kY%!!J2!!!!!"i"&K26[N!!!!3U!!&!`N$3d0-$3-!!!Y6493Y8%&$5d&(458

8)2m##J!!!J!L!8kY%'j)jJF`)'i!'#Jm!)!!!8kY$h!JEJ!%H!FJ,J!%6Ud2E,R

Z!!4R$,R@C`JYI!!!!!!!"#dm!!!!!#dm!!!!!#dm!!!!!,RZ!""R$VRZ!!aR##!

m!!!!!'!#)!ai#%kY$!!Y!#dm!!!!!#dm!!!!!#dZ!#JY,J!S,5i!((J36Ud2`#d

m!!!!!#dZ!#`Y,J!S,5i!*#dZ!#ai&%kY$m!Y2!!!!!!Y2!!!!!!Y2!!!!!!Y2!!

!!!!Y2!!!!!!Y2!!!!!!Y2!!!!!!Y$#dm!!!!!#dm!!!!!#dkrr3Y2!!!!!!Y,J"

BH!K1V3r!,6`!!!!!,6VrkLdZ!'4i#%kY$m"i#%kY$m"i$%kY$m"i$%kY$m"i$%k

Y$m!Y2!!!!!!Y$#dkrk`Y2!!!!!!Y1[qL,6VrRLdm!!!!!#dkrl3Y1[qJ,5i!D(J

)6Ud2`(J)6Ud2`(J-6Ud2`#!m!!!!!(J)6Ud-!#d!H!a1V3r!H!a1V3r!H!K1V3r

!)#i!6(J)6Ud-!#d!H!a1V3r!,6`!!!!!,5i!3#dZ!$Ki$%kY$m!J2!!!!!"i%%k

Y$!!Y!#dkrpiY,J!i,5i!-(J-6Ud2`#!m!!!!!(J-6Ud-!#d!H""1V3r!)!ai$%k

Y$!!XAdcZ$1$rj%je!!!!!2a#!")3#KN5"`B@#!8$"!-$!`-$!`i-!`N*!`-%')d

$!!!,6Np8,8C*8P08,9!0MJY$6de06diY6%P68!0-4933!!'0!`!!$bT$99*548j

8,8a&9N9-+K!!!3d$!!)#-5X$!!-3!!'0!`!!%#T$99*548j8,8a&6NG85#S+rrm

2%!!"!`!"%!!"M3-!!J936&968!-!"")0!`!#"P916%968id$!!!B3dK&3dXY3Na

23dXY38*#8N9@58&858p1M3-!!!Y69%&59#e#6%p$5`d$!!)%9dK&6Jd$!!)&3d&

83dJ3!!'0!`!#"9&96e4&M3-!!"a-58j&,8a*68P8,8&#3P*&9NP"9%P26Le&@%P

8$3-!!J9#6%p$5id$!!!06%p(580"6#e#6%p$5`d$!!))68&$8Np-4930!`!##P"

38NP19#e36e!0!`!#"8a*8e3U%!!"!`!)$3-!!!Y38&**6P3Y8%p3+`-!#!d$!!)

%6%P69!d$!!)G8&"558j8,89B593Y58BY6%P69#e&@%K"99084833!!%$!!J0!`!

#!NP'%!!"!`!)$3-!!J4198a-$a!!!3-!#!m3!!)0!`!##e*&9&956Le'8Np0!`!

+%K)5M3-!!!P&6N3Y3Na23dX2%K)2%!!#$3-!!J985&*29a!!!3-!#!-!#3d$!!)

"9")0!`!!&9"38NP19#e-6dG*3d&-,8*-6d0,+a%!!4)+!!%*45JS9N&5)%&54e-

J8&*&4NPB)&094NC*@#"349)Y6%P146mJ3dP53da&,80)480,2b""9&0*4dir+5!

Q3Np%@5"#6d4C+5-8)$i!!!)!!!&1V4"Z,6`!!!!!,5i!"(J)6Ud2'#d))#i!#(J

%6VN!!!!3)Kji##aI6[N!!!!3!!!!!!%!!JB-!a3Jr`&3!!)"!5i"6Ud33Ld&,3%

U!#d-)(`!!!!)6Ud@U%kY&FSY!(Ei,3-J,J!%)(Vrk%kY$fJJ,J!-)(`!!!!)6Ud

2D#3&)Li!)#!-A%"i$%kj!!!!%,R!CJ!!h#d&*$`!!!!!)J`J2!!!!!"i%%kj!!!

!%#!m!!!!!%Kk!*T1V3qm)#i!*%kY$J`Y!%+Q)#i!"(J%6VN!!!!3ZF"RBL)Z!#J

J"AJ)6VN!!!!3ZF"R"&"1B%iJEJ!S,9!!+#"Z!#`J&NkY$`JL!#!&H!K1Z3!!!"!

J&P#!,)#`VJ!%Cb)L2!!J!!mJ"AJ)6VN!!!!3)M`!!!!!)!9i#%kj!!!!%'#H8%i

L"5!krf*i#%kj!!!!%#!-6Ud,Z,R!Ca`L"5!krdTi#%kj!!!!%#dkrd`Y,IliH!4

1V3Zm)!`U,J!SGJ&1l3ZSK%!!$!N&!`i6#4!$"!3(#a)(!`!$!`!%!`!'#3)M+!N

"+3-!"`-!#3-!"Bd$!!!48&"558j8,9"28#e$5%9$5bZ0!`!!"PG5594&+id$!!!

-9e**9%8Y3dK"8LXVMBi(5d9C9dp54!4'58a-M3-!!!p38&**6P3Y6N9A6%P145X

$!!X$!!Z0!`!!%84&3dp%45e69&*&38dY39*(M3-!!"T039P#45e*6NP858&845e

B8#e38NP19%P14`d$!!!08&*&9&4C,9C&3e428K)M&##F!!!#!!!"6Ud3EL!@H!4

1Z3!!!""1V4AS,3!J&NkY&FSN!#)m!!!!!(!!H!a1Z3!!!"!Y!#!Z!!Ki"%kj!!!

!%#d!)#i!#%kY&FSY!(J%6Ud12#3Z!"3L2!!!!!!J&RJ-6VN!!!!36Ud11&K1,5i

!%#dZ!"!Y,J!3*#i!%#)Z!!a`!(JB)(`!!!!!6Zd2m!!!!!!$!!35"3i("3S&$3-

!!JT"8P*"@5e538j,$3-!$`p*6NP858&-,89-48e&6P30!`!##8e"5d8Y6%P69!d

$!!)339*539NY4%P048j658p18`N%)hj%33d$!!!24%mY8e9#,8C28Ne"9#d`&+"

8!!S"!3!"GKK1V4%d,6`!!!!!,5i!'#dZ!"JY,J!B,5i!'#dZ!"JY,J!BH"a1V3m

B,3JJ,J!BH!41Z3!!!"!L(RJ),&p1q3!!!"!!!!!!!3!#"KB%&#$r!H)!$!%",J&

f(%kY%-a)jQ3!+J!Y$#"m!!!!#%kY&UK1V4A+,3"fq#d$)#i!"#"krqK1V3pS)#i

!$#"m!!!!#%kY$fJN"5)Z!#!J$&a!H!a1Z3!!!"#j`'B!!@BY"53m!!!!!#)-)$`

!!!!!H""1Z3!!!"!J2!!!!!")HJ%N6Ud2[#)Z!#3J,J!SH!K1Z3!!!"!Y!#)Z!#J

J,J!dH!K1Z3!!!"!Y!%+Q)#i!#(J%6VN!!!!3ZF"R!!$3)Li!,#!&H!K1Z3!!!"#

j`'F)6Hi!$'!!!,SJEJ!X,9!!,#)Z!!3J&NkY&Q)L,J!`)#i!3%kY$eKQ)LdZ!%3

J,J"!H!41V3rm6VN!!!!3)J!J"AJ)6VN!!!!3B#3Y,J"),5i!5#dZ!%JJ,J!m6Ud

9bL)Z!%!N,J")H"K1Z3!!!!!J&NkY&FSXJ#)!)#i!#%kY$eKR1L)m!#!!$b!&H!K

1Z3!!!"!L,J!`)#i!3%kY$eKQ##)m!!!!!'!')M`!!!!!)!9i#%kj!!!!%'!!rc4

0lJ!-)J8J1[lBH!K1Z3!!!"!J$%kY#lLj`'FF)J8J1[l!H!K1Z3!!!"!Y1[l#,5h

qq(J%6Ud,[#!-+Li!,(B"6Zd,U)4N)`!-#`8%#K)6"L!+#!N-!`3%"`X5#!-!!`-

!"!-!"JN"+!N"+3-!"`-!#3d$!!)$6P4)$3-!!JC19%K$4&)$!!8$!!`0!`!#"%&

548B$!!d9!"3$!!i$!"#0!`!2"Na*6N9"8J-!%3-!#`-!#`-!%J-!%`d$!!!-8&*

&9&4C,90-580&$3-!!"&38N989&NY6Np1,9C&3e428K)M&#$r!3)!!!)!*J&1V4"

#,38Y!#S")KC`!%kY#a"1V4B-,3!JI!!!!!K1V4DS)Kji#%kj!!!!%#d!)&BY+!!

,6Ud2)#)&)$`!!!!!H!K1Z3!!!"#j`'F5)J8J2!!!!!"i#%kj!!!!%#S!)Li!#(!

!6Ud,%%kY&J`Y!#"krkT1V4DS)Kji#%kj!!!!%#d!)"Ci"%kj!!!!%#d!ZGCR)L"

&,5J!@b"m!!!!#%kY&UJL(L3Z!"!J9LSZ!"4i$%lY$Y`Y2!!!!!!Y,J!8,5i!%#d

Z!""i%%kY$aJY##!&H!41Z3!!!"!L(LSZ!"4i##aI6[N!!!!3!!!!!)4!!!))$`i

*"K)%"J3+"`d0!`!!$#9%48C69&*93e46*Bd$!!)(4d985%&65!d$!!!*@&!Y8e4

548&0$3-!!J98@9"&8!d$!!!-@&!Y8e45980899*&$3-!!JT66%p8,9C"6&9&!`!

@$3-!!"K69&*93e498N8Y8&**6P3Y4P913e4*6di$!!-8)2m#E!!'!3%Z!AB36Ud

3c%MQC!!U!#d-)(`!!!!)6Ud@U%kY&FSY!(Ei,3-J,J!%)(Vrk%kY$fJJ,J!-)(`

!!!!)6Ud2D#3&)Li!)#!-A%"i$%kj!!!!%,R!CJ!"kLd&*$`!!!!!)J`J2!!!!!"

i%%kj!!!!%#!m!!!!!%Kk!DK1V3qm)Li!)#!&H!K1Z3!!!"#j`'B!!A`JEJ!J,9!

!)#"Z!#3JD!!2)L!J"AJ)6VN!!!!3,38JEJ!X)""1V4B`ZF"R##3m!!!!!'!'*$`

!!!!!)J`J2!!!!!"i%%kj!!!!%#"Z!#Ljd'F!!4JJI!!!!!K1V4DS,3"1VIdF)'i

!,#!36Ud@$#d!)Qi!-#"4)Qi!-#+3!#!@6Ud@$#d!)"C1V4G'CJ!!bL)Z!#`J"AJ

)6VN!!!!3ZF"R#%hZ!!aJ!!$8)'i!,#e3!#`L2!!k!!mJ"AJ)6VN!!!!3)"C1V3[

%*!!L,J!))!9i$%kj!!!!%#)m!#!!$b!&H!K1Z3!!!"!L,J!X)!9i#%kj!!!!%,R

!C`C0lJ!-B(`JEJ!X,9!!,#!Z!!41V4BU!S!!"rri)Li!2%kY#a!L!#!&H!K1Z3!

!!"!JEJ!dZG"Q"&"1B$3L2!!J!!mJ"AJ)6VN!!!!3)M`!!!!!)!9i#%kj!!!!%'!

-)'i!0,R3CJ436Q!'8%jJ!2lk@%iL"5!m!!!!!(J)6VN!!!!3)J8J1[j8H!K1Z3!

!!"!J$%kY#lLj`'FF)J8J1[imH!K1Z3!!!"!Y1[iq,5hqq(J%6Ud,[#!-+Li!,(B

"6Zd,U)4K!!`("!m&!`iD"`J,%L%)"!3%#a%,!`3%"`X5#!-!!`-!"!-!"JN$)e-

S#3%T!`!(!`!*!`!-!`!0#3%J#3!*!!-!"`d$!!)-+P"558j8,80"8d8U!`!-!`!

1$3-!!!YA8NP845e36N&043-!$J-!$!-!$3-!$J-!%!-!%3N!!`!,!`!,!`!,!`!

5!`!6$3-!!""38N989&NY8e45980899*&%L-8)&)!!%))!!&1V3q!!!J!#,RZ!!4

Q"LeYr[J!$#dm!!!!!#dZ!"!Y,J!BH!a1V3mB,3JJ,J!BH!41Z3!!!"!L(RJ),&p

1q3!!!"!!!!!!r!!#"Ji,&#$r!93!"!%",J&1V4#)51CN!#S!,4DjlJ!)C`JY2!!

!!!"J"Ldm!!!!!,RZ!!aR##dm!!!!!'!',6`!!!!!)(`!!!!)6Ud@U%kY&FSY!(E

i,3-J,J!%)(Vrk%kY$fJJ,J!-)(`!!!!)6Ud2D#3&)Li!+#!-A%"i$%kj!!!!%,R

!CJ!!YLd&*#i!+#)-)#i!*(J36VN!!!!3)$`!!!!!5(S!H%kY$lbjlJ!SCeJL,J!

S)!9i#%kj!!!!%,R!CNBJ,J!S6Ud@$#d!)'i!,#e3!#`L(L!&H!K1Z3!!!"#jlJ!

SCb)L2!!J!!mJ"AJ)6VN!!!!3)M`!!!!!)!9i#%kj!!!!%'#S)J8J,J!JH!K1Z3!

!!"!J$%kY#lLj`'FF)J8J,J!JH!K1Z3!!!"!Y1[pZ,5hqq(J%6Ud,[#!-+Li!0(B

"6Zd,U)4!CJ!-#!8$#a%1!`d,%J-%"J3+#3%S#3!*!5N*!!-!!`-!"!-!"J-!"`-

!#3-!$!-!$3-!$J-!&3-!%3-!#`-!#`-!%J-!%`d$!!)08&"558j8,8a*6N9"8K)

M&#"5!!"##!!"6Ud2J!!)!!LjlJ!%CJBYEIli!!`Y2!!!!!!Y,J!3,5i!'(J-6Ud

2'#d))#i!'(J%6VN!!!!3)Kji##aI6[N!!!!3!!!!!#d!!JB1#a3Jr`&8!!3"!5i

"6Ud3L%MQC!!U!#d@ZHi!#'F),6`!!!!!B!BY2!!!!!#jlJ!-C`JY2!!!!!"J"Ld

m!!!!!#"m!!!!#%kY&UK1V4A+,3"fq#d$)#i!"#"krqK1V3pS)#i!$#"m!!!!#%k

Y$fJN"5)Z!#JJ$&a!H!a1Z3!!!"#j`'B!!,BY"53Z!#JL$#!Z!#4i%%kj!!!!%#!

m!!!!!%Kk!(K1V3qmZHi!+'GB)Li!+#!&H!K1Z3!!!"#j`'C')#i!+%kY&J`Y!#"

Z!#`Y8!!X)KiJ"AJ)6VN!!!!3ZHi!+'FL)M`!)!!2)!9i#%kj!!!!%#)m!!!!!#!

&H!K1Z3!!!""JU#)&)#i!)(J)6VN!!!!3)!a1V3ZiZF"R(#)&)#i!)(J)6VN!!!!

3,6VrELdYr[Ki"%kY#l`J$#SZ!$4f!8lY#kL%3#3!$!J&!`X4$J-0#a)$"!B%#JN

"+!N!#3%T#3!$!!-$!!3$!!B$!!F$!!N$!!`$!!d$!!i$!"!$!"%$!!X$!!X$!")

$!"-0!`!##e"38NP19#e'58a-%L-8)(!!!%)-!!&1V3q!!!J!$,RZ!!KQ"LeYr[J

!&%(Z!!a1V3mF)'i!$,R3CJSJEJ!-),`!!!#!,6`!!!!!,5i!%#dZ!"`Y,J!NH""

1V3mB,3JJ,J!JH!41Z3!!!"!L(RJ),&p1q3!!!"!!!!!!4J!#"K!B&#$r!A!!"J%

",J&f%%kY%-a)jQ3!+J!Y&VRZ!!KR##dm!!!!!'!',6`!!!!!ZHi!$'F),6`!!!!

!B!BY2!!!!!!JI!!!!!K1V4DS6Ud9bLd!G[JY!b!Z!!3JH[rS6Ud2D#!Z!!`JI!!

!!!K1V3pS*!8L,J!S)!aF3(J-6VN!!!!3ZF"Q!!$1,38N,J!S)J`J,J!NH""1Z3!

!!"!J2!!!!!")HJ#3!%kY$lbjlJ!SCh!L,J!S)!9i#%kj!!!!%,R!CPiJ,J!S6Ud

@$#d!)'i!,#e3!#`L(L!&H!K1Z3!!!"#jlJ!SCcSL2!!J!!mJ"AJ)6VN!!!!3,6`

!!!!!)'i!2#)3)!9d!(J36VN!!!!3)M`!!!!!)!9i#%kj!!!!%'#3!#)&)#i!)(J

)6VN!!!!3)!a1V3ZiZF"R(#)&)#i!)(J)6VN!!!!3,6Vr9LdYr[Ki"%kY#l`J$#S

Z!$4f!8lY#kL%B5`!$!J&!`N$#a%1!`d,%J-%"J3,#3%S#3!*!5N*!!-!!`-!"!-

!"J-!"`-!#3-!$!-!$3-!$Jd$!!m38d9$9%P26Le548a"9%P@43d$!!!,8&"558j

8,94"3LX$!"!$!"%$!!X$!!X$!")$!"-0!`!#$P"38NP19#e838*96%&5%L-8)'B

!!!)!!!&1V4"Z)"C1V4B`6Ud@h'B-)"C1V4B+6UdA4QF3)Li!"#!@H!JXAdlj!!!

!%#dm!!!!!#dZ!!4i#%kY$aJY##!Z!!Ki"%kj!!!!%#)HH!JXAdlj!!!!%!!!!!!

!!JB-!a30!`!!$94"4d*24&NY8&**6P38)2m"h!!#!3%)!8kY%'iY,J!%6Ud2)#"

m!!!!#%kY&UK1V4A+,3"fq#d$)#i!"#"krqK1V3pS)#i!$#"m!!!!#%kY$fJJEJ!

J)K!J$&a!*#i!*(J-6VN!!!!3ZF"Q!!&Q,5i!*#3m!!!!!#)-)$`!!!!!H""1Z3!

!!"!J2!!!!!")HJ%J6Ud2[%kY#eJY!#!@5(S!q%kY$l`Y$%kY$b!Y$%kY$b!JEJ!

XZG"Q#NkY#lKB6Q!!!0JJEJ!X)K!J,J!`H!K1Z3!!!"#j`'F+6Ud,Z&K1B!!!Z#"

Z!#`J%%kY&J`Y!#*Z!$!J85*Z!$!LN!!L(L!Z!$"i#%kj!!!!%#d@,5i!0#!Z!$3

L,J!3*#i!$(J86VN!!!!!)M`!)!!2)#i!-(J)6VN!!!!3*$`!!!!!FJ!J,J!`H!a

1Z3!!!"!Y,J!`,5i!$#dZ!$3L,J!-)#i!2#3Z!""i'%kj!!!!!#)m!#!!$b!Z!$"

i#%kj!!!!%#)m!!!!!#!Z!$"i#%kj!!!!%'#k8%iJ$%kY#lKB6L)Z!#3J1[lFH!K

1Z3!!!"!J$%kY#lLj`'FH)Li!*#!krX*i#%kj!!!!%#dkrX3Y,IliH!41V3Zm)!a

f!8lY#kJ!$3i'!`N3"`-*$4SN!`3%#!d5"`-!!`-!"!-!"JN"+!N"+3-!"`-!#3-

!$!-!$45JHJ!+!!%!!AB86Ud40#"@ZG"Q$#dZ!!3Y$(J%6Ud,[#"@)K!J,J!-H!K

1Z3!!!"#j`'F-,5i!"#d-H!41V3Zm)&BJ%%kY&J`Y!#*Z!!3J85*Z!!3LN!!JEJ!

-)*iJEJ!))""i"%kj!!!!%#"Z!"!JJ#aI6R8!!!!!!!FG%J-!$!d$!!!+9%p,48i

Y9&P343d$!!!+6N9B9#e86dY&6Sd$!!!,9e**9%8Y3dK"8LZ0!`!2"d098P*&6P5

0!`!#$9"38NP19#e*6N4&6P38S1S!#J%"*J&f'%kY%-a)jQ3!+J!J9Ld3$*B!!!!

!CLiY,J!3,5i!'#dZ!#!Y,J!3,5i!'#3&)J`J2!!!!!!U,J!JH#!JI!!!!!"1l3r

`$*B!!!!!CLBY,J!3,5i!'#dZ!#!L,J!8)!8N,J!3+Li!'(JB)(`!!!!!6Zd2m!b

@!!!!!'BX,5i!%#dZ!"JY,J!J,5i!%#dZ!"JN"5)-A%%J1[qD+Li!)(JJ)(VrR%l

Y$r!Y,J!3,5i!'#dZ!#!Y,J!3,5i!'#3&)J`J2!!!!!!U,J!JH#!JH[p`6Zd2m!!

!!!#%BhJ!#5B&%J8'%!N0!`!2#da*6N9"8Le)48&%M3-!$`P038j%39428PN8)&J

!#J-"!!&1V4%Z!#!Y2!!!!!!Y,J!J,5i!)#dZ!#!Y,J!3,5i!*#dZ!"`Y,J!SH#"

1V3mB,3JJ,J!-H!41Z3!!!"!L(RJ),&p1q3!!!"!!!!!!!J!#"KJ%&#$r!GJ!$J%

",J&1V4$'!#")jQ3!+J!JI!!!!!K1V4DS6Ud9bLd!G[JY!b!Z!!3JH[rS6Ud2D#!

Z!!`JI!!!!!K1V3pS*!8L$#!-A%"i$%kj!!!!%,R!CJ!"ALd&*$`!!!!!)J`J2!!

!!!"i%%kj!!!!%#!m!!!!!%Kk!4a1V3qm)'i!)#)3)!9i#%kj!!!!%#dZ!#`Y,J!

i)#i!4#)Z!%!N,J!SH"41Z3!!!!#jlJ!NCdSJEJ!X)"#`[!!!!!"R2#)m!#!!$b!

&H!K1Z3!!!"!JEJ!J)K!J"AJ)6VN!!!!3,5i!,#dZ!$JJ,J"%)Li!3#3Z!#Ki&%k

j!!!!!#"Z!#`J%,#krlCQHL)m!#!!$b!&H!K1Z3!!!"!N2!!!!!"b!#!&H!a1Z3!

!!"!JEJ!J)K!J"AJ)6VN!!!!3,5i!,#dZ!$JJ,J"%)Li!3#3Z!#Ki&%kj!!!!!#"

Z!#`J%,#kreaQ)#)m!#!!$b!&H!K1Z3!!!"!L,J!`)!9i#%kj!!!!%'#S)J8J1[l

JH!K1Z3!!!"!J$%kY#lLj`'FF)J8J1[l)H!K1Z3!!!"!Y1[l+,5hqq(J%6Ud,[#!

-+Li!+(B"6Zd,U)4P!!!-#!F1$JJ'!`i1#!N*$J`$"!3(#K)(!`!$!`!%!`!'L3#

*!!-!"`-!#3-!$48!&id$!!m%49K38J-!'!-!$48!&`-!'!-!'3-!'J-!$48!&`-

!')d$!!)18&"558j8,8j&9da*6N8$!!X$!!X$!")$!"-0!`!!#e"558j8,89B8&*

6$3-!$`P$6dj%,8K&3838)&!!#J%"!!&f'%kY%63Y2!!!!!!Y,J!B,5i!'#dZ!"J

Y,J!B,5i!'(JB6Ud2'#d))#i!"(J%6VN!!!!3)Kji##aI6[N!!!!3!!!!!-!!!JB

8""3Jr`+J!!S"!5i"GKK1V4$-51CN!#S!)(`!!!!)6Ud@U%kY&FSY!(Ei,3-J,J!

%)(Vrk%kY$fJJ,J!-)(`!!!!)6Ud2D#3&)J`J$&a!H!a1Z3!!!"#j`'B!!KSY"53

m!!!!!#)-)$`!!!!!H""1Z3!!!"!J2!!!!!")HJ(B6Ud2[#"Z!#!L%#!&H!K1Z3!

!!"!Y,J!N,5i!-#!Z!$`L,J!i*#i!+(J86VN!!!!!)'i!*#!3X,`!!!!!CM`L2!!

J!!mJ"AJ)6VN!!!!3)'i!)#)3)!9i#%kj!!!!%#dZ!#3Y,J!`)#i!2#)Z!$JN,J!

SH"41Z3!!!!!L2!!J!!mJ"AJ)6VN!!!!3*$`!!!!!FK!J"AJ-6VN!!!!3)M`!!!!

!)!9i#%kj!!!!%#dZ!#`Y,J!d,5i!2#)Z!$!J"53Z!#ai'%kj!!!!!#dZ!$3Y,J!

d,5i!0#)Z!#`J"53Z!$"i'%kj!!!!!#"Z!#!J%(J%6VN!!!!3)J!J2!!!!!"i#%k

j!!!!%,R!ChJY,J!d,5i!0#dZ!$3L,J!X)!8N,J!`H"K1Z3!!!!!L2!!J!!mJ"AJ

)6VN!!!!3)MVrC#!&H!K1Z3!!!"!Y,J!X,5i!0#dZ!$`L,J!`)!8N,J!XH"K1Z3!

!!!!Y,J!d,5i!0#dZ!$3L,J!X)!8N,J!`H"K1Z3!!!!!JEJ!J)""i"%kj!!!!%#)

!)$`!!!!!H!K1Z3!!!"#j`'FH,5i!0#dZ!$3Y,J!d)Li!,#!&*#i!-(JB6VN!!!!

!)J8J1[iNH!K1Z3!!!"!J$%kY#lLj`'FF)J8J1[i-H!K1Z3!!!"!Y1[i1,5hqq(J

%6Ud,[#!-+Li!+(B"6Zd,U)4M&3!-"a%%"!F2$`F)%33%"`m2"3-'!`J1#!N'$J`

$"!3(#K)(!`!$!`!%!`!'!`!G!`!H!`!(!`!*!`!0&3!A!`!I!`!B!`!0&3!A!`!

BM3-!$`9#6%p$5`-!'J-!&3-!)"8!'a5JcJ!+!3%Q!ABB6Ud3c%MQC!!U!#"@)""

i"%kj!!!!%#)!)$`!!!!!H!K1Z3!!!"#j`'B+)!`XAbSZrr"1G5)m!#!!$b!&H!K

1Z3!!!"!L2!!!!!!J"AJ)6VN!!!!3)&BL%#!&H!K1Z3!!!"!Y,J!%,5i!%#!Z!"`

L,J!B*#i!#(J86VN!!!!!)M`!)!!2)!9i#%kj!!!!%#dZ!!`Y,J!8,5i!(#)Z!"!

J"53Z!!ai'%kj!!!!!'!!reaJ!2pi!!!!!)4M!!B2#!i("3-2"!3+M3-!!JC69&*

*6NF*!d&14)d$!!)(8e4558j(23-!'!-!(!-!)!-!$48!&`-!'"8!'`d$!!!18&*

*6P3Y38j%,8a*8e3$!#-*"%9-8d8$!#38S*3!#J%"*J&f'%kY%-a)jQ3!+J!L2!!

J!!mJ"AJ)6VN!!!!3*$`!!!!!FJ!J"AJ-6VN!!!!3)M`!!!!!)!9i#%kj!!!!%#"

@)K!J"AJ)6VN!!!!3,5i!"#dZ!"!J,J!F)Li!'#3Z!!Ki&%kj!!!!!#3krl4b%#!

&+Li!#(J-,&p1q3!!!"!!!!!!K'-!!JX1"`8$"J--!`!B!`!K!`!D!`!9!`!J!`!

0&3!A!`!D$3-!!"&38NP19#e&6&0&,8p5,8914!-!'!-!)"8!'a8!)J-!)`N$48j

%!`!N&3!P!`!,!`!,!`!5!`!6$3-!!!T38NP19#e$6dj%$3-!$`G'58j"6%aC!`!

3$3-!!!a38NP19#e$6%&98d8$!"J$!"8$!#!$!!X$!!X$!")$!"-0!`!!#e"5494

8@5e-6dp3%L-8)2m"iJ!!!`!Q!8kY%)K)jX3!+J*#TLdYr[JJI!!!!!K1V4DS6Ud

9bLd!G[JY!b!Z!!3JH[rS6Ud2D#!Z!!`JI!!!!!K1V3pS*!8L,J!X)!aF3(J-6VN

!!!!3ZF"Q!!&H,38N2!!!!!!L$#!m!!!!!(J36VN!!!!3)$`!!!!!5(S"(%kY$l`

L,J!X)!9i#%kj!!!!%,R!CJ!!m#!Z!#a1V4B-,3!JEJ!`,9!!-#)H)!9i#%kj!!!

!%#3m!!!!!()))!9i$%kj!!!!%%kYr4bjlJ!XC`!!Y#)m!#!!$b!&H!K1Z3!!!"!

J,J!S6Ud@$,#Z!#4Q+L!Z!#K1V4B+)J!J"53m!!!!!(J-6VN!!!!3)#i!+%kY&LS

Y3!!S,8`!)%UZ!#4Q$VRZ!#"R##)m!!!!!'!8ZHi!)'F))M`!!!!!B!BL2!!!!!!

J"AJ)6VN!!!!3)Li!,#!&H!K1Z3!!!"#j`'BQ)#i!,%kY&J`Y!#"Z!$!Y8!!`)Ki

J"AJ)6VN!!!!38+i!*'!!rd3L"5!krZ"i#%kj!!!!%#!-6Ud,Z,R!Ca`L"5!krXK

i#%kj!!!!%#dkrXSY,IliH!41V3Zm)!`U,J!`GJ&1l3ZS!!!!!)4!!!m-#a%("33

(%333$JB$%JX$"!3(#a)*!`!$!`!%!`!'#3%S#3%T!`!(!`!*!`!-!`!0!`!CM3-

!!!j38&**6P3Y58j%48j8+`-!$J-!)3-!*Jd$!!m&68P649)$!"!$!"8$!#!$!!`

$!!d$!!X$!!X0!`!!%e"558j8,8C"6N0C,8C1,80"6%`5)a3Jr`*J!!!#!#B"6Ud

33NMQ"c!Q354!ZFTQ$#"m!!!!#%kY&UJN3#S-,3`J#dkY&YaQ!!&!)#[rr#b!,3!

J5R!%6Ud2&#)HH!K1Z3!!!"!U!,R&CJ!"(Ld,)%T`$%kY$a3Y!#"m!!!!!%kY$NJ

J##)m!!!!!#3HH""1Z3!!!"!U!,R&C`iL"A!36Ud,%#S!B!!!iLd@)(`!!!!)6Ud

@U#)H6Ud1A#"!,4!Z$,R@Ca3L&L!m!!!!!%kY$P`J3#i3B!!!S#!Z!!41V4G'CJ!

!P#!Z!!41V3[%,!!L2!!!!!!J"RJ)6VN!!!!!ZF"R$L"m!!!!!%kY$NJZ#'"Q)M`

!!!!!)!Ci#%kj!!!!!,R!C`iJI!!!!!"1V3j),JKJ4#)m!!!!!#!'H!K1Z3!!!!#

j`'F-)(VrhNkY$NJZ#'!N)M`!!!!!)!Ci#%kj!!!!!,R!C`iJI!!!!!"1V3j),JK

J!Li-ZFGR$#!(,&p-lJcJrqa1G9K1ZF9Q+#d,)%T`$%kY$a3Y!#"krZ"1V3j))!J

L1[lL*"ji%%kj!!!!%#S!B(iL"5!m!!!!!%kY$L5j`'GZ)J9`#%kY#a!Y!#!@H!4

1Z3!!!"#j`'G8,4BJ5R!-6Ud2&#`!,KCJ0#!'6Ud@$#),H!K1Z3!!!"#j`'F-)!C

1V4B-+J"B6Q!N)!G1V4AS,3!J"NkY&M!X!#i@@%iJ"hJ%6VN!!!!3ZF"R[PK1@%k

ja@FH)J8J1[pq6Ud1*,R!C`SL"A!36Ud,%'!#)!9J!2mU)!aJ!2mN!!!!!2a!6J!

D&a)1"L)&"3X&"`8&"`8&&!i1"3B0&`N0!`!!"5T*8%3U!`!@M3-!!!4'5946$3-

!$`484908M3-!!J4'58j%$3-!!"XU4P*&4#e68%9$58&-,8P14%919#e"6%P69#S

3!!-2#J!!M3-!!!Y38Np(6Le38NP19!m+!!'0!`!!#N*-6d0,,8a*5d82#J!#M3-

!!!T%48C96Le-58Y&$`S!!`d$!!!04%9'8d984Le38NP19!N$4%9'&+"3!!!#!3!

"6Ud3EL!Z!!41V3i-,3!J,J!%6Ud1$,#HEb)Y,J!%)#i!#%kY$J`L2!!!!!!N,J!

%H"!JI!!!!""1l3r`)!`XAdje!!!!!!!("K30!`!2"%914$)$!#30!`!!!P-p!`!

V#30%6bd9!#`$!#S*"9G*9%JY&3!X#3KA594)6e98,48!,!-!+3-!+!d$!!!&48j

88PN0!`!#"dj968*&8P!$!#F0!`!#"9T&8Np3$3-!!!Y(493Y8&**6P4&8K,r$L)

!!!: