home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / x / volume17 / xbae / part04 < prev    next >
Encoding:
Text File  |  1992-03-22  |  50.3 KB  |  1,171 lines

  1. Newsgroups: comp.sources.x
  2. Path: uunet!zaphod.mps.ohio-state.edu!mips!msi!dcmartin
  3. From: Andrew Wason <aw@bae.bellcore.com>
  4. Subject: v17i031: Xbae widgets (MOTIF), Part04/12
  5. Message-ID: <1992Mar23.180001.15984@msi.com>
  6. Originator: dcmartin@fascet
  7. Sender: dcmartin@msi.com (David C. Martin - Moderator)
  8. Organization: Molecular Simulations, Inc.
  9. References: <csx-17i028-xbae@uunet.UU.NET>
  10. Date: Mon, 23 Mar 1992 18:00:01 GMT
  11. Approved: dcmartin@msi.com
  12.  
  13. Submitted-by: Andrew Wason <aw@bae.bellcore.com>
  14. Posting-number: Volume 17, Issue 31
  15. Archive-name: xbae/part04
  16.  
  17. Submitted-by: aw@jello
  18. Archive-name: Xbae/part04
  19.  
  20. ---- Cut Here and feed the following to sh ----
  21. #!/bin/sh
  22. # this is Xbae.shar.04 (part 4 of Xbae)
  23. # do not concatenate these parts, unpack them in order with /bin/sh
  24. # file Xbae/doc/matrix.ps continued
  25. #
  26. if test ! -r _shar_seq_.tmp; then
  27.     echo 'Please unpack part 1 first!'
  28.     exit 1
  29. fi
  30. (read Scheck
  31.  if test "$Scheck" != 4; then
  32.     echo Please unpack part "$Scheck" next!
  33.     exit 1
  34.  else
  35.     exit 0
  36.  fi
  37. ) < _shar_seq_.tmp || exit 1
  38. if test ! -f _shar_wnt_.tmp; then
  39.     echo 'x - still skipping Xbae/doc/matrix.ps'
  40. else
  41. echo 'x - continuing file Xbae/doc/matrix.ps'
  42. sed 's/^X//' << 'SHAR_EOF' >> '_shar_tmp_.tmp' &&
  43. M3%"2+`("2*``3M`7WW*]3-%4K!9;\=I4T<$$)7D@+H($"N`$??$MU\L4\[P=
  44. M\3K/T<$$)<DB((`$"N`$??$MU\L48\-JL16O8Q,=3%"2!^(B2*``3M`7WW*]
  45. M//@4VQ&O%1\=3%"2+`("2*``3M`7WW*]L@$NK!9;\3JBT<$$)7D@+H($"N`$
  46. M??$MU\MWO40#[@&ST<$$)<DB((`$"N`$??$MUXNW9Q'F8MI&\0("3%"2!^(B
  47. M2*``3M`7WW*]/R)E-'`G;@@"3%"2+`("2*``3M`7WW*]Y?T4K!9;[H%.T<$$
  48. M)7D@+H($"N`$??$MU]L?Y40#2&A3T<$$)<DB((`$"N`$??$MUQN%>!'F8JHR
  49. MB0P"3%"2!^(B2*``3M`7WW*]8M.I-("$`Q(=3%"2+`("2*``3M`7WW*]2A(=
  50. MK!9;2/B\T<$$)7D@+H($"N`$??$MU]OH3[$=2'B2T<$$)<DB((`$"N`$??$M
  51. MUXL4?<=JL?63?1<=3%"2!^(B2*``3M`7WW*]2*&-V_&3VA@=3%"2+`("2*``
  52. M3M`7WW*]'!Y;/PDP(,`$)7D@+H($"N`$??$MUSMS4D8#/VE(Z@$"3%"2T8$$
  53. M"N`$0'V`C735HD201LU)-/!),Z#4I20",_!),P#5%3G5-H&1Q6G5N)35'LG5
  54. M7UK78%V28]U,>5W@9^V20#,#:SV3;FV3<5U.7+V37^V3,X>2>5W?&A$1RLY&
  55. M&24YC+6'*'`&*($$98"#:(#,@,>53A6HNV<%E>Y4@;I[(!%8+4$$E^81ED,<
  56. M:[(R;\U8>X@"0S`%1P#F*].WR^4BN_<60Q`1RHX48'.]3B4HNW<&*($$98"#
  57. M:(#,@(=SJM0Z*%`#$:+/JM0Z]:T1$:'L;)11DN.B-H<"9X`25U`6@,>5.>E*
  58. MNT>]*9-1%>VB-H<"2*`]:0#2*=$21'!I'F$YQ%'I.>E*NS<$4W`$8+XR?3M@
  59. M?K%[;S$$$:'L2`$VUYN3TZD6*'`&*'$%90%X.*<ZM($"U)LR&440JD,;*%`#
  60. M$:+/JD,;]9WN9:$=U[O54,55"4\%E;[54(5$3:._+SMF^KQ[0S`%1P#F*].W
  61. M\JX60S($.E468'.].4ESN\>:$:+/6+.']:T1)M[C*1XI05X5,Z4=UYN3J(X"
  62. M2*`]:0#2*=$21'!I'F$YQ%'I.8GJ*#`$4W`$8+XR?<MJ-CDD0V#B/9[BD1+D
  63. M53%38'.]3$&ENR<#$:+/)6=S!XOR;)11DM,4M!&QPTX%E<X4NB<5AZ6_A2)$
  64. M3*%[4C$$4W`$8+XR?:L46+)[;S$$<HSR2`$VU\N#4`7%"1$A^GR;4&7#0=7U
  65. MVE\6VG&]3%&ON]?UZQ<$%IL'E<X4];I[0S`%1P#F*].W0.(BN_<60]#UVE\6
  66. M8'.]+S(KN[?%79PQ$:+/LM4Z-AQ4.(R%7L]&&24Y$J(6*-#UZQ<$%IL'E>[>
  67. M-H<"0S`%1P#F*].W;>07N_<60]#UVE\68'.]/D0;@,[%I9TQ$:+/VD$;-AQ4
  68. M`[Q4&24Y%P557)7P06"Q>5#IY0U5*#`$4W`$8+XR??MDJ[-[;S$$`RQ$KQK!
  69. M>PC%"1$A^KPD>VC#0:6^MUJ]2Y51DO,MK8,"ZGNK:!`$%IL'E1XNK8,"0S`%
  70. M1P#F*].W*F.30S($]QQ4ZGNKU2M$KPHN=V%S4)P0$:+/=V%S-AQ45U`6VG&]
  71. M/48;*$"]E.7=.(#^>"(55U#I/48;*$"]06"Q>1`A0"(0\8(G4C$$4W`$8+XR
  72. M?6M(6+)[;S$$]QQ45U`68'.]C0Y5*$"]E/4M`I'(I[A[K!DA^LPM4&7#0353
  73. MVG&]2-%4N^=`E8X43;5[0S`%1P#F*].W5>(BN_<60W#/03538'.]2#'/NP<#
  74. M$:+/[],ZKT/(<D#,Z,8^2Y51DM./:H$"C,<[E8X48[-[0S`%1P#F*].W2>$7
  75. MN_<60\!XO%,68'.];$0;4)P0$:+/2V6PP'S@4K#FEBD0J]/7NQ<9Q0L":S]1
  76. M*8$2R7NTGPY._\%=?;U[=IEI9:$=U^M4^R\55%#I3K7_4I$'@K$FIJA<^R\5
  77. M03`&6D%#8+XR?6M5-HD"0Q`<-%068'.]3J5[4J''OOF)$:+/+X-HLG*]K+3R
  78. M,^=-DE-(!!$=3%"2T8$$RZ0%"N`$"G!1W%0FY>U.2`@"3%"2+`("2*``3K`6
  79. M8=ZWT]FO*I\6A82$(,`$)>D$"O"1*[_58YVUT<$$)1D=2*``3M`7WW*]K-3+
  80. MV^$7T^F&(,`$)>D$??$MU^M4BL9JL:5<BA8=3%"2!^(B2*``3M`7MR<Y].0M
  81. M+@(VL]6&Z`\"3%"2+`("2*``3M`7MR<Y1B2.+@(VLT6:P*0>(,`$)>D$??$M
  82. MU^M4%<UJL05?X!(=3%"2!^(B2*``3M`7WW*]3M6WVZ%<?1L=3%"2+`("2*``
  83. M3M`7WW*].4F8K!9;8T:8T<$$)7D@+H($"N`$??$MUYN3W+8=8Q;\(,`$)<DB
  84. M((`$"N`$??$MU[O53\%JL35F3Q(=3%"2!^(B2*``3M`7WW*].7F*VS%FIQ@=
  85. M3%"2+`("2*``3M`7WW*]3-%4K!9;\=I4T<$$)7D@+H($"N`$??$MU\L4\[P=
  86. M\3K/T<$$)<DB((`$"N`$??$MU\L48\-JL16O8Q,=3%"2!^(B2*``3M`7WW*]
  87. M//@4VQ&O%1\=3%"2+`("2*``3M`7WW*]L@$NK!9;\3JBT<$$)7D@+H($"N`$
  88. M??$MU\MWO40#[@&ST<$$)<DB((`$"N`$??$MUXNW9Q'F8MI&\0("3%"2!^(B
  89. M2*``3M`7WW*]/R)E-'`G;@@"3%"2+`("2*``3M`7WW*]Y?T4K!9;[H%.T<$$
  90. M)7D@+H($"N`$??$MU]L?Y40#2&A3T<$$)<DB((`$"N`$??$MUQN%>!'F8JHR
  91. MB0P"3%"2!^(B2*``3M`7WW*]8M.I-("$`Q(=3%"2+`("2*``3M`7WW*]2A(=
  92. MK!9;2/B\T<$$)7D@+H($"N`$??$MU]OH3[$=2'B2T<$$)<DB((`$"N`$??$M
  93. MUXL4?<=JL?63?1<=3%"2!^(B2*``3M`7WW*]2*&-V_&3VA@=3%"2+`("2*``
  94. M3M`7WW*]'!Y;/PDP(,`$)7D@+H($"N`$??$MUSMS4D8#/VE(Z@$"3%"2T8$$
  95. M"N`$0'V`C735HD201LU),_!),J#4I20",O!),@#5%3G5-H&1Q6G5N)35'LG5
  96. M7UK78%V28]U,>5W@9^V20",#:SV3;FV3<5U.7`T0,F"`D*+@!@@L"JPHB`$B
  97. MA@P0410(1`C#18P:(%`D,0."#IHR()J$H2,G#1X0:>:`D%-F3AH]9<B`J..&
  98. M3AHV*.F@5$GGS1L0<]J$88.S)P@R*>&P"9,'Q%"<;SAZ!#FF#%&5:=PX!7$F
  99. MC9TR6I&V`>ORC1L6*1K"P`'BAD,04!2T$(ABJM8T.N_<Q(ETCE*F6Z>,D?.&
  100. MJ)`P<D"8>9/8X\BC:<:Z*>O&!0@J'T&@8?S2+)VA(`03-HP8A%ZB0`<7+OHQ
  101. M;8RU(&SD8!NW8HX9&:M>=>I&YIC"==IH72K&ZAP6(,34T>GFC<ZI*]_<`4'<
  102. M.`C&BDW&!/&;3?#)EC&#_"K'YAC0HE<?EN,:M@T<-.`J0'$:YQS5J*'K9J,R
  103. M3._HTU7''W+*,>=<1YEU]QUU813'WW6)F:&=3(3=,8<+[;%EPPT"4:$`#2[8
  104. M8$-&1F`'71AP*)7&>3:9!0(<A)TA1QAMC"4'<EB($489(I%DTHN$V9$&&2UQ
  105. M]Y2.8ZS!TT]AS.'2'#IE==1(86086PT"Q26#"P:A8,=00XZ4AEGA)7AD&$FJ
  106. MY.)45MHPPXAQQ6>$`EMVB44;3K3Q!E)FY&%%&27U.<292:8EPPTWN#!##K&]
  107. M*1]#<]:9D9%$(;D&=2GIA!A53\64%@TQY.""#(RZ":=$+M#`*`K%+<921V7@
  108. M$256DP%*QW99]80<=D2R4<:M,IE!6!O(A<&=56R4F1*E;%B**91&:E7<3'-L
  109. M9Y2K5;4IPT-QH5!'M8EE!<=R'?TD%!UCH+%55>6%(>6M;?QU*PA<P(!E&2Z<
  110. M89FQ9(P$DJOGUEM##!BJI2%L'A(,PZI7?*25L?OM!$),>&TG,`QB-#4&&RNN
  111. MD=49U]VEDXD-BO$Q2C7]A)?`,2#'IL$@U(`#;1^",*?"J][IA*]A?#4$LH-6
  112. MBN8:GP;D`FPRTPPIJC>L>I[0:3KUZM.^!FMB9C"6(>0;WQZ+6G$G4PPL<FEP
  113. MY%\>98*$HHHLCJG5>5J15W8>5M9P0WQQS77TJM#U^]G$-0&*JU:.Z12Q?S+U
  114. M]91T$R-EDQL@1X4@2&Z4,5W$94\^Y=_+9O4EQV18MM'D==N0Y4*I=NFWL7<T
  115. M"<+G0[KL,.DPUT##J7*B3H.=>()UJQP_$Q5TLT,;.@/!,K!E^ZE+$[S[I%1;
  116. MJI*KFE=^.;)2<TI43`7/,+`+.(RXO'PHB%<ML])'FQQ(WUK[DU]EC#&WYF(W
  117. M>!->34D.G?5>)UOW#`_Q4$5@@)ORM:9V;XF3S5!%P(SHC"0]`U2U@L>&X5G*
  118. M-:0*D?(2N)`%#K"`Z!M:?UXUE#G\A&K;N</LH-.^Q(P$7G"@PY(:AQ>G&,H&
  119. M-7"!W6+&P1EPZ2$HX-]^E-4?HDB')YE9&\?:MJ:?O($\)2&2YHADAC#4@0W/
  120. MF1%YY@":XJ"A9V-*3%2LI"J:H2!'.^I12?!0L->PA0;PN8P"<!.#^$0$!4-8
  121. MBI-:0D8;;&E#<F3(6R*BL`*BD4<C62/*/E(2&:[OBUMSX7]88L(ZR*$JTQL6
  122. M[1PR(AK0@%LUN]G1"C@$QI0A+8NJB$$\"<KFC3(C:`$!J&QP-(:P4CZY*V1&
  123. M2AFO-[CD5D7S(0SB<\NXN+*!*(CE[A(%R&*&$G7(+.5D()BK3\&'2[+\Y*,6
  124. MB`+$8;"3R9-C[L[8!I&X(0QG`)1K;J>HAWR2+0GCIFF&E$[#Z;%:%S)4#`@&
  125. M3GC.1SS<N>>+WI`K0.WDF[)$V#-1@`<=(=)'>+@"/7^5QR;-P5`R(-AM$NK/
  126. MI:&@>^RL@3L5:D"J"/2<8SEH0V0PHAG,3)S</*0:3:)/'^8@/B[M*#<+=BA:
  127. MU@`C.94C'>TX'R=8;B`MX=HE^0BS-]$2D/$<)*IL$)^2*F8UTCG99\3@JV<Y
  128. M<G]'I:12,7F4,DBH<C+)V$$<.E,V7B9!>RK2NP[(21#,X';RJ8CM,L(%`,H@
  129. M"&/`Y!SZ*@/<*$@X*$,*BT"BPE\Q4G-=^8I6Q&K)JJAO6M72E.%8(J8U108D
  130. M%QL"RV)9UQD`D'S8R6QRFO*MDV&!#E/XE16&4H<B76P*HX702GY5$JUM1ZVM
  131. MA=Q!Z'`$V=+6MO:"P1%8UD:6VC4&_ARG3!/Y(RDDU9(WS"$.,$*J^'@(!9:-
  132. M+1U0N2'P,:J[<D2!$VATRH9X3U%L8:D_RX?*&0A$ONG-`QS::]I$[1,$^/TN
  133. M8`7[J1PD"@8CDL%/TUM1)[FF!CYT*8"U^5TBF-6*6$0E'"<<P`[.B9Q.$$-A
  134. MR,"$!AG'->^5<$;G*P2?\,P-];TO=!D\A2,4^,`)AH%!OGNG(;28#20V,7\>
  135. M'&&VA&I$WS5""?F[X2.G5V?[04(:SH`&CE&9#ICI6.4<[-X<2C@&=TLO$CBC
  136. M!\\,A0B?G8S;8MR0,']W"#6^\=%&%`,W/;D-0Y`RE:V,!BRC0<LMN6A#(`S?
  137. M07<8!3+0L)%%&L@,JA@'='2TD6G`71`P(2%T`@$2)`("+2C`"7.407R2!U11
  138. M-X0&N'G(I16B5TU_^D,Y4%B"MRO+6,_YU*FV-*9!;;O[0CIF-!!('2N]ZDQO
  139. M&M0.P4&ADQ<?VS&$V0#6M4*0G;QERZS6!#L>@*^M:DQ71,&N1K9]EVW:46$$
  140. MPN<M-[B[S6H=AGLAXU;QN&]P[D4!>-[$WO5"JJWBUV!;4<_V-[M1!>YC[UO9
  141. M7WZILQORTH&WVN#)+G2=.VEK;4\\VL7^-D8@SN])-QM4IQZUM(W]:B,TH0A.
  142. M(`(4@G"$(BB@!"4H0F^@@,XRZ``$(I"!"!KR\A+0/)TW%T$,=AX#!=C@+4U[
  143. MB$!,+H0B'"$)3EAYRSE-$1`LH>="*$-7W""$K"`F#S<'\$T9#8*R*\!N.19V
  144. M!CN)$8'<X"%O9U33G^X$(22!"DT(`A2$<`4%*,`(@`^\X`=/^,(;_O"(/_S?
  145. M$\_XQCN^\8MW?.0?3_G*0][RF,]\X2?/>,YK_O.4]SSH1Y]XT2N>]*B_?.I7
  146. M;WC3MY[UL!^\ZV,_^MD3WO:TUSSN<X_YW0?>][P/??!9#_PY#7_UQ3]^Z86O
  147. M?-(GO_FO?_SSH7][ZH.^^-.W_N^UKWOF<]_RV><^]K_?>_*#W_OFEWSZT=_Y
  148. M]4O?_>I_/_S;/__ER[_^I\=__N.O_\WW/_K\]W^"%W[:-WX"*'L'B(#W9WA#
  149. M``,.Z(#!E@,P(`2HAP,/"`,Q8`1%<($Z!G@$:'T&>'@6R($D.`.@QX$9N($7
  150. M:(+&EX#;MX"%-X(DB(*?1X,->($WX($N^((!6'@S^(,YF'DVR(%!^('4%X*&
  151. M]X,SF(%">($9>(,/6(0[J(,P2'A*.(.9IX(/^(1$2(4[B(0^>(5=:'E:Z(`9
  152. M*(,.*(53"(96*(8KB'EE2$!&@(8PP(,NR(:"%X=BR(25%X<F2(=VF(!X&'AZ
  153. M*(9PR(%_R(&!>("#"'B%>(68!X4.F(@7N(@"V(@:Z(9C2'F2V($D:(G_AXF=
  154. MZ(9!R(E=^(E>>(?L-WBC*(:E^'B=F(,TF(J"N(J"UXI7R(*FB(-&,(LM^(6V
  155. M&'BXJ(2Z^'AT*(M."(K])XJ:^(:5!XB]Z(R_J(I5>(O-^(#%Z'B`Z(?*J'^8
  156. M2(?%J(?9V'C;B(C=B'_?N(F`!XZ65X[2:(30EXZ5R(KF^(R*R(VTR(C!N(Z*
  157. M.'CXZ(]UF(3)V(FZ"(_-)X\/2'C_Z(C)V(9;:`2Q^()E^(J%-Y&-IX(.&9#V
  158. MUX.#AXIY6(^!QXX=.9";^'>C2)$?V8_6F)#1J)'\.(^(AXD>28CJV(H9B8$0
  159. M69*/>'@SF(UH>`-:N)+2"("J)Y`P29.\&'@_F(U#F)1S0H?86'BX.'@_"86"
  160. M]X,;691A^)``Z93#F))1&9$:*!%*J)#$*'@_"9-0.8DQN8\M:89FZ91KR98,
  161. M^8;'N(YD"83T6)8A>8&FPY)OZ8O^5XUUR95"Z8!(^8-\R(W0V(MYN80CJ82E
  162. MJ(1,.(P=2)3T5Y&"^9*`:9D:R9C]N(&/B86)N91*J9B<V9/[IY5=>90YV9"!
  163. M.8-!")KS:(&C28*EZ)E\2)F9>(5\6'V$V9O7J(MNR((1B8JV*8;$Z8:G"9F>
  164. MZ9(*R)&EJ8FS69R`=YP-Z8"W68^/V(7=>8:DB)E9N9?7&(3/69FGF(PJN)T-
  165. MV9UOV)V4>(4HF8]MR8#7B).IR9?8^9`WR)Y<.9?F")^QJ9J#*9W7>9_+&9YW
  166. M28,CZ)\L":#J28SN&94%RIJ'&9["^9!WZ8X:JIW,&9O@&:%+.8HS$(>_.8#[
  167. M"*&^J(>%F89S>(_F^(!YF8*?J(<Y:**OV9-TR(1H>*+G&)V$IZ+2V(F[:9<P
  168. M^H8R&H6`AYLXNJ2*.(PW<)<YBI@5FIE!.IS"")+FR*&3J(5YV9<XV*0O6HE0
  169. MZI%Q*)[U&8/7R(=2.J9L28-^Z*5P>:`X2)!@FI!?N:(J":162I7W>:=4FIH9
  170. MV)38"(5DJ8NQ*)9NBIBC6*2&&9CSV8CW>9DSV:.!R84K:*@N2J=1V*:`")75
  171. M.93J^*,H:I3-R(*"::F$FH::>ID9JF.-.:5U")73J8MQ&*G[.*E,6((W,`0[
  172. MBJ.Q*(-D"99I&*N=N*ARR*ET^:JX&IR36H<3ZH3<&*Q)"ITW^9O'VJ;/J:3`
  173. M::"Q>9/0NJ:T&847.*R()YC9NHG;NJE\.IY7"9N`JF/1NH7CBICEBI\\":_'
  174. M.I/KZJJE:J!BFJ69*JY;JHCWZJ/$FJSY^:WQ*I]5ZJXMBJ^UVJ\Q4*]U>+"(
  175. MMY"`F*KE^;!IVIISFK`S0+%VNK%).HXBBY8&.Y1"RJWM^K$I>Y,CNZ8128=E
  176. M*!$H6ZLJ>X$:V['=:J$1B[(H2++I2:_WFK,1^XHV"Y+(ZK`_VZ<"2Z&1:89$
  177. MRXLH>+,*JYE.B:P]VXQHNIH7.HXFVK*3N)]FB+7S.9VO>+7J^*<>"[91NZS3
  178. M"5W#"8ULFZ1IF[3O:K1;Z[9/"[&R*K8H2+:P>J1\ZZ%YRZQ[2[5MVXP(.XU0
  179. MJZS^*KDNM:=J6HEQ>J^O6`06*`0&=JN+BX&*>JGG1YAM&J\SZYI7BKF(B+9S
  180. MJZA^.+I,ZZUO>[I..K"JZZ>LNX)8:ZN("+N_:[FS"[1PFY],68+'>JXBBHV]
  181. M.['JBHBQ&IA(6[S42[B%:KG7^JHE>K1Q2T"*2JVN::F5-XC/JF.CZXC-"9>Q
  182. MV+SYV:N;>(S1*[YN^;>W^Z>*VJ/36K0P(!&.&H7_^(GR*ZBA2[U?6[Z!&[$5
  183. M:XYF:ZXL^K^*&,#(VKUIBX?S"J>H2)`66[]DF8.C^*I,B*.;*9*V2ZJ66,'+
  184. MNX4DFL%OF9=Z2*/]N*.D>Z'ABKTD3)\F')45G+I1"8W"ZIOUVZ4E&,/=RY=O
  185. MBZ8WO*G-Z+Z\R,/5:IH#JIJS.Z^/"[D0>\27V;*RFH/0V*I.G,32"[*\^;5&
  186. M_*P-2X*8JJ2SR,6RF9]8N9`_[,1%[+']&K+GF<4Q+*=$7,=NW+2X2<!R/*F^
  187. MJYQV[(M-;,9#',1[+*0P"[%S[*K1NK!"W*!G&;%K#+KDB9I^3+]S?*(0RJ/]
  188. M")+]*9FA2YJ6G+!!G,DO:[T4:9DLR*4*NYY$S,;.>+YO/*HO6[R$ZZ/N&:_:
  189. M^Z[LF8WN:9ZV+*OP&L?T2[CS.9>Z:*D+V8#LB9)A+*N&UYV)2\6+S,>D::I'
  190. MR<RCNK^027BXF)LT++DAB\K_>J5%,(=$FG@VNK-L>::LN)UI^\V2J[SC?,MB
  191. M/'IEB'H*0,O3::V4=\_X;,SUMWCE/,V/JGDX0(&T2[^A.(76;,[P9Y#*AXGH
  192. M"-$67=`8/;\:O88</7\4?7P9#=(;'9S>6-(-W='`:-(7[=$LK=+4F-(D[=(R
  193. M/=$H3;S+>-.1^]`TC=,GW=,[G=-`#;A"O=(U[7XA/7PC;=-#?<T\;=0^W=)0
  194. M'=0_/=5$7=4Q'=4P78LL/013#((Z?=4W^-7Q&-9.7;_3>Y!F3<#):WY)'7R-
  195. M:($'6LTBO=9?NX&3F=9UW=34VX#6F'YOS7N#"&D:B*IT#==V_;8=6`0\JM>(
  196. MS=<%?*#7:9R!&GA`68IRG7J!G7L4[,(IZ,E96P0CRX(JZ-B,EX&B-P00>=@J
  197. M2-;L3-=XZ-5N"I0!"6F5S=A#T,K0Y=J-9X*BAP.7W7A0>-@,J->Q'9^RN([)
  198. M38@QD-M+2MN:'8/$#9%G:-I2:=RVZ-P.N(%_J-R]F(?-C:I+&MU!.MW.[=R9
  199. MA]YG[;'`W8M:_(=:G-P;J('A3=_K"'@,/8>%?9U`*;:EV,_&28$*J]J(=][=
  200. M[8]IK=X239_M'9#.W=X-_J(E6M^,;8TF:(;V6HEGR"$XB=IIJ((;V-RT':(Y
  201. M:9PFF-L-F(A:[(EUV(#N^YJ)BX<1#I'P/8=`.:B@@MLF6.%].:B52(2SRN%U
  202. M6+&'>H/V-=HW.*91BI\&;H$^?N$$5-HN;H&I.[TR/MXTGN4C..%&4+$47HP7
  203. MVXNF8U\<,N8Z%N0(AF#-/4<HWJLNY>;`#6DX`%TN]=W4;>-GWN6,O><E.MIR
  204. M#0.X#0.RO>#6C`-8;N!CRN6`_N7,/8?S#:L<XMZVC>=S>'1#,$>BG<ZY#=RY
  205. MW>(N-=IUF`,'^N>5GH%"D-M[WM^05N'-[>7K3;\!Z>`G3HFMWHLZGN6.^(>F
  206. M(^F[SNGV1>GA`UT%<8MOWNGT[>LN"87S'>R3;>>,O>HFWN6O_K+A>IU/6.."
  207. M_H"6ON.(>N)']]W`'>3&'NZEC@/#'I+%_NO/[N8#_H"/?N34/=]S"%W]W>Q?
  208. MC8?0^L'7;N.]&&P.N.WVW>Q#\.V&3N[(#NQ'9^Z324"<GE''KNI,/JA_24!E
  209. MFY!.[NNY+NV$+GHM_L&>SN\CZ(@4SH?G[?"&/@21?O`&G_#G[M6;[N:?#=R9
  210. M3J4//O'N2[?;O>@8O]_W;HL%3]KF6^/P0=HC?YVH5NKZC?(;/NYN4>[G[NN^
  211. M'O/U[MY9/@0!88WHC>HBCMZBK?'Y?,Q1ZO%OSN]J+O+H7=MN@O0GW_0JG_*6
  212. M/NQ"`/7L_O!=S^\E?Z*";IPWCO)UW_4]7XUQ#KWQ_>BV7M]4O^B.?H:K+>Z_
  213. MGN?!?ND3+O>;3N,R#UUV/^M!/JC.3>^X?>/J;()_+YV!OX(0;O$8>.MS.+.V
  214. M/N1)S_8T3JZE[G+A+>=(_N9QKNI1>J.S'NYNL8$;Z/(C*^*%O_G3?L["6+DK
  215. M6-MLF>*BG?5L2>72OO:*C_(CR/9-O\%&WH`HCI@RG[H9O_VSBI-`++HKWN=>
  216. M3]#&;^U%\)<T$`217G@YZZ)X[8\5&0-$8`2BKMJ^/>B76;&R",Q9"WC_GY,<
  217. M'.NF1>`N7@0Y&/I`R^-^G8E]:-U:/=/2*>\\/NC?M]FT1[ZK;-VTM]FT-]@4
  218. M2=CDM]FT-]A,.=VTM]FT-XA^G:6`G=@.S=U*R=N/;=5GG=DN#MB)[=#2#-B)
  219. M[=!HO7Z;37N86-I(G=@.7=193=52G=54+=593=52G=54+=593=52G=54+=59
  220. M3=52G=54+=593=52G=54+=593=52G=54+=593=52G=54+=593=52G=54+=59
  221. M3=52G=54+=593=52G=54+=593=52G=54+=593=52G=54+=593=52G=54+=59
  222. M3=52G=54+=593=52G=54+=593=52G=54+=59W7D*@')$8'=XIW<])W-DT'7G
  223. M)`=Y4!`/L2'G%FQM\5\$81`(H1!O%QMWXP*S`6P"\1X&<>EO%QMWXP*S`6P"
  224. M\1X&01`&4757IQ!O%QN0!C[`)A#OX4/Q-7+QL6D/X6D3\6H"(1!'!W<Y\!"7
  225. M?E]$-1&<=G5GQ%;4A0=I\7:QD0,8X2%O!P(YP"B]%AL;1A`&@1"L=FH0077S
  226. M`066!`>^U%YOURC*!E4=)%56E75$\1NO$@0ILD2=I14R)R2$X0:2H1,7(P1!
  227. M4`0LLU9I1%TGH1=D4$\!95%MY!XS)D"G!A'S,05YT!QP\"1I\78QDP-/M6.9
  228. M)E4H,`)9L3%U($4\<$@OT%8N@`8^4#<W@&2<5D<0,1\6=A\E$4-KUA8/\5,@
  229. M`E4=)%4*8R=L15TGD3754A/]H17UPU5J(P<SDC\<`24E(5RK4RZ:TT(HLQ7W
  230. M,1K$T54R,B0MP#%KT%YN9%>P41LND`,8@0(`\Q@NT08W41I&82Q^P5ED,`<?
  231. M\2MI`R#]\1^'-1G7(169T58@(!3Y$T-N\Q1-41Q6@E[&Y`(;A0("PCT@$`3\
  232. M\0;%`@)N$!S%(48<(2%XL!T\@Q3"52%JDAB'-1D@(!1-@5G[)3\2XBDPDSRG
  233. M(TA$M27@A@*$%0,%1DN>!&`6N$U2I5$@-!75DA8#4Q&H!F`6B$LZQ!:L4@:0
  234. M!!(NT08W@1ALT!1&`1T"<B$@T#`W`1+3!5'4X1-*PALR@2:.Q#%KH#9<$477
  235. M8096PE*GXD-^Y$!M0`6Q0@=&D`96(1-Z00;U=!PYX11C0`=U\!0:8V99H29N
  236. MP`;Y4SD'T094$"MT8`1I8!6A\U;+,A;^@40C824*UDI'`T33!5'S1`;UI!)Z
  237. MX1&:01-DP!)DH":-L1G?@CAJPA$5HA*0!!)M4`?I0AV!=AWD\1%A(!..`6,P
  238. M4UAF-!5-<0=<`V0H(14?P5K5(A/^<1!M0`6Q0@=&D`96836)409HHBY#9"7;
  239. MXEW0M"IYU#$GXR(0@SUZX1$@(`3+T1-NP!#U04//D2#(8AD-<Q-JTS\2`S;"
  240. M)38Q@1Q4T""\0096$A!X@RH#DQ%3\&=F0`<M0`4-,D^H(3::$S%&`1TE<66Z
  241. MY2MFH!.4M%]C8!-?P09H\U8@X4MF4`5PP!LRX4MF0`32H15K4`9Y(&ANU!`2
  242. M^"@NL"KU04//D2#8TR!/!!+8X2#281E#0!)LT`)4T""\(1-3\&=F0`<M,`0D
  243. MP08M0`4-,D_YH442!!)<,S)205>P`6:GHE<8@0)MQ1LRD2L_`5:RHEM9LS5=
  244. MLU5<01AU``<7\E8@X4MF,"ANH!L@L`9ET!3U$2VZP1M-(3:"YD8-X4?RH3>P
  245. M@0)"(45&`3'(DC;7,0=F`%@V\27SL@9ET!3UP1UO4",U=#8TY$A"(45&`3'8
  246. M@SA`T1.O,A5M@#)64D<THU==`AUM91D-`Q8=H442=#+"\@9MP!O.\5A;Q16$
  247. M40=P@#)&`1UM)3O_\@9CT#7UP14_T1-6$@-W]2A'`T0JM"(?01[](S%C8$DL
  248. M41-LT!1@(UQBPST@,#K-T3\C!!)@(UQB$Q.R`Q::4P<I8E"^8@;C!3,.<3HH
  249. MH"?0(B0NP5648Q8M("%XL!T14Q_K0T/`TD:P\1I(5A`/D0.,TFNQL6&7_G9V
  250. M96J]%C-8`@*7_G9V96J]%C-8,A`%<1"<=G6L=A!8IW59T77G)`=@5W:FI6,/
  251. M478@`&NCYD=VE0,Y]!`!(2HCHG:TQ!:FY3P@,'=09W=XIW=\YW>)O7Y$X'GW
  252. M7]3K=_]4J0!$\%,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_
  253. M]5,_]5,_]5,_]5,U<'8_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_
  254. M]5,_]5,_]5,_]5,_)0,*4`1!$`1!$`1!D`-!$`1!$`1!$`1!$`1!$`1!$`1!
  255. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  256. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!H`!!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  257. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  258. M$`1!$`1!$`1!$`0Y$`1!$`1!$`1!(`,*0`0_]5,_]5,_]5,_]5,_]5,_]5,_
  259. M]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_50-G]U,_]5,_]5,_]5,_]5,_
  260. M]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,RH`!%$`1!$`1!$`0Y$`1!
  261. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  262. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`0*$`1!$`1!
  263. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  264. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!D`-!$`1!$`1!$`0SH`!$\%,_
  265. M]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,U
  266. M<'8_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_
  267. M-0,*4`1!$`1!$`1!D`-!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  268. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  269. M$`1!$`1!$`1!H`!!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  270. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`0Y
  271. M$`1!$`1!$`1!L+]$\%,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_
  272. M]5,_]5,_]5,_]5,_]5,U<'8_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_
  273. M]5,_]5,_]5,_]5,_]5,_-0,*4`1!((.O4;[E^ZP.6K[EZX07^%<SH`!$`&%9
  274. M77]$`&$*4`1!$`1!$`1!D`-!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  275. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  276. M$`1!$`1!$`1!$`1!H`!!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  277. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  278. M$`0Y$`1!$`1!$`1!,`,*0`00]E,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_
  279. M]5,_]5,_-;Z&1P0_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_!6$_]5,_
  280. M93M$`&$*4`1!$`1!$`1!D`-!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  281. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!D-\&&@1!$`1!$`1!$`1!
  282. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  283. M$`1!$`1!$`1!D`-!$`1!$`1!$`0RH`!$`&$_]5,_]5,_]5,_]5,_]5,_]5,_
  284. M]5,_]5,_]5,_]5,_93M%D-]%D,Z&)P0*P-#Y;01$\%,_]5,_]5,_]5,_]5,_
  285. M]5,_]5,_]5,_]5,_]5,0]E,_50.`1P-$,#`*4`1!$`1!$`1!D`-!$`1!$`1!
  286. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  287. M$`1!$`1!$`1%D-]%D,Y&$(3Y+00*(`04F-\W$`1!$`1!$`1!$`1!$`1!$`1!
  288. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  289. M$`1!D`-"$`1!$`1!$`1%1P00%H0_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_
  290. M]5,_]5,_E=]%0`.`AY)"H``,G=\W0`0_]5,_]5,_]5,_]5,_]5,_]5,_]5,_
  291. M]5,_]5,_!6$U8`0_]5.>1`0BI0!%$`1!$`1!@`,Y$`1!$`1!$`1!$`1!$`1!
  292. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1"
  293. M(#-N,?!!,/`QX/XS(`04*`0*(`2CW=Q'%P1!$`1!$`1!$`1!$`1!$`1!$`1!
  294. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  295. MD`-"$`1!$`1!$`0SH`!$`&'T]E,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_
  296. M]5,_]5-"(`1-)P1!$`1&(`1-(P1"0`0Y&`0*(`1"(`1!4`1"(`0W0`0_]5,_
  297. M]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_!6$U,`0_]5.>1`00I@!%$`1!$`0.
  298. MF`-!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  299. M$`1!$`1!$`1!$`1!$`1!(`0U(`1"L!8R4`2Y?0,4V'2`%P0*(`1"(`1!P+DS
  300. M<`-!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  301. M$`1!$`1!$`1!$`1!$`1!$`1!$`0X$`0Y(`1!$`1!$`1!L+]$`&$_]5,_]5,_
  302. M]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,U(`1!4`1-5P1"(`0W0(%-!WA!
  303. MH`!"(`1"$`1%0($W0`0_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_!6$_
  304. M]5,_Y4E$@"4*4`1!$`1!$`1!D`-!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  305. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1%(`1!4`1"$`1%
  306. M(`1"8`,4*`1$D(,Y,$="(`1",(%"8`-!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  307. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`0Y
  308. M(`1!$`1!$`1!,`,*0`00]E,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_
  309. M]5.VP[D<,O!%D-LY0($Q(`04*`0*(`3A700HGP-$\%,_]5,_]5,_]5,_]5,_
  310. M]5,_]5,_]5,_]5,_]5,0]E,_A27#1`18H@!%$`1!$`1!$`0Y$`1!$`1!$`1!
  311. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  312. M$`1!$`3YS7]%D,Z`%P1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  313. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!D`-!$`1!$`1!$`0S
  314. MH`!$`&$_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5/C*WA\2`0_
  315. M]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_!6$_]5,_93M$`&$*4`1!$`1;
  316. M6+[E6[X.6K[E&Q`8_H!!$`0SH`#66[[EJX0.6K[EJX14OGCWS]7_)P0*0`0#
  317. MD]7U1P18H@!%$`2BSM7Z%P1!,`,*0`0#D]7U1P18H@!%$`2BSM7Z%P1!,`,*
  318. M0`0#D]7U1P00I@!%$`2BSM7Z%P1!,`,*0`0#D]7U1P00I@!%$`2BSM7Z%P1!
  319. M,`,*0`0#D]7U1P00I@!%$`2BSM7Z%P1!L+]$,#"6Y^)EW7]$`&$*4`1!(.J5
  320. M-P1U#Y%*_7]!$`0SH`!$,#"6I__"J-3_1P00I@!%$`2B7GGZ#]P!8=V9M]FD
  321. M%P1!,`,*0`0#8WE#(-JF-4Q*_7]$`&$*4`1!(.J5Y^)&8%H$+MC_%P1!,`,*
  322. M0`0#8WD$#FDCJ]3_1P00I@!%$`2B7GD$;EHCJ]3_%P1!4'1$,#"61^"F-;)*
  323. M_7]$(%(*4`1!(.J51^`$-++Y37N;37I!$`0SH`!$,#"61^`X<!M%,-V9M]FD
  324. M1P00I@!%$`2BSM7Z%P1!,`,*0`0#D]7U1P00I@!%$`2BSM7Z%P1!L+]$,#!9
  325. M77]$@"4*4`1!(.I<K7]!$`0SH`!$,#"6I]JB?HN.-__P+XSIOWH\KI#53`00
  326. MI@!%$`2B7GDH+^JWZ'A%T/3P#W@Y0.#TF7HX@/+@O/Z)&P1!,`,*0`0#8WDH
  327. M+^JWZ'A%T#2))^KIOWHY4`0HJ=I%D+A$`&$*4`1!(.J5YV,YD`-#,`2Q)MN`
  328. M3@.'5P2]NN<9V-RW<2C#I.<T<.ZQ9X*FE0.Y'6LX(&HZ)NJ%%P1!,`,*0`0#
  329. M8WE#D`,YD`-#,`2>-`0TL/Z[/LV].@1#,`0T\/LQ<#R+,@1%0`-%(`-SE'LF
  330. M:%HYD`.S@0-#L/X;(NJ%1P00I@!%$`2B7GE#0`0YD`-#,`1#,`1#L/XBDK=%
  331. MT*M#,`2J/01%H/^+D@-#,`3K?P-SE'LF:%JBG@,Y,`1#L/XW8%J&%P1!,`,*
  332. M0`0#8WE#,`0YD`-#,`1#,`1#L/X(EK=%T*L-B-L0:02FE0,Y,`1#L/XW,$>Y
  333. M9X*FE0->G0-#,`3K?P.F97A$`&$*4`1!(.J5-P1%D`,Y,`1#,`1#,`3K']S3
  334. MW*L$C@.JK?^+D@-#,`3K?P-SE'N+8EHYD`,YD`-#,`3K?P-"D+9!$`0RH`!$
  335. M,#"6I]JA,@1#,`1#,`3K']S3W#0$/@1#4`3ZOR@Y,`1#L/XW,$>YEP,HOR@Y
  336. MD`,Y,`1#L/ZY;WA$@"4*4`1!(.J5I]K0A0-#,`1#,`0T4`0LE;=%X!9#0`-#
  337. M0`._;P3'LR@T4`0T4`0W,$>YAP-*O]LY,`1#$`0X1."%%P1!,`,*0`0#8WFJ
  338. MG0-#0`-#,`1#,`2B#NAYB]=[GH'-;01D/@2J[?]SE'N,[5(Y,`2J,@3K?P,C
  339. M>WA$`&$*4`1!(.KSA[*;#8N'%P1!,`,*0`0#4W\HN]F/)^J&1P00I@!%$`2B
  340. M/G\HN]F/-\5!$`0SH`!$,#!977]$,#`*4`1!(.I<K7]!$`3[2P0#D]7U1P18
  341. MH@!%$`2BSM7Z%P1!,`,*0`0#D]7U1P18H@!%$`2BSM7Z%P1!L+]$,#!977]$
  342. M`&$*4`1!(.I<K7]!$`3[2P0#D]7U1P18H@!%$`2B[GB-7+Y*Z*#E6[Y2"WA!
  343. M$`0SH`!$,#"P6+[E.X,.6K[E*[6`1P0BI0!%$`2B[G@$7H#PAXP8&`1!,`,*
  344. M0`0#`XO?M]F8)^!F2`18H@!%$`2B[GA#T,C26KX>6KZ&^*PS@(P$%`1!,`,*
  345. M0`0#`XN-+*WEZZ'EZ\//>@,"_AHU0`00I@!%$`2B[GA#0."8UW33/=!9:`36
  346. MC=^R&!`S$`1!,`,*0`0#`XL$CGE$4`33/="9=__6#7@W(.!84@-$`&$*4`1!
  347. M(.J.-P0$CGE--]T#G85&8-WX_?\$%`1!,`,*0`0#`XL$CGE$4`33/="9=__6
  348. M#7@W(.!16@-$`&$*4`1!(.J.-P0$CGE--]T#G85&8-WX+8MQ/P-!$`0SH`!$
  349. M,#"P2."81P1%,-T#G7GW;]V`=P,4"&9#4`-$`&$*4`1!(.J.-P0$CGE--]T#
  350. MG85&8-WXG=RY'01!,`,*0`0#`XNJC==%,-U$4`3_+^H97P2]BOZ5=__6#7@W
  351. M0(&O82]$`&$*4`1!(.J(1_*J/?`E6HKY'X1GSH)-U]^A(HRJW?R.^-^PE\[C
  352. MV(!U/WA"D(,!04!!$`0SH`!$,#`92_*JK?]<O^&%;5J!1P1%<-DY(.K7J=K-
  353. M[XC_#7OW/XZJ/02B3G@W(.`.6`-$`&$*4`1!(.J'-P0Y0.!#H-HH;P1$D-^B
  354. M?B@:^':EV'3U'FO/'N4U,`1#4`2@4L./E\[C*.HY0."#)P3(2$!!$`0SH`!$
  355. M,#"(EP,Y0.!#H-H5G@.B#G@YL/ZS>?6`1P1%D-PS,P1#,`2J700T,`1#L/[_
  356. M#7OW/XZ0E@,$/G@W(.`.6`-$`&$*4`1!(.J'MRC"2.#`G0.B#G@Y,`1%,)N]
  357. M&H1-Q\&+HMI#,`2JO?Y#,`3K_]^PE\XH&RH$/GA"@(P$%`1!,`,*0`0#@WB+
  358. M(HP$+MHCZ^(Y,`3KS_"`QX)$4`1!&"I#\/NJO?XT,`3K_]^P=_\H.P0Y0."#
  359. M=P,"[H`U0`00I@!%$`2BGJ_"2.!&8%\:F0,I#GA,R()-%X0YD`-#,`1#,`2J
  360. M701W,P3K_]^PE\XH.P0Y0."#)P3(2$!!$`0SH`!$,#"))^K7J=KZ/[*!)^I%
  361. MH/M%<`,L2`1%<-DYD`-#,`1#,`2J7011.@3K_]^P=__CF`-#D`,$/G@W(.`.
  362. M6`-$`&$*4`1!(.J(EP,$/@2J/02W$]SXKX$W"I2'@M]%`)2%E0-#H/T^5@11
  363. M.@2W4P,U_'CI/(XXD`-#(.J$)P3(2$!!$`1%1P0#DW@Y0.!#H-J^']SXKX$W
  364. M2O&!1P1%((M-,P1%(&I%<-E#4`2'4I"P=__CB.HH>P,"[H`U0`18H@!%$`2B
  365. M[GA#0."8UW33/=!9:`36C=_(2$!!$`0SH`!$,#"P2."81P1%,-T#G7GW;]V`
  366. M=P,"[H`U0`00I@!%$`2B[GA#0."8UW33/=!9:`36C=_(2$!!$`0SH`!$,#"P
  367. M2."81P1%,-T#G7GW;]V`=P,"[H`U0`18H@!%$`2B[GA#0."8UW33/=!9:`36
  368. MC=_(2$!!$`0SH`!$,#"P2."81P1%,-T#G7GW;]V`=P,"[H`U0`18H@!%$`2B
  369. M[GA#0."8UW33/=!9:`36C=_(2$!!$`0SH`!$,#"P2."81P1%,-T#G7GW;]V`
  370. M=P,"[H`U0`18H@!%$`2B[GA#,`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  371. M$`1!$`1!T'1_%01!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`0*$`1!$`1!
  372. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1&\%=!
  373. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1"@(P$%`1!L+]$,#"P2`0_]5,_]5,_
  374. M]5,_]5,_]5,_500_]5,_]5,_]5,_]5,_]5,U<'8_]5,_]5,_]5,_]5,_]5,_
  375. M]5,_]5,_900_]5,_]5,_]5,_]5,_=0,"[H`U0`00I@!%$`2B[G@$7H#PAXP$
  376. M%`1!L+]$,#"P^'V;C7D"[H`U0`18H@!%$`2B[G@$7H#PAXP$%`1!,`,*0`0#
  377. M`XO?M]F81X%_%01$0`0#HP!%$`2B[GA#T,C26KX>6KZ&^*PSD(,7`6%!$`0S
  378. MH`!$,#"PV,C26KX>6KX^_*PW0($RH($U0`00I@!%$`2B[GA#0."8UW33/=!9
  379. M:`36C=\YF((S$`1!,`,*0`0#`XL$CGE$4`33/="9=__6#7@W0($RH($U0`00
  380. MI@!%$`2B[GA#0."8UW33/=!9:`36C=\YF((S$`1!,`,*0`0#`XL$CGE$4`33
  381. M/="9=__6#7@W0($RH($U0`00I@!%$`2B[GA#0."8UW33/=!9:`36C=\YF((S
  382. M$`1!,`,*0`0#`XL$CGE$4`33/="9=__6#7@W0($RH($U0`00I@!%$`2B[GA#
  383. M0."8UW33/=!9:`36C=\YF((S$`1!L+]$,#"PJ-IX7033301%\/^B_OU&,+*"
  384. M)^IO??_6#7@W0($RH($U0`18H@!%$`2B+H(DK]H#7Z*E*.JB_MS)VG3]'2K"
  385. MJ-KZ3^"`)^IOG<[CV(!U/WA"D(,I.`-!$`0RH`!$,#"()^K"J-KZS_6N7MBF
  386. M%7A$4`27G0.B?IVJK?\$#GBB_M;W/XZJ/02B3G@W0($RH($U0`00I@!%$`2B
  387. M?G@G?IVJC?)&0`3Y+>JBKH%O5XI-5^^Q]NQ1?G0Y@.*+4G2X+>JDE\[C*.HY
  388. M0."#)P0YF((S$`1!4'1$,##GVJO7J=H5G@.B#GBB+NJ.>/6`1P1%D-PS,P1#
  389. M,`2JO?Y$D`,Y,!NS8>Y#,`2#/GKW/XZ0E@,$/G@W0($RH($U0`0#HP!%$`2B
  390. M?GAU#Y$$#MPY(.J`)^JB[HB]&H1-Q\&+HMI#,`2JO?Y$(.HY(.HY<.E#,`0$
  391. M3GKIC+*A0N"#)P0YF((S$`1!L+]$,#"))^K72>"B/;(N+NHYP-V&;@0L2`1%
  392. M$(2A,@2_K]I%0`-#D`/`GP.7KOVI=_\H.P0Y0."#=P,4*`,:6`-$(%(*4`1!
  393. M(.J()^K72>!&8%\:*>JB#GA,R()-%X0YD`-#,`1#,`0$3@,^E@.B'BJ7KMH$
  394. M3GKIC+)#D`,$/GA"D(,I.`-!$`0RH`!$,#"(MRC"J-KZ/[*!)^JB7MA%<`,L
  395. M2`1%<-DYD`-#,`1#,`0$7K&+(NHYD`.7KMH$3GKW/XXY,`0Y0."#=P,4*`,:
  396. M6`-$(%(*4`1!(.J'%P,C>YVJ/02W$]SXC_^.")2'@M]%`)2%E0-#H/T^AO]%
  397. M$/8XD`,Y<.E#0`,$3GKI/(XXD`-#(.J$)P0YF((S$`1!,`,*0`0#@WB<?IVJ
  398. M[?O!C?_XSY"_#GA$4`2RV#1#4`2B5@0YF`-%T*LTD-LY<.FXG7KW/XZHCK(W
  399. M0($RH($U0`00I@!%$`2B[GA#0."8UW33/=!9:`36C=\YF((S$`1!L+]$,#"P
  400. M2."81P1%,-T#G7GW;]V`=P,4*`,:6`-$`&$*4`1!(.J.-P0$CGE--]T#G85&
  401. M8-WXG8,I.`-!$`0SH`!$,#"P2."81P1%,-T#G7GW;]V`=P,4*`,:6`-$`&$*
  402. M4`1!(.J.-P0$CGE--]T#G85&8-WXG8,I.`-!$`0SH`!$,#"P2."81P1%,-T#
  403. MG7GW;]V`=P,4*`,:6`-$`&$*4`1!(.J.-P0$CGE--]T#G85&8-WXG8,I.`-!
  404. M$`0RH`!$,#"P2."81P1%,-T#G7GW;]V`=P,4*`,:6`-$,#`*4`1!(.J.-P1#
  405. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1-]U=!$`1!$`1!$`1!
  406. M$`1!$`1!$`1!$`1!$`1!$`1!H`!!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  407. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!8`1_%01!$`1!$`1!$`1!$`1!$`1!$`1!
  408. M$`1!(`0YF((S$`1!4'1$,#"P2`0_]5,_]5,_]5,_]5,_]5,_500_]5,_]5,_
  409. M]5,_]5,_]5,U<'8_]5,_]5,_]5,_]5,_]5,_]5,_]5,_900_]5,_]5,_]5,_
  410. M]5,_=0,4*`,:6`-$(%(*4`1!(.J.1^`%"'\YF((S$`1!,`,*0`0#`XO?M]F8
  411. M1X$RH($U0`00I@!%$`2B[G@$KGE!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  412. M$`1!$`1!$`0*$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  413. M$`1!$`1!$`1!$`3Y37DYF((S$`1!L+]$,#"P"'I$\%,_]5,_]5,_]5,_]5,_
  414. M50-G]U,_]5,_]5,_]5,_]5,_]5,_]5,_]5/3+7@4&!#V0@18H@!%$`2B[GA#
  415. MT,A.&`3EZZ'E*X9"\*PS@(P$%`1!,`,*0`0#`XN-[(2-?*_EZXK/>@,"[H`U
  416. M0`18H@!%$`2B[GA#0."8)P3NGWEO301"8-WXC8P$%`1!,`,*0`0#`XL$CGE$
  417. M@/*9]]9%<`/6#7@W(.`.6`-$`&$*4`1!(.J.-P0$CGE"X/Z9]]9$(`36C=_(
  418. M2$!!$`0SH`!$,#"P2."81P0HGWEO700W8-V`=P,"[H`U0`00I@!%$`2B[GA#
  419. M0."8)P3NGWEO301"8-WXC8P$%`1!,`,*0`0#`XL$CGE$@/*9!X^$[8@W8-V`
  420. M=P,"[H`U0`18H@!%$`2B[GA#0."8)P3NGWGPF,Z!1P1"8-WXC8P$%`1!,`,*
  421. M0`0#`XNJ[>*51P1\G[57^HJ>)^J!)^JL>*+I3(@W8-V`=P,"[H`U0`18H@!%
  422. M$`2B?GCJ/02J3>"Y7O>')P3N7P1-KX'SF8V>)^J!)^H=:>AY*'A$(`0YF[-"
  423. M@(P$%`1!,`,*0`0#@W@X(.K7J=H$/MD*7GA$P/=-XXCSF8W/5Z+T3X@W@+(*
  424. M+G@W(.`.6`-$`&$*4`1!(.J'EP,Y0.!#H-H$#GBW<1N))P3N7P1-T^5>#=P9
  425. M500Y.+*S\79LOBB%E0,HOBC-;^A%<*->[JN"1P1"D+,Y*P3(2$!!$`0SH`!$
  426. M,#"(=^+7J=H$#GBF95J)1P1\W_LT4`0W8%JGGX/!;UI%!UVS@0,Y,!NSD0,Y
  427. M,`0Y,`2[4P0</`1#,`1^38@WD+,Y>P,"[H`U0`00I@!%$`2B?GB%)8RJ[=<:
  428. M^'8WD-9"X/[</03KGX.F-00$/K*`9UH*D`.BG@,YD`,Y(.JBG@,Y,`1#4`27
  429. M+>BJ/01#D,Z!1P1"D+,Y*P3(2$!!$`0SH`!$,##G*NK7J=JJO8&'<BAI301\
  430. MWS1#L/Y1:EI#0.`CF_HSH``YD-LYD`,YD`,HOB@Y,`1#4`27/00-^/OI3(@W
  431. MD+,Y>P,"[H`U0`00I@!%$`2B?GB+(HRJ3>#"2=9"X/Y%T#1#L/XW8%HE>O]&
  432. M,+)&8%HSH`"B'BHYD`.BGH&AD@-#,`1%<-E#H-I#,`1#D,Z!1P1"D+,Y*P3(
  433. M2$!!$`3[2P0#@WB+(HRJ3>"!9X)I301\WS1#L/XW8%I<;@0C:P2F-0,*(.HY
  434. MD`,YD`.B+NHYD`,Y,`1#4`0Y.+*J/01#,`3I3(@WD+,Y>P,"[H`U0`00I@!%
  435. M$`2B?GBQ1N!#H-H$'G@FF-9"X/Y%T#1%0`-%@"6F900L.+*]:%H*,!LYD`,Y
  436. MD`.S,1LYD`-#D`-#4`2RB`-#0`/:G\Z!1P1"D+,Y*P3(2$!!$`0SH`!$,#`%
  437. M/K+7J=H$'G@FF-9$P/>]*NTN=1M&P((C.X>WH0`YD-LYD`,YD`,HOBC-7P0<
  438. M+`-[+FKI3(@WD+,Y>P,"[H`U0`00I@!%$`2B[GA#0."8)P3NGW@Y"X_I''A$
  439. M(`36C=_(2$!!$`0SH`!$,#"P2."81P0HG[$33'KI3(@W8-V`=P,"[H`U0`00
  440. MI@!%$`2B[GA#0."8)P3N7^`33'J$#7A$(`36C=_(2$!!$`0SH`!$,#"P2."8
  441. M1P0HGWEO700W8-V`=P,"[H`U0`00I@!%$`2B[GA#0."8)P3NGWEO301"8-WX
  442. MC8P$%`1!4'1$,#"P2."81P0HGWEO700W8-V`=P,"[H`U0`0BI0!%$`2B[GA#
  443. M0."8)P3NGWEO301"8-WXC8P$%`1!,`,*0`0#`XL$CGE$@/*9]]9%<`/6#7@W
  444. M(.`.6`-$`&$*4`1!(.J.-P1#$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  445. M$`1!$`1"$`0_]5,_]5,_]5,_]5,_]5,U<'8_]5,_]5,_]5,_]5,_]5,_]5,_
  446. M]5,_)01_%01!$`1!$`1!$`1!$`1!$`1!$`1!$`1!(`3(2$!!$`0SH`!$,#"P
  447. M2`0_]5,_]5,_]5,_]5,_]5,_-01!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  448. M$`1!$`1!H`!!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  449. M$`1!$`1!$`3N_U,_]5,_]5,_]5,_]5,W(.`.6`-$`&$*4`1!(.J.1^":%P1!
  450. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!H`!!$`1!$`1!$`1!$`1!
  451. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!D-^4AXP$%`1!L+]$
  452. M,#"P"'I$\%,_]5,_]5,_]5,_]5,_50-G]U,_]5,_]5,_]5,_]5,_]5,_]5,_
  453. M]5/3+7@"[H`U0`18H@!%$`2B[G@$7H#PAXP$%`1!,`,*0`0#`XO?M]F8)^`.
  454. M6`-$`&$*4`1!(.J.-P2-+*WEZZ'E:XC/.@/(2$!!$`0SH`!$,#"PV,C26KX>
  455. M6KX^_*PW(.`.6`-$`&$*4`1!(.J.-P0$CGE--]T#G85&8-WXC8P$%`1!,`,*
  456. M0`0#`XL$CGE$4`33/="9=__6#7@W(.`.6`-$`&$*4`1!(.J.-P0$CGE--]T#
  457. MG85&8-WXC8P$%`1!,`,*0`0#`XL$CGE$4`33/="9=__6#7@W(.`.6`-$`&$*
  458. M4`1!(.J.-P0$CGE--]T#G85&8-WXC8P$%`1!(`,*0`0#`XL$CGE$4`33/="9
  459. M=__6#7@W(.`.6`-$@"4*4`1!(.J.-P0$CGE--]T#G85&8-WXC8P$%`1!,`,*
  460. M0`0#`XNJC==%4,T$;@1$4`3_+WCC"&DY(.H1_7GW;]V`=P,"[H`U0`00I@!%
  461. M$`2BSI,DK]H#7Z+5N=H#W^*!UW3]_9O`O$\Y(.H1_7GIC+*937A"@(P$%`1!
  462. M,`,*0`0#DWBB?IVJK?]9OR%Q[DFY#WA$4`27+>J'5P0W0`2B3I^@=_\Y2^"$
  463. M=P,"[H`U0`00I@!%$`2BCG@C>YVJC?)&0`0,/01%\'9O1P-%<`-"$(1-5^^W
  464. M,02W45A%(`,0"7@YD`.W\=;IG+.B7GA"@(P$%`1!,`,*0`0#DW@C>YVJ7>$Y
  465. M(.K7*2(B0@-%<`.F!7A$4`3)C0,YX-7'T]PG#W@Y,!LY\-;WG[.B7G@W(.`.
  466. M6`-$,#`*4`1!(.J'5P2Y2>#`G0.B?IU#4`0T4`2W<P.FA=]%P,&+,@3ZOR@Y
  467. MH-H$G@,YD`.7#GOIG+,Y*P3(2$!!$`3[2P0#D[&Y2>"B/;(NWMQ%0`/KCV!-
  468. M`WA$4`1!&"I#H/^+D@.J3>`YD`,Y<.FP=_\YF[,W(.`.6`-$@"4*4`1!(.J'
  469. M1^#72>!&8%\!V?S,:SI,V'1!F`,Y,`3ZOR@YH-H$G@,YD`.7#GOIC+)%D+9"
  470. M@(P$%`1!,`,*0`0#4^"WJ-KZ/[+\K8%`20/KWS2`1P1%<-DYD`-#H/^+D@.J
  471. M700W0`0YD`,Y<.FP=_\H6P1I>P,"[H`U0`18H@!%$`2B?GCY?YVJ/02W$]P$
  472. M7@1`20-#0`,0B=]%`)2%A0,YH/^+XJOT'2JSD0-OG<XH2^"%)P3(2$!!$`3[
  473. M2P0#@WCY?YVJ[?O![>)%`)2FH]H$3@1%((M1.K)&8%HY(.^0E@.S,0-O??\H
  474. M2^"%=P,"[H`U0`00I@!%$`2B[GA#0."8UW2E*.K@3'BB_M;I;-WXC8P$%`1!
  475. ML+]$,#"P2."81P1%4(JB/GBS07BB_M;W;]V`=P,"[H`U0`18H@!%$`2B[GA#
  476. M0."8UW2E*.JLZ*.B_M;I;-WXC8P$%`1!,`,*0`0#`XL$CGE$4`33/="9=__6
  477. M#7@W(.`.6`-$(%(*4`1!(.J.-P0$CGE--]T#G85&8-WXC8P$%`1!,`,*0`0#
  478. M`XL$CGE$4`33/="9=__6#7@W(.`.6`-$@"4*4`1!(.J.-P0$CGE--]T#G85&
  479. M8-WXC8P$%`1!,`,*0`0#`XL$CGE$4`33/="9=__6#7@W(.`.6`-$`&$*4`1!
  480. M(.J.-P1#$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1-]U=!$`1!
  481. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!H`!!$`1!$`1!$`1!$`1!$`1!$`1!
  482. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!8`1_%01!$`1!$`1!$`1!$`1!
  483. M$`1!$`1!$`1!(`3(2$!!$`0SH`!$,#"P2`0_]5,_]5,_]5,_]5,_]5,_500_
  484. M]5,_]5,_]5,_]5,_]5,U<'8_]5,_]5,_]5,_]5,_]5,_]5,_]5,_900_]5,_
  485. M]5,_]5,_]5,_=0,"[H`U0`00I@!%$`2B[G@$7H#PAXP$%`1!,`,*0`0#`XO?
  486. MM]F8)^`.6`-$`&$*4`1!(.J.1^`%"'_(2$!!$`0SH`!$,#"P^'V;C7D"[H`U
  487. M0`00I@!%$`2B[GA#T,C26KX>6KZ&^*PS@(P$%`1!,`,*0`0#`XN-+*WEZZ'E
  488. MZ\//>@,"[H`U0`00I@!%$`2B[GA#0."8UW33/=!9:`36C=_(2$!!$`0SH`!$
  489. M,#"P2."81P1%,-T#G7GW;]V`=P,"[H`U0`00I@!%$`2B[GA#0."8UW33/=!9
  490. M:`36C=_(2$!!$`0SH`!$,#"P2."81P1%,-T#G7GW;]V`=P,"[H`U0`00I@!%
  491. M$`2B[GA#0."8UW33/=!9:`36C=_(2$!!$`0SH`!$,#"P2."81P1%,-T#G7GW
  492. M;]V`=P,"[H`U0`00I@!%$`2B[GA#0."8UW33/=!9:`36C=_(2$!!$`0SH`!$
  493. M,#"PJ-IX703N^^*'1P1%0-M(.^CKGX-O??_6#7@W(.`.6`-$`&$*4`1!(.HB
  494. MB*BJ/?`EVJNBC0,H_]QGGH--=]E3O!:.N"$1_7GIC+*#3GA"@(P$%`1!4'1$
  495. M,#"(MT_"J-KZC^)&L"A%H/O;LBTF2`1%<-FB;G@EZH@;$M&?=_\HBP,$3G@W
  496. M(.`.6`-$@"4*4`1!(.J'MR@$/@2JC?)&0`2G;@1U[HAO]W8W8()-=]DY<!NS
  497. M^MU%$(05NR'[6P0TL'KIC+(Y0."$)P3(2$!!$`0SH`!$,#"(MR@$/@2J7>$Y
  498. MD`-#T/RV>BB'8H)$4`27[5(L5>8;4@0W2@/K+R)&!]":=_\Y:^B%=P,"[H`U
  499. M0`00I@!%$`2B+H*(2N#`G0,YX.)VKH$<PB$YV'2TW30:N"$B$MQ#L/X;XG(;
  500. MLGKIG+.B7GA"@(P$%`1!,`,*0`0#@WC[)(P$+MHCJ_\0.>8X4`3;4EA&0`1%
  501. M<-F+(N:T'=Q#L/X;LK\;LGKWC[)U3W@W(.`.6`-$@"4*4`1!(.J'MRC"2.!&
  502. M8%^";@0['H3^?R@FV'27G0,YL/X;4@0WRL'K+R(V8'33?9%&@+(H;WA"@(P$
  503. M%`1!,`,*X.2(MRC"J-KZ/[+ZGP-%H/M%\'8W8()$4`27G0,YL/X;LB&`5Z)#
  504. ML/XB8@-&-]V-=_\H:^B&=P,"[H`RHYV`=_^'MR@$/@2J/02W`Y0T8`0YY8B7
  505. M?2@FV'27'2IXC6"'THLX4`0TL/ZF8W33?9%&@+*B;GA"@(S)*@0*0`0#@WB0
  506. M1N!#H-J^#Y0T@/^#SMUGGH-$4`2TO2A=7N<.GH$5NR%%=RBK=_\HF]F$=P,4
  507. M>!$_1018H@!%$`2B[GA#0."8UW33/=!9:`36C=\Y^%=!,`-!$`3[2P0#`XL$
  508. MCGE$4`33/="9=__6#7@W0(%@-@0U0`00I@!%$`2B[GA#0."8UW33/=!9:`36
  509. MC=_)G=M!$`3[2P0#`XL$CGE$4`33/="9=__6#7@W(.!16@-$@"4*4`1!(.J.
  510. M-P0$CGE--]T#G85&8-WX+8MQ/P-!$`0SH`!$,#"P2."81P1%,-T#G7GW;]V`
  511. M=P,"CB4U0`0#HP!%$`2B[GA#0."8UW33/=!9:`36C=__3T!!$`0SH`!$,#"P
  512. M2."81P1%,-T#G7GW;]V`=P,"[H`U0`00I@!%$`2B[GA#,`1!$`1!$`1!$`1!
  513. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!T'1_%01!$`1!$`1!$`1!$`1!$`1!$`1!
  514. M$`1!$`1!$`0*$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  515. M$`1!$`1!$`1!$`1&\%=!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1"((L!,0-!
  516. M$`0SH`!$,#"P2`0_]5,_]5,_]5,_]5,_]5,_500_]5,_]5,_]5,_]5,_]5,U
  517. M<'8_]5,_]5,_]5,_]5,_]5,_]5,_]5,_900_]5,_]5,_]5,_]5,_=0,"[H`U
  518. M0`00I@!%$`2B[G@$7H#PEX-_%01"$`1!,`,*0`0#`XO?M]F81X$_]5-$`&$*
  519. M4`1!(.J.-P0_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,U<'8_
  520. M]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_19%!$`0SH`!$
  521. M,#"P&`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  522. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`0*$`1!$`1!$`1!$`1!$`1!$`1!
  523. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  524. M$`1!$`1!$`1!$`1!$`3Y#7A$`&$*4`1!(.I<K7]!$`3[2P00EM7U1P18H@!%
  525. M$`1!$`1!$`0Y$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  526. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  527. M$`1!$`0*$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  528. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!D`-!$`1!
  529. M$`1!$`0RH`!$\%,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_
  530. M]5,_]5,_]5,_]5,U<'8_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_
  531. M]5,_]5,_]5,_]5,_-0,*4`1!$`1!$`1!D`-!$`1!$`1!$`1!$`1!$`1!$`1!
  532. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  533. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!H`!!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  534. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  535. M$`1!$`1!$`1!$`0Y$`1!$`1!$`1!4'1$\%,_]5,_]5,_]5,_]5,_]5,_]5,_
  536. M]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,U<'8_]5,_]5,_]5,_]5,_]5,_
  537. M]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_571%$`1!$`1!$`0Y$`1!$`1!
  538. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  539. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`0*$`1!$`1!$`1!
  540. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  541. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!D`-!$`1!$`1!$`3[2P0_]5,_]5,_
  542. M]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_50-G]U,_
  543. M]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,_]5,RH`!%
  544. M$`1!$`1!$`0Y$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  545. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  546. M$`1!$`0*$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!
  547. M$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!$`1!D`-!$`1!
  548. M$`1!$`0RT,\H6+[E6[X.6K[EZX0D*`,*8+WE6[Y*Z*#E6[[*Z7<H1P1VAW=Z
  549. MUW,R1P9==TYRD`<%\1`YP"B]%AL;=ND"(1!'!W<Y\!"7;G(HIW(LYW(P)W-D
  550. M\',VAW-#!P+["W-4,",W`2A8QS6]\3$MA@<W)Q`"<71PEP,RT',_UQ(WIVTM
  551. M4'0P1P1O,`;!X3LE4A-S<'-(8!5?81YAT`(_1@8]MP*7\5EST`)2\`9"X08]
  552. BMP(@4$J6E`:`TG,KH&E6\17F$08]MP*7\5EST`(_1@8*`%ES
  553. `
  554. end
  555. SHAR_EOF
  556. echo 'File Xbae/doc/matrix.ps is complete' &&
  557. echo 'uudecoding file Xbae/doc/matrix.ps' &&
  558. uudecode < _shar_tmp_.tmp && rm -f _shar_tmp_.tmp &&
  559. echo 'uncompressing file Xbae/doc/matrix.ps' &&
  560. compress -d < _shar_cmp_.tmp > 'Xbae/doc/matrix.ps' && rm -f _shar_cmp_.tmp &&
  561. chmod 0644 Xbae/doc/matrix.ps ||
  562. echo 'restore of Xbae/doc/matrix.ps failed'
  563. Wc_c="`wc -c < 'Xbae/doc/matrix.ps'`"
  564. test 182548 -eq "$Wc_c" ||
  565.     echo 'Xbae/doc/matrix.ps: original size 182548, current size' "$Wc_c"
  566. rm -f _shar_wnt_.tmp
  567. fi
  568. # ============= Xbae/src/Caption.c ==============
  569. if test ! -d 'Xbae/src'; then
  570.     echo 'x - creating directory Xbae/src'
  571.     mkdir 'Xbae/src'
  572. fi
  573. if test -f 'Xbae/src/Caption.c' -a X"$1" != X"-c"; then
  574.     echo 'x - skipping Xbae/src/Caption.c (File already exists)'
  575.     rm -f _shar_wnt_.tmp
  576. else
  577. > _shar_wnt_.tmp
  578. echo 'x - extracting Xbae/src/Caption.c (Text)'
  579. sed 's/^X//' << 'SHAR_EOF' > 'Xbae/src/Caption.c' &&
  580. /*
  581. X * Copyright(c) 1992 Bell Communications Research, Inc. (Bellcore)
  582. X *                        All rights reserved
  583. X * Permission to use, copy, modify and distribute this material for
  584. X * any purpose and without fee is hereby granted, provided that the
  585. X * above copyright notice and this permission notice appear in all
  586. X * copies, and that the name of Bellcore not be used in advertising
  587. X * or publicity pertaining to this material without the specific,
  588. X * prior written permission of an authorized representative of
  589. X * Bellcore.
  590. X *
  591. X * BELLCORE MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES, EX-
  592. X * PRESS OR IMPLIED, WITH RESPECT TO THE SOFTWARE, INCLUDING, BUT
  593. X * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  594. X * FITNESS FOR ANY PARTICULAR PURPOSE, AND THE WARRANTY AGAINST IN-
  595. X * FRINGEMENT OF PATENTS OR OTHER INTELLECTUAL PROPERTY RIGHTS.  THE
  596. X * SOFTWARE IS PROVIDED "AS IS", AND IN NO EVENT SHALL BELLCORE OR
  597. X * ANY OF ITS AFFILIATES BE LIABLE FOR ANY DAMAGES, INCLUDING ANY
  598. X * LOST PROFITS OR OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES RELAT-
  599. X * ING TO THE SOFTWARE.
  600. X *
  601. X * CaptionWidget Author: Andrew Wason, Bellcore, aw@bae.bellcore.com
  602. X */
  603. X
  604. /*
  605. X * Caption.c - displays a caption label next to it's child.
  606. X */
  607. X
  608. #include <ctype.h>
  609. #include <X11/Xos.h>
  610. #include <X11/StringDefs.h>
  611. #include <Xm/XmP.h>
  612. #include <Xm/Label.h>
  613. #include <Xbae/CaptionP.h>
  614. X
  615. #ifndef SABER
  616. static char sccsid[] = "@(#)Caption.c    1.7 3/17/92";
  617. #endif
  618. X
  619. X
  620. #define OffsetOf(field)    XtOffsetOf(XbaeCaptionRec, field)
  621. X
  622. static XtResource resources[] = {
  623. X    { XmNfontList, XmCFontList, XmRFontList, sizeof(XmFontList),
  624. X      OffsetOf(caption.font_list), XmRImmediate, (XtPointer) NULL },
  625. X    { XmNlabelAlignment, XmCLabelAlignment, XmRLabelAlignment,
  626. X      sizeof(XbaeLabelAlignment), OffsetOf(caption.label_alignment),
  627. X      XmRImmediate, (XtPointer) XbaeAlignmentCenter },
  628. X    { XmNlabelOffset, XmCLabelOffset, XmRInt, sizeof(int),
  629. X          OffsetOf(caption.label_offset), XmRImmediate, (XtPointer) 0 },
  630. X    { XmNlabelPixmap, XmCLabelPixmap, XmRPrimForegroundPixmap, sizeof(Pixmap),
  631. X      OffsetOf(caption.label_pixmap),
  632. X      XmRImmediate, (XtPointer) XmUNSPECIFIED_PIXMAP },
  633. X    { XmNlabelPosition, XmCLabelPosition, XmRLabelPosition,
  634. X      sizeof(XbaeLabelPosition), OffsetOf(caption.label_position),
  635. X      XmRImmediate, (XtPointer) XbaePositionLeft },
  636. X    { XmNlabelString, XmCXmString, XmRXmString, sizeof(XmString),
  637. X      OffsetOf(caption.label_string), XmRImmediate, (XtPointer) NULL },
  638. X    { XmNlabelTextAlignment, XmCAlignment, XmRAlignment, sizeof(unsigned char),
  639. X      OffsetOf(caption.label_text_alignment),
  640. X      XmRImmediate, (XtPointer) XmALIGNMENT_CENTER },
  641. X    { XmNlabelType, XmCLabelType, XmRLabelType, sizeof(unsigned char),
  642. X      OffsetOf(caption.label_type), XmRImmediate, (XtPointer) XmSTRING },
  643. };
  644. X
  645. #undef OffsetOf
  646. X
  647. /*
  648. X * Macro to retrieve our label and the user's child.
  649. X */
  650. #define LabelChild(w)     (((CompositeWidget)w)->composite.children[0])
  651. #define UserChild(w)      (((CompositeWidget)w)->composite.children[1])
  652. X
  653. #define HaveUserChild(w)  (((CompositeWidget)w)->composite.num_children > 1 \
  654. X               && XtIsManaged(UserChild(w)))
  655. X
  656. X
  657. /*
  658. X * Declaration of methods
  659. X */
  660. static void ClassInitialize();
  661. static void Initialize();
  662. static void InsertChild();
  663. static Boolean SetValues();
  664. static void SetValuesAlmost();
  665. static void GetValuesHook();
  666. static void Resize();
  667. static void ChangeManaged();
  668. static XtGeometryResult GeometryManager();
  669. static XtGeometryResult QueryGeometry();
  670. X
  671. /*
  672. X * Private functions
  673. X */
  674. static void ComputeSize(), ComputeUserChildSize(), Layout();
  675. static Boolean CompareStrings();
  676. X
  677. /*
  678. X * Type converters
  679. X */
  680. static Boolean CvtStringToLabelPosition(), CvtStringToLabelAlignment();
  681. X
  682. X
  683. XXbaeCaptionClassRec xbaeCaptionClassRec = {
  684. X    {
  685. X    /* core_class fields */
  686. X    /* superclass            */ (WidgetClass) &xmManagerClassRec,
  687. X    /* class_name            */ "XbaeCaption",
  688. X    /* widget_size            */ sizeof(XbaeCaptionRec),
  689. X    /* class_initialize        */ ClassInitialize,
  690. X    /* class_part_initialize    */ NULL,
  691. X    /* class_inited            */ False,
  692. X    /* initialize            */ Initialize,
  693. X    /* initialize_hook        */ NULL,
  694. X    /* realize            */ XtInheritRealize,
  695. X    /* actions            */ NULL,
  696. X    /* num_actions            */ 0,
  697. X    /* resources            */ resources,
  698. X    /* num_resources        */ XtNumber(resources),
  699. X    /* xrm_class            */ NULLQUARK,
  700. X    /* compress_motion        */ True,
  701. X    /* compress_exposure        */ XtExposeCompressMaximal,
  702. X    /* compress_enterleave        */ True,
  703. X    /* visible_interest        */ False,
  704. X    /* destroy            */ NULL,
  705. X    /* resize            */ Resize,
  706. X    /* expose            */ _XmRedisplayGadgets,
  707. X    /* set_values            */ SetValues,
  708. X    /* set_values_hook        */ NULL,
  709. X    /* set_values_almost        */ SetValuesAlmost,
  710. X    /* get_values_hook        */ GetValuesHook,
  711. X    /* accept_focus            */ NULL,
  712. X    /* version            */ XtVersion,
  713. X    /* callback_private        */ NULL,
  714. X    /* tm_table            */ XtInheritTranslations,
  715. X    /* query_geometry        */ QueryGeometry,
  716. X    /* display_accelerator        */ NULL,
  717. X    /* extension            */ NULL
  718. X    },
  719. X    {
  720. X    /* composite_class fields */
  721. X    /* geometry_manager        */ GeometryManager,
  722. X    /* change_managed        */ ChangeManaged,
  723. X    /* insert_child            */ InsertChild,
  724. X    /* delete_child            */ XtInheritDeleteChild,
  725. X    /* extension            */ NULL,
  726. X    },
  727. X    {
  728. X    /* constraint_class fields */
  729. X    /* resources            */ NULL,
  730. X    /* num_resources        */ 0,
  731. X    /* constraint_size        */ 0,
  732. X    /* initialize            */ NULL,
  733. X    /* destroy            */ NULL,
  734. X    /* set_values            */ NULL,
  735. X    /* extension            */ NULL
  736. X    },
  737. X    {
  738. X    /* manager_class fields */
  739. X    /* translations            */  XtInheritTranslations,
  740. X    /* syn_resources        */  NULL,
  741. X    /* num_syn_resources        */  0,
  742. X    /* syn_constraint_resources    */  NULL,
  743. X    /* num_syn_constraint_resources */  0,
  744. X    /* parent_process        */  XmInheritParentProcess,
  745. X    /* extension            */  NULL
  746. X    },
  747. X    {
  748. X    /* matrix_class fields */
  749. X    /* extension            */ NULL,
  750. X    }
  751. };
  752. X
  753. WidgetClass xbaeCaptionWidgetClass = (WidgetClass)&xbaeCaptionClassRec;
  754. X
  755. X
  756. static void
  757. ClassInitialize()
  758. {
  759. X    XtSetTypeConverter(XmRString, XmRLabelAlignment,
  760. X                       CvtStringToLabelAlignment, NULL, 0,
  761. X                       XtCacheAll, NULL);
  762. X
  763. X    XtSetTypeConverter(XmRString, XmRLabelPosition,
  764. X                       CvtStringToLabelPosition, NULL, 0,
  765. X                       XtCacheAll, NULL);
  766. }
  767. X
  768. /* ARGSUSED */
  769. static void
  770. Initialize(request, new, args, num_args)
  771. XXbaeCaptionWidget request, new;
  772. ArgList args;
  773. Cardinal *num_args;
  774. {
  775. X    /*
  776. X     * Validate our labelPosition
  777. X     */
  778. X    switch (new->caption.label_position) {
  779. X    case XbaePositionLeft:
  780. X    case XbaePositionRight:
  781. X    case XbaePositionTop:
  782. X    case XbaePositionBottom:
  783. X    break;
  784. X    default:
  785. X    XtAppWarningMsg(XtWidgetToApplicationContext((Widget)new),
  786. X                        "initialize", "badLabelPosition", "XbaeCaption",
  787. X                        "XbaeCaption: Invalid label position.",
  788. X                        (String *) NULL, (Cardinal *) NULL);
  789. X    new->caption.label_position = XbaePositionLeft;
  790. X    break;
  791. X    }
  792. X
  793. X    /*
  794. X     * Validate our labelAlignment
  795. X     */
  796. X    switch (new->caption.label_alignment) {
  797. X    case XbaeAlignmentTopOrLeft:
  798. X    case XbaeAlignmentCenter:
  799. X    case XbaeAlignmentBottomOrRight:
  800. X    break;
  801. X    default:
  802. X    XtAppWarningMsg(XtWidgetToApplicationContext((Widget)new),
  803. X                        "initialize", "badLabelAlignment", "XbaeCaption",
  804. X                        "XbaeCaption: Invalid label alignment.",
  805. X                        (String *) NULL, (Cardinal *) NULL);
  806. X    new->caption.label_alignment = XbaeAlignmentCenter;
  807. X    }
  808. X
  809. X
  810. X    /*
  811. X     * Create the label with our name, so if no labelString is specified,
  812. X     * it will use our name as it's label.
  813. X     */
  814. X    (void)
  815. X    XtVaCreateManagedWidget(XtName(new),
  816. X                xmLabelWidgetClass, new,
  817. X                XmNbackground,    new->core.background_pixel,
  818. X                XmNforeground,    new->manager.foreground,
  819. X                XmNfontList,    new->caption.font_list,
  820. X                XmNlabelType,    new->caption.label_type,
  821. X                XmNalignment,
  822. X                    new->caption.label_text_alignment,
  823. X                XmNlabelString,    new->caption.label_string,
  824. X                XmNlabelPixmap,    new->caption.label_pixmap,
  825. X                XmNborderWidth,    0,
  826. X                NULL);
  827. X
  828. X    /*
  829. X     * The label makes a copy of these, so NULL them out
  830. X     * (we don't want to point to the user's data).
  831. X     * get_values_hook will handle a get_values on these.
  832. X     */
  833. X    new->caption.label_string = NULL;
  834. X    new->caption.font_list = NULL;
  835. X
  836. X    /*
  837. X     * We are the same size as our label.  We ignore user specified
  838. X     * width/height.
  839. X     */
  840. X    new->core.width = LabelChild(new)->core.width;
  841. X    new->core.height = LabelChild(new)->core.height;
  842. }
  843. X
  844. static void
  845. InsertChild(w)
  846. Widget w;
  847. {
  848. X    if (((CompositeWidget)XtParent(w))->composite.num_children > 1) {
  849. X        XtAppWarningMsg(XtWidgetToApplicationContext(w),
  850. X                        "insertChild", "badChild", "XbaeCaption",
  851. X                        "XbaeCaption: Cannot add more than one child.",
  852. X                        (String *)NULL, (Cardinal *)NULL);
  853. X        return;
  854. X    }
  855. X
  856. X    (*((CompositeWidgetClass)
  857. X       (xbaeCaptionWidgetClass->core_class.superclass))->composite_class.
  858. X     insert_child) (w);
  859. }
  860. X
  861. X
  862. /* ARGSUSED */
  863. static Boolean
  864. SetValues(current, request, new, args, num_args)
  865. XXbaeCaptionWidget current, request, new;
  866. ArgList args;
  867. Cardinal *num_args;
  868. {
  869. X    Dimension old_label_width, old_label_height;
  870. X    Boolean layout = False;
  871. X    int n;
  872. X    Arg largs[7];
  873. X
  874. #define NE(field)       (current->field != new->field)
  875. #define EQ(field)       (current->field == new->field)
  876. X
  877. X    /*
  878. X     * Validate our labelPosition
  879. X     */
  880. X    if (NE(caption.label_position)) {
  881. X    switch (new->caption.label_position) {
  882. X    case XbaePositionLeft:
  883. X    case XbaePositionRight:
  884. X    case XbaePositionTop:
  885. X    case XbaePositionBottom:
  886. X        break;
  887. X    default:
  888. X        XtAppWarningMsg(XtWidgetToApplicationContext((Widget)new),
  889. X                "setValues", "badLabelPosition", "XbaeCaption",
  890. X                "XbaeCaption: Invalid label position.",
  891. X                (String *) NULL, (Cardinal *) NULL);
  892. X        new->caption.label_position = current->caption.label_position;
  893. X    }
  894. X    }
  895. X
  896. X    /*
  897. X     * Validate our labelAlignment
  898. X     */
  899. X    if (NE(caption.label_alignment)) {
  900. X    switch (new->caption.label_alignment) {
  901. X    case XbaeAlignmentTopOrLeft:
  902. X    case XbaeAlignmentCenter:
  903. X    case XbaeAlignmentBottomOrRight:
  904. X        break;
  905. X    default:
  906. X        XtAppWarningMsg(XtWidgetToApplicationContext((Widget)new),
  907. X                "setValues", "badLabelAlignment", "XbaeCaption",
  908. X                "XbaeCaption: Invalid label alignment.",
  909. X                (String *) NULL, (Cardinal *) NULL);
  910. X        new->caption.label_alignment = current->caption.label_alignment;
  911. X    }
  912. X    }
  913. X
  914. X    /*
  915. X     * Save labels size in case XtSetValues changes it below.
  916. X     */
  917. X    old_label_width = LabelChild(new)->core.width;
  918. X    old_label_height = LabelChild(new)->core.height;
  919. X
  920. X    /*
  921. X     * Pass through resources to our label.  Our geometry_manager
  922. X     * will let it change size if it needs to.
  923. X     */
  924. X    n = 0;
  925. X    if (NE(caption.label_type)) {
  926. X    XtSetArg(largs[n], XmNlabelType,new->caption.label_type);    n++;
  927. X    }
  928. X    if (NE(caption.label_text_alignment)) {
  929. X    XtSetArg(largs[n], XmNalignment,
  930. X         new->caption.label_text_alignment);            n++;
  931. X    }
  932. X    if (NE(caption.label_string)) {
  933. X    XtSetArg(largs[n], XmNlabelString, new->caption.label_string);    n++;
  934. X    }
  935. X    if (NE(caption.label_pixmap)) {
  936. X    XtSetArg(largs[n], XmNlabelPixmap, new->caption.label_pixmap);    n++;
  937. X    }
  938. X    if (NE(caption.font_list)) {
  939. X    XtSetArg(largs[n], XmNfontList, new->caption.font_list);    n++;
  940. X    }
  941. X    if (NE(core.background_pixel)) {
  942. X    XtSetArg(largs[n], XmNbackground, new->core.background_pixel);    n++;
  943. X    }
  944. X    if (NE(manager.foreground)) {
  945. X    XtSetArg(largs[n], XmNforeground, new->manager.foreground);    n++;
  946. X    }
  947. X    if (n) {
  948. X    XtSetValues(LabelChild(new), largs, n);
  949. X
  950. X    /*
  951. X     * The label makes a copy of these, so NULL them out
  952. X     * (we don't want to point to the user's data).
  953. X     * get_values_hook will handle a get_values on these.
  954. X     */
  955. X    new->caption.label_string = NULL;
  956. X    new->caption.font_list = NULL;
  957. X    }
  958. X
  959. X    /*
  960. X     * Calculate a new size if the label changed size, or if offset changed,
  961. X     * or if alignment or position changed in a way which requires a new
  962. X     * size.  Our resize or set_values_almost methods will lay things out.
  963. X     */
  964. X    if (old_label_width != LabelChild(new)->core.width ||
  965. X    old_label_height != LabelChild(new)->core.height ||
  966. X    NE(caption.label_offset) || NE(caption.label_position)) {
  967. X
  968. X    if (!HaveUserChild(new)) {
  969. X        new->core.width = LabelChild(new)->core.width;
  970. X        new->core.height = LabelChild(new)->core.height;
  971. X    }
  972. X    else
  973. X        ComputeSize(new, &new->core.width, &new->core.height,
  974. X            UserChild(new)->core.width,
  975. X            UserChild(new)->core.height,
  976. X            UserChild(new)->core.border_width);
  977. X
  978. X    /*
  979. X     * If, after all that, our size didn't change, then we need
  980. X     * to layout (since resize and set_values_almost won't be called).
  981. X     */
  982. X    if (EQ(core.width) && EQ(core.height))
  983. X        layout = True;
  984. X    }
  985. X
  986. X    /*
  987. X     * If label alignment changed, but our size didn't, then we need to layout
  988. X     * (since resize and set_values_almost won't be called).
  989. X     */
  990. X    if (NE(caption.label_alignment) && EQ(core.width) && EQ(core.height))
  991. X    layout = True;
  992. X
  993. X    if (layout)
  994. X    Layout(new, True);
  995. X
  996. X    return False;
  997. X
  998. #undef EQ
  999. #undef NE
  1000. }
  1001. X
  1002. /* ARGSUSED */
  1003. static void
  1004. SetValuesAlmost(old, new, request, reply)
  1005. XXbaeCaptionWidget old;
  1006. XXbaeCaptionWidget new;
  1007. XXtWidgetGeometry *request;
  1008. XXtWidgetGeometry *reply;
  1009. {
  1010. X    /*
  1011. X     * If XtGeometryAlmost, accept compromize - our resize method
  1012. X     * will take care of it.
  1013. X     */
  1014. X    if (reply->request_mode)
  1015. X        *request = *reply;
  1016. X
  1017. X    /*
  1018. X     * If XtGeometryNo, then layout if it was a size change that was denied,
  1019. X     * and accept the original geometry.
  1020. X     */
  1021. X    else {
  1022. X        if (request->request_mode & CWWidth ||
  1023. X        request->request_mode & CWHeight)
  1024. X        Layout(new, True);
  1025. X
  1026. X        request->request_mode = 0;
  1027. X    }
  1028. }
  1029. X
  1030. static void
  1031. GetValuesHook(cw, args, num_args)
  1032. XXbaeCaptionWidget cw;
  1033. ArgList args;
  1034. Cardinal *num_args;
  1035. {
  1036. X    int i;
  1037. X
  1038. X    /*
  1039. X     * We don't save a copy of the label_string or font_list.
  1040. X     * If the user wants these, we get them from the label widget.
  1041. X     */
  1042. X    for (i = 0; i < *num_args; i++)
  1043. X    if (strcmp(args[i].name, XmNlabelString) == 0)
  1044. X        XtGetValues(LabelChild(cw), &args[i], 1);
  1045. X    else if (strcmp(args[i].name, XmNfontList) == 0)
  1046. X        XtGetValues(LabelChild(cw), &args[i], 1);
  1047. }
  1048. X
  1049. /*
  1050. X * Do not configure the user's child if configure is False.
  1051. X * This is for when we are laying out from within our GeometryManager.
  1052. X * Since we are following a XtGeometryYes policy, we shouldn't config
  1053. X * the initiating child (the label never initiates)
  1054. X */
  1055. static void
  1056. Layout(cw, configure)
  1057. XXbaeCaptionWidget cw;
  1058. Boolean configure;
  1059. {
  1060. X    Position label_x, label_y;
  1061. X    Position user_x, user_y;
  1062. X    Dimension user_width, user_height;
  1063. X
  1064. X    /*
  1065. X     * If we only have the label, position it at 0,0.
  1066. X     */
  1067. X    if (!HaveUserChild(cw)) {
  1068. X    XtMoveWidget(LabelChild(cw), 0, 0);
  1069. X    return;
  1070. X    }
  1071. X
  1072. X    /*
  1073. X     * Calculate the positions of our label and user's children.
  1074. X     */
  1075. X    switch (cw->caption.label_position) {
  1076. X
  1077. X    case XbaePositionLeft:
  1078. X    case XbaePositionRight:
  1079. X    switch (cw->caption.label_alignment) {
  1080. X    case XbaeAlignmentTopOrLeft:
  1081. X        label_y = 0;
  1082. X        break;
  1083. X    case XbaeAlignmentCenter:
  1084. X        label_y = (int) (cw->core.height / 2) -
  1085. X        (int) (LabelChild(cw)->core.height / 2);
  1086. X        break;
  1087. X    case XbaeAlignmentBottomOrRight:
  1088. X        label_y = (int)cw->core.height - (int)LabelChild(cw)->core.height;
  1089. X        break;
  1090. X    }
  1091. X    user_y = 0;
  1092. X    break;
  1093. X
  1094. X    case XbaePositionTop:
  1095. X    case XbaePositionBottom:
  1096. X    switch (cw->caption.label_alignment) {
  1097. X    case XbaeAlignmentTopOrLeft:
  1098. X        label_x = 0;
  1099. X        break;
  1100. X    case XbaeAlignmentCenter:
  1101. X        label_x = (int) (cw->core.width / 2) -
  1102. X        (int) (LabelChild(cw)->core.width / 2);
  1103. X        break;
  1104. X    case XbaeAlignmentBottomOrRight:
  1105. X        label_x = (int)cw->core.width - (int)LabelChild(cw)->core.width;
  1106. X        break;
  1107. X    }
  1108. X    user_x = 0;
  1109. X    break;
  1110. X    }
  1111. X
  1112. X
  1113. X    /*
  1114. X     * Calculate the positions of our label and user's children.
  1115. X     */
  1116. X    switch (cw->caption.label_position) {
  1117. X
  1118. X    case XbaePositionLeft:
  1119. X    if ((int)LabelChild(cw)->core.width + cw->caption.label_offset > 0) {
  1120. X        label_x = 0;
  1121. X        user_x = (int)LabelChild(cw)->core.width +
  1122. X        cw->caption.label_offset;
  1123. X    }
  1124. X    else {
  1125. X        label_x = -cw->caption.label_offset;
  1126. X        user_x = 0;
  1127. X    }
  1128. X    break;
  1129. X
  1130. X    case XbaePositionRight:
  1131. X    if ((int)LabelChild(cw)->core.width + cw->caption.label_offset > 0)
  1132. X        label_x = (int)cw->core.width - (int)LabelChild(cw)->core.width;
  1133. X    else
  1134. X        label_x = (int)cw->core.width - ((int)LabelChild(cw)->core.width -
  1135. X                         cw->caption.label_offset);
  1136. X    user_x = 0;
  1137. X    break;
  1138. X
  1139. X    case XbaePositionTop:
  1140. X    if ((int)LabelChild(cw)->core.height + cw->caption.label_offset > 0) {
  1141. X        label_y = 0;
  1142. X        user_y = (int)LabelChild(cw)->core.height +
  1143. X        cw->caption.label_offset;
  1144. X    }
  1145. X    else {
  1146. X        label_y = -cw->caption.label_offset;
  1147. X        user_y = 0;
  1148. X    }
  1149. X    break;
  1150. X
  1151. X    case XbaePositionBottom:
  1152. X    user_y = 0;
  1153. X    label_y = cw->core.height - LabelChild(cw)->core.height;
  1154. X
  1155. X    if ((int)LabelChild(cw)->core.height + cw->caption.label_offset > 0)
  1156. X        label_y = (int)cw->core.height - (int)LabelChild(cw)->core.height;
  1157. X    else
  1158. X        label_y = (int)cw->core.height -
  1159. SHAR_EOF
  1160. true || echo 'restore of Xbae/src/Caption.c failed'
  1161. fi
  1162. echo 'End of Xbae part 4'
  1163. echo 'File Xbae/src/Caption.c is continued in part 5'
  1164. echo 5 > _shar_seq_.tmp
  1165. exit 0
  1166. -- 
  1167. --
  1168. Molecular Simulations, Inc.            mail: dcmartin@msi.com
  1169. 796 N. Pastoria Avenue                uucp: uunet!dcmartin
  1170. Sunnyvale, California 94086            at&t: 408/522-9236
  1171.