sdh@flash.bellcore.com (Stephen D Hawley) (05/04/90)
A couple days ago someone posted a question on how to make clocks that could animate nicely and weren't too slow. Here is a binhex'ed stuffit archive of a Think C project that I whipped up this afternoon to do just that. I found that I could get 12 40x40 clocks going at once at about 3x read time and 6 80x80 clocks going at about 5x real time. All drawing is done to an offscreen bitmap, and stamped to the current grafport. Routines are provided to: * Initialize a table of cosine and sines * Dynamically allocate space for a new clock of any reasonable radius * Set clock to any time (h:m:s where h, s, and m are in units that step from 0 to the number of entries in the table. Sorry, you have to do the divide by 4 on the hours). * Draw an exisiting clock to the current GrafPort with triangular overlapping hands and a bounding circle. Things you might want to do with it: * Throw it away. I wrote it in two and a half hours. It works pretty well, and is fairly efficient in spite of the fact that it is also general. It could be better, no doubt. * Have it draw the hands in the current grafport's pattern and line width. * Give it a more decorative face. * Add color support. * Change the hands to be more decorative. This stuff is all freely distributable. Just do me the kind favor of not stripping my name out of the comments, and if you use it in a program, put my name in the about box or something. Steve Hawley sdh@flash.bellcore.com (This file must be converted with BinHex 4.0) :#@4TB@ac,R0TG!"6593K8dP8)3!!!!!X'!!!!!#(VP0*9#%!"3!!,"Kb6'&e!3! !!!!!!!!!!JCND@&X,Q0TG(N`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"849K85d&)6!%!SQA[`+*Q$Q-!!!!!!!! 4'!!!!!!!!!Nl!!!)f`!!!!!!!%pf)p+i'F1Q$TNb)(K-#H1QM!Xd2KS%(&M`B-) fBHLJH4Ka)N'$#%@3!%N6KXe$%3dD[&!"BQ4*&f0!Y!"aTNa$159TbURMTLB)-fr NY-4j4q!C%$0!S'&iN!"-5j*XjM3!`A)+R6*f%#)*FiG0Q6`JjT!!332%$*X`FcD ++F1'cCLJ$YqfB3'LaSXF-+Db0&+'l8mjI8(3H3-#m-JjG15N%92R+Ph'G%$!mBS @)4R#E4"U4,K'S&-cBH`%"I('$!M+GScU"G%'V*X`Q8%)&)`'iC`hGH5-FDMh48S kHH#81@JDmFiaNIH!@!QLi4h*E`4'"LiF4&'0)-VJ54`'K*JdG1D3!$B0"r#B0(2 5[(&$eAF#0ZZ2SU&VCdH$2L#J2%RLK)Vp"SKPP%C-q[&(K9*-II&@8'6-XB863cc aK"4%60'&I3(5-5!)4q"N"K4"4HB5'b$+3FGr5EJ"hK"[-$J(#LNdX%F$#3"f"RT A#C9@L,,CPm"PGBMK&@ePd"''Maf'm@&L))44iSNT*F#F31!eb9iBFZ!%9QNJR+I EN!!,bM(5DeH*9dGk26ATA4T(i665QB+p3509)+c4&aaU`KFCPq@9F9jkklN`*dY 8S)%HDfG'YPDA*ARPe&T!!@EPPTX*C3C2b+R(hQ`D(@T''Pi*QN"l0%B+!JTTp!! $ACXC#8)2-P&aa403*2%#$6[)PK!)%%T)i45jTV(##Uc@jZS+X-T+UkdS!#PN'5R d1Q'&+B!`B`)*,18''3Uf++D$DA6ad+ZRlQKL#LJ3d833@%J4""&d[[9LUf'NN!# #MpNQ''D$@i6VJKhNSQ!Z(HLUbkklm,+%*JVdfZYM(c3H8H56+*MJC)Mhd[L%F'j 3E-+)6fDF`"36KeMaaHID"h%$),+4aeEEHY9!%f(B'36-C+"J4dPd"48''A5Pi@D -!i1`-a[ffBKM'6UL`D223-[QTRhAY[`b8d0f1JI12LU0'01&P9(5&dIl@$3HG1A aRj3XhCM9P8DA9%E2MB(YCKT`-L@E'cF9pM2HFp"&R%!)GCFB56h9FCBFJd,RmKR VaHQGCV8KZ+fST0BS0KYNj`6Vd5#8`'Z%d`*,SpBiNlZa69E$k'-6Ef4&a4XSR)T (`&$6U5fhqcS)f0K(LiY'#LqXfqkl+E"!B`)SJ!8V#VQcY(Zh,Qla1qI"rdZmm3J l612eRE-4-1JVM1jVKEG@+lUd[rV)"1'ceikUQlVVkbfri'FrI2%([kXmY[2l@If f4Ee[@@pci41A(EEA2b+),(qH1aAjN!#L![DKM`EU-erTh!FrfTe+D!+8R[fU"d% f#)q"ab2#rjJ(3UH)N!#![6XJm%UL3"4fMi-0L4rD3*!!"j%0!6jc+%2V(PLNh,L "BBED'P-bYM)L3!8+LCPCcFV`,ULJ`%edf@%2!H3d%rNYDPUNf[I+F+1[#F@**B' L8,5'4U64U'KbH--GK*!!Kc,j#$jT'Sb4f%"(1dCT*BeVe"['N!!4fm!K$,[jb@L kijbRj-3iG8"1EJUhVI'BB3jM!)a0eN3(M-!"FbV`cHQ5f-D!Y9'0d5V$(G5)!K6 Jm3`T5)mHbP#DG%(&H`P)JfQ3!)LH8[B!9M"J3V8!3`FMSL#B'4YP,k(5!Kq8aJa 6b'4If2-m)B#(CRK535TAQCK@[M+@DCKP,De*"fcL8THRBL-cR@N'D%TcNlm%!6+ YY6`RcJ%1EjJ$+e'!5R@@4'5D+kBFMSM-Kd@*C(53!)+Ik&!aAXkKMFemCM3ekBC QLJ%hfjT$mZ4*Pe@"3!BU`1*(3rUc"mUaMf83$kcSp`)3i'Sj,*%"R9J+!KaN$Te A2'NG8`S#%i!J"Y8D9KcRZ0-jj)SjKh6+B,,cYXcTX53S9HQT[MR8U0**TLbCQM) IZNk*[V1L2UKU8FNP9MmQ`*pXL'Jl*cT0LeBQ#'3JJe"Jj349X[+TI#bUb(#+9V@ kNk*Z$5*FjISUB!U6RYLb*clef8eq*JCGI@ARAkH*b`3S0Trll#FTEiN[BKUcS$4 Df9Nh@j*QdQqP2r04C'm(+cbSPV4TpB(cH2MDCCE@"fJJ9f6ES&[B0P1U-1KD%3I Ud$Bb-5@A&@`ELh[,"RJY4b!i*C23+NDfr58`GF$6CX*bb%5HD6MHf9*Z(#Qq80) SZCPp,(0[keA!qN!-EifV((#*hXDLFVfaE5pP49CI1E45XlCP`h%EJ0!UPJ5rG*N 2DqLL8HH5F@PRI1*dBBZK,NC'`A-*5h@C%m6)G'G%4+**'TVUY2%'m5f9e&XE"&+ hZ"@%TqBGEB#EQ9YBSD'fA,dYEf(9"Ka$e!G50HTpN!",&!1c!F%Jd'+-RJXfkDk 4`M+LNG9`PV8NFLeL(P*MNjiNh$*#&ikTTC&#NG15P#CdS@YMMPbjSLB3,j8KPX3 N46RT59*&V'3Q1PR)I)43Mi%-Bhc'-ah)15rI5TDY0K(C34!cjXM!+V,kYBP&-GS J(a8"*d&XG-8@I@EN*$-"4X"*CTj`Y%fEZG%LB`i4#(1(T83Q$lLa$N-LBkVZJ#D 4Y3'-#d!!JL5!3!f*!X&hV85DScfQ-6b-p9X8ja4J)bD3!1)4@hTF*KPNGqFlR3` $RVM8K!(C#5b`'hDZ%B)#8fN(0T1"&LK&QB!RY,2$Q[lBU4GDV"RlB)H4lH&4@I* GTj`&ZZDP%A1b%'Z-J+8SDC(F',6PNqeUTdpc!*3Ea$-i&H@aFVYl5QBQVUNjJ,, A*mL+)RQL9&F6+BK0NP5Ik!!FQV5)$,X'!F((Zf,+q-6JFC0$(YBYF*CF*X3P&NV '2b8(a'6ZY,5aYeCPV-4+`STQ0X-CIQP-&a68B+BPI3%1k1+Q&pa!C1kqC-PFjP# FFIeRCbH$b#jGQGDKESNq#M9XK2J'XVpp@b*E!UK)92FmP"hZIr3jBEDlBMHd11- 0fBj6VDbhTdraCNbCZJmbM))EB&hY@Nrl#f)!!l#rHqaq[h[84$Sd5f1DlRCR20l M,QV8KeleD[H4hY[LGYKr@Xf$Vpb*eq18M*r&k$%@2EQJ6N@T4cC`Ap5m$$V[Sl" hZ2ES-A[b[lMfdd1rkE'RNG`cFhfFjAh[h3FmMITX-T34c%FF0P)EY%XBI(SaaLb #3ai),IP)Zi%Z*N#"qC[TrN'$4k2i9hpVp9@64R)!Z$cbaQMd&KDk%Apjd&(#T$) !!JCND@&X,QKTG(N`!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!"849K85d&)6!%!SQA[U+*Q"5J!!!!!!!!"*J!!!!! !!!$q!!#BC3!!!!!!!*Pm)mL8-C2'64N36B*JN4+%#)JD-'!d#$L`i%%L#4Ff")% #"CNhGF5`+C-L)d-L+5B+*'J3"*8V6k!Ni5M$"3`3+N$-F"'$4S`D1@6BU%%M*8@ @"jd-HI*%#T%T)'a)E&$'6Cdf)2Bd5$#Pb&)R$RZ!J-&LDj-N6UT3+9)f!C)R9D3 dk,1MJ9dkHH#8@3PL$KdjGFE3bET95"Sk6F,!`IR'M*NTBq58U9Sh`4`dEq3-PK1 '$!X3D$khq6cR-jl2HHVf!8%N64JfG4[JeFZhp@ZFYYP!q4Zl$"ikCH5i!3(P$CX m5-+i)6-5BCJeCB)NAiiL4GhFZq8iKpl30C[U1`!#!!KND@&XF(*[DRN`!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" 38Np+5d&)6!%!SQAZLD*Q$jJ!!"LQ!!!!!!!!$VN!!!!!TfB!!!!!!!!!!,8D!!! %#!MJ!Sq!&Ji+9%1`SF1(%#%L)*-Q$"XiFYkS!55!)"3T6j3X#B+%b8##J"jq$$Q bj-Q!+3'iB4IaSDJblK)pa'!UQ,L'&3#3!"%+3&m!5!*I0J`fVU%)!*S!S!KJ+3# DKNS"#!25B-JE0h3bXJ%"*BbE-Q`)"S8#J"'!9J(i*)8S,%M$#`!1iJ(J+8#PZ3r 4K4&JK'e!$&KG"+!*B!#mQT!!)dZH6,QbjFZB-f[Hc,QcjmqJ3iXH6EUdkG1S8kY HcEUekpH`BmZH(I'a3)*+`@3Q3"U4`)i0q4(8MCRhk!#5!R4mL@riEY,)P6FQ5-p jFG25J3-J$J!14--!3!$Jm10JJ&6`##JS,a!p!3rXckHA%GqpNrVT#H%R3'UrXIh Qi(F!I1DK4j!!FGKK%4!-"34%K"4@51(3!3%&`!8!+Za#5N1!31#3!(ML4B3%35- fa0Y!#!E8`Jj8e*4LH$#Dq#'-+f,aacrr`)2M2rMXb-q1rJ!T*)j"%MRN2d8LH@5 56#lTT*&3+KPPNe-q+5@50rl$6jE`!-)4!LQ"3S#A!JJ!5!!3Q-Q4Q@LU@@C+#9" N%3KMT%&((M'C'C!!RJ$`+B!JUUJL5*kq!5!#S3%GZQHKL[E*D%T"3!%&%cp8qN1 &-3'!3%$r`!#!,3dGi'P!#S3'Ma"i++"%*miiS3X!9,J+J"NXm*!!K"0%B1&U!@i FSFmrbTM!L+rr)'-#)E+DiDS!U,KUJ!QbFL-V+N+FJ33H1#,a"J!%)(&&I#,Sm)m XVJiJL"1eH!K#'`#`i33NUG!6"6i+H1%(!-[UF`B#5N"b"J%)3!1!!8l8!3)1#Z" K"J1eD['%%dAX5J!)$""VKJQ!&*c&)br`3%339!44E5UJJ(!&@5,JN3!#)$3!55, %1S%a+#kN-NUY8e!Ka45Z%Z!-X6B)@qZ$46$4XbmJ-!%#!@F`i'S!YSa*%!0Qd11 %2J@SiB39rfJ6"$i*3#$#%h#!3$-F!8!6J4B45!0-%2S!)!%F"G"Fa52DpTR+*8j i8E!,FX`KaaJ!q&U!1bEJSJ!I,b!-L"N#B2&)`8LF`k-2,q3eEleJ+,$a#`LN8JS )(i!#a,)NR%'%VrlJBJ)L)%"`KMNL!+&%*'Di!)#(`03kK"4&pmc#'54JRPI55cF Y+aj5"d5eeES3!-h6R$$ac3Ir&!c(!kNNXbXIXL,3Xp8'TmS1+#@JM)3)'(3H"$U DdK%!)4K!)d`8bIa$$b5)3*-)j!9l#Xe!B$i3"!!8*"!"&*l`MRm!!`42%!)Uj"D $0(!,!"B!43@%F!SN@*!!!4"-K6aNJ)'RHB)%@+K'-'L!!IDj33CRX)!8JR!'!mc `$"SSQ!a3S,qRi@)D8Y!K$k%A!%3!8BJpe%8!($%095#TB%pcJJa5!!!'+-'##M! $"kJJ"$8`!!jMk*i8K'!'I"ba$NqMJM45!3!(R2&TE&KM'mGS"J+FF3Me5*-[SQ! 'DM!J$18aJc2SD!!&-13#5**"#,!3""(SS4pmN!"'*#5KK$15m'N1+%)H!9!0E,$ `$$*`BHSF-%-c8'#(53b!"F#!!94#$`$S!)-$A#NVH)#"B%U%J$3D-3e*",#%5V4 M%!hf5!L!3!IpJ)!5*JL!-k"JKe)jJ`K)J!)!B#!,3KK#1hBh$IJ4S"TCN!!"2mS MK!a)!(ip%#GkSK!%-l$MI3!!3[2LD3CM&!`%HZ!(-ikT6cRmJ`i!@'C!cS!"Ae5 c"fD3!)!0USQ#TP&M#,+B)!(+3!!49*-!m*4RTS"J"Q[JNaqU)!Y'G`H$B*K$#6! 3KXBiaS-K2)%)4IM"!8J'JLp!J9jH!)(ikS##I0T""(4!c#4SJS0T-+0J2H@(&i3 K(##)J)8B5+SCT%%*T1C6#8b0je-aJ!"*k))I6V!U2h#3!&@RXP#AAm@"@%e3eUd 5`!#")!J%S+L,IiKLLP@m)J#bL-Yri!)-"($92k`K4`IFm`XNC#%XX(#&r1P$#GA bKa2J!3*qe$5a')!&*KVlMmG'GV)Jd-GP-D"B)EK"!C!!#%)E$!!0)!6K-3+!JH` NDaX3C)i!,l",461(J"GmJ9Z91`J*!'##!#""#-3B4M99B0`L)+-Be#$#FB8J"'! %!aU#X&jH42#"HpifYp`5!@pp#paca!"IVkVH0pV#AHpb#lble44jZf9Hp!+!$`E 8,L2DDl$[kPDmm[dYIFmV+aESPlqfIHprab[JbK(i95!-`)'l@`FP!%)0(&"#),a )"%!3)4#b!X'(#pCK@9QJ`b1Zm)B9-1*A'D$%GA#"3R!N#d#-`3"2m8l"B(%)-6! !%-&!!K"N!!!K!%()"C0&Mc@J1b-,'FK#4X)4I!!!+6XL'$!iJ*4PF)##$EHiiN# %1"+KC$(J!mM!1)3-"L!-B,KJ!&*f"M#N,)e$P+'VJK!$!9)m"5#!J4chfT`A2QF !QG,d!fF)L#Y-!)62,8"d*[J!#"D!JJ&)i3M[1-+PGA!!-&L!d)BZ'D)$JSK,'i! 3!IQ$2qk@Z95B!JBIf"3!#Q!'EYbdAXmSJLD1S%83$-"d,hLd+%!`J83$3!["6S8 N8$!&%#`"&#P!fcd*%!S2k06B3N!"%T)pl')(a!E1pM8V36e684YE"*F'!4"!S"" 9J`jP6-J'-'KQXbJdSfZC))B*Q#"YJbe"#8@S)bK'8$"38&J'2%$2%25K$hZq#Jd )&q(#pi%#@A%Ki[1B1!GN"B@)df2LiSXE%GkpVGjHT5-X`i-!6!%("N!$%V$!K3" 8B3B5b)S-%BH(V)J3FAR)LJFBPa802&lJQKB-"J%)K4&)J)5@+d(PMP!$!8VK!6! )S0T)"m84B!$@A)!J'9ah3Mj!S)bM*pd))VJ+!Jb1G"!N3HX&DmJpaB@2IkPE#*! !L$ZTAJ548JA%!!3"2%&NR3-mA#8(F*KJ$Z*!R!*``#&%hJ`3!1%1*`!!mDJ!3N! %KRL!0J6aX,Jm('JKHPb)RKHL"iESL5&kC)LH'D,R2"bS)ATXL*iESJH(k-NKH[J KRLD)I`cLUi2ijL"H1)X2b1*jXrK0,Ci"Piq$KaC2JHJMC['2Alai&MrFa9Gcm5b )[UF@6i2Sib$k"eQmjKG2K1L2D2&-L$jE&YqLa5YSm4I+`4c#R`-jX1,bFL!ArIG qF3!)JK!3VRFE(C%!#A!E!,!M%'KACZ!!K'-"$XJ!F8!%54!%m@F!FX)',N!i&3) +R0!-E8##*SL#l+)"I8)3GY!%36!%5"!!#Y!%B6!'5&!'B8!'C4!i!$!&!N'#PI! 03NL%R$#%'05#!G%)8a!%%"-!"M!&CP%',R!9C4#%R0!0C%##@XL&3f'"fQ%0-%J &-fJ!E4!'G)!'93J!9aJ!SQ!'"B!#EaL(FeK0&RJ5'+L"($J`(lL'9`J!-9&q!5% F!-#!$KL"1`)+VL!-(B%BfZ%,-$J%,B)!0MJ'9#!(B3!(F`!6#d)3c9')$AJ5L)J MS0!01[!,!&"pMpL%%--YV&J%!"!'"`L)e,'!SFJTSrL'$a!(5BL(F3#$Yc)`CjJ 'EK##Z+'#b&L#+kL%!2##-6L$0AL$1EL$2EL*31L'F#L(f9L([HJm'EL"(GL(9XL *8N%3YN%3!d!3,6)3kCJSZ+%T"$#-EJ!#p"J3MNFEq*L2qVL2r%J36&"0!@&Y%A! !mS!!8#!%4e!'G&!%6f!%p"JL!'"Y%L!q"LN%8k#3!!cTN!$e'*!!XB-!&U!!"aN %E-!'Ec!'D&J'%'PY4B!!GJ#53Q!%E$!(D'!%DF!'+%N3+SN!LV!!"`Q6G5#60'Q 61'P!#1!*"h#3!%0!NR2`Ka&*-3IJ!LkCN!"dB!4*i!CQm!BTf6)))!`ZHC&6@C9 AQC9fX9F(kC9'`!3PZ3CC+33)S!iZ+39c-*9S13CU1C4$J!!kd*8+D34@8)eCZ3! ))!X9+39Pi!CKd!BSZC&0bB!Q8*&%J"B+QCJ3fBi&S!!*)*9'-!94J!4N)!H+fBi *i!3+)*9@-!4#X*QG1CN"N3"L-*S+534bB!HSkCN%J3iJi!3'i!))%!4N3!D`Q3C f)*Ni+3)(J!$@`*0#)'8+D39JZ5d"ZCUHS*Gd`*a@LCA$53%()!N*F*!!bMQGEc! @+5N#&C!!!-D`RFRTP9E`RBVT!8pa!1*`P-P*0S8jR!U!!'*JRNJJRfiJ"4U*NkZ T!mJjPfXJ"@Ca"NcT!D3L!3e`N!"9i!BN5CF%kJB'ZTiL!!([XD"#)*)2kK9JN3C R3+%)S!!QJ*p$)!Fk5!H*kCplC3A)534T)!FPHU)(+J)*B%MiqCJfLD)8bJ!*)![ )fCe8@Ch$f3!+)!NrDTE01Ca"J!$qF+4l+D$$+33+S!Xr#TGbQCE$Z3!+i!Ii5CL 'LCMV55UQ`!!(+C9$J)E0qC!!+US!pN#Q&UQ3!'G+"fNDTRXP$ZBCTdh`"X&*T`& 4NITj"85JTXm*!!ZJ!hHUP'8!U(5k!!k!R&)*U%NkU![JBf@kPkBjTa"T+,IN$JZ !"*RTSR-!"fJi"PG"%#$!!JCJ$!a3PAB5"(!!"fbJ"9mKR-jM-JIJ#`[JPDi+Ud) 3"NXC%!2!$L#3!!%,)!S)`+Td)+YR)DK9"!)Y-!#5`!#kqUTX`!4Td!Cf`UcYk$a 5ZD[9HUhCUTMK36JqX!!fL!IHUUa-'4ifJ!!'B+j[B+)f'*I9L)j6F`"5UDi93K! 'J4!+%3!-S3+m3!d#)!m%`3%")!CYK!4"-!8P!J"ki$#Y'"#'X!5hdRi")3PA`!4 2-!3%i3NAUb!"S3SZ"9-YD!XI%c)%S3djXc-%B3j%%hm")3p6N!!&63#%!H%23q! %4R!%&D)!8j!!"&S!L`*K!Ep60"8L!N3J"&AJX`,K!PK3Xde3)6VJJ!ka)U#!L`( K!1Hh)M'")rDB%LZ##9Sl-,Lh)Ta3YJ03(5XL&`ri$`&"!-fa)RXK!'!lDaI5!MS 3I`'!)p9R!2#c)N2aY[Bi&(UVHS3lDeHa)QQ4Z!@3!"CkQi"h@`$HX5)RGlF1m(J V3JKJ+hJ1S!)!X#+qBEG`1fX!TEFM3VVfZ"GkDhUU1fYbSEHd8!"YX!CKJ!CX%!! b!!!#"QeKD@iZBfpUH6!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!&4&@&4,38K-!3#LCI@fSQB2F3!!!!!!!!Pf!!! !!!!!"J3!!-ed!!!!!!!!hd)MdVJC`kB1Q6)J4*!!541'M3Xd)KSdH+%#""''E%! XR!1(6CJm)1$)HA0'6TJf)&U!322Q$JJkEc5DG,Q`i4`3Epb!#!1L6CJa)1D-N91 QM-i`EXL!1&1'cNi34-2-b4P'$*Xb$8"82&Lb+%ic3H%89BT8kCNhEj316F0aTjX d2ZQNbHNLU`Ul)+E3+3-(M9%35-,FZCU(49!bD)#Bm6J(M3XaCGL`'I1'U![+E3c AH*%$KPfm90#`"6%D6KfVDB#5HH06S!X3))l%$1-h$0QN)1V-3CM'U8#h)#QlfB[ (DCihG8iSCC0Q64R$DR66`EZk*d)kIN'X%DM86"JlPEq#F22'k4`kFY,!J52`6%q 3!'j1)N6Zp!eBl!LReT%cTNaGV5"Fd4XD)-3JJdBBh@3I9,DPS4X)-X"!QP0be1( '69A4"b%H8*A4d%Y`cAF8#%hm"%)55A$i'`iYL0%EAT5a%9iEDIQ(Pi$BJ@!$JMD *Cp*#$p)!Jf'p3@8KKQ*S@!1(8@8N9aXfD[@#4#-FC)C!#$P"4"*"-$'&MJe8@FD 9EL"%K"4"%!'#N!!5#CK85e#JpjkE1c6JjQTh5&%'CA)Se8BHEZSj4Tf#1[@RQd) JPp402B#`ajT$3QVB$%)D4S13!#$d8@F$VEQ"3JS0l0&!!KFe&+FFljA+aKaED-Q PPeeXQN!5Ep&aK%PQS'!#IP"84NF+GFjDkjdYcI&TX,6feS44ZKdlDV*d'*%6(FB #qfbYUT*N,!a-@*[!&%d0XGp8FZJDKK`Mh@(YU#BP"@iC5M9+4@TV$+%S(FjHfjZ pPC&4EE#(rYDS%fAF3H`GZJEXKU#'QD"`SKEkDjJ)A%""d"YMV$'(#)C4)88944K 'hUdY%B%a
`F+S#E33!a1''G(P&#'$`+fhi0,4Uaci+VaZ!L8kTkUaI`jYQ+X c!`X#46f&iGa6BPJi"S%,NZG'#`,Y*FGZBmMPKRXeV5UP4!RF)GT9+)3J4"ed`14 T#LNibR)9F*!!%FCH3k03G)*(EjPdX(dd%(J$94Q,"kK%RF'@eN'aa$-)H03TDJ* %dE'ITacbB$-)2k6%S3k3!&XlH!0dfiehJLL%2BI)L*HKq(PPS+VUU9UTAQILLmI HZ+rM5FkZklR,MK(YC-!K+d@M!PJG6cl0FC0!3j8"jA"Z+99(hAH,Z*0N2+kD[!T 6PRef'5KFh8,FNbG32!L0UQ!lbfQ!KF)++k314`Xqc"&h$`-2mF368L$#&0$(-[A G,hrXXeQ`%T!!J2L"B(le+alqfV#rr[d[J!18'`-C+%%IS+44-&JJ!qPR2rbK`9X -$&`+@8D%QD3*)rC$)IhHPi$!$5jSCFLEkPMAJ0R*5A9EL&8$'X-l0rL1FX#$(DU )q,Jd"#YVN!!c6'&@BTM-"19i&I(*dhJ5YB&3$5aPFSR9X$DFf((0Df",d2HQ0#S cK!F&DHK"#%N$!XdCN66d)b!(Bj+q"(#S8B9$J46+`TT2JD!%$a55K&3L!a@F+8e `%b&)!#N'B`hb6@d`*#*4-!-B,"*#MN36%5,*XMk!`'aT3&X)RV!'9D@1Ek3a$"k N5%U@%BL5PL4N*Z1'5#Ii$i!#41%(Ge**3HT5Nb$`j3@$Z8"'%61AQ%5Q-S%j3&Q T,d&E5%-A%SM$&cB%"BmNJLaTD8d([Y)QfG`Qrfc@,8FYV5,NX3k0j*!!Ka#-EB0 6b--FK&!81($bCL)X!Kjk3i8h6-%[NR(@#PQ@-fqbiCbV5UGKd&"&`qK["qmN6Dd `NJBp)+3X-K(-28RP3PF#8C[HXU&%@'P5@,TKR#$)!kKmL#SJ#K&h5YcGieiDaCJ HX9$M+CKKbZ-A133,TiaMSQq`q$d36'e2DhK*6(E$QrZ)jLBF!LP)lT!!bSaN,AC QL"e#Z*SMT)#%U,S,faT(PE0#k5U--*dLKeB!bR"+%34dE@3i[H9'9-&4MKK03ae lKmF9k2&E6A'V#G!U"m1FY![iQfAh@+90r"@QJ)q0,&lV+NV(BV1b2J"*AN-*b3@ D%eaG8baF3E"Br$5@YBb&@iFX*`G2`5#P[k1YTf)J1J)!#@4TB@`JBfPdH3!k*IK !JG%13)(4'%#"d5JJEJ!$X+i!#'BNU*i!1LB1!$G0'!!kMlS$ZJ%-!#F!!3!!!$S Q+%&38%`r2cmr)3#LCJq,SQB2N!!!!!kU!!!!!!!!#Y`!!!!!@hd!!!!!!!!!!-E J!!!%#!M!!B5!$3i'e26[(m'!!`LUqqF[i!%+!#)+C%E4)SD-#FLN#F-'a*JdG2) ))"J%#K3Q2f,q!2'`CX#@,fA1Y-QcCd"4CKiXXZP!eC-K"&8PF8)%#d&E3ji3+3* JT6!L3DJ%)@KZ#K8T8`M+)b+P#"1#rUCND4*@S))K6S`F#4M!`T3N@UJ+&$'Nl&Q ",SJ)U6*AS!iXDT[305+3!'H,(D!#0U4CJ3q!ajB$03aB40"P(I`)%JN)"!!JJU@ 62G!Q5T)+2dG+RbB03$9Vel!$rR%))29U85(3#+Y"%!8!&!'S"-"PB!bE0f2@c(R )3)!5!!5`!f!'`!!!6cB9C)FL%!k!&`PL!"-!`NNGmf$XLIJ#iN-S$bi31G(h6pe m%&q!mX&qri$MK"Arf)1%'`!`X#!!&LbBi!mm!'0"+Zb!`#!#3lL6)!MCJ!K$0Nj iiGk"#6lS))-4ZM&KK44JU#%!((TS$iJLNQKL(3F'p'#,$9))#!3bEYKKJcKQ-f+ **eVK)iXU#LP"N63Hb8#55qlBihNZ"-N$!#"3bB!)'iU!MCNbB--NMdi#m'18Ac+ 3!-Sk-i)!!b!ceSKNL%VUf156$6lS!)8!B$"RRNFkJ+@IE!B%3jF-Q#%!("8B!%4 THF,!cfi`!#-%*N*JXHD@J[i!kD&'ZP23SU1f@HUT'DDk+TpC0[Q205mFi-GPEIK Ma$rSY0#V%[q`dd1[6[`$$a+p3L%K1S35-1HcK$B`C`q@%I#214*bkb+d2)"J`*a "f0JKX)Z#!4J-"b!"c$Q!"0(12[T%!`bf!G#MV)6,ZQJ1K5!i-1F3Z)E`3JJr)2b P"K*bd`)5rkLTbcp522%1!"!dh'fddrT,k)AVG#ZK03!65DH,f-MJSM8J*-+ZZr$ +5kqpq1VElliHKb[`1J3II($#K',3m--41k',2qCBM,('1@2AmEBI2qhYV5@M'V( +YiD3!!4f8K`KV$pD!2Ze&m8HkimBqrC+"V9I5VX1YJ$`X+h),R)$m-j-!d[SZ#& r+k%pK!)`*`0cmG!'!2ii)k%mU0$"E$rDS2,'iUM-iF+!1bk9""9425%&L[3JFFi "!2M3T3)m3!V$KL!J%%KS2#!"K!i!#(%++XX!5$3r-"3!FlcceJZ-$%Hm!!&k6V4 51a*ij2X#!-N$S%8232bMM`bq"h01)$,A'`ca,aK(!(V8*aLp%-`l$lhbdeH2MkN 6!S$+*)r5D#N!$lMlHYbbdplllpfcP`b-B$cN+3ppcD2(mk+R"H`K3A[F#eid[NG !mD'R"G@MarR5Tm$e53pqJ*0I*1U(J2Xp$"MlLphX!2#rG`&[CX-Mi2%5X-%%,T! !I3k%B!!T'$lXA$#$093I!d(i!a(#6ar```FU)S%+CS$!"IrJ"a1q!3!$lDJ*39K #%B+!K#!i!8AkH!%$E-FmM"PY(fS!%!U3!)#,d!$!$!D!6d"i38Bm&15-8&!M)T4 !#6-`3)aRG))F[d0#D!"""Pe#J$5#!!)U)!%0h4(#'54Ca"m%!"@R@"f0@VFr!T6 2(`MS%J!DFJB#5-&&rPJG49S($8"S%J%[J+8(KB""kc8b"UM%MZeH!%9p'%dIh!# 3!!LS)!*%0&)*N!!``r%Sm%YF-H#Ad)!2#(+`)Ha3%`!+D0!e'9!3)E!"QpkN86J 0!!)'S1!,Dm+L&S0!K#4iX8eL4!(VU'#mAc,L"Fc8K6i-!8Kp!Z+FDfVR&+$`K#P XF8[ah0!fZh00"p$SQJG4!%"hC&#YY$-)6%$4XXi4!!6)NdB58U,MfJ#jbZ%6&A9 Sj,RJ`39%Q-P-r%,&+'*k#hlpJ!9"`UN$8)%+(q#8!1`+4QKmKm,3)!!'4a!"!JB 4QJ0BXT)i0B$4qJ%!,MbLP[cJC44ri03$S-)C@Z8(+T!!%9C8'+1Xc3KU8r9R9+3 UPDRBI#S!ENSMSr($&eE&DPLjbY@[PT@X8"6V@31,LV3HJC1KS8!PRBT6"GJ9%AQ YAPB$beH[JT@`J)fL@G'U95A1!CmDqJFq(PQ94T,@!2b5T1e3`BiT3J!3!C9#%+l !6RHL#"h-qJF181''9%`*"UM`Kqe5X3GQqB-CU)M#F&2kJ48!`4qkq+8Bb0L'IcL bZXZU,Miqm+8!4)Yj$9(Y+9)a!3#Y!'*3H%%,rJ'&bZhY@8B$J#UX#SC"I3QehiS [%+`Ub963!3)IZ-iCd*(1)#`&"!KZ$c`2B$SD+H%)E$MU!BJ!"(H"33$XZYbDJL# %+53B`D6L+!BqLS!'-`!--$$"9pD!63D`q%X+-!-'K-"L"8L"a3K`FGaSC!B%d*K '0ql1#aB`9A0Ji4&BB!5lTR!%*3$"$-LB)JCJZk-U3!%V9#K#1e%NMecY5Pd"S)! N84%''(b!V3'S-"#+D,4rL)%+MrMNQ-YmjU)#J"ZbBr2%N!!!jr,a!hjrKU)rZ-V ,ZZS#!143QJ+FI!CCc0R-E1AIQU%h-3VdZAVkH(5G8jKR5[Y$(jF@VDBMV8)pq`- FSEE(bi"4$N"!`a8d!M6m"[dP&045(QFdKP9$+`m3Z,*GV(BeV"%!!L!JXmH%mN! UN!#4#RUXZY@[MM88!3I&pr@bf2A8"6miSHKR#hZ63-Jf2f"aj+ljJN%-1*`rd+( K+fC4bql-+))fqJ!BQ$Ke"G&"Pc,QS[FCi!F&J)%"lJH&)[D1i%A%T"h9"3!m`)! !lS,fX)[pm)Kr'`%L!%,&JaeY"*!!!!JNN!$#aL91)a-!`346i"F)#QkF+dAK"mC a!!a8d##%Xh!&"E%j*L8C8Rl&9"8!&M!"i)-!+4!"&dGSJb(J%)!T-J!HDhV#%Ll +"!3(4!#La#C"j#!%2#bk%mk),`PiRJI*r!-*Em!1%Uj!U!#)3!Irm)B6DR%3%"b 1$8k!4,1cm)JAm#![&HX[+%K`"Ell(FXF2N-U3!'#+kaF"(K)J-HP80mdQ8%"-Y$ !KB@3!)%S*#1+ZdL''Gb4LP'8h[!m))YC"0pi8*4JjH)!H32!B!!CB+!DG!G!&*! !)GV5Z`G!YUF""XKpKFrV3`Q5p)F6i!%#IJ!I!m+("5D+EchNRd(jc0I(mk-["$F S!"*"D)-"$"N%H&3&"K#ir[)$!S,RM@mV""$"mf$j"E@IidXN!)!*!S!%)4"M'-D K![aA"-K3$04!"2dR"%)!$-%!$B)`4A%M!J158Zlh![!RIc6b![8(FHF3!j3'!*` !JB`JJEpAJ4FiIaTSIaiBAh`!!Ne(45-iJHhR3bHBJ4XS1LYiD#`JJL4)J65)(4K )IbViJ9IbJJ!3JqkK")#J"KbJ")'J"Ja!")"!")%3Ab"!KHiKKI&P!9+)KAAJK'U J!&KiD!DJKAAJ!Pmb5[mJ#i!`"JBJ!J"J(Zi"#iFJ"J`!#-%J1c*31fVQ(V*3KaV 3*8+JCRJS1dK`"$lJ*NIJ#-(`-NFJ!`IJ([QhIq+!#1+3!!Kr+!EiJ)I!F!Jb-!$ #!!`Z-!#(k!c!F)M5F!KPJ!#5)!KL3!"H1!9!!!ENi"i%!8N"B8IBi4d"i46XKae YP`VQ*`R"D(kQ8)`!S![)5$,G*B`"`!$&'!!X%)e1%)eZ8)`#J!,&H!!%3#J#))` %N8d"`B[Gm4!$%4!'J4!+!3#DF"Nl!!N$3"i"`3(XL"f)4a!U!(K23"!fS(Tr86Y 4-499!6ehN4GEChE'd4-0J3!qBK-0NC!![NJ3!Y!31"!3A&!6!G!3p+J!C1#3!2r 3FTE`%!fa'3$3!#Y"%#&h!!!: "I was sitting in the Hollywood Hawaiian Hotel, listening to the air conditioner hum. It went hmm hmmm hm hmm hm hmm hmm..." -Warren Zevon