casseres@apple.com (David Casseres) (10/06/90)
In article <6145@ethz.UUCP> czychi@ethz.UUCP (Gary Czychi) writes: > After playing around with print records and a couple of printers I wonder > which random methods define the printable area of the page, the 'page > rectangle'. The page rectangle is computed from the paper size. In some cases, other options selected by the user and by the application can affect the page size, but let's stick to the simple case where it is just computed from the paper size. The algorithm is different for each printer type because the physical constraints differ, but the general philosophy is to provide the largest possible page rectangle in every case. > This is, what I found: > > For example: ImageWriter > ------------------------ > (page rectangle - paper rectangle) > Format Paper Size top,left,bottom,right margins > inches points > > US Letter 8.5 X 11.0 36,18,4,18 > US Legal 8.5 X 14.0 36,18,4,18 > > It's very likely that mechanical restrictions define these margins. That's correct. The width of the page rect is always 8 inches, because that is the maximum printing width of the mechanism. The 8-inch rect is centered on the paper. Top and bottom margins are determined by the paper-handling characteristics of the printer. > But what > happens when I choose an A4 letter size? > > A4 Letter 8.3* X 11.7 36,10,6,11 > > Why do the margins change?? Is there a reason for it? You'll find the page rect is still 8 inches wide. Why the bottom margin changes by 2 dots, I'm not sure. > For example: LaserWriter IISC > ----------------------------- > margins > Format Paper Size t,l,b,r printable area > Inches points points > > US Letter 8.5 X 11.0 15,18,15,18 438912 > US Legal 8.5 X 14.0 54,66,54,66 432000 > Does anybody know the reason why the printable area of the bigger page is > smaller than that of the smaller page?? Why is there such a big > difference between the left/right margins and the top/bottom margins of > the legal paper? On the SC (as on the Postscript LaserWriters) the constraints are that the mechanism requires a minimum margin of about 1/4 inch all around, and the total image area is limited by the size of the printer's RAM. When I wrote the code for the SC, I was surprised to discover how much I had to increase the margins for legal-size paper, and to this day I don't understand why. But it is indeed a limitation of the hardware, and the Postscript LaserWriters have it too. > A4 Letter 8.3* X 11.7 15,58,15,59 389760 > > Again, the A4 page is bigger than the US Letter page, but the printable > area is *much smaller*. Why? If there were memory restrictions we could > have at least 438912 points (if not more**) to print with. And again, > which is the reason for the big difference in the margins? You are mistaken here about the margins for A4 with the SC. They are similar to the margins for letter-size paper, i.e. about 1/4 inch all around (sorry, I don't have the exact numbers). > The reason why I put so much effort in this 'investigation' is very > simple. For the user, it can be very annoying not being able to adjust > margins smaller than 0.8" ! When you draw into the page rectangle it > is much easier if you can assume that the margins on each side of the > paper are more or less equal. Minimum margins are determined by the printer hardware, and they are indeed essentially equal on the left and right. > --- Footnotes --- > *A4 letter width is better represented by 8.3" X 11.7" (instead of > Apple's 8.2" X 11.7"). The correct A4 paper size would be 8.27" X 11.69" > or 595 points X 842 points (exactly 210 mm X 297 mm). I'm not sure where you saw 8.2. We calculate (210/2.54)x72 to get a width of 595 dots for the paper, and this is the value we use internally. David Casseres Exclaimer: Hey!
omh@cs.brown.edu (Owen M. Hartnett) (10/08/90)
In article <10585@goofy.Apple.COM> casseres@apple.com (David Casseres) writes: >In article <6145@ethz.UUCP> czychi@ethz.UUCP (Gary Czychi) writes: > >> The reason why I put so much effort in this 'investigation' is very >> simple. For the user, it can be very annoying not being able to adjust >> margins smaller than 0.8" ! When you draw into the page rectangle it >> is much easier if you can assume that the margins on each side of the >> paper are more or less equal. > >Minimum margins are determined by the printer hardware, and they are >indeed essentially equal on the left and right. > 1) Microsoft products can write to areas which are within the "minimum margins." Thus, we can infer that the minimum margins give an area which can be imaged given any possible image configuration, or at least, any *reasonable* imaging configuration. (by image configuration, I mean any of a set of all possible quickdraw or postscript calls that cause imaging only inside said margins.) I.E. we will probably never encounter errors given that we confine our output to said areas. 2) Given a scenario where the programmer has a desired output which will remain consistent regardless of the actions of the user, (i.e. a form) thus the programmer is able to test the output for correctness using the lowest common denominator of printing power (say, an original LaserWriter and a LaserWriter SC), are there any other pitfalls said programmer should be mindful of when he directs output which falls outside of the minimum margins as depicted by the Print Manager (and/or output device)? -Owen Owen Hartnett omh@cs.brown.edu.CSNET Brown University Computer Science omh@cs.brown.edu uunet!brunix!omh "Don't wait up for me tonight because I won't be home for a month."
czychi@ethz.UUCP (Gary Czychi) (10/08/90)
(I'm sorry, I have to submit this reply in several parts because I can't figure out how to do it in one part. The whole text is rejected by my mailer because its so long). Part One follows: In article <10585@goofy.Apple.COM> casseres@apple.com (David Casseres) writes: >In article <6145@ethz.UUCP> czychi@ethz.UUCP (Gary Czychi) writes: >> After playing around with print records and a couple of printers I wonder >> which random methods define the printable area of the page, the 'page >> rectangle'. >> For example: ImageWriter >> ------------------------ > That's correct. The width of the page rect is always 8 inches, > because that is the maximum printing width of the mechanism. The > 8-inch rect is centered on the paper. Top and bottom margins are > determined by the paper-handling characteristics of the printer. Yes, I also found that the page width with all three paper sizes is 8 inches. But take a look at what Sean Parent has to say (below). > > For example: LaserWriter IISC > > ----------------------------- > > margins > > Format Paper Size t,l,b,r printable area > > Inches points points > > > > US Letter 8.5 X 11.0 15,18,15,18 438.912 > > US Legal 8.5 X 14.0 54,66,54,66 432.000 > > A4 Letter 8.3* X 11.7 15,58,15,59 389.760 > > > Does anybody know the reason why the printable area of the > > bigger page is smaller than that of the smaller page?? Why > > is there such a big difference between the left/right > > margins and the top/bottom margins of the legal paper? > > On the SC (as on the Postscript LaserWriters) the constraints are that > the mechanism requires a minimum margin of about 1/4 inch all around, > ... That explains only the margins of the US Letter size paper. They are all about 1/4 inch (1/4" = 18 points). > ... > and the total image area is limited by the size of the printer's RAM. > ... > You are mistaken here about the margins for A4 with the SC. They are > similar to the margins for letter-size paper, i.e. about 1/4 inch all > around (sorry, I don't have the exact numbers). No, I don't think so: When there is enough RAM in the printer to print out a rectangle of 576 x 762 points (= page size of US letter) which totals 438.912 points, then I'm asking you why there's only RAM for 432.000 points (480 x 900 points) for a US legal paper size. and even less points for an A4 paper size (= 389.760 points, 480 x 812). Us Letter paper size/page size: 484.702/438.912 A4 Letter paper size/page size: 500.990/389.760 (!!!) US Legal paper size/page size: 616.896/432.000 (!!!) These figures prove: The bigger the paper size, the smaller the printable area. The above mentioned figures are the exact figures of a print record on my SE/30 with system US 6.0.5. I can send you more evidence if you like. > > --- Footnotes --- > > *A4 letter width is better represented by 8.3" X 11.7" (instead of > > Apple's 8.2" X 11.7"). The correct A4 paper size would be 8.27" X 11.69" > > or 595 points X 842 points (exactly 210 mm X 297 mm). > > I'm not sure where you saw 8.2. We calculate (210/2.54)x72 to get a width > of 595 dots for the paper, and this is the value we use internally. The exact A4 size in the PREC resource of the LaserWriter SC is 1400 X 990 (1/120 inch). Better figures would be 1403 X 992 (1/120"). ---- Part two follows in an instant ---
czychi@ethz.UUCP (Gary Czychi) (10/08/90)
(I'm sorry, I have to submit this reply in several parts because I can't figure out how to do it in one part. The whole text is rejected by my mailer because its so long). Part two follows: > > David Casseres > Exclaimer: Hey! Meanwhile I've got a mail from Sean Parent <sean_parent.snarkmail_l_z>. He says (I hope I am allowed to quote him): > Once upon a time an Apple engineer wrote some code to calculate the > page size for the ImageWriter. Unfortunatly, he didn't realize that > his calculations where poor and didn't always make best use of the > machine. The calculations where incorrectly based on the printers > resolution of 144dpi instead of 72dpi. Well, then along came the > LaserWriter and adjusted the same code without fixing this bug to > 300dpi (and the problem got worse) and constrained it to the memory > limitations of the LaserWriter Classic. Well, then the ImageWriter > code was adjusted to support the ImageWriter wide carrige. Now the > driver decides to go into wide carriage mode if the paper is large > enough and you have wierd dead zone in widths with page sizes from 9 > inches in width up. Then this code was adjusted for the ImageWriter LQ > (it still has that same original bug) and so the LQ ImageWriter driver > printable area never matchs the ImageWriter's (even though there is no > reason why they couldn't) and you have the same wierd dead zones even > though you know you have a wide carriage printer. Well, the > ImageWriter code was also used in the LaserWriter SC adjusted for the > memory requirements of that device with all of the same original bugs, > yet new and different printable areas. This is one of the worst cases > of propagating bugs that you will ever see. Unfortunatly it cannot be > fixed in existing drivers without reformatting everybodies documents. > Sean Parent > "Quality unattainable in a reasonable amount of time." In article <52424@brunix.UUCP> omh@cs.brown.edu (Owen M. Hartnett) writes: > > Minimum margins are determined by the printer hardware, and they are > > indeed essentially equal on the left and right. > > > 1) Microsoft products can write to areas which are within the "minimum margins." > > Thus, we can infer that the minimum margins give an area which can be imaged > given any possible image configuration, or at least, any *reasonable* > imaging configuration. (by image configuration, I mean any of a set of all > possible quickdraw or postscript calls that cause imaging only inside said > margins.) I.E. we will probably never encounter errors given that we confine > our output to said areas. > > -Owen > > Owen Hartnett omh@cs.brown.edu.CSNET > Brown University Computer Science omh@cs.brown.edu > uunet!brunix!omh Let's summarize: There *is* something wrong with the calcuation of the page rect, but it wouldn't be opportune for Apple to change it in the near future. And as far as I know, there's no patch which can be applied to the driver(s) to change it to more reasonable values. BTW, the memory of the LW SC can hold 1.048.576 bits. How much room is left in there for the actual page? The page is prepared in the Mac itself, so in the printer should be enough room for the *very big* page rectangle. Thanks a lot for all your replys and efforts, Gary Gary T. Czychi University of St.Gallen, Switzerland czychi@csghsg52.BITNET (preferred) czychi@bernina.ethz.ch.UUCP (CZYCHI@ETHZ.uucp) Tel.: --41 / 71 / 57 17 22 ---- end of part two and end of this reply. (I guess I like the Mac more than Unix... :-) -----
casseres@apple.com (David Casseres) (10/09/90)
In article <52424@brunix.UUCP> omh@cs.brown.edu (Owen M. Hartnett) writes: > 1) Microsoft products can write to areas which are within the "minimum margins." Yes. Some applications, for their own reasons, restrict imaging to a rectangle smaller than the Print Manager's page rect (which is the rectangle defined by the minimum margins of the current device), but most applications allow drawing into the entire page rect. > Thus, we can infer that the minimum margins give an area which can be imaged > given any possible image configuration, or at least, any *reasonable* > imaging configuration. (by image configuration, I mean any of a set of all > possible quickdraw or postscript calls that cause imaging only inside said > margins.) I.E. we will probably never encounter errors given that we confine > our output to said areas. I'm not sure what you mean by "errors." Your statement is true in the sense that anything drawn within the page rect will be printed (assuming the application does not prevent this by setting a smaller clip rect, or something), and anything drawn outside the page rect will not be printed. > 2) Given a scenario where the programmer has a desired output which will > remain consistent regardless of the actions of the user, (i.e. a form) > thus the programmer is able to test the output for correctness using the > lowest common denominator of printing power (say, an original LaserWriter > and a LaserWriter SC), are there any other pitfalls said programmer > should be mindful of when he directs output which falls outside of the > minimum margins as depicted by the Print Manager (and/or output device)? Drawing outside the page rect is clipped by QuickDraw and therefore does not print or affect any bitmap. However, just as in any other case of clipping by QuickDraw, the pen position moves; and if a polygon or region is open, it is affected. But please note that you must be very careful with the concept of a "lowest common denominator of printing power." Your examples of a LaserWriter or LaserWriter SC are capable of printing a wider rectangle than an ImageWriter! And what if next week someone hits the market with a printer that only allows a 7.5" width but is otherwise so wonderful that everybody buys it? The program might then join the ignominious company of early programs that assumed "the printer is always an ImageWriter," or later ones that assumed "If it isn't an ImageWriter, it's Postscript." A well-designed program needs to look at the page rectangle defined by the Print Manager at print time, and behave accordingly. David Casseres Exclaimer: Hey!
lippin@wish-bone.berkeley.edu (The Apathist) (10/09/90)
Recently czychi@bernina.UUCP (Gary Czychi) quoted Sean Parent: >> Well, the >> ImageWriter code was also used in the LaserWriter SC adjusted for the >> memory requirements of that device with all of the same original bugs, >> yet new and different printable areas. This is one of the worst cases >> of propagating bugs that you will ever see. Unfortunatly it cannot be >> fixed in existing drivers without reformatting everybodies documents. How about a PrGeneral verb which gives the printer driver a slap on the wrist and instructs it to tell the truth? Most programs could turn this on without reformatting any documents, because they format them to the user's chosen margins, not the printer's (and the printer's would only be getting wider). Those that can't print on a wider page without reformatting (blech!) could let the printer lie to them. --Tom Lippincott lippin@math.berkeley.edu "What Mahab has said is true: our customs are different. What the Klingon has said is unimportant; we do not hear his words." --L. McCoy
casseres@apple.com (David Casseres) (10/10/90)
In article <6155@ethz.UUCP> czychi@ethz.UUCP (Gary Czychi) writes: > > On the SC (as on the Postscript LaserWriters) the constraints are that > > the mechanism requires a minimum margin of about 1/4 inch all around, > > ... > > That explains only the margins of the US Letter size paper. They are all > about 1/4 inch (1/4" = 18 points). No, this is also true for A4 paper, not to mention the envelope size. Your numbers for A4 paper are in error, and you can easily verify this by running an application such as RSG 4 that will display for you the edges of the page rect. > When there is enough RAM in the printer to print out a rectangle of 576 x > 762 points (= page size of US letter) which totals 438.912 points, then > I'm asking you why there's only RAM for 432.000 points (480 x 900 points) > for a US legal paper size. and even less points for an A4 paper size (= > 389.760 points, 480 x 812). As I said, you are mistaken about A4. In the case of legal paper, it is not just a matter of raw RAM size. To be perfectly honest with you, I no longer remember exactly why this is the case, but it is. This is not a software bug on the Mac side; we originally tried to make the rectangle as big as the simple (linear) RAM-size calculation would allow, and the printer wouldn't print it. The limitation is imposed by the hardware and firmware of the printer. > Us Letter paper size/page size: 484.702/438.912 > A4 Letter paper size/page size: 500.990/389.760 (!!!) > US Legal paper size/page size: 616.896/432.000 (!!!) > > These figures prove: The bigger the paper size, the smaller the printable > area. Sorry. I hate to keep repeating this, but your numbers for A4 are wrong, so the progression you show is also wrong, and does not prove anything. > The above mentioned figures are the exact figures of a print record on my > SE/30 with system US 6.0.5. I can send you more evidence if you like. You have to be careful in looking at print records. You've got the wrong information here. David Casseres Exclaimer: Hey! M@8I^D"EK^14LL ,\#IE(2MY0 ;$$P9K]0-M@ 9^4 =4P%AK]G/?$CW7\K/@ ME)CMTDM:&X2WE)DC@!JJ,7.69:6[&QN[M$ND<3)J=G,YEQJOJQJ=&2'-!'6G M<5FT45M'$4%_4XC56C<#B4_1H1'Y^#\/ ;-GA%[XMBPVD61*:"[]XRR!JB', MTAQN1X_*%R[#"1H?$X_ZV;.T!A $!.K10T!/_@8"!3(@+)BA (&%"PEH0*B! M0!Z! C$F1-CQ(D2(&0(XS*,ACT*0$ M@1)C284N'(#.P-.F2@(6'&_5L#/ 1 MXT:$0#/>%#I4YM"''PNLS#-SXD64+3'V1+B28L6.+T/*#.IQIL>C&"UDS(#' M)\2?&M7>1 MR9P:+(15F'5I0SP("'G9\(.'A@P</"_20"!1H"H$%'C0H&&A4 M0Z G;480V-&&")0?570LF?+D1Z 1/Z@4GKR RY,G@ (I:!)&P8XA.@(MH>*! MQ(\G;P)YV)-C3P<=-&;T%C&C0X<,'>H2.)Y<#_*.%CL0[&"\MQX=,W3TGM'= MN(<<-'*,Z-Z!QG'K_AU^&\]1W?I[$>[5(Y^.W /RWK_W["_>W.[1K0XB*R2A MZ(*IL0SP2ND@BA(J2($&-4 I+X,(8*P@Y0I24#D%"O* N8STB&N@AS)<"#J7 M D#.PI ^5*Y"!:HJB#F/"&(H P!RU'%''GOT\4<@?UPLJ;@ZP"BJ!@5ZZ$"+ MG*HHK2.]&O# N4[JJ"F!G,+2J1$/O!*D/$8RZZ(\L(3RP".;PJB@,M'Z:BB) MN-1@)*,^J@DJG#*8L2H\ELSR3R5; C2E/X/JB26(Z!3IHD/5@C*/&;/L"<Z$ M0F3,K0(@K) 'D;X8 3 $O- CP(\0&,B!3Z,*\Z" H$"BD!*A>R)5S/;_J&P M 0@HC(@! MAA"3!^: ,,3@.A(4<\5(3L#1H8Z(N/+SKP+0?C=)CN/)0H:M(@ MZ+""*,/GNN-/#Q^J\XVW$?8@CX;]Q!7AO!G@K6[>Z0XZ#SW]C*LON8[L4BZY MWZK;;[H8[;KQ(CT'.O HAK(44**GX"(U \8ZA+!A"RE.,.&'"K+(H@_O\S@N MCU%]",+I*O18@0U!3&[3B#K$H\F#XP0IPXPR#')GGGOVT<&7_%3HORQM%C2C M;66:"Z2' H@*4$$]2DI+CW[*P *+%(+R+$'3DA0J1P$DX-"<,EHRJ+#!M&JD ME9#^"$ZJT,;2("L7LK*F+TW2,JV6S$(H@)]^_AII+);HS*BD IF^L8 !#RH M0\0T[8,$$D9@0#&"%NB@@"HR)?7AD@5J@PHHP!BA "I(IY760(@ 8(] JF L M@$# ()V*'1:X%8HPP-B!#SP T!7V,SY@0*#AAMLC>1$@)17F2 D"M*'CYI-V M>>WV.$^''+C73EIIK<TN.^.>X]?\ZF=XS@/CRK=19816?.XX:JNW#RQ!7VSK M342-BGI)Y:Q(2<S)VH,\!A>0Q"4/F\-0 4S4F $4X'GP2\Y)-F61&"UD1@?I M'\2\9),#'J4A<?%9"4WX(\?))6$<F4A,'J*!@J#D(-E2FDWT]C 5=J1M13N2 M2A#VE,9@Z6ED^LA,_@27*#"5"6T6$0O_3E(2(S(.;$S<H4#&HC8I[6U! MG6 MPOS'Q:\!$4P_[)_7A+*1_0VH %UJ#$0N118(D4H!!=C!7OH2JL0(9 F >0A> M(I4PB[B*"E^0%1 P ZL3 . Q+!A 60)!.B@,P0-] 05WC"%*@1""=U; @ Z M$ @ 9/().VC"$\#7/?5@R(<KA%@+0W(0]91'..19C[5DN9_P[$$'>@@/>T06 M0 QE\3GSFY]SW.@6O,!E.OM9'G0RB*(X%:5J;MH*3""UH!@A1X8)V1R%%I P M/:"L,78I@((^)!@'$K"-'0-1.(&8E98TI&$/^U?1*%0AAOSG7Q\Z83_[_OE" MF"'M@P(JE%889I.V30V,1_-63/2FD8J$)"ZK8LI$^#8IP.UO:R0YR]@T4D4_ MX0TJB+H3FC[2$XHF!2AI\E-((O*WB.(S2S-;RZ.**!-$<6FA4+.(B I%(8(H M9(ZI@LL/=,"7P "& %#@PA0>\J$\! \/>(@27CP0""#LA@ _<,,3+(D7 0B MD1+2E5='V1G=3"9!:_C!)4$9AE@Q I4^(%[A/.M#&E@.AGP0$P\A#^#J&]> MR\.>"'2I'AWPQEJ^"9]YCK.=>2VDIPCI*W2@,TST>85?;CF1_5X&EA^"Z8/5 M#%M$H):E)6E*.10QF$ 6L"0)/L^JS/E<A7!F_J$9+49C[*P98Z0D%YG2)4!N MF1X^_7E<GY'304_YSZJ(YD*5M.1CT75EOWX*$9-T,+1-R1K&-/NV,"5DI5(! M;W@9A;8:W=0"<DO)E@;4WD99Z6U=$4E0EE*6,<8E*?BD"J4.A4;Q4JJCTFS+ M1'K*W/?NJ24,A%"'"@"%$?2%!'DL3.T*@H=)TFI8>L## #2@U*N"H2\%",1G ME(.'+E ! !+9@1N@8$@J1"$00R@58/3 @#T ]N" 2*Z> !!C#@ WGQS?+T MY)QG&C.!_])K^MHG/NWEH#TSH!9[MM.]WF"Y?N=)SK_F6!6$9'.!)]+@*Y6T MP<;0QR$I-"UIM](6_J!X,",Q@L@(5?84Z<P1,<QQX,L^9)"+^5$@F_LRD62; M0#I_2)5T-MJ;$]8PX3Y:>O^A- &0>^D@\1F($@SHI@VBE10V**(1':)':(;G M/W7)FBG95ES8MFHL_1>\DS*B6D2RM;2L!"RPU<B="$?1#K(-*6^[:42[&+6, MC.6W7]F;G)/X%(4$8**$(AK(.+TI#PE$51(< 0]V\(,:Q,$.@;"#!PJ@@X04 MI@JI\ZIN]A" 5 5F-'U9P!,RV;0>VR6L/X "ZX9PN@X(AC%Y( P? '!5?M.A M#SL@P0Z04YSZU4NPYC.(JK)461A4!SOQ @ZU#!MEP#"S-^RS%KO:P[[I_O35 M('I;2(=,RR_+HM:>!-W<99F3AV\2*HO._A)9;J3#<>;%(1WJ@*8V)B((L?,Y M'5NM020(+@)>JLP::V<[&9)38DM$GFAA23Q9U)(,&D3?F"8[CPS:H/T>N&"4 MFM%^]U2IAG#Q>3$!;5 HTK:%K$0A9WMGKT4+8%P314L"D?5&"J<XG^1D)EH# M8DEU?;BQH?$K(KT)6+I80P0.-THIV:^@1M+!EM)=H54Y<YU#A&V0N&C/!1#Q MMR.0&%$IP :/1,T2=%!'UN5 (DI0!O0X"S S%@@;,@5 8+W2,Q$P70?>)$> M^-"'0+P!##S()!\P4(4W5 &N=J!"%4SI6'&A_N<X>AB5V FPG[X"+/S46A[) MIRR<'(@@/NBY#Q\,F[S(JOR/.I$ISF#)2HZ(.[IKB&NJ&B]JBFDR$,[#)[#+ MB&^2$=H2",;HJSG""X$KIW!J, :2P .[B]-KB(Y1NBE!&&=:BY:+NX/8NF[Y MM$&SM+)[0452F9(AB X4%+L0D(XY"(="#(@)G>B*N^H:/;ZSD0DR+:&@$Z;( M.Y8H"EO#B)HH"96P()(@KT3IFB)"H\,3B_*2BB5Q0J00E,L;HS9Q&T190IMA M-0 !P0L*&NR"D:GQ0-1R"/]K"3Y8 KY@.,#P 5@@A)[%<S8 1U #4,*A+P( MC$"0L \@L1' L#V@_@@\J('8P0TH0 ._8 P^3!TJH!72Z8!0"@0^T ,:H((A M ((WB);R8*SLR $]2)[D$"SC@!3TL X1*#(:@#CU"(_P:9=Y\8Y=/([?J"R8 M..K!K&XA30S#Z&!0<JB; :D8* D+RTZ 4Y):\Z!ASF[3[T*NE()A2"9V[ MD$,$D1[]ZL'@.@H%P .*04!HN@@Z>Q!\.K#%:$$-@,$73(BE6*X1V:\U,AL) MU!.WJQ"T\SJ;$,.?DI+]RI(1B1A &<.,0J(RT<)% 9PVV2C#*P!T[(DK"AS[ M"A.[:R^5*K"M.9R\D1JRD#R(LAJW24C2$HH_VJ$&N1#BXJ*-2:9OP2V9_DL) M7Z&".R2!OR@52RJ,-\A$U.BW)]@-<SO$"-N#!2 !-*"=1ZJP-J"55R'$#_$# MVN.#S?"J/FB#,/B#'"F,'<B+O_B [*@.>#$.X0 ?]2D.?6D?/N".Y1&/XF 7 MPM*!XEB/^1@F\9N//3@R/;F+Y]J4/6M#(OR3_P Z>W+&-)(SB1"U.G&834F* MBHDM36,."X21+G,@M%..#XDMCZ%);3,_-XH: 200-_,RCZ S&$*](YL.A>!$ M>B2[U=2KZ8J8O,N*H=F[@9B@I$B*YP%!B="[E[@\K: [QD0+)MH?J>F*NN@O MOR&4D S)]F*:2<'"H>";EG":B4RHIKBB55$2_K. %&$C$)>\SL&K".]4&(<@ M&0F!NMQ*"$UYH714NK=KPQ.QD0X B:HHT_Y "Y8@M9AD5O9 2!X D-Z@W+: M 12P#1J(MZNBJ]492GX#C:-L@WY; M0(@S=H ]VH,"L0GC8H#.X+ QY[@S[H MCNW(#EI:GNR@@1;EQ7-!I0[@@ULTK/;0I8#12V*B#OH()W?ZB+>+H9=ZD)9( MBMMZNZ;8"6HKH]&*$[Y;,ZUK,X,!%PU8S8&X#Q";C@58@ ];"@\,N/MP( EZ M(^*2GA!1C@)$MN5LHXY8D>AX,W\!$=YRP=B\-%*1('92-+.)*#TUO1@RF"9I M+C":4V1KDKV+M-HD_KW%@XKJ= J?N!."1,F)-(G^0DDBXL@S^0@+*).$"D\S M$0@!V)K]:A-%^2.$F91$89.;B)2^ Y01><\0Y,>YFY&:.S.,J:[X>33DJ!\? M\#8[I#T4R)(\ ( =>(.A! (Z* "^^ "&FPA#[#<H8 ),A(),"@0%B1T_X#$W MJ*L.&)*\(($.K8 <(0 2> +*8=81<(\JBY=IV<7VHS+N:)_D@=?L8!_VF+B( MH(^]VJRWTP"_29);C9B"R9;#)!J7L$$\4+!Z J>48 S]@<8VFA$]S!3$Z(#. MI)!N?:WGX(B4T8"<RQR]>@H;$\PW,[V#S0-&RZ%/^Z.$D1_4FXB&P! 8_JI3 M3/,NH5DY&P0( GH($-! H #!A!D0$ER84$\&@00R&%P8L6#$C!,W'B1H<&.& MBQGR$"!),F,>D@T[JHQHTF5)@BHW!MB8<F* E"83VI09DT ES=KQCS9,&C, MD05F7MQY$21/C@CSB&PX<.- AAT(>)!84.+ D H..M13P,/%KBL[9& [<NM M/3,\Z)BA1P<;'H':D!CA\2* 0%2 /($R9<&('3I(L/6P8 F5'X'"!"+"9LIE MOWH6['CSI+*"N LT+.A0X.J'0(&>T,BPQ\,'/H"F</FQI\/M/31$[,FA>X8. M#SF&=Z"1 W>'NL)GB-B]9X;O'#1N:X#;(6R!_K8",^C9JB'BP*Y;"2Q8>/4[ M>(S9%7S\&+9AR(EQ0XIDR_,I2(@&XQ*,Z[^@ J=-Q-U$"%4'UP($=-!!@-TI MD* >H7%%7@82CG651V#!U]]$"L27487U$<16 6P--!YX)Q;$X'<<=F"0 @#( M.".--=IX(XXYXBB@@5_M]Q"&*TJD@1Y%6@46CV;Q5!%'7PT($GT,293=1 )L MI,%2&Q6@ 54E<5G22#_M=%28+_U454-+98!'42G5U&5),U&5QYM99D!44F_^ M%( >-3%T$TSQX7'2G BAV21&6DK45585%E >@5T99)H"XZ'GH8(1+2C0=1W, M,,,>=<W0 1 [>+ $_EH?A82'!V] 044@L.U @\(>M &%(&P$"119G402*YJ M=96=!WSPH0,?'J"E0!AM]%%%&ZI1L5AL?#B1 W0S\'$<ML_Y]ARHP'V:W%PS M3 ?J'LUYNN"+%UU%8(0K3;251MSE<9613O*7T5;V;0AB5"OQ&U)8$6F J4)8 MO>?50-^QMP"$W#WHZP)Z>'#6P:/I<?!I9TT8T9;PBH?OO/)"1>^3VE%TT7@0 M9><KA24ZV8$'$4Y:LXXYZ[SSC0Z]Z)57-3]$Y5=9#<TA05TY))"1'V7'I$%$ M?^1E?%2VJ!28(-74E$R&&D6H1G;Z=%.7$5E )M?,Y7V3V?+6=1*?1*4_ET> M8@M,4I8W3542T5W#F1&51F,I%D,DN]R11):>-M!8!+=UG1ZW>7J;#L<!Y^D. M4/P@4.--A5'8%![,NH-?"RG[1B!^D=<=@1DD&$@5@8R%ED!+@/'$%%2T :MJ MDZFF1&MXZ,&#'])^H.R"GZ);N;>A^C9N79X:UT$.(V"[[AY%JBQ?51DH722? M);U7L$)PZ:MD@?'-ES!$]$&%-/D0;<=1D.]F&AJ!WRT08+\E%E!I1#Q@H=,T M+CO^@\M8Y&4^K CD7N_SU[LTM9V-C6A$&H%(7$P#%M,LA&<>_.".+-*?\OPH M0P<K",D6Q2$#R8\K]Y*2?#A2KPRM+"&&PH](_DRB@:WAY%UU4PG15+(3LKWO M3CX1")[0!I2)M"1.2"D*4F RDY[X+2EGJIO 3#9#)DYM:6%)X(J<MA6&2(Q M!^0)!AMRG5%Y:ES: E5=>C.JX)3H*1$9 +"H8"K1?: D-/O #@*! JYX@#0N M"@ ?5*. >PV *J9@@[ZT(?"[$6/(QB! !<@F4"\ 0Q4&,%9/E"J&BA!!Z:$ M3G%\T\81H M;PDD7#73PG#VPT@-LS%23?C20/'PD@=V32'F4=#6@M2N&&,I. MBCC$'^S R7[O^L]$A@UU%/&0YF 8<LYG-D(8MH[E.@-HB,WA=LV& @Y+] M"/0D(X6D91W2T'>4_D8[ 7EG*Q6CT%9 J$]]*FA(#5M25::FEGV1L8L(P==^ M"G<ECC!)(1\"BD4,UL3W%6A,A2))BX(B1+C=Q"=1!-/9P/.F,2GQ3E^+20"8 M%"@KXF%O>5M)2U B,#4!-&GNR0X'9S<D#TEH(6,Q3=VTXR^W3.Y3>PB5N;!5 M%^/(TES*.D@'RA8 -U#!,#NXZ@C&XP$2+*$-!?%8D21%@,"$80@!\ >-B"8 M)SQA!T^(UB<O!A0\:, /61BK!]@@&#X\P9/1"L0/9)D'X,BQ.:,"SG"."BK# M>HI;;-Q#H@HD/PT634%4$8E[ME,1=W$*A6@3D$ "%\#[#$F9_<R7.ID&_C0* MLM,#;-F*6EY$,P74K&*VW8PWJ[. +2WH?Q"IV$%Y.B(JJ0]Q"T-FWUK&.%T" MS77A09!VJN/<?NVSNCPS((;^LQ]V7BA#4XHN 3Q4 %-C89?$>&&5$K&D[BD M #R\@,'2%)^OH9>70,'02(98DJ!H]$D)>1M'XS3%A$'%35GJ&D3Y9I(#MS=, M1,,/WN)KLNN$]B-"FU"CR ,2G,+GA@U<[&U<J<K>](8&U#,Q5T02)@( H:I0 M:$,;GC #W 7@ R/@@6.4Y1@L@1,/L L$5P#0!,!"@3"3,97%"%(#U51A" .H M014",("SPNIS2B"!!QBP R LP0?*H\&G1(6;_AR(@'I&E4YQ<F,7SO'R*<0] MH4%4Y=_4+E.:3F+8?V6XSKF9MDG:.>AXP,*XC; G342BR'*!&9[P&F2WIE&1 MQSA6(0TRZ7M'TD,S_6N??)%LM,LTYVFG%)I"AX=(UCVUCAAF0#3RV4=_"8VA M>B013('V.S\JKT7D++"JD38^3>KH2>RTM_[:$8A!59049:*3 )-D4$!I24HR M<#:VC8E*-(731*/V2P4OA4ON\[5Y-CO> (47: /UWX 0HK0T0453"P)S<2H' M'./0FUPYT.:3\N"A/.R "H5A:ZB@D*L]D( /M/T KT9F&B=8*Q#!H(?GH Z M$@@D003(@FI8D!"U_N+!-%MATR;# 8[A*&L'V \J*G ^. *I9VJ5PJR;4I M^>'K-,5-[?O2^"2U-.X@-.<L ]-)OSR \Z"X-%+[)%LA&[830-WI9KDKUI6+ M"9!CMFT7 4F33?8\FM0J:M'Z'I*>%M(\O*<QR-35DQ -5LAF_N.Z6<23T[&B MNNXU\JX[B;22!Q,-(>:+\ZOQ=96Q"(@B*CUO@1@Z)V]'$$H%0<H/V]2WBLA) MBFK:J)<0[)2;?&2C223(V1X,L(/,Q"!T"DNP[6L4C0SX(J#-D(?B$]7=FJ5A M.MW,D4(4%GIUAVGCV@,?1C4=,_=&.M/1 9X P*88[@!7A=%!!R;YUB\L_@#+ M73D>U1< (Q3(0S*M\%J)!Z((1"2(%>8# 0\XH' I)\ Q^-*3?"P@,^T00E\ MZ#=E?N!:6QYG>F?60RREDF*UCMX!C9Y]FW^93%B87J AR3G9T07%4$*TB+[ MC]_]!42,T8D87:08C0 Y5V@@77@)D,Q$B)&\"$^UQ[X0!*;PQVI%1#A-!(QH MR%5<1WDH2 $N"X%PW42,AH(4DO;9G1 "0 12$$]D1S ECH!H#T-@RK),#?H\ M#18Y4Q:E&Z)$A1VE3T^ R$NQWGE]R>K=QTF,E(!144S@0;+9Q$E=(2]AU!-- M8'^,B4-HA.)Q"."TW48D2-2TB 8NH<+8(0O2_F&1+(BWB("XY( L&8=N< L> M]$'O!((.Y &;E$BK3(%BU,4//$$F1L$7)$LVY5A7! G2090%,!J ,'X)8BR M!,"2!4($=$0V"1F0&40@S !0;,Y I,T(2$M;]4$;@(&I8(#R;$MOC( <@4IT M+$B(> ?(A 1S<9:<U0MX PYR0NH":("KHRCP 5_A"">W0=<O R 3(B"T%9O M>=RC4(@/N@PW'01MA98X%=VBE-W2X4M$0(KK+)TS]M1!S8> L(?2(*'#G(9K M"80U#:$0AA9'<!"1-,Q,+ 6@5;#V,_+;,EP^9IW2&!D?8>!E,U(>!LR880( MQ9=%$$48FF%+4!Z8_F#;UD1>PK3D$^5$4BP84Z0D%L&$1'QDD,S-2OV)1Q62 M1S1(AIR%P5@(5_RC5RQ0ZZ#>@%S6NB3'<WB*]4"'<1B?#G $P#+JT!![ 0" M!@# Z;Q*7>C $OS 5H;!#BR CAD$'BR9OP7"">!!8 A<ZABD HAB97C$SP! M5IX .A!8(P 200" -R@20# "R!M(Q.%%1!'\B;F4''42G'MSQ'=V1@=1 8 MT&V( S'00Y#'L<533FK)'<J+6KACI@R$Q27(4V#'QCQ:U#0$>QA)VO%(B?R3 M";Y3>,4%;3E$"<VA/F;(/Z4'3ZB%P>!> O6FQ7%("S+.9E0([>@A[F$3_D+: M'0S>%'YD%S*UQ45$3<OT8TF41^ 82M$4E&?:BT"T" S=R8-949^H6'NV(7RH M9!.I!!HVQ!#I!'O5A/W$R4]L&,C<F53<V7K*&>!!!07Y&B#*C-&!%K%4$\.$ MB*8-2/M42AL5AU&9RQLAU70,AUT$ F% 5OM0!_ 2A\<Q!0$PA0<2Q^8Y;^U M@?XI2X*THEE61@ %5)1OH9$EZV "%Y#%Y"0 40".I*!$&PANZ3![(R BX M 2?YVQ/P0%9EP,H=U?/PQO6(P+V-"G>2'M*U#GP<BB ^E/P$Z'E U2]-8S1Q MIQ>E)W@P5P,^4U&:W3PV"(6I(E;@%$5\5PP]_AJ!V ?!+(S@)<Z'))-FH98W MX5Y8$41YB"=%A(9L7<@[5F?=04TUK5II(4[%I<?926"$+*4Q-9(,-L1FC8^[ M..,%H<33]%KW-!0= ML,#=%3+!@<>D5*K.I2T,U*L,F'_&;8?,CK[>E_Q5?I M91$!%>48:95J)DW<9!B;$@R[F @,K)%1:2F)14>(S07T+4$5B*@>9:(.F.4; MT('[V<8(? 85N!@4N(&.=85J%$:N$,%&" 9<GI5:J ;Y4=U6X*4"",]8!0)5 M <"2#8!!\,'RM8Q<$D"* LL3A $48$NV",=8FAB\@8JGN-;A1(4#Y1!\.,5G MXA<36:/ O(M"<59I_OS([/!'@T*.?_Q4P\B6T54,N9V& S5:XBU=>7A<@FP% MN5W)&/4'R ($ 8$$"A#,0%"/P (="B0DL""#AX0-"1QD6+&#A@P*(A)@J&<! MP8P=]"ST !E2I4K6;9T^=(E@80.91Z<F8&BG@P=9&H0J$&!3*$$!>+$6;&@ M4 \"2_+4:#-#PJA1%9#4<U5@GHI%#0[,</!@GH)Y?(K56K1@AK,%\H1EN[7M MUJUA";35>K8NP3QX[Z;-ZU/NP9](Y?HU*%BHSP('%\L%7'(C00\*?"[UL&!I MT*4)/1@-6O$KU X[K>J9T:'#C!P=]M 0,8,/ZQDT<NR9,6-/:M-5GD"!_O+D MB1(=/WH_<?/$PU+!7\+\^ $ED(_D!0)- ?*$RIT6 S3@"42ES1H\EST$"%0E MT%8-# $$"J0@0,+V5-ZW]Q&@8A@ ,LD.U),G@ %&"..-#W[@88'4:*.!M=54 M\P"WU$9C3*BKON(JKKH0N["H#;>::2B=&ALJ*@(T*@A$CCCK":O/L%H,,**8 M*F AHDQ28+&&].@@,YEXTNE#T'PR*B$-=.I,.:;DFLFG(4$["*B)>-I(QX(* MXHFABWBJL20]%- #*!]1#.D@F,P\$\V6_#-Q(,4^>XBKH!PR,C&23 Q* ZUF M6B *!>+:LK10.P (D$)^#(Q# 7CL,\_"5M4_BTG300+K;ZT>NNNK-[*JT^M M**U+(X7V,HPQ2!4*++ - 5O4,:YB[(Q+RCR2R:3*A)KR*Y*J0HVTVS+(X;3; M]M@C!V!;TT$&'503(;8.<J@(@]3:@(**YWY8X@<_>O,MD!PXXRF -JB ;@@^ M(EC CW&AJV($ B:C#KJ'-#@I$.A&","#A0H ((I 6 !@ 3T >".,?ML+A"<" MO,-+ASQH.@@/ /8XCXHH=I AM=IPJTW"TW:T*H^$O>)JKJ+."HTKL!!+>616 MBU)Q1IN$4B"DD'14Z"O-HO+2)ZD\NDI6G;[$D8 ]P-P(JXV^2A&H@Y8262B9 MO12+S2"E9E.CB1(*_FJG(B>EK*F2$&WH2\#6VZP B=)<FVV7()-)SC!URJC( M)JO6R&::@-PZ8; FY)6C]7;\N+,=C;3*(THS:+1DC59EF<.Q)FUY+B?I4JNQ MMM[JR,23"^.0PD_EBMI5]8H"K+,@&Z])UJ.@/-3= H J("2>EJJ0*]-,2VU8 M"?7@> 81AM7!V=-HV^.KVT CX+8VG@#BMR5V4&()(J 8@EN/R/) ^H"P6P' M[@/I[?L%TO9I!S>@J,+=I6JH-Y !I.+)NT!LPN/])^+OX@TW - )#VV8 AX4 M%@A/58X !B >Y90@A0D808>T$%M<G,:7I'D*/Y1G%I0=3F\*$Y)6*D:_E26 MU#/$..0B7IK4:*)TJ!U52"R?Z<A" I84+X&D)#[:"(^ 5A.E_&0GMQH2B$!4 M,DK-24FW2LJ/JN0NN&WF2PD#4X(HDJ#D#"U!AVK;%K<XE*HQA$)*0M1.*%(1 M1,$J:F RD51\H@"C=8TDK,G-57:4&ZNP<(1;L8!</B@DT-!(95ZDU $%8Q:C M=&A$.*%:!DOUIXD$\BAL1$J)7C08J3CDA+ACTX^4A"6?9:"%3P/*[3"9D-'< M)C4SV)'QA&4;&A K6!%4U@Q&,(/$C08T>?" ^I[@!RCXH _/*<YUJC %)Q** M.B/PP =(D!PP0"=@R4F.>?0'D7<%X@=AT,%#_HZ"AS>(:R#FH0]\W'," @J$ M!H$ P$$"<<X]Z& >9&/#@+QA1TP8);$8LV$@I@0AX'N4U_I4U@HU9@+62Z) M#E&C0SR AY5-"B*+,:5(/E( /%4M*;A;CT!NAS2:P8DC&8DFT'@XD[[9"49! M0Y3(YB31H2@'1&6<"45\LB4[+64Q.(T=H61"Q17I:SWGX^)0TR04@_9,(!EQ MEU%"HM!)9K1$,4+9V0 5P=WM+HY&FP&@V 0D#GHH5!4I2U)<=]"!5,13?D&, MI)!REK/DR2!Q^8IA'((BHD0RB9E4:]76-*2,*JF@@V&5"I_6$P5LABI!C&.P M*JBQTQ!K#Z]!S6U^_A>LU#P)(SL9@ YX P7G8*LXV_K-&_:@2PUH8 1$^, ' M)$B"'= ',PR0)@$^4*\V$ %&A G-$-H'C=089T5<8\"YJ-.J>!!#^T4[CK) MDH/XE"QB[E'" I00O-QDMC%%+%E>/,='3X&04F&]9%Y'N+.B/$PD;71A![X$ M):0!AB-$F9O=3 BF?(T&(A_3B=(VXS6.(!9W@=RN4RG4E$/9RJ:T$AN*4/.0 M'X$1;;9S5Y:^Y '4$!7#,.E )RR-:V<5HR46@"=0!05.@4Q5#WC2*ZNPKL. M,"@W,$:-'I"GA\Y,J4CNU1!^+E0JEWTR5)+[JJ- "*J\0*PPC6E,C!S5_M71 MK6DB X#(K +F9#+-!2MVVQ+*XIO4#G65:UMCRDU\%Z'3[,0V#6*0LGBE$U5N M]2ZC,2@>JM"&,-R9"L#I#?1\@YT=?,%+(_[ ")JY@Q]X8 >!Z -FDH,9 @0" M".F)PJ$\,+XJA $/*1:N_@0R'G_M)Q!1& */F6) AP8" P207QOVHP?]_*<@ M!U."1Y309J"5*&4$G4LAT=H5R)7,9R,3X>O.>A$??;DG#*DBKG$2.)%$YDJF M+(E%I1W%&<_-PE.*6M8$B9;$@ @P=@TVUBJT$ -S#907:4BSR;:8!5 F;3C$ M3-IBIX$,WYLE L#11&:D0B0:13 :R!ON?I2!_BGC<G [LO".:&":"J[2QG'< M"4YHHI>ZV! _0S)56/GJ1U:91<EW$8Q!R;H\$=GD;56C2>N\Z)'&;$G,6V93 M4P>3U"NMJ28JZW'4$O:4FI"$E9--F80F>YO.6(0U%LD07+S3AA^08 10F$(@ MPO ;X$#O!WS@= $&_0$^D,"U.TBT,J7Y@4?39P@:,*8X?^"&;<Y* 72N A3" M0 ,"9B ]>:C!%,# 23W@3[D+] $!\Z#.BH#A?Q I4QOL5Y<D"&UDRP-O(@.J M\Y)M.-A2 66(CMB3K>"2*5"BC)R<=I"@A88R-CEM!O8 )['I:B&'HR-J+#R5 MB&2&9US[6>),7G,I_DHE)#V)3):]W9.@?F8D8G4*H=1H88]4F226Z0"^J8^2 MEVX>DTX<U)46@NO49:1KN>K9W'@HQSB2!'EQ'%ST*?DD4\D,9VQ2\@9'!Q:# MYOK^!VV+8@+N:[]D/VK8(D8^"2V\)+O()JH0PY-(QT[J3RX:3-O,2&E"RN$\ M)NGV@@!2;2>,[LQ&8T+JH@/B8B\N1"PR@ V*KVC. WK\[%K0XR$&C006P$!( M@)X\H)E8:P02+0K ( "8X <:@NJ@PP,<ADW"90I^@#[V ^\ P#SZP V"Y&#J M(@ 2;3^\HP.02YT"X >4, , 8 C28_<J;[N^0N3(:I!0A0@51P&($(5(_F96 MX,]NI@(P.*F-INQMEB+X+$+,$*64&D)PJL)+]NEC>&3BIJ)"O$1FM(*37$4J MDF)(PH0CR@@H-HI'!B+UZ 1.)F-K.".*)*,AYNU+(&(!JH_Z9"5&YI#<9FJ2 M_*/U?N[\)LZ4Z&;V>(2%L&0J!,64B(TN*H+4\(,M0"=EEJQ-CLSBU&,7/>2L M2 85Q2WTWD2$<B=W9 9%#*[F#F4:,PK<(H^#=J00!Z5"=F8#+6CBKA"MVF)P M)&(TCDXP9BP/!@ #%8711FQ"!N!@L(,XE@!;HL .YD6VF( .=H '*HT$6 OJ M- !^@B(0X*D)$*9?1"8LPJ X N%>S$/5L,F8_DBD.@@(#_@ #/% !] )>H) M ("K(P2&$"W.4T:0NU!&\G9N##6$99;G&[MJH0#+=,Z*B [+L!:"#PWK%)6J MAD "4:HB(DJCCA"G)#D)&7-D94CHKAYG4G)DPLQ(=DPD7\C(A8RDH/+%\]+& MPD)Q<$;L2T@1WRC%4,PF#[K,()IF*5:E1 3ECD9B%E%C#]9M<':FO5ZH0G!I M5;+KO/!B_D@FX%RG*C'GH>X/Q$ I3^"J!'_"+P5"5@[C870/YQ0B]8*B4)1" M*N2$, :"B<""D+K&@GQF,SV"+BO(*8HBU=[PEK)O:9"QQ\!B.MC+$1,HTG[# M.?H .-A@?/S #JB _@K$SM">KID0C3Y.@$:^Y]&,R3W^R"'"8 IV8'V4:P= M*0R6X E()[FF8#\(P _LYRZ4BR,!X,\ X ?.B7E(8.(RY<LX)"]:[H#8Q#!- MI_V>3/X@$_YFQ9_RRZA8I8U.3KX&(Z@$8LI<KB,D8JE(8\86%'"(Z"M2!QBC M"G9D DC^:XVB!F8:0G8BPR+(!KX0(C,9HBI(279DA79(XMW(\MYPQZY4S@\U MHN=\Z"H*)0,89'=V1A!?;/-P+?0JXI-TC/Y,Q2MBLTD@ ^ $\ZZ$)#0V)RN2 M43Z[@C$DB72<M"T$ TC48R@AHWL>(H<2Y8?H*";-LF,D)#1$D\8ZH%F4_D,M M,D #U]1'<0+T6 5E[$)3..JP-O0#NR/1^NP)GL,W@)/NP$ X?9"U=N #J 4, M"B(0;LL@1\#5P-"B(&9\K X,-TP'\BP[!P(/$FT+N_ -P-!$TL/3HJL#:N!' M]*0M%6"/W!0F6[)#(*F#?.B(5.8I @4I% JIIJ:FDDKT1BDALBCAELKE[E)' MK.G8<B/;ZNCA,*AP6*?;>J\F8-2&<LALX(21@@*,-F)7W4V-LJ0GXNU*+L-P M#LM. D9@5!3#;$1$*-1'3V7?9*JK;E&5@"Z.8( D;+0!_0A)C4@N+$#(LD)T MJ*;F7(<K-O2/3F4@+L6OC$)SD#&F +!=!2RA_O@UAX:F$CT"055(VS)):<BP M:TS#@LP,-;(JE:PB0L_JB"[BJ[BKUT1.0VXO(D;,*RZ""N!@"8!@"3SK-Z C M.%WKZ:1G!YHIZMY@!$;L/0B (PG@M=*##-FD"JK%-YKC+EYK"AI&*@ /1*F M\-X@N HO#TXM@9IC"3V@]2)B1CE(0TX&D]("-E5FW);DO'#.2MT0( AD($ P M@X(,>@06(* @84(/!#QH(#"1(($%"0ET$$@0HX*%!!R&U-.!),D.'CK,0"EB M98<,$#=F&'@084*#"C,J(+#0(,@,&SV(U* G0P$]!29J^#BQ0]*2"BDJC+E1 M@0:(2PLHD!C1ZM8"_@#"BAU+MJS9LVC/#BP:,J36 B 7($3(L:U!/0T5["FI MDJ1+DGM"0CPZ<R#!H@,3SZQK5.%B GDTY"F0AX" Q (G&JZHL#)FG@4YYEF< MH;)GCCT#4!RHH7';PQP-?R[<-N/ #CN1:IP(U^C&A""1WH1]4&#EV"H[[)DQ M8Z_+Y1UHY)CA 2A>SY@+)Y;)\69BTYY/FXYXE6)-C050%M@1",J3'U#B!R*Q M($*-'SMVD-B!?\>''6$\04 @5?#$'@%+4!&(19P%,@44/SQ111UX$!# #E1, ML4-!E841QAX5XN$@ 'H,L$<@'>#A02 5AJ$# "@"L,8 !& P@D ;X5%:_FB& MV9;=6J%9M!IM$[$5FUU'LB;23 48QM-:Z2WPVTXQ"698=1%%A-E+'S7$D$DH MZ;&2<WH UD$>96I4D),9:%9;=ZRUZ59;.[VVD48&M>:408VE]V4&"WRY0%)' M>:6!4WA!)%0'2Z7EZ*.0FJ5;6X%N)]! @1[5UE%-7LI7!Z VU]>GK0%GT6,\ M6H3=D0FU%N1B;BZY&D>:)>:=5 .!I%"G:SYYZF$+I2G2L$<RAN>E3187**A; M(?41;A/5*=-P/]8$U$H>Z!!=<RLQET,'.ICD@7CA7=K=FL=!9EQHHR7IP0(> M6&4;11K NP )88#Q!!2!4&$O#3OXD=]^^NTP_@* 0V@0R(9Z #A %4\L:&L& M +A117Q05#&%:GA 044;.@20$1YA+!AB(".H%E(@'@#P02 B.@# %6$W#!! M>V U;W:W"I11DFXZ22Q''L%V4Z<XL5D;7GY*)915$*49K%1^ O>;EB11]*E? MR3FG'*B_K24;D$!*55%&LJZFZ0)*R<837JY"I4=6+Q&5[$L%*/HL4BA=M%ND M@ =^EF.!%E6D47P;9=1'6;:JAU SB-G<7HO.152J4&J776L]%7MJD[RB!IK1 MON8*6F/97>IVD[P19!5J2+DFY*^QG393F6B_%B]0O.&E998O+99[V8J%&MVW M,^2PAP@TS##"'GN4_ED2EM^92QI!M1(TVH[C.6E[1.^61T"% L'[P0?O[M#& M?!$5P$6_)/RPWWX_U$ "OE.0P/*['H1!@'MAX$-4QL<'-^QK7PM*2(*H\(-T M96!]F F$#D)4@T!41@\P&] 4 ,"'+^CH#0#P0 !\@"F*B<98(1$:FEXE%<,) MZ6C7&PZ/FM28RXVK<-UQRIW\A!&>0$4N#9E;2)32/D!I+21?VPM@7,*7HKS$ M,4.LBZD2\D2(O*EPU9$+#G$3KWH5)3<,B59!&K*00%D%4!O9R*&,*)1#::!1 M@HNCX-KBIK=5:DY0N=V;-.*7,JU$3+BS"!#I&!M=U=%<O%$<DP8R&<29_JU= M;0*C0Z;F-K=1#86JDTP+A407M&6'.XRI2A1E0L1E82]3>*.=V_1PP>UU 8S MT-8,FA<NY:F$B5"95?64MACP,+)[HPEF[2+C :$L8 !7H8$>\""R8B[@ TN@ M 4144X!^4>$)!/-/-FE !2BPAVT$V $8-*"O-FSL:!IIS[Z@ :5J>\)=JA0 M0O(0B ^=;(,IXL&"1F.R?M&,10$(1 9VH <2A"LB*?*90G]F+IZTBX9U69.K M#L.:0BZ)BI>:5UV6XAN,O(LN@!()5@BBE9CT<#> 0H@"TOC'/>0@)=#[6M1P MI-#76"HC$/&-5DK%$+/E22IVV>E$A$(OC"3$_J.[D==1GH:7QUWD61B1HU0C M144HU8TC=\J(%D>B)B?F#&PF\1*CZB:G@G2.-JG#W*]DR- ZS7-V9E7,)15W MI*!5!"31TH!6G H:(2(G#\%+(5 L=S4U5>F+'"4>2&^5D3R,!FS448FVH".= MY:0DD"F$S"JM!YGQ:,^2Z>JLNE1TTBH$HIZG[0-!7N:@C[WA">P!8'[RPP,= M9%,_8& /#:3$GAE080?\@FM (40%*H1!9 2@@1N"RT@"O"$,*<N B*@ @/%% MK ,!$-$0 + ^FKVA P#0 1A@!( 2R 1F3GH5785W+K:4YHD4=4I[7V,JV/R* M=Q[AV]1"HH"3=B!0_N8A"99BA]#TI.<N&0@7#;Z6@3^"BI'L[1$A^0K%X8A1 M*0?I+V\0%<5.R1<B7AK42,X8*#,2Q"G1FHO<ILKBM&1)4[HY"*'4"$.\-NY: MT-N+CK7$*QJVJI/WA>@B&42[-*U&B#\C8D4G"1M4%:!"J3.*:8"3*\#BM3A! MLDU5^?BI<\4J(TFQB);YF[6L >6Q.!+5++WETG Q1R75.8^ZUA71YFI6F!D8 M /?4^LO'#:""L'W"-3^&V@?MH \>,^X3@."&_O! ?OHYV,"HH .4?: .G## M#I[ :12)C#94N!@""1* %3WA#;;!0Q7"X(00\2$0 1C(BJ10W0S S+1Y_O# M&V 64#QT0*!.H:<"8GV]TN0T./:U2*>"!91?89F3#K$)C&F%[&7A90%26LA2 MK+*GOO6.;0K82J .91+I-4D$7+OL$],K1:-Y26M^4IQ<:,P0Q!WD(3"Y2$(. M I5#-0FGUO'ALUXBE&+240_9QFB+%UZ6UA#E(PYIU4;V*A OS21JA1'3UZ:C M' $+2WB=8TQ%#-.3SK6F,IPK*UQ-A1DB3NHS%!WR)7^"[)ERM:+<B7CP;@<J MDP2&-<5A*()]Q&\P];Q*UQ*3"%PZ)AHL724B\("HTK0]<]WJ>NTBGV?'IJX, MQ#JB 8A"('[0A_RL,S[=C(\.!.V>?87A"PO@_@.$9CNP@>5V8<6L 17\,(5U MLFB_? B0?$86" F=DP "$,5QFL8@1*$!OGB"<T8%8@OP$A?+H/9BI3 DREH M@'RL.DRN]YC9[W F,30D3 K!_,)3>2F(%[&;50@S5CT%JR<ZW(D.:0]@OQ' MP2Z9 5I51YK<D10GU&I(5OV4GJ40L4HY,; /#[.3UF2J<8QZ\4.Z(I/?((7A MX \+5*K35.F+9/8ZY<Y23#*FKW4\5T6BK]EX):?K;3)(!Y\;@15J8[)!$>8G M1G^*T1-W)69$-G$@-1(( 5D9H&-\050S42D-@2I8Q6W*$3D=8 31\T=+=('+ ML6 Z@#S<\AP]QSWI_F48QX$9D&0<I8$=JG$:&[$J_/($?? #2A!H;8<Q3[ ' M!P0$4! &/[ ;3!+:\ ?!4,"_P%<(P %:( ^:0<$F\8O*=(YPQ4?T!41---- M+,(1.E RJB%=@6 'U34@@8 !!4$"9%A=IS4SIP4 34@!-$&.@)4V/,YIU(1 MEU,V-[&'!GA\.#(U=H-3%E$E3W,GF=)?Y=-4=.1OV0=.CX,2"]A')4$Y_H=" M=($EJ?0;K>-72)$2VF85/50D"*<FY$81P)%B,)%O(O8Z( 8D5]%).T$QX<=P M2/0[X 041Y%R;S,21Z%S>]$\'K@2Y/9L(5=)(P<L0!(L;:-L<*4K<]&'_G6H M$'B8)*!#AXV!&%$$<:@A-*X#5AC('.U'167&%JUB+B4!&'K@',W1$K<D=6-B M2S.P=,PA)E('*GLQ/0BE9YK57"L(9:DB).GR/?ZH(X4'(7P 6U#@@S[H,5 P M!3H (?$!,@O0!$Z@ R*P!%#X TM ,/L!!$VX,",0!GUP35, !!*209SQ!&W0 M36TP!*I1:NV!(J!!3S*I/5LH(J:%!Q6!!V_077B@(&[ 70*E .TQ$%5P)N>" M&</A7J'S&D3T&@U%CD[I.LHF-KTH'(4#+QK!* C10YB"<#[A-$!A<;?Q$O=X MCV;&6711))U3%*QC'@BU.%JI1@A5BP_!;$TR_G$@EC6IY#L8@1*'U3YXL19U MDD*SR' ID4*$815%0B6W$48!F$))I!SWZ'[5T3:+\99^143+1A==95^*Z'T4 ML4+[5E-/Z9DM!Y4I-6$D]1IGI&]-D@=!ISIF BH+%AVW%":%A8GDM@![\0'= M\BTZQAQ[$"XJL1<<%TO+H3SLN'.I*!1\"$EVEAB:U"[2J3C?TUR&$0 ZT 9M MIP,ZT =]=TWNL0;OD2"+]@1@<%H2-$LYX$VS=3\&LVGQ\UL0$Q]GYP:69S>5 M47BCAA P$FI!F1 !U08@U!H\F4$Z\%PO$C>!\ 8;% CT(8_$ A[H#&J\0:4 MD22F2$AGQ55M\42V_B$74)D[KA([*M48SZ(53[44/J,I9-05>0,L+R$3U7<7 MZ6%T)T$2A:$ W[-'..&B:31B 584@P$M_+40\?*'7Q)FO]$Y>;,1<E$FC&-P M"'<3,]4:&8=XA]EB):$!@?%@K9%API$E;V00>V =D&4\\4B<T?&(0(%Q\M=> M]4=D9Z-O=UH19W)':M-DN_$K\4=E0/4SN8.7T<9)QL*CPZD2"_92%PA3EP44 MT0,J*8&;LB1U(>A2"Y8\T*$#"T8#.O"!4K<7,W$<5<4G-W$:J6*J)Q11N'(I MW6,< ^ Q& E;_($QN*IV&#,?$* ?L12J,\ &=+<#?# _^L$R:8>K\!$(_JV& M/7@P!6[@@RQ#:BNB(-BE 29R6B^2$#"B! $04*8U @" $>!:>6[XDP)534]P M(QDP!4<".C@Q-0X1=&C#*U:TE(>AIT*2&WW";Y<3%/DF1%*R &2T4EK3)CHD M)X<"6+92HPWX-4YD$KVBE!V!%&C2$/%7+U%D18$2+TYUI&QA12F%$U<CI6F2 M4O7R+(<2$LM2-1JAC\VF!UW:8NWW1L=RF7R$._YZ$)>)@<"X8'L M$JT%_$' M&Y=S5,E($9S"'9IB&/)2$%26*QDA&:RW&=;X$[KT)#9&2%Z";/+U(TA4$LVA M/,K#'"D1C@+6<Y&S9KA96<OA4IB*G- S.1P7_H+=TB.6)'0^HE9)&9LPQR9? MMQ!/-I+K] 1\()[X:9)LP&E^(*T4\0$D, )\D#PZ,$M1@!_X<5O !5P0LFMG M)X5NH0<!=4U5@ ;8 R-38%JU!B.J*Q5XX 8SH(8*\B+I :[K8R%XP!XP,2*> MED&L5!QTP:)FZGO'.(UJ,FVO<QN*XQ!<R1,M>SD'46)(RU%$$354TGU9$S=K MLJ-\T6S*FR1;AA[ETQ91T[)C!99[Q;-.\1%9U"H?T29:Y+X/L6\D<2@=VU1$ M 11R(6L!]Q(SRV(>4%F4"I9C5<!\-!<V 124N1*?^HXH@2T>$!@CQ1F<\G(% MD2G7V%-/^9F+(:)A_DF=OG(VNN&6$45)R'L1*BH2"@4D/-HU91L=ZHB;T?%T MQCD"*[%TRT&<.? MX,(MT]&H;=K#8NNPO52J$Z,TR+(6;D))=;B'"]$N/B)= M0$">9><#\.$>/KA.^.$&"W(O^5&Y.5"Y3J<#/; #4$AWMO5;/Z @$7%:\+&L M>* K[#'%@< K&/2#M-83_<)KTU0$(C0@Z[,%S#0^I\4O.F A*S( // %*Z(: M3W"ONRA)&!6ROA)MK-$4?JC$;Y,K=<)M3 (MVD@2K),G7&(>5=-L13(M,\$L M"SA85V<8HND: _A%6A&DT7L1!M8WX%8;>T)FR4B813LW9M0D49,L#)$L_MC8 ML/\[5;:T8!IG'6KZ.)6)$D_T*1?8-6,B*M!!5!QU+M1&$-1#%_(%.@:K&_%' M/6%3<9UB?'>5!S@TF$#F.TCC*O_6FJ@B5];Q9BYEPSW\/-W"P)$UN<4Y2RWQ M/"U! P.=/#F0CCNL9LWS9H,U&W!E-.L<)'>Z?7S(4.4($ 0$9A!((, 2*E!^ M/'G"9\F3A$^@3&P#)M 4 AH\?!CQ00<-'3GXS- Q8P>;'3N I%39AX2?'147 MD"# )Y!$*&P" =!30 ^ 0% @!L*3QZ".0#\"=0"@ <"30#KQ "C0(4 '/08M M5ED:H !#X'$HC&H-$"80",$=NE@E$#6 @0S_BC00""N0 5R]= M2&!!AJP9 M]>RU2[#N8($+LO8$K. KUK@*]!#T +B#!ZP:Z [>JR%#!L@=1 _N0* TZ,]Z M1F,%C1CQY[YU.VCH6=J#0#T:9K^=JQDU7;ZZ/02^_7:!3[O%)V?,ZQ>LP-*J MWSXOO6=R!\"F07?8@_4G /#AQ8\G7][\^?(T.LSH0(,]>]VJ=8.>,9A&=]5[ MNL_8\UX_>P_84T^_X53+"K ,?"H@N('J4E !N]["BC?F")#+- ,[0(Y"@@([ MS$(.#1.HKKX&RD.QKZC#;3K>#IS+0CW8ZV^& -_+8;T]<M"OO_5F>(\['6?( MP3T^.LC!1QTN.]*#_CU&R-$]$?;(8(;/\O@L ROEPC++#G$+++>,NGPK,(%2 M7)'$MSP#\;,!8OI!*"">6(((*-!RHXTJJ% KHP4\(L&C(VG(H21"@TB)A!]8 MVH$$$MP @X0%\@@@K#BA\B$ ,H."(BD ;@, C# VG0$ !0#@BHI /, #T^0$ M"@O5+_ H,ZPVN@KC!ST" 2L#747,2T,P_QK30;CDDHS%O5+4[2T(H;M+L>?B MNFW!UQ2+SL+;I"- ,M!X\RXK[+!3[3/14)N+H.E>'$RR=1>#]K;A(+QM-KHN M ZL #X##+,4%;E/LK\Y*4TR!>NV:K#+,TC2X2]<L$Q<KB)E";V***R:O_CW] M,%9 O?SJXZY'[-A3+6(91>MQ!!E%8.^R^ JZ+8.Z%AB3Q1%-^^HKF7N"\;EQ MN:/RQ9T%RN-#NVXN;=L+%YNYV04T[/+I;MN:C]SUN-/AR3U&ZH"/&P7%,<<D M!>7OZI*JUM$#$FB@8:.M%^##@[69#% !S.8%Z[(O"PI,X 2_;#:C@F [L+2Z MSB5Q,\ ->J(-B1CR PBQ=AC!@WYEIHSR$CSP0(=N,]!Q2)+8Z&$''E)*U \2 M[" "+@\"H*(**(#8%(#I\/@A#(E2!8 @H,* 7 D L##HDU3E34NC0(@() P MN-H##[C$TG7YL @8@ DPH+.0Z+=.S$K>;<%E_LRY:T&+JRJ?^*IJ.IDODTP! M*;<=LT/1,&M-OJRRM3#<CZ4+M^<.76A->G..F(;S'( !3@&$VTME]-"TN@Q' M<Z8Y8& @A)C*+"A]TT',MD03/A"5IGZM68V!OF,Q%*:0/&53F<\PUIT]!"@_ MHL$/?NI3,A]E3 _X&<YL)C2=PED(>67"#<R>DX&_#/&"(00-?OJW',4LQBT% M\,Q<OL0]=!'Q0'@HCMY0(RYR::>)0&*/CHQ4$B3U2 <A^4]]UGB9&/+A TSZ M !]Z0@*-:"Z/'YBCYCZ@@0_T1 \?P)<'"OF!$:'K-FK*BK"DM9?/*(B#VE/: M7@+SE:S@(282>9P;_M(R@(QL9#@:6$!= +F#/RQ%+M@I28Y\](,H_"!1A^I# M((RF&0W<1"AA\$&9,@"4A'"%)QD!2E+>L!3PD" 0;T"5'515&)D1 "J;RIY/ M C"%0'PA #LX PHF%0@1$& (DZJ0AO*UM\B\!I-YR< B706=8[T,@LP!C2D5 M.)GL2$A\6('0^JY5+AI6;8:H >":P@BSH_5M@@?,%LSD)1DJ=F S"S*BAAQ# M-U+:#((D*DYE.J 8S40318;IEH$ <YT20DPU*F0I2VF LOMTC3TJVP^/K(/# M#'5G/9@1S<IZ5IDTY8]/>2N<!3WT%Z0J+%T9$IE*\7FL@9#I,!M:D98L_M2E MYDQ&JP,)E\@&LYWWC*V,--CAU?IS-1]U@(TC^(@'0* YS?7+D)1#I <80,@Y M?J!/'M "39R5[_NE8]_G6/?MK<@#AJ%3'<)3#X15P"9?84O7QW(0:KP!%D& M@@B&Z=<<&3 =S15@!X%P T:68R&2#,F5.N !$ Q%@AWH20]QU0@!HA 1R$&O M+TF!0ANF0!6C I5$ 566@WVJ"(I0_*XVL! C""H* J.=<,Q!X*P+CE]6IZ M^:*-:7"3,T'Z19XN,\IN=O6L!X+H.;=1P%\DFKB][1-<M!%7=\5E4HCM9S78 M@=J:I .8^$QHMG?337"RXAF)R@:""Z!;53#C_IL'XG*!\ZQM3^0%F ,2KGP6 M6B )21.C#)VPI2.>&) "5+;^W(>F'YN!"%13GQAA149IC9%U6%-/"24F01)- M$,VZ&*QE>;="'3I6!OJS0QJ1,#J341-7A5B0#:-+RG;)@]+Z,K*=\FAE:>61 MD?;@GAS<:% ^2L((MD8CN,ZQ V^U*R +\($_P9F/<(ZS7TM0YS_5N01]XN-E M-D("!FRD 'AD48H^$^3O:28CY[LJ@B/8EX[B;E-J09=&_C0<F7F%!]$= 8FN M0X 9<&U(-5HC%&(++\AVEP#07<(/EN HGGP&#TAY4W6'J0'EB04*7-F"00B M7+2D*@!T:YT"=)FJ_N<$@@X$2!3SAF"7M/@-D^F2K%\FL[[!D"A!!+LV79*( M+9Z-R0*.:2>&&@0:S.3G.LLY&GVU$R[+<*:I1M8>:H!8FGB"13*$DXQ&^*F: MJ@CG+>OC*[L6%-(&W@M,(L279.:5H@,?[4 FC!@,9+P=<I%8X^@I28"Z(Z@< M64TT.M+/#%4*8^\X$=P'6F1V2C,T"!$-,&;RT"+Y69?@T*>GY9H7;=Q%;<") MT)X$S,Z%LC@_U%A'/5ON47>XIM:8B@8D:=6!YGA@UP_L8+8;6< &.B)G1GT M!"0 P0<BP(,_W7GL)?C G1EUY[;G^<X1F/.E!SM'C5!QMN4.'+GMB9V\_I ) MB/6Z"Y8\T 8_! (" 2 R7/M5FCY !0P3H0(?6$00(:FU)"*9T0S<X!@]/I"* M=0G#%):P Q\$0@>TJPL L)D[ N!!A+$?[1MV'0@^* \L1."*6%QER.4-):/* MU%RH L$JU1OGTSISGV>$ZC2[T U#VWZ^S?0'2>C )I_8H2#5L&S%;''_-5<= MB&DB5J[EQ/?>FAF9:C27F?<&W/P!SU?]A<[@>-%&7\8!/;B06IO.@!#ZF0[6 M6 \L,QD<88V-6T#R4 \P:R4:P2']$ 'LX)AZ*B$GPH]*6HQ*4RK:R!DT&8Q% M(I@5B9#=:+\;L;'&^"H(*3+ Z19WRK&MFK*D_MDJZ' _&TDQ_MA!'W$/(0D0 MKM$#'=F!&K@[OCH./F*[$E#"L,LS1B$!MGO"MXL[*!R[MUN4$E@4*F0[#]@S MPIJC?OF*>:D,NB@IOE"O5>(PSZ@*I>$5S5(>VE$>#8 ,,R#+W@"-XB(39&9 MEYF2LN*/03$2DA@"*@HM#3J77VN#)?"!'5B"KN@0 'B#-_@!5,$#+DH0$K&) MH'@#.U <O(+5%&]2?$7WB(+0[H( I N".D#,'@"YW".PSA#)"(,)-HQ;[D9 MP-&?PX@.B>.-QU 7JM&Y$.,,&+$B$,&G_;FJKB*-+SHT"2DAS,@8&$LWS9&. M44(HL,@-<SHG"?*)_E*JEXR:+8'Q"=U GVEC/Q*9C2]Z,1X\,H@I%0:,1P!P MCZL)$!&@ 94A#1CBCM8P-W;SL$,SBEF,$)YA&C+)HFE9$4&RL):)"XEC)=8X M$"\Q)2)#C@,#CKXX#8AA(@+")QGC#AC*O%8R(R%IHR79@<VQ*\T)M#B+PKB+ MNR6$0BAL.SA;0IBDLQ(8.YIT.[6#+;)[PBA\0KWBHYG@(^2H+6C9BQ_2$.Z[ MJKW("S$4B#VH%0#@ ^Q!B[?)(QJ@@T&)@MBIE<D9'-,(LY&X&M52 AVHBE+R MH0_TM)OH@S7")JM %P (@U"1B@!@/S-1ID#@"AT8Q:]@@,B9E+I*BC90_@+( M@@*RB (WR(@ N(D1( C^.CCOLB2[8$H6^1M+XAOJ0"SBT)Z=N9(B"JA]["(T M++\7N9+/N""(61EX0T!LV8X!R0$FB1(1X*GNZ*&/,HV\B!D?0A_'\ LD @O- MD)9HPI=D 1;W$A\.4AJ5PH\H$:C1$#%YU+@94(\P^S+^^!C+Z++KF _=\+EU M$Z&\J(RYJ+*9X< $J46?0*>Y0"Q\0Q_AG*NONA+_28V]4;[I,).D 8P\L!*G M')=Q627/Z9B1$Y <&JOK%$DY0LD^XH,W([N7O#.W:T(Z2[L\>\DYJC-1 CN= M],DG7+N:Q+,XFZ-!2@Y\P9?(XD"#0D./(H L_FD#'6B"0""NA;#+0 "#5M0! M/N"#H?@"M*D9QKM./GB2(0FSF,,[?T$3H*J"T],!4XN"0!B5Z0"*-L@)7>&B M@^,K@E FM*@#YN*K5$R^"8(NJ"BEL/ ,* +H'B"+^ .1I.0N.@,Z- <X BX M=B*(H[3%P\B.N B@NU OL8RQ@>(2U;20+!D@@_(^ [RODV*2CUFZGHH2DKO. M*#&A#\N7[O )[.B7K?LH/VNO <LC>UF6CYI%^701^5FW[1B,I@*Q[JA.!F2C M":PA"=F./2A'K:H*AJM%[!@.<EE(-ER1 I"L?&JLQ5"0GL EIGRT1OJ5"<D. M,F&W,ME,WDR<@LB#_KB8@:;Y'](H0(@YD@ZX@0A,$I)H#T#<@RB!&[>:JP]@ M )D$2IF,229DPJR#,YV<H['K4#P*M#[2G#JC20N-0@K%5ZQC #[KHW\1Q\O; M&7&Y/+G@@#8@+BCP@R> B8F B#7RT=$* T#SJ]RHL@X9E"-U#SW@ 2;H W\Y MCNXRSUP$ R6(/(90BC,(GJSHG2>04H,04SXDD4U!BV*%JP) %4,") *8B"K0 M@7Y1O1V(O1I8ID[[H?DP$ YCKX&;D&];EA9$%\* LKS1JM3@(&^M&I4JOX$0 M(*LR.@QI5-=$0++EC^XPJ^V\$1<S&<PH3Y7:R (13K OH);D'RYS*8)_D,R M_"?A9!>":(Z(;,V/Z2GJE-66LIJ/\R$ _2ID-$;.8 S^"I/>6$\(T9 5:1I? MO,S+C$K@&)G#."#VVQ5BM"2=49JO.(QDP0TJFB3MPXXCRYC6S(^E$Q 9@,#K M[ E )+UV(&X@5"_DC,EY(&XVP$XNRN7O+02_1-O(X /H OAF"VZF:T47<E\ M 8$.F+.Z4]X1C5X^\BM\F:-9.8XL$2'M*T$KF8'+PHDW.:8W" ,JF((G0 L] M01L^(('A_%PA))0A68\PF-A@"U3 83X+N:Q$F0B*"(0!X GG6J9:8PH]*KC0 M,C:Q\)<)$HL'BJL:I0/(8H,^& $ H-&* (LD_LF-DMD#F[DVP& P"]LQY: - M(P*3/"61J16_A+(BQH4AV+BJ,$)#T# * &V+UC RD[&Q&)*QN>V.(Q%"VX2A MI=,! &(8=O$H8GNPS]!@SG@_% % OO 7F)'("Y+([%O<&A,-R-VX5HK."7G1 M8[D,U, 7^4FWV R\%X&, X$6PVBL#]DQ::&_=UN3AS46 )NR"&G=PK"RU'Q! MJF&QC[&A]P )=,41VCP2'\G._P4D42H[>*7"/$.[)61>MAME4/Z R^BC<OOC ME\FVS]T98-4<=*,<NDJ[/P.[*@R[.^NK.?.SY@,-&C -D=&2*>D V!&*WDJ* M#H M'X KRJF!.+-E_J":$BP!M0Z0@3YP Z&@@MMB@4[I \O#@^[RC+I@B)D5 M"H;@BM8IC;.X"<C9 5DI)325/^2"4%PN@$ X@_1=@#Z86,W9@2G@9T^B KL8 M 260XAX1&?:+)^H#%^,H")G)"\NYLL58('/S*,YP(9U"0#W(@ZW5/L&Y*G8R MJ)#9,O]HCP0THR3I#]M,*PM4VP&23(<TI^W5#LB"K&7]J,X8F-HBPW>"C=, MVV\EER4>E3<FL9$A$&-DF K:,78R3X>KIQ=!9].(F<:@JO2*CIRA'./ 39#$ M.#;<-PXSF,)Q2")JGT?+L0$:VTK>3BZ;L0?LCR7YP1GX !,@@4,2.RF$_KMY ME;..2%XULV>$">%&KL6>.=L/&;;UA!>^0I@$H:L_<SLKQ%"!11M"XEXU<X\9 M(2O^TCG&$0HI'0 \,)-0^C-&Z9<0;*=P&8 ,.. GF (H>(,1R#72$HLG8+VC MJ0DJ8(B,C1THD%+6HPS2JNWJ&C:-D*LW6]I < RB#(NT%*4<G9P=T $<58M\ MB0)":0\S NUN02")ZHE_P1:?0) 0(F+)/*F.1K?O(ULG:BS8$,C J6_Z_I_1 M*,FJT:F5T0$-($D8TA%\%.(2%,U/.PV$.I@89D,!.]5^>9]T:L[)Z+>9 :&S MW9\KD9BE;BGKX*G7F#ADV16'H@WD(!P@DN@._E$3Q@(6(2H6$7J_GL ,]?"R M'7)*["#Q+ I.PRKJRW.DHIO!U+"X&<NO ]VI3F:20-F#S,DC48+7EL30*$0[ M#F7NQ<B?=JK/QLK& DFHLUU/."*ETBCQN\C@\XV[#Y57.0M?N$J2JUF/(+D1 M'YD!")X=Y9DM#0AJ.GL; ^BE:VLW/;#$OI0(V7F"WF/G7=(5KU@.'?AM'GB" M./EF0M\)EA4(Y"JNCL+E\ 4+$.[; N"*SEH *@B#'9@)J)B"XQ#30"#9^QB! M0-R-ECWCICF6].J6XYAU(U*^ WSBC]ZAG9(Q?%)5+)'((R9B943D[2#-D O) M_1:!)-$12F6Q[MB2_B'F6F+G/KS1O^%0D"4]K[FBG*@LC@WI;6&W]FQ6S0T? M,?0K1\&I)%MDRL6HG_.&%Q&9K<]<3[,MCK^((%(B57U<&RUS7P[K$!F6:&@2 M,KT MZ-Q7_Z"&/5@8GRRL1RTJ:I+,T!Z.Q*0\IZ\*_'-JTZ3JZ'V"^' &_G! MQ-;@KH:)%&K!"K@*KY<!MW;BJS+_DPC(R9\42K;[*-T @1$ B<^YH2"!B-YR MDNL.GL!5\WLE #NXB[NHHJ;0E.%FYCD7;HE %1W @(%@YL:)^DUY9Y!RE5 , M!&=BKN5&).A"@T+2'-7CB A@ C1 R; @1,=+4[@-E'!A%N%DL,CR%XGF_E0M M8:_Z/(U]A'/NH($F\K!_\ZXL6HXIHV^K<A$0.W:';S'K"!*?"9">^NARL1X8 M5>(L-^+MF"A>S#^FY-6_2!AX>9\!,Q_7&!R&$:%S;ZD\O3&BR>CP) UKDYGX MX!;9Z WRFHZ80XZEM^G6H!N5C\86TK(,"5O0O#>G5.N$KPOKD!*T+<9^G'#5 M5"DX+PE2&BRT&;NRVP$&0.5%R;-!RRL_LN7VE.1VBB'[T0 !8P^4H^+?O^^ M\3-;AE$=C@N_DN:5G+,N! @2)$I\*&&0Q >$"#U\X,-GSPP:.B+NR=&A"I0G M4**\<?,F4 <\&CPP)*'C@X("@?00T-.!P$L/_@ ^!'H"1".5G(%VNGGR8XG/ M'4]V4 FD1 \?,$\T,LU()&.40 $\Y%E 0(/5 @06[-AY1BM#DA\*%)U2@.$" M*G<6@/! (M (#SNF+ AK-1"5&2-RZ.BP1X2&#AE@!M:SH$-@#X@]I/208<'C MP2\'#X;9H8.>&9=G:,[<0?-ER9);DF9).0^!U)15$UA->;!+T8(S9!#<(8=+ MBQ4ABLB\Y_=M&K9;TV[-NCAREL;UL!3LV"H!#WH40":Y(+'AZ1KT%&!9(,-V MXPJ4,V\]674& .K7LV_O_CW\^/#UU":?FJ4>Z02^MTQY-8,'+670G08PP01; M'HX-QA]]&2B0AU;%_L4DF08*.#;297WE )%?,[CDDF!7M59@2UJ1%Z "6[76 M'7[#5?;:<B_19QIEDWG8@0XD><# !SWV6,) )/"@$$($,?0!2?EY,%* W)4G M8&J*21E@ 9,UQYP'?&@ 7AZKM=2!=#0HUA)J#_*GP0?72:D'DW6QA= ."B4$ M @D@).3! A_LH(,(,^2P(6<84:'13QH%\@4 8AU)0"!@["<BFP#4T&@8/!%! M!!5X+L!&&QGYL90.??2Q!!5AA/$#$S]D! 04-T'Q*A0K[<=F72-IL(=6;P6R MPU9XDL1H(#0PL*,'@1")!A\>]''D" L48$8;.ORYVXTL!:BB81UTMX "_MIB MUA)^VP%(VQ[,??C9#'MTZ$&UM@VF(&G'&5@<>JTI "-^$M)G;XT?ZJ'N9>H" MW($(F(5F7![W$M#E:OMFH%R( <I('G[7=<"M2\XND-UT]VY\F0*!@>>@2\0M M1UMZ\JF\,LON935@<TW>QU*%7U8(VW2PF5B@S-T9E]I_K4%'XL-5"JA8NC3, MX(%P%8&9+F>QA4P:;/M]2_6 ,I8F;Y<F5PWTB\35%I$>8S$$9) $"22DCVGZ M6D"!9UD(8([:QML@ 7M(IR[*)&((IF*K?5<9EH"[]EK(4NIM%<UA'3DG06BK MW2-#.]2@6 ["P9K1$JH:2D=T I&D02!3!!"=_H,$X+'3#RA\T"S0JN41P!-4 M_.#'$GT\X4,?A0*ET:M3;.ZY&Z;CR::%6]4E70$_['05DM8%0L<")/#! !53 M>!#7$R31-8+9I4^1@42_Y3#"MP^7?/QA*V)F%>/F70:B7QUNZ(%%%BFM;H/, M=9<'?L#5&M/\#&\$'(V#7O22 3:H-K2YS/QR4Q$];$A@M1%,U[J6NLJ,!VSV M"8Q6[J6< !VF2@6P&&/:=Y7LE.8E\R/19:!DG ZTK(8VA(^ [M6D+47I/@,< M4&F 6#+,L&1CW@G;@ @G-@'B[#(;$H'3:+"A"LZ@+S?J3M684R":S:IJ,O*9 M?;Q4&:T1AV:U(8Y@_O0FEH(@)"%#*D&<>@2$ I!@>2-YUW_T)B; Y8<T6AF) M&O7#FM@$A@900MERI$2#/1B'7K"!S9KPB!4F*2HA!?E1D-JHIX=P!E9,$<J@ MH% 4'2T #VZ RX&(@Q)GF7!)2]+ %@FP!(SXY =]$,KO7)61S0%/E+':3X \ M<!9*8H6$.UE 77K$E4"X)2$D0 /E=C "/[C) TRH"3.EY1>+I&M6J;E.R"QD MH;-<2SK6NHS2.O2;&4"Q U+$4>;Z]!G,=!"1 8Q7(TV&3R\YK)Z.;.2]'H;& M<X&H9,5!3==>TJ7)O"AL^ZK0OK0"&<B8T& ;&UU=AC@ES# 21([Y4BHQ_G/# MD8ZT0%L*H!&_HYQ8"G2$2231 /=3&Y6*J#*Q,U&48@8<I[$K?W_I#'!H@(&- M^1!HXTF>U:J4-9@8+8!B=,T]E],2-Z')DFQ4&Y .LA D\2PZ,8W.E/3SKICD M 4Q@VL.]>*B'/!0&@OGT&F(BV$C:*.=ACF$>=V@3LOSL@00%^L"PG!FY(CG3 M+7SHDR]OTKGAQ8H+0XD"& (AT\'D@:LZ&DEW0FC3*;0A=T 12E-$6;L?A#:T M10' 6?)S%K@M+WH%^,B.P)>FTC% (!]P@PY(D"4=C* &I\1+K"" %&GI0 =\ M*X[(IH.8<%[,0/AA#H[<*:V*&'<B.8#:TB(B_H*FG3&&5OJ90-\*1($FQX># M@2EREMB!LB:P/H*YT4%/8S+EH$>)6RN.4C\*H.@T5U/G)"K JO0O=Q*1/H%I MC6.>1-(%MTQH!.3/BG+XF/Z8<%^D 6%=N2/>EFP)9<79%Q$_PZX]**TO-!!. MNCCT&0<.#FC,.>]5!+/6+<+XD6#3IY? ]IIA^H@!@W7F0DBP@SM%#RLI,BEI M%&-(/M1@#QG=TO]B[($]C$!<9())?@#DL"6B!KKA2:]JFL/1,1&N.R2909(+ MT*,XU<"2<D+2!VC 2BPX0G" ^VJ>DD%,$RA"E*I:_1&MZ3#6,4Q6&Q-H]Q MA5-6R@VF:D.I=A*(_C"\"@A4:!6L_$R #C+5SK"4_06$ @[T-$M0K:#7, 7 MB#Z [W9=V$D;P% %[14 #9]))YH_=B"B5@B63<+5<@DPGL_\B3/L]%-$,L>7 MB4R$,Q \:(#^:=.O[:NN+I;J:T*DL#,>$HWN=5<&-)C A<WU2>6IM@_!:#6K MO"\P'\/*Q0#4+9<(;)Y+&XY+8MD<!O-;/G[D6$PKPQ_P>"TE3O7C L.;8]:D M9N!;PHQF]/(9@6EF8,+1#U4:?D^CP29%*7*I .<KK]<<,#6P])$F4Y"0$C" M3I=$T@8 IP$2$+P\/F.KCD:0+(D5 #5GE([!B#, U\AX7UV#Z\+6ZS5I_B,& M.<4))DEJ3$XW \GE$2C! D+@ 9SL$B=1V!RL_(!*JF2 !-Y"IJ^V:&B3*T<B M._@!F%PR<*!YP'EOV.6K@%<4-%1FT,*,'@/X,-LSY,FVQAK("&["F"<T:FTZ M4HD/^*)LS%2&!EE6#6,N4X"/"]M63",)#48@Y.@!;C.WJ:*TTL62/2#NW $G MMTT'^56J@9=,&5;-;!PXP=@8:#9>6U'LZ5O4,7VK2E8ZX5'#<YA@.F=OZ<+1 M(OL"'!T4-'GTZ3?VW3/&GW&_@5(-6M62J"W:0+B1$-HQ>DA45^FP*R+H>AI$ M6!_1+H>W--^96H12!['8'=#GQM$ :HB(!C _IK049ZX69"X7!OE25P(6M.) MB&ID17X8UPZ("?,X4&MTB;J(S%R)7+UT"0C6"'& (+DQ#+B B3Z)2+F$2(/X M&A^(B0%X )V0@ 200 VHS1_D748LQ4U<FMYIQ!OP1U48QB2IGU>I#EW=1V7@ MP;5]R<X C?/ RA!@&DX$ A0DRU:@B5N4! /N2C.1P!3\0$/LP%PL0%3LP/*8 M&@%TP114T2)!$7!$1&WD +A(C# M"9*4 _T@$&4@ GL !#H(9#P@ JH@ F8 M@!_:%DG8!@31AX Q',/96,WQ4YBEQGF0%WI(#,Z,!X 8#+C]4WFXAKJI1H%P M8L,)6V;-U'B 4 H-_EI^> N(J,M$W 8MXHB3]=$Y%4#V[:)Z-!T8@4>+\5^2 M"4UXW$V$N4;M(13!I4:7, [*S).ZW)NSF15BO!C01 A,296,$0=-M=C71.(I M%LV6!)::.=.08!+*39W!* D*:F*7D(B.],#K:( (-$R284:TQ9<#E54(H@8& MP)Z'!6"XT48>:)",G)&'8=&O@ T^>H .: !K]4B=V!8#"(^J5,JE@9WMV,03 MF)WJ-,IW)$8?0$$;3-I.0$& ) KY14>"K*1WY%N)@ >G39J>U<X3^$$5A,$; MV $7[("FM)'U,, /0)-M\< 2B(X?]%8@U,7:U)$'F $5W 8?_ D-B !5_B+; M^UE+CR B#P !$/ADP+C( [E7ENP (JZ!"1CB0M#' (3(PT3&BT&&<N#4?=T> MPA2($E4-6[7$M>1,_7S(8*0((MG7U?@0?0'1=FB18*0(BQ@&?U5)YO5:?KB$ M8LRB%)$8B57<O2D&F\ $+^ZB1)69UL ,E$T;:T!89> E,OI<N'7?T2$')X;8 M9W@&TVQ@['@8F1AAM*5; >5E?
casseres@apple.com (David Casseres) (10/10/90)
In article <6156@ethz.UUCP> czychi@ethz.UUCP (Gary Czychi) writes: > Meanwhile I've got a mail from Sean Parent <sean_parent.snarkmail_l_z>. He > says (I hope I am allowed to quote him): > > > Once upon a time an Apple engineer wrote some code to calculate the > > page size for the ImageWriter. Unfortunatly, he didn't realize that > > his calculations where poor and didn't always make best use of the > > machine. I just talked with Sean about this. The calculation is one which may cause an error of one or two dots in the width of an ImageWriter page. Apparently it causes more trouble in the ImageWriter LQ. > > ...Well, the > > ImageWriter code was also used in the LaserWriter SC adjusted for the > > memory requirements of that device with all of the same original bugs, > > yet new and different printable areas. This is one of the worst cases > > of propagating bugs that you will ever see. Unfortunatly it cannot be > > fixed in existing drivers without reformatting everybodies documents. Sean was mistaken about this. The LaserWriter SC code that calculates page rectangles is not derived from the ImageWriter code, and does not have any bugs related to the one described above. > Let's summarize: > There *is* something wrong with the calcuation of the page rect, but it > wouldn't be opportune for Apple to change it in the near future. And as > far as I know, there's no patch which can be applied to the driver(s) > to change it to more reasonable values. In the case of the ImageWriter there is apparently a discrepancy in certain cases of a couple of dots. In the case of the LaserWriter SC, I can see that in the case of A4 paper you are mistaken about what the page rectangle is, and in the case of legal paper the rectangle is not what you think it ought to be. I don't think it is fair, on this basis, to claim that "there *is* something wrong." Your position that the values are not reasonable is based on your error about the A4 page rect, and on an oversimplified assumption about the relationship between RAM size and the legal-size page rect. > BTW, the memory of the LW SC can hold 1.048.576 bits. How much room is > left in there for the actual page? The page is prepared in the Mac > itself, so in the printer should be enough room for the *very big* page > rectangle. The bitmaps that make the page image are built one at a time in the Mac. In the printer there is firmware that runs the SCSI bus, receives the bitmaps, deposits them in the frame buffer, and controls the mechanism. This firmware uses the printer RAM in various ways, besides the frame buffer; how much of the RAM is available for the frame buffer, and how efficiently it is utilized, is not self-evident -- and I don't know the answer, except that in the case of legal paper, the rectangle that is calculated is the largest one that will work. David Casseres Exclaimer: Hey!
casseres@apple.com (David Casseres) (10/10/90)
In article <1990Oct9.035859.10254@agate.berkeley.edu> lippin@wish-bone.berkeley.edu (The Apathist) writes: > How about a PrGeneral verb which gives the printer driver a slap on > the wrist and instructs it to tell the truth? I'm not sure what you mean by "the truth." The page rectangle that the driver returns is in fact the bounding rectangle for the area that will be printed on. You want some other rectangle? What should it be? > Most programs could > turn this on without reformatting any documents, because they format > them to the user's chosen margins, not the printer's (and the > printer's would only be getting wider). Those that can't print on a > wider page without reformatting (blech!) could let the printer lie to > them. Aw, for pete's sake, read Inside Mac. The printer doesn't "lie." The Printing Manager (whose behavior is determined by the printer type and the printing environment set up by the program and the user) tells the program what the page rectangle is. Whatever the program draws in that rectangle gets printed. Whatever gets drawn outside the rectangle doesn't get printed. If you think something other than that is "the truth," perhaps you would be so kind as to explain it for the rest of us. Sorry to let myself sound annoyed, but I *am* annoyed at the misinformation being published here. There was a time when Mac printing was very poorly documented, and it was natural for people to misunderstand what a page rect meant -- but that was a long time ago. David Casseres Exclaimer: Hey!
omh@cs.brown.edu (Owen M. Hartnett) (10/10/90)
In article <10603@goofy.Apple.COM> casseres@apple.com (David Casseres) writes: >In article <52424@brunix.UUCP> omh@cs.brown.edu (Owen M. Hartnett) writes: > >> 1) Microsoft products can write to areas which are within the "minimum >margins." > >Yes. Some applications, for their own reasons, restrict imaging to a >rectangle smaller than the Print Manager's page rect (which is the >rectangle defined by the minimum margins of the current device), but most >applications allow drawing into the entire page rect. > Not quite what I meant. You can print (on legal size) a larger area from Excel than the Print Manager's page Rect (unless this has been changed in the new print drivers). I was working on a legal size form,and discovered that, using quickdraw, I couldn't get the same area to print that Microsoft achieved with Excel. Please note that I am aware of the excesses indulged in over and above the compatibility guidelines by certain vendors. However, it's difficult for us small developers to sit and watch somebody get away with adding a feature that you would love to have and only be told that "there is no way to do it." > >But please note that you must be very careful with the concept of a >"lowest common denominator of printing power." Your examples of a >LaserWriter or LaserWriter SC are capable of printing a wider rectangle >than an ImageWriter! And what if next week someone hits the market with a >printer that only allows a 7.5" width but is otherwise so wonderful that >everybody buys it? The program might then join the ignominious company of >early programs that assumed "the printer is always an ImageWriter," or >later ones that assumed "If it isn't an ImageWriter, it's Postscript." A >well-designed program needs to look at the page rectangle defined by the >Print Manager at print time, and behave accordingly. > Your points are well taken, but what about a vertical market application where the output device is specified? Since applications programmers are currently checking for color quickdraw, FPU, etc, why not also check your output device? Also, please don't get annoyed at all the printing questions. Your company only recently (with the "Learning to Drive" article) let the cat out of the bag with regard to disclosing information on printing. Years of non-support have created much legend and lore about the intricacies of printing, so it's natural that people will be confused as to what is correct information and what is not. -Owen Owen Hartnett omh@cs.brown.edu.CSNET Brown University Computer Science omh@cs.brown.edu uunet!brunix!omh "Don't wait up for me tonight because I won't be home for a month."
djvelleman@amherst.bitnet (10/10/90)
In article <52630@brunix.UUCP>, omh@cs.brown.edu (Owen M. Hartnett) writes: > Also, please don't get annoyed at all the printing questions. Your > company only recently (with the "Learning to Drive" article) let the > cat out of the bag with regard to disclosing information on printing. > > Years of non-support have created much legend and lore about the > intricacies of printing, so it's natural that people will be confused > as to what is correct information and what is not. For the benefit of those of us who are just learning to print: What is this article "Learning to Drive"? Where is it? Should I read it if I'm trying to learn to implement printing? Is there anything else I should be reading, other than IM? Thanks. Dan Velleman Math Dept. Amherst College
casseres@apple.com (David Casseres) (10/11/90)
In article <52630@brunix.UUCP> omh@cs.brown.edu (Owen M. Hartnett) writes: > You can print (on legal size) a larger area > from Excel than the Print Manager's page Rect (unless this has been > changed in the new print drivers). I was working on a legal size > form,and discovered that, using quickdraw, I couldn't get the same area > to print that Microsoft achieved with Excel. I wasn't aware that you could do that, and I don't know how Microsoft does it. Perhaps they have found a way to do it with embedded Postscript, and only on a Postscript LaserWriter? > Please note that I am aware of the excesses indulged in over and above > the compatibility guidelines by certain vendors. However, it's difficult > for us small developers to sit and watch somebody get away with adding > a feature that you would love to have and only be told that "there is no > way to do it." Well, the correct message would be "there is no *supported* way to do it." Apple is certainly not alone in declining to support each and every hack that some developer has gotten away with on a particular version of the software and hardware. Apple makes reasonable efforts to avoid bombing out useful features that are hacks, but it does not make unreasonable efforts and it does not make advance promises. Consequently, such features have been known to stop working when a new Apple product comes out. At that point, developers who have stayed within the guidelines are in a position to laugh loudly at those who have not. David Casseres Exclaimer: Hey!
lippin@herb-ox.berkeley.edu (The Apathist) (10/11/90)
Recently casseres@apple.com (David Casseres) wrote: >In article <1990Oct9.035859.10254@agate.berkeley.edu> >lippin@wish-bone.berkeley.edu (The Apathist) writes: > >> How about a PrGeneral verb which gives the printer driver a slap on >> the wrist and instructs it to tell the truth? > >I'm not sure what you mean by "the truth." The page rectangle that the >driver returns is in fact the bounding rectangle for the area that will be >printed on. You want some other rectangle? What should it be? Apparently, I was misled by Sean Parent's letter into believing that several of Apple's printer drivers miscalculate the page rectangle -- that the printable area is in fact larger than the drivers report. Sean also wrote that it would be impractical to fix the bug, as many existing documents would need to be reformatted. I suggested this PrGeneral verb as way to avoid making the programs of the future pay for the bugs of the past. To keep old programs running, the Macintosh OS has kept many quirks which have become hindrances or pitfalls for newer programs (file version numbers and the poor man's search path come to mind). I was hoping to (partially) avoid another such feature. --Tom Lippincott lippin@math.berkeley.edu "No problem is insoluble goiven a big enough plastic bag." --Tom Stoppard, _Jumpers_
russotto@eng.umd.edu (Matthew T. Russotto) (10/11/90)
In article <10652@goofy.Apple.COM> casseres@apple.com (David Casseres) writes: >Well, the correct message would be "there is no *supported* way to do it." >Apple is certainly not alone in declining to support each and every hack >that some developer has gotten away with on a particular version of the >software and hardware. Apple makes reasonable efforts to avoid bombing >out useful features that are hacks, but it does not make unreasonable >efforts and it does not make advance promises. Consequently, such >features have been known to stop working when a new Apple product comes >out. At that point, developers who have stayed within the guidelines are >in a position to laugh loudly at those who have not. Unless 'those who have not' are microsoft, in which case developers beat their head against the wall because their conformant application was broken by some patch or another placed into the system to keep those bozos in business. Disclaimer: I use microsoft word. -- Matthew T. Russotto russotto@eng.umd.edu russotto@wam.umd.edu .sig under construction, like the rest of this campus.
omh@cs.brown.edu (Owen M. Hartnett) (10/11/90)
In article <1990Oct10.205616.3028@eng.umd.edu> russotto@eng.umd.edu (Matthew T. Russotto) writes: >In article <10652@goofy.Apple.COM> casseres@apple.com (David Casseres) writes: >>Well, the correct message would be "there is no *supported* way to do it." >>Apple is certainly not alone in declining to support each and every hack >>that some developer has gotten away with on a particular version of the >>software and hardware. Apple makes reasonable efforts to avoid bombing >>out useful features that are hacks, but it does not make unreasonable >>efforts and it does not make advance promises. Consequently, such >>features have been known to stop working when a new Apple product comes >>out. At that point, developers who have stayed within the guidelines are >>in a position to laugh loudly at those who have not. > >Unless 'those who have not' are microsoft, in which case developers beat their >head against the wall because their conformant application was broken >by some patch or another placed into the system to keep those bozos in >business. > At one of the Boston Computer Society's MacTechGrp meetings, we had someone from GCC come in and talk about how he wrote the driver for the first GCC PLP. One of the things he said was that there was a patch in the driver which he couldn't figure out what it did, until he did a search on the string "Excel" which finally made it make sense. The driver was checking to see if the application which is creating the output was Excel and was then acting in a different way if so. Now, prior to posting this, I ran my copy of FEDit plus on the newest LaserWriter Driver, which turned up nil, so this behaviour probably does not exist on the new driver. Also, I don't know what version of the driver (or even which driver) contains the string or whether he made the whole thing up to try to impress us hackers. -Owen Owen Hartnett omh@cs.brown.edu.CSNET Brown University Computer Science omh@cs.brown.edu uunet!brunix!omh "Don't wait up for me tonight because I won't be home for a month."
sean_parent.snarkmail_l_z@gateway.qm.apple.com (Sean Parent) (10/12/90)
In article <1990Oct10.204910.9685@agate.berkeley.edu> lippin@herb-ox.berkeley.edu (The Apathist) writes: > Apparently, I was misled by Sean Parent's letter into believing that > several of Apple's printer drivers miscalculate the page rectangle -- > that the printable area is in fact larger than the drivers report. You where not misled at all. For at least the ImageWriter LQ and ImageWriter this is true. (I believe it is also true for both the LaserWriter SC and LaserWriter II class although I have not looked into it to be sure. But the incorrectness is relatively minor in most cases. On the LQ I believe it is .17 of an inch in page length that is lost and the ImageWriter loses .06 for a standard letter size page. (Both drivers could support a page size that was 10.5 inches in height). There hasn't been any special PrGeneral call added because we are all busy working on the new printing architecture that is completely new and different and this problem becomes a non-issue. I also do not believe that many (any) users really care about that last piece of the inch and they can get it back if they do care by specifing no gaps between pages. The LaserWriter driver also has an option for maximum print area in the page setup dialog. I do not see any problems here other than inconviences when you move documents from one printer to another (and there are many more problems doing this than just the page size). Use the page rect, it is your friend. Sean Parent "Quality unattainable in a reasonable amount of time."
omh@cs.brown.edu (Owen M. Hartnett) (10/12/90)
In article <10608.2713216d@amherst.bitnet> djvelleman@amherst.bitnet writes: >In article <52630@brunix.UUCP>, omh@cs.brown.edu (Owen M. Hartnett) writes: >> Also, please don't get annoyed at all the printing questions. Your >> company only recently (with the "Learning to Drive" article) let the >> cat out of the bag with regard to disclosing information on printing. >> >> Years of non-support have created much legend and lore about the >> intricacies of printing, so it's natural that people will be confused >> as to what is correct information and what is not. > > For the benefit of those of us who are just learning to print: What is this >article "Learning to Drive"? Where is it? Should I read it if I'm trying to >learn to implement printing? Is there anything else I should be reading, >other than IM? > Thanks. > Dan Velleman > Math Dept. > Amherst College Learning to Drive was issued by Apple on one of the Developer CD Roms. You don't really need it to implement printing (in fact it might be dangerous :-)). What I found the most helpful was technote #161 - When to call PROpen and PRClose. Just copy that code into your app, call your printing quickdraw calls from the DrawStuff routine, and voila, instant printing. To paraphrase Bill Nye, who once said "Wagner's music is better than it sounds:" Macintosh printing is a lot easier than Inside Mac looks. -Owen Owen Hartnett omh@cs.brown.edu.CSNET Brown University Computer Science omh@cs.brown.edu uunet!brunix!omh "Don't wait up for me tonight because I won't be home for a month."
wdh@well.sf.ca.us (Bill Hofmann) (10/12/90)
In article <10608.2713216d@amherst.bitnet> djvelleman@amherst.bitnet writes: > For the benefit of those of us who are just learning to print: What is this >article "Learning to Drive"? Where is it? Should I read it if I'm trying to >learn to implement printing? Is there anything else I should be reading, >other than IM? "Learning to Drive" is a document which describes information *printer driver* writers need to know. Unless you're writing drivers, there isn't too much reason to read it. The only thing of interest is a complete description of the internal data structures, which are guaranteed to change anyway. In the process of writing the Printing Manager section of Apple Dev U's new self-paced Mac Programming Fundamentals course, I decided that there are only six fields you need to know about for normal printing: rPage in the TPrInfo record, the first four fields (iFstPage, iLstPage, iCopies and bjDocLoop) of the prJob subrecord, and the rPage field of the prInfo subrecord. You'll be happier if you ignore everything else. Printing is really fairly straighforward. Besides IM, you should read the Tech Notes, in particular, 72, 91, 118, 122 and 161. Especially TN161, which has a more up-to-date printing loop. Once you have a printing loop written, it's pretty generic. -Bill Hofmann