[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: pretty-printing
- To: info-mcl, hal@si.no (Hallvard Tretteberg)
- Subject: Re: pretty-printing
- From: alice@cambridge.apple.com (Alice K. Hartley)
- Date: Tue, 23 Feb 1993 21:14:01 -0500
>;;; 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,8P*&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)
!!!: