tutorial/000755 000466 000017 00000000000 07604103065 012714 5ustar00timusers000000 000000 tutorial/footnote.html000644 000466 000017 00000002327 07604123717 015451 0ustar00timusers000000 000000 A footnote about the "mu" character in LaTeX It just so happens that although the "mu" character is encoded into the Adobe fonts, but is not part of any of the TeX fonts or TeX font encodings of standard Adobe (or TrueType) fonts. However, it is not strictly true that printing the character is impossible. I, being the enterprising character that I am, have found a (somewhat kludgy) workaround:
  1. First, you must be using one of the PSNFSS packages available under LaTeX2e, such as "times" (\usepackage{times})
  2. Next, create the following definition:
    \def\micro{\special{ps:()show}\nobreak\hspace*{0.55em}}
    (The "mu" character here is the embedded 8-bit character encoding hex 0xb5, or decimal 181, or octal 0625).
  3. The \micro definition can be used as follows, for example:
    The correlator measures 700\,{\micro}m $\times$ 1170\,{\micro}m
  4. This definition of \micro uses a \special{} function defined only by (as far as I know) dvips, so the proper symbol will only show up after postprocessing the .dvi file through dvips.
"mu" character here is the embedded 8-bit character encoding hex 0xb5, or decimal 181, or octal 0625).
  • The \micro definition can be used as follows, for example:
    The correlator measures 700\,{\micro}m $\times$ 1170\,{\micro}m
  • This definition of \microMյWc,}VD5w M|ԯk/7ƟKPE+}u_G_s{ !Rނ>  :衈'H+!3ty?VV#fHc22 c LiU^yeZNe|٥Z%^Iai&nƩi)'tix fmc:eJ"*M&B/BcNjO:)))d 䐟& 5iꥳʚh*:*fHj ꪺ&j*-Rk+bl*kd&n[.ܪKгFkV[f H+ l/0+꫰b|.1N,q$S&C roZ.+33#\fL,7CdCSVe9 4K4;+5S;]5=Kuo(0\3p12al{,2wwg%֭qi=ڂkwmn8rCN7K9,8k>v 9镃îvg.37窗*vC^ʽ|뵇-3/س't;=s{W>w ?⇯gTX&CMP 'pPl`"X Z` HA=m|/|>Osa?ZτZ~? (DAaNTHƲy_-MHV=ͧVqVyU` kQکIgyQkC͸&w<] BһM;˪JוulF[;tcRS>mkRWҀ4b nu PAnsJ\2փmtm{ZWוz x ]׼-oz#{]o~]L_aJjG{g ƫj+ J[: J:' T"Q2xMD=T{6GLً.$cc/r 3fkV?m-&6PHֲCY]˽zy >6c&nCraS_,8 WT$1 )ŜdΘKvRաhmZ۞9}fS?~mw|s/ssԃQWwO?{'oKr?|x|x H؀%(JG,y7{#H'=0GcJ@؃ !CH'DF( f\avmZwvWRH\vSX&?%?h&_V_r4fiXl'n\c†^vygBO878HHJX+8GGH-aSsDBa12у=Ȉ18/A! ‰kቬ"8qxBXhH e(|Nъh(88.ȋ3A:rǘA/VHHM'(abȄ芕hYPb h')$ɑ&tsAb؍ȑLBxBɓN)qx61jz ( 9>閃)z3ړY>,Iz?':*٠RI5*I%q"W \*Y?JڑAR?5z+cV9)fZFsJvʣ .hs)ڗri ٍJ3bEɤĨ計Aȕ@:Si9IJܘ*Hx CR:Tz7.ڂ8WHhm#X+3-Vvj*vk7rHh8xjTد@#xӺ0\^ȭ#Wk;:[ kۇ BJȰDr 6I)[z6x7+*$OˢәS .W[)9Xۍ(س^3˲pUJ0oIɶȚr[Fv H2õ+jKkts8 R*iYda+Q(ܷƖ}Jٺ4iYO[DWN+LkWz+F8ϫI{g+ͫ >饢1Ly۽.f!K勨ϪJx˩0˽kL'ˢa)9}ɸĈA)+ؿT-ɧ{ ̷;M ~ˊ*vd+R9 []*d=c 8 i[ܶm~r=~;uM˺o}vZfȜՂ]օщ---ԐMV~yԓ؎]Gن֚'=g-jؕNM٠ڭӫڭF^qZMھڙ=ڍmiۥ=½لܧ~}1嫯L{`hՍzo۩ݿޘfܲ]}ܴ۟-=H}-K] >MMN,nd M =& ۅ"q{җwyA=Nׯ5N߮}0 /Kn')\S2~Ye>y;ôC:njMtutorial/giffiles/alib.gif000644 000466 000017 00000007222 07016571030 016103 0ustar00timusers000000 000000 GIF87aib@W.fgi@fX'F?5Tc@D8MOM?@L@WvHf @@ XXFFXFT0On-i4E%B LYh;Z*f~)T[YUOCI4v6Y!0RͲM=\lJ\C-nrxceH5k\T=nJEЭ?;]k~Ͱԉw-^Wm|[ *+_JJ_*h$Kڭ뙯7Dh >>XTI. J_0 xIrSa;S0wHCZu1 G[j 3~gd% ،kd>rHhMv|{o+b3FmFf5[M_dhͥ0rlF;ѐ'MJ[Ҙδ7N{ӠGMRԨNWVհgcA+'w4֩}$l c#õu=ZݻTh*\‹ֽj*C'ufQy=TԮ4e+IT-k _~xyln)b VS`Ґj8a'F5r՛9nדk(̋U|$Y!7-睭8v{/_wcQ{xxdK<8~~wN*_jtMQ-,ϫr gy؛gJ;k%Fݑ|+ۑ>xٛB;no\; <3+ܵg4}#>AzrOoq֜룧P^zs,;i{Ҷ|)w>UMm6 x?ߏcMԤ7]k;{B-ZlO1/#*Ozh#i-8Xx ؀8Xx؁ "8$X&xb,^qւ0*483X87<;؃@(TgFxdR)uL%wӄR;Sdtƥ}Z'an`XAO^Xhlx6lY…y"^rxr`v|Xhcև8WVc(e/؈h4X]h}؉T艂x$xbYI6lnvPWi]y6ƨ0ȁZG|]DHnxBx^wd:{lȍ=^e#H8h爎.Y&88X؍؏ى?8( 9Yyّ "9$Y&y(*#((p,yxj7?Vד:ɂ<z!8GB8izHIHŔOUNW YI[`b9dYfyhjlٖnpr9tYvyxz|ٗ~9Y;3X87<;؃@(TgFxdR)uL%wӄR;Sdtƥ}Z'an`XAO^Xhlx6lY…y"^rxr`v|Xhcև8WVc(e/؈h4X]h}؉T艂x$xbYI6lnvPWi]y6ƨ0ȁZG|]DHnxBx^wd:{lȍ=^e#H8h爎.Y&88X؍؏ى?8( 9Yyّ "9$Y&y(tutorial/giffiles/amp1.gif000644 000466 000017 00000017257 07016340542 016045 0ustar00timusers000000 000000 GIF87aWXfF@XF5Tc@D8MOM?@L@WvHf @@ XXFFXFTtj[]߆NC-Kw޴=ma໏mweS&pgĘCk̘J7CV-YgנG.=;ʵqw G6}Vnjϝf;rͩ'^}xv.<׽>|ᯟ>}ѵMǟ(_}x w ByxQ8 )8y z"(&x*Hb)(c8V;f.6c?FH򘤏C$M%O:LV`jI%$(zycNy&Vf)i$,y_'hΩf}$gxg|r6裐F*餔Vj饘f馜v駖 ꨤjꩨ^pZfzu'w窼"k j++ƚ, 챻Z-knl)Kn~-4B/{⫮wl;/" /R|p*|1s#'12+k\2J3-p27ܱ22y9;523\FsK44_ʹDWt]MS u=Agݶoc hͶx|߀.jnvqoa/ywmܘ;~!vR.z?6y噳:㦻.; 9jSN{뻿::{;?/}&O_<٣_/yȋ=ه>+>?~ I^刺E}{_7oB= O3" j E(t$DV gH2P~8\VЇHDB`=Dq9bwD*NC̡%"E(6XbhE/rctE2FDcX>юkd^:1cGBt;GA&4c$X.Rrt&H8͒&!II2)CINfRa UJS$hW&.cJ^5L2LHɰЌ&j ּf^kvĦ5WMl(AgDʙsB:ۙoR_a'=Rz(ҧ͙ҏNԦ")@}IPsԦ4!;)SdiO8НԩCuXqӫZhQV W'bV$Z9։5D 7׽VmOjתC~%lCPb)\_JbP P̚,=:B*4l;5 VUl\sԎ>-T;NҲiYU?%.M3̽mUrMk\Ý-KX~])g6 xR}H ^귾/{[۫ؼ-!Zַ/ZەDvYZ[ҷ!p5`sߓpqQl'#g8αw[@&LdEN(_D2c7ea7EUk^-'˲s_"0غ1fyjsd8LάylgoN9m.DMgAKφ*:_\Lt)=M_}rSMGZԇf/Dj-s)sdjZPL} [֭;W:~+=k4{mxMn>7;F]'Qi,C5H./ FpG<ġMۜ,b^d|n_>𓷻Ɲ+Щ>j3gzpR;^tJ۷vnߎ{>nk;.i[R><3o8;S)^FŸo{[[{֗· zr>|ݿ|'}p(~}{~ H rghjXx5NVx UN y8zELvu'Nł$.|1hmTY|0z=(=?xv{C8@EȀp<5hPF("ybod\؅^(#('yZ^xhcf(c"}yKsENatWuGhI(S#M(Oo7y#hN(LjyLb#}hNwWbUHa#ȉ~XFGłW(xu8_3w}ŨVUh&xshhR˜/Xvxْ8ڶ؎(e8Xw8H!(옏iۘꈐ YxpkggUd9Df u{nn(mL7L97;B=9CAxy,bגi'.)xɔK0HƗUUYYR9H]yy,Ts@7Nv[yw;(tS/yOh rhtIxmIxyחPYvz iȗ J镉ikٔyYuiYIəȘ v阬I{yuJ(xcYg) (59/y0ԜЩd列frǙ9߉iI)tI)5𩟾ȝYVvqFٞi稠)Xiɠzoɟ99f݈ 9Jj+u幟%J5J-j;*ʛ3z*9 :ڣR7Q*o\ڥ^`b:d*Phjlڦnʥgrq:vzxt|ڧ>ʤz$YzHzjE.ZѨICʢjxw7jwFZ)쁪xJ ژyjz<z Jz|:v/*x JЊj8/ڭ2׺YIYz)ѪWR dlxbȆ?f"LƩ4:99z*:ɱ z^G@j"i*,.ˮgɚRgyj<k̊ZzL+ڳ@۴Z8JL,99m6B 7r7M 'Nm7, ̈́@=Ӳ):SM'U}1W-E-J֕`mbPdfv׵"5[}CLmؗr ֔Ճ#הםyԜ}|MVMצ$Mң=-]`ګ#h\c]yAۘ[B:ş=~ڨ֪ܶ Sܨsa-X-B2.3]=mxm#}ޭڝ5ؒM)LսÍ Ο = -~ ԰߻/ ޺Ǔ%nǛތZ3N+I'."Z2*j,\';‪ڹ]AFR n劜M8<oJMg=T' IT .^W~C=eq|^nى>M^oEhj|j=c^ mۊn f;~Lmk -+vc,?:_/|qMnnK%T$܊?3;ow+RE-Oel[]_2Ѭ[k[cW|z~쒯VO}O̗_ _퐿a//U?s?^_l,-ݺ/~.Z(ȟʿ߾J(]Xo_J_[د/g}?'{?{ ϷOf1@  B "t`D +NXbō;>0BK. 1ŕ)re™05PSLGӧЋ6YY(ǥxTIZ$N"4Vd^=׵`W5[5m\rū6cζ* {p,۹=Lq^ō58bʎ!_~;n T͙%<ٲE> ;5ՠGkskۼI~߳e.&<:tҫS:g7><|ri?^0ݿ9wnO,l?/APSA&<0B ƻ ?CND1EWdE_EbFo1Gw1H!qF"<2I|lJI 0Dr*J1K)Ir-d3J0ɼRNtMrնշ]}Iy {ߌM|U=w~-߁]k8^7X!yeSg>It':)ЀVĠUh.NV^fB'PBTGEPs%%gHI ҌZ[H;SԦ0)Euҝ4<CkR==*PoRTJMjQ:G4WmjU*ՠ:UFͪLjհԫ*YպUՎB)WV5t}VVyӯlXEwX+T.UEdXr֏^3;jfi+Ѳjga-h=6ul!•nZlmoWunvsƶ/w[%vrnwi^ў7X@;GB"|H;RR]d"I Ғd0YFv4d'OiQV2|e*IJyeSg>It':)ЀVĠUh.NV^fB'PBTGEPs%%gHI ҌZ[H;SԦ0)Euҝ4<CkR==*PoRTJMjQ:G4WmjU*ՠ:UFͪLjհԫ*YպUՎB)WV5t}VVytutorial/giffiles/amp2.gif000644 000466 000017 00000016714 07466474712 016063 0ustar00timusers000000 000000 GIF87aWXfF@XF5Tc@D8MNM?@L@WvHf @@ XXFFXFT,2Zʗ-Ifl!{t̠OFuԣasmβ_[ج_Z5Ɠ/ys9wmo뿩ν굯}v睧_|yLJ>;v?zw"߀!(1O'U8a bؠgR{ rh!B߁"h"+b/nc(8I5z(%a$㐶xb5,2颓Kc@V9Pʘ%)%;nydT&?a&mcIq9yɥp)'~x h|>(C~ֹ藃"j[V*顊FjQr )0RzZ)=gXꨧ*Zk1+|F&짬l*BR{'ꬭn-F[ʪ"[vnق˭;/BKo ܭ/kV Sr%f<lq l)\37Ì<3+3@,DӼ2H9s"3fNlt.-MO:9oʌFݵGms`sacM2jSmq=7-5r{lw{ |vR)7G.yrP^c>皗I:AO:BNt9=6[E@Ct| N|jfɿM7c~PVgg~ۏ?+!_ć7.u#^Ow s>M~tA`EL:ΏLDL̅,", ;PTHfhP>(Dpl8)GB)wL4'W],2ρL90"0(Va70Xcƈ&8ʑy[x0ыjcڨGzȲs|!Q!FR, xf2c'1HeDR>y@+J3+>JŽc·EDjQ< R! 73X&хq$ͨiIܬ5{LU*夹Z3,"yӞg*ϱhҫa6GЂІ&/A*9Zts 3} wzwAIO}D%%Pzϖ4%,gLiIRdNf$ui?iS5uOwTlIu#T=ZTJ(ZU:+V VSs*?$/ukVtԹ3W}WjsH+FU'+_XU$pl]4֜5+ KյT];)q5Iij&R@Rֶl!k۔6ljp 7ŭnj:0͍\tZV+r7Ud;47?-.E"ַ.HȫZ׻i~Wy;XԾ|;7`,<^%n7` ׷#.0[8,~L`f1l#B߀fQcl\+1k"?##eLa)W8u(s:԰l*Cٍ3DڗYӽ3^0xgn֋ cźhVh ,K/G}CgFQi7oYԏNMPWV)Oj4G6.7=yz.µkNvץ5W=ku1r~u;f m V6jUw[ֶ{Fykmt;F5Ջ 1 'Htɖ7Mm6foS3.q~uL䜝8~uS.P^nu{\Lܪ6zo^r/}´v}p'9zognHBr<1ocEyQ_OaAoo|G}{3C7íd}wXdd&y"8xBX?_*h}m%e@؄Vu7$xׅ{`oFXHS6Qxo׆s8dPk)Nh&hg'phOf|sYXH 8FH؆yxbxX,8xXl(g؉/fxkm3x8&Gu(.u68臬$󋆃H<g7vu3Hu22chk8OOȍ-Ȍ82!̤XH~w؎؈8cȄ؃èȏ;xxtZ󨄒ȅXVؐ訇 9e #ؑ#}FI #IHƓ.@i'=9Y ɇq4zf*I֒9QP3TU_#ИZ–qagj8ngPvyxzv |9Y~yɗ٘YIg5 PؕG5ǔɧR)iM9XN)0xGaxGiYip#r隽Yɀɛ)`hbI·%ٚ)x?i9dɞVJIsIُIy'GL_TtkHii}1]R7v&OgQX7+ 0*g9Hj򩞭t"bSx)Di>y?꣎4h8-; *FO 6iه!`*i95 _ʤgJd{t .C@&8{KvM, J7%JuX`[bQ/+4kq~-#G4R˲QpAzG:ij0K>#Q[˛&+zx+=7S+JmT#q[%5w۹iE;+ ;t갮{,2[YZŻ Kf˸|ki1˳ + #뱬~[˶۸;՛+Pbeg+:Rϵ ӾWۻ+UcZ*˾< |vL8K͛o\2 \ɻ[ L%l+wҽ.l#̿[V"8(l9°=:L&<|4lG¸>ĺ:D|Cl;{wca K\!h^TܳH,#K Nje kms hq,ulPdP]_Ȝ ɖj dbEƤZj< *ţ$ViƪɈk­lɧ +ˑca6O,Mj? +;69*iL˥l˯>ȓ~Nۖ0ܑ($ ^M1;N =-C>חZ 3A&)K.jHBNՋOwb9 ;]Ws[+{Pʹ~{*RnTnf+~nPz| .9d穫j}mQ紪UN.4k]tsn,nڋ~\IuDFSը/Nծν>鬾ߜ֯~).S[wkLM2U8u腾]e^R=Q."P>_=\:M.{o.NGnr 0_<_ ^9?,.? =u-%馎_ Z_3(2/4'UӍ/*lnpED7dobIR_x;+B-}oZ; ;=KRce9J΍%Q|)A-zONo !~]_8.d^د܂~{վc utA86ŸCO7/ݼ1@ $P 6txbD 0〉;F0‘ K>1I)3Qf̛<{ܨP8U%ѧRE]. UT):m4Vr5حSǚ-[u˳jӚ 7h\mڭnK|8,Z[`Uܘd/fʜF<aЀE'>M^}[uԴ5wnϣgW kt˹F<:tⵅ>Hqե{w؜ˏW(o77wڿG>yϽi>;O?40¹  \Pk0; 1p;EWTCl1Fg0E7) BkdFm,pG K)sF,H>=D ?]rQ D#hPN55FEtIGtS,Nrwy7zq~~v2wϿ~|˟^ڽt}}|!_>Ѐ_?o~*0~lVE};%6 '=X%( a\6CІ7ĒpC0L!V FTKD$O\"!bq.xE%N)bAD/1`"hAAqk|!@:.R|H<1jwFBP$Ǩ-2eL#"X9jȑ< 5/NҐ)d'5ɬP(S 4%#JY򍯌d, IU撗e/˙I]b\1w9KЙτuMjVm2)`F2inS g1͌SD7M[dg |γw&='π+:It'tC%χv'>f/F5jIR,GKR/ŜJej ELC:”N}zRԤ-Q"ң*4:e*7TF;2wϿ~|˟^ڽt}}|!_>Ѐ_tutorial/giffiles/amp3.gif000644 000466 000017 00000020325 07016340544 016037 0ustar00timusers000000 000000 GIF87afgi@fX'F?5Tc@D8MNM?@L@WvHf @@ XXFFXFTUW\Yiɥeؚm ]s%{Wm_6\t"ֻ~!L˘3k̹ϠCMN^ͺװ7 n mĽ[O!>a#+8Ρo>]zr댑g08vW_z}} c?}'`W^o8_%`~ >䝄}.!$va" '^"+آ/f%>#oC'xb$BOY%RΘIZe_f^bYhygido)mcX'p6y#) zi(Z"%~yi::i.[df 霁z⡢v JȩFjҪ):e%knYl6* Zi:+۷+V覫.ij D /n[ܺzoK/;hokp Kq[1o|PJ,KiА2)IpZ9(Sm`;I< 4MwpZY3R @(πd,(2O'BT4zSt 5E ! J䬆x0Lgю8iM?ӞԦPp5DE7d=R'&7*崊ϕztS5`UՊpum*,GrV%J%B%k\j%ʕ`]z7zgp+Jl%,{ưr^YRtt-+g .y6<-*KvihZ򕱪dmOY&5%ks{֨k}ڳ;кunpkƚVs׺4VsnlKkmx+ﲗ.5ˢW4]q_{MI/~Z}aՍD]ؽ V.S f"wQ;3Y}qEbaBN>1zg4c*FW[]/v?)tEI \)Y>1bmlersa 'q'x]LZXZ\ Nܲ;7U%P[gp؂E*Oc ؔ*tElb#9e k Mkjjl˩:{{$+6mq#1~QK{8÷Sn׶moemC| 9Ls 7'ᇻ),'r/1x sh5ݻGN Ikd֍Fn^IAu] fZ#SnjU_oO;c; t?=J[2oc=M?y∯ҵXV?ee?O<ۮuw}u:^e:ol7F8Οw邢֚zONEԵOr=tE__,럩~虖2~{iW8Nv f6~+7~Jwhuk ~۶~`nXrHh?|ׁ7p!(s%؂Fo0kH({Jg+(|6UwK7tǃ*tV[Wl1օ>U&Gj^6g۱jyEEb1k7yxhz+HlhhKpbH?P8bkbimVw=;ssVVƉ)rhHo3p|;HFdXh-Z芢8HHƘH8茗gd8؍(OiHXw3xX_(H{AC8iAgG!E!&zzAYy|墉`7>5'ɎȐ, h|۳.yVؓ%:5Hؔrָ}֐RIɏTI qxZPْBidYbyFhQٖYg6N]I;hH*y\ɔ`|{ MsX9p e e iuCx>iI"`}(.i.T).ٛ YyșʹYٜ)Yy9I\XFeɊlYE؎R5wxxɚ(EIUj9fY (cɟyfIh姠6 #홂,֡ȡ :(ꚁ&0IXJ[& )F'IVv< 7q.dg:Z9NKe)!*tJ Z&iP<ڢɤQ섦A:CjY3N*xzJ|D^i:yq|Z . 0Zzj1KZCUzy'TʪVosJ$GjC5HڨѫG _}uz4zGgڦj͚ЊySٚ "J*a:Z9nʬj!p:HY| ;>Z/ qjڕ[j [1:[Mx0)kx*~ʨ9c"?ۦ5+7[G;}j1jjlz*sʄcꁳ'd]۲WǴ\bma_;|6fE궏 {}++;(**괊kn[D˞bWz BǢX.ylI65Rz㢺XV٘&K<֡ˀX+K9V+[Y_ы=bʼ빹:ૼzus9~kث?tڱ싶[(v[۽˻M;˷گ3廻_KGKɋ v˽(#xv/ۗ_A$| *L,:8 !7Z´[7FSI’! TѺQSS*j/|B(?>4*œdD v#l% Ip: &\'y\r,hiUiؑՊZ}ؙkkӍל=Ym!M]/ۦ1җ}1is=l[:q˽Gl3܅٤|ڻx{~InԝV=ؼ -a-]]܇jy]ׅ =2=-YߣsL.6߁൛tٷ߬gy+T!zR~A.=M . ]}h9|}#<,j="^&1~EJD~ j*ȥu[/~<ȼqg zk^:ʃ̳QcM8: ?>n}"Á7Gmڕ еɮ7^9^H3[؞ݳ g>~~l ^dS m}֝Xr ?Z\`Vl Gay.욞O7" _N-]qc-֮N=߀.~>A޸KlsN?'9JFXVb_C9KN?oHE]hkӃl/ =d{/oo"3L#%??)UfozB/6_TXoğ/U/kUTUBmUV]^;+c͞EV-mݾzr'CA+՘'PB[eM >,^c:^ h`)?r̆;#̐ph̍Is6s3Փ%N}%cٯ]ڧY۳pݭ;wK㥇vəC\{s~o*; gPAO=|(DOtðꂐ?# c21sQC}QA!/\4H rq 'J$pFK0O/#}Oq_y/liNeGxu_}Xʮ^f[g<|Ѳש?`9π;/{ 9t6h[>"DF0; 0/yTC|7lCЅA ߇D6O$}"F/E+?!H*BOf@C'~\#a73Ji!87Q$bE?&Qd#!8 e\d#0-"BB2n$'YhI:NQ2ۤ8QK$e_9IPFa#%yY񖜤%u\^rjl"B)$ђ9ZIf4e5yJ<󘇤f&sМD'ZNv턧QlӞfMp&0g9n.io Ok,e.π 'EȆ3=A:Qc)JC~fԣ)}I#*Әj6=Kӑ cGS-]=ʒBUU-:ӏn\QJ7"Օ^}ITδPjU:ִR`i['*ׄ+VVzTX֮"g<%;t% f%;O*%c +bU+mggWv5 c ޔunqWږ`Fs*מvǝ*ݭ.vY^^7R+A󊋺U{ ߀#qKv/% ^>ֿ5ϭh D'V ~~'F5n Z#XQ58"@h/nea,e'{Drٻ٧ߗf3-ϒf3YjfNz-t-]7z Z]ez#4a]m z֥q}YN˥KT'zޫ?i1CѪ5dNˆ-qw6ϝkwn6lqW[Mb}ۻv7˝njF8[߿q_>%$/+҈_|9U9mQ~"?W>t59*c7tKTƯ^{]g˹>u^W;~~'F5n Z#XQ58"@h/nea,e'{Drٻ٧ߗf3-ϒf3YjfNz-t-]7z Z]ez#4a]m z֥q}YN˥KT'zޫ?i1CѪ5dNˆ-qw6ϝkwtutorial/giffiles/arcs1.gif000644 000466 000017 00000011601 06374344523 016214 0ustar00timusers000000 000000 GIF87a9"޿V;{""\zs,9"0IS5("ʝjŶ!l0j$|.yc{_DV)fŒgLbSp({/EwӜ+})srnk}llmjo12|57*(79%»xzvsƾբˇ-qv 4ok(\P~^8ݷ#@^hHrƓQ~T%`ZY&pe̍Y z UAϕ\Ԩ="Zq+ԫKSӉ`>Z#\å5Vhݱq~-p.F<6`u[̯)ā W\NKa+.j^_Pev,+[ *Ԛ]֭uYN=pk߇c3LZy&1`9';n;COQ2Iy'cȧ7RLJOVdE1q_dA~vj "wr9hawM) HMC1_ ByHD^gְB, HnN%da_tRt<-͌q"&x8z50~m"޸/ܡqc"<#%<: 8EEQTHGY1L %YI0BPbh#("-N\D3>YZtժe00#]^ȥ6LEҕ*rT]rlVs\YMVsH"4M]$!Gtv#2iNr, 5IPXVC9O3C ЃS캨jKhCo~IiOqfTŀIRl!)y93]DMOt,Eqa)N6ĉ)7TN-EU1@urL`ZtgUkHFWbwkǺiΰZSQN2WXZS*ITNvM .yER?aøQ6)Q@|6%hyp2,Vk)n~vo ˭.YFWpW?֖`ɕu >(e@8J&;^FRlWUmVGa^׽o@cN0.oLؖ\pԘGȄp6K 3C^}7kꗸmwAh 1/nQ|HxWFKȘP$I߭nwo=dcs(![l#-C9K4f17Yo %cYML۬ZXLu)<*s=?AHCB3k48sM1SR؂XvUxO*U[脻ՅbG5zh(ha&8X؆6'b^,Hi$~o` (HtXx{hlh駆Uk ؉jj~}'~~xXkk"\BH.X{WQҋҋȈ\1*xw|삍.͘w͘mxh|xKXփG(Џ?Ȏ% (eBHHȑ7 9i I)I qђ08A5S,ْ1)P@?CY )89(0M R9X:ȕ [)L(yH!lٖnnY eިp|XiPvi0M f)@YmP(2\jǘ`1h芭8 kH)~IW ępl)O09َuPZ)li ݹX tI,ipQ!yYɜ|P) Yfiy)vfР P)Di(Ɣ $aaYt"`$ApGLBG '!`O)"{ZzUTʓ@t ZڥWjcYZcӨsm@`r*qtz7y' z PڧyR>9P@ژ-8*KU3ڢ)ʡ:g ZZ[_:Ȫ-檯P~꒶!i8ښʚ[ J' :,[K˷r٘󊫛kṟ;/Ȁekjz3|  r{20rV) 1z|o%o| y_qȹ≆ r}=CEGA]5B9-PmUTN}SZ\_MԗAG,/ꐏj]rѡjxstݪ${ք-xZ2]쌽!؆=ؕ2Q) <ٗkق}X ү~hMR Ѐ\횺r ҉|;=Lۀmݷ aUҰJ}ف8Iڔݿ-c;kt`4ՍގmܿR<TJ\Sl;{&\}&̼ˉnlpk)ۺΣͧS\)ͪUUB+,V[NEkvڶiپ+Xkk^}8lᲃ ] 1aNJK~<92˖3#>|[q!o˴4ҘJe. #[Lj6쐲FuؿqG9\eq]^m7Mwt]6gwyfw^x罧|9:|އxvj Mg߂%^1ї~Gzwl7"'X 8у.V#3zhᇺc)$!(2܅dT YR}NF[إJFc"#d~ dG$k;٤* h)ji%Zʥ^ fShi蚸蜓։(#avh:z覉zJbwzIr[ȮlƾJlˆ,I:f͂mmn.n{[-jb-n 0k+"lo l01 nB@C3B#A#TrA'@+̱ "L&*Ͳ. HלKOS]WJwʹNM0gK\ѿepMt]w ymxw ۂ }܉#θGWwN癃ι mᄏꪷ-[^㳧^ ۞;7gF_o7Oc/#'?50~<_ycW=%[:9p!F$d 3(CPG3 wBЄ̡-HCBL %D'M/ qG"8D.]`(0_XыN<G1wtaȔ1я{x9jѐm$$*r?$3T3LgDIKvg89JOehLJTRyae,]9KXN4̤.CT%/KbӘ,2d2Μ#*Nf#oX::қ$8tM:v8N&tg;{STc:O<ӟ\7w&fBݸІScD O46U6ю@-GG&@YЉ.rJ[:@)?Sw ?uIYTz:T,e'Rc STPQ PLW->uUtUKujXyԦ;E#ZU3ժB ԭ.: @[-jV4+XKхFUCuIi!9V~fY;[usf-$WK$iQ۳Mng 66\t6]5cx@J Sv7:vVbAFz,nzKՎVWjb}_j;`8M0L`%hޚ{S = L6zȉo Q\ww!'~Dbxul??"":q^6).ra' Q};qkZV)2toRb2L-9=r=f#Ё1>ַ]3Ӕ|U 3+sϚt'}fDZщS3ѹH!-j.zXIW1SG{^CM;լ^ud;{٦"m-6;:ң5:޲b?,;~6R=):}5ɴ.m9 v⸿Mis{ߒUw٭u;|ww]Xֶ^\fxt\yfU/9{z8Mgyڕv]Ȣww]ߓv6ޛeVy{Ⱛx<;iO|<'vݒм<`%WS@Ou3oSHow&}[8*kZ}T@yZޖD9|_|Y|[?n;u37e5ݟq};0??s{~<[~W~glz'y'Hy8$`fdXXh~O7%h#h6-/H'x5H3+f1!};7h)~9(Cā(u=P*X?4xOHHU=`Z"8BhYe68Nh_XHlhqXwxad8x#i]hvH[mhfaf`Xa8a艝Xa((xHH(Hh`86KX@hȄ{x\wRh؈x(XH|HȌȍBx})FȎH(9~8ɐC Yؐ)m y@ #ɑل)9' .ْ$ 1*),)>)8ٓDFY8; U%) :ICM)V9N∔XD}fi}җW}j)Kgٖks)niq ć{Y|i||Y~M3iR]_٘8!9y+9y/a!UyRgY ٙ Y[ÙYDIiI9yI˹IYɜ))Gǹi n8YIɞɓ9ɟ)Iߙͩ :Ĩa xaʡڡ! ("Z*:ڢ+'1Z32jBݹi=z E)J>z3HL :y<jP\_aZXgZJk 7Xʠj*YjVzuP{ڦاch:lQzx`ꟀڥiBZyɨd*Jpj G*Z!Dw9gyi9ڗʖ*J:JZzʫZʬj|* ʪ*zMzک6-s ꠤZ𚭳i-ZJ ,*ݪJ ;Cj*+ 2/2 <۱zױ2BR*%{;ʰ7+d($9d8;/ 5:&v> Q!]NkJ溁q2k^Act2yKL;X 1/21薷z+.ʢT;[{EVH2ʸ4긹& ۷0Jk&:#1q{+81f#ә*;l>@[/躺F\ jE!1b'1Tû[UKۑs$RR ? + ;krwh۾{[ܛr[;kV;/盲ڻ0ܶ˿^ sz+[ , ܵ !w[j ۿ-<1$& .>W J<-]uM75]ٰ#W[-!-x,.m wZxo:. \*no;}YB}"}X.sdžF]NQ,j}in$=-љ6+y.Ʒq^}Nr^>HHvk+dLmVٌ.Z+7W>ݢ.S8Ynꔾ\AryP-">/wz>?.2im~]\ %.k>qJ&Vw(ɞȿΣ~mގ.>#KnXHmڎN&i-)/cUM= ҍDK&ow*_{$+˝*>or1d#QN)NOnOFۂ̕U E+fG?-0wv{nYٌ6D~\]nU _)T6(DOmU ώx?Rwޞ^mpr_WbJlLi?_X_]qOoL6eO?8d>_z+~~^)5&b_艮A@ <`B "|1ÇZTQbE0ذcȂ$7^RI:tRcLiLxA5yơ;(`'à;|Z3̨EjuTKs Z0AJ6-ϵ@ <1ͷ2{[je7`iNk0Cn -O8d/_lpѕKo>5[[;eMlm"xY(ǤiˬՍYƥ2*һZ77oM޻>_;arћ_^9ӽO?=ȶ=3L4-@%2 "BD. ę:C%4*oa@ _q!w,#LD:%D EdAtr)'p's>1J(ѬL!$52{G:S0HӼ0C9Jq:mRD}$R$-e/SOM<-$<.tM4J]eW=5Z75YwVP9=uPF4YނSAIcU]{vAYjq͖[lն_5p\R48l,XrQ,Ziťw u_}Wx X~M`aX#a+c5f=9835l(Eve]xC&9wƙgs`f{&gc>VhVꡍzW^j~먽k;l6;푙xඝ+ԃW^|ICޛ+8Ew^uqVqf8wnß궿Eu7v-=mG\](\va"=] ;93g׽rkO}Ovq'`s^.k^Nvtg>|[1Z~`'@/^FG?s~@U ȿ|<U'MvkFJHN^3(zN'ډ𨇾ጩ #Я7{;=_rR;(=24q~|ƿ:?s= +S@?b @ 4 @@A?,T?Kâ'c9/C2擽]z*dS>z("2>$t>:#%>B&# q"{=)v+BB0@cCA{BB5,9;,1C;AD9l3 E#\D\'GuFyFC~jTAŖr>*pȴKO{CrTE!:PU}|Xݝ!-9+UN[9\/cPeU]O]]T+VXmfdM^mPFaML=`-\"Uڐ %Tgo-V%e7$ԁA;vQjs]ׯz^͖wO N~WMM%c؉kmT$Uu-$?؛[gh :>ԐN>V|mY6SXOe&RCYXEQ]~êYXXXuue١a֛RX%ڤ:] ʵuʯɰĘ۠dʷ 6˻ۦd6۽6۶e[Íɹ]\mSQ[ąj]ƜeZE#ڕ۫qڳu;}IݗеYE*Y:]-/]Rڊ%ݢ]<3 Jlʯ5Xm&š_bӁ]ԥ(Y]Z-]ىZAZ9s]ۥ Jk-^$Y% څ_euO}̑L;b`I R  SxZa<^h-+  ׽Yu 9 Z,_% &RNdnØxa ]2e!- 0 Aaa{$'It7+ֲZ;Ur.cBb ,-&>E'+b*^pU&<.Խbn(Mڣ;^P*vV'T{] K=?MN^#R`V"QNc:adv`Ye^freq Ze7k.@TBKFArD@uVgtҥR?ӊ}(W:g@}gvgSgl~NGn2d$%QFdSdn f %vd֕h~ijF0nc/BA^^h4f,e2iizh:1iBF,] j]i|ej\_bd+2GDk6VOvfH_6C9Mネd?ffly]}Gl5 ^Zn޵Sխ "& jk&媞 FfPNf63N`fٽ^F`~fembn7ٽh*G -~nqՌ(eEvYU9_Ԯ־Unc]Ѻm)p0b$RU~Qln q2pl敤jَl.5rƍ6\Mr%6m#J$J'r*r,w]+W.ܺr01a6w789:;<;=?>A'BBGDOCWFGtFwHsHtEJ:LNX 6;lL!r OY Y[6vWqQd W9[oVYg6_]'q/T_o"dY Z'iOfvw]UR'0YGf\7 9vjowh/lawku rR|Ov|6Xu.;uvAsh?Nqx?uw5/uWudp o9fXL`'%ͩn]p&y砀♦疊N騟:Sy i.I%gbJfjjjfeA(iUmJjT婴Z밻ꊬ*'Z,2[-jKi㷗ʂ)Fk9n"Pio.m,{6ۯ pˋ:0KRܮHG|ow otp( ;/쭾#0:=Ӌq8D2 ߻s"r<7M:k!K Bc}uFDK>[~/nQc~㋓nw'әn @> qH#Pw8pC2ȿ kn$? & 4`?HB-ĠΐgsB0=_ KBp ]B1\4C'Zp!vD+R1S,ٴDЈR4qOL!FQyy|@B$A)I(RtiKVu,"5J7r"HLv<.[YYҖ+)c23d 2L\ee1LTQIY4XNo&f!Lc:Sa%My\'483l; P2TZ '?)шRt!2FmD(H?*R#I9ZR^BhJ=jҙ*)LizSԦ=ݩOҕ?Pq.GiPԋ2N*OӞYh}vUZC?ՉXS֭ҕuAyVkZѾ"(%ax׺6-^]8WPljk71%|,goʎU~iUZ>jֲE,[ZNsͫWeb6n\&cCYڪkr5.mXFִ}.li궹YnVtj׷m[m{언 /y[5_3r}߶]VYλ5p}z L;[ ͯ0>4(M&_L. I} K+Η,^9B1"2[9-O||>.W/>3Ӭ5n~3,9ӹv39_4e21.b',`  ~xh3ю^"Z)iOL&3,,җvONX' Y+MjYvՈuj^7.qiO-&<䗞K~?e ?W:_NzIPs'#>5koyW\i?^K;=_^za_?gh{\ڇ~?X꯾Foo' ןd!V_)\I9_1_> A[ *` E 2 _~_mN\ 5 v ڕY```a!U ޠ `a.2!^BarJaRaZat` a`j > 5R!!! \ &B!6!"&&Nb'Fb(#)^b$b!b%*+"Jb&X+~".*.a.b/"Y=", ,"-(Z20"'^/Vc3"/naq51")J#(3f"4. /7^:>#:8c9#Uģ6E8#19c?~#b-CCBB$EJ$CEv]FDZdD6dEG$F~dIF.$?#W#=$K@ b>LvF4 $9=LJ4 %MʅKQ%%$S#P%O:.cM*eSF TjU$Qn(WeRR[%6eVMU]dWY"Z]&>ƥ`%[6fY~_%c#c]dd&&g%YfZ_fvfL*hR&^fh%&dlg\f^&fo'qq*!rRYrr aq6BgJgr^'sbsZgvvvRii&hmzzkTk'B'lgma''|Rmz}gFf' h}~U%~&|_烒}g{fh&yRhSB(R"(nhv(rch":(8(fh]hkhgĒhp) p;c?~#b-CCBB$EJ$CEv]FDZdD6dEG$F~dIF.$?#W#=$K@ b>LvF4 $9=LJ4 %MʅKQ%%$S#P%O:.cM*eSF TjU$Qn(WeRR[%6eVMU]dWY"Z]&>ƥ`%[6fY~_%c#c]dd&&g%YfZ_fvfL*hR&^fh%&dlg\f^&fo'qq*!rRYrr aq6BgJgr^'sbsZgvvvRii&hmzzkTk'B'lgma''|Rmz}gFf' h}~U%~&|_烒}g{fh&yRhSB(R"(nhv(rchtutorial/giffiles/bridge1.gif000644 000466 000017 00000010740 07325330415 016513 0ustar00timusers000000 000000 GIF87a!vF@XF5s@D8MNMxO@L@WvXv @@XXFFXF<[M@iMvXfvF @(2L @X/vF4XM @5qs@@flXfLF@\2X XF L/5{sM@@PLM̘Ll\XFԆXX @@X0X2FL0L(UX1EF|] 5Zss@|MuPE@X @nXaFgX0FsHPEXF|;1PNEHX @HRl)qLO#XH|o@@BOO XdWXqvF,! HA*TpÁ :(aʼnRHp#G z IbI' 2cˋ/+Ɣ8aM)sԨgʝ< `ќ"YB"C"٤OeSYN*b-Xc8$[ ÅG=q~lcX5f#Y;ULENwRpwIMfK edILv)U =ѕ #xENҖD$%߈KHe%ч#aUL "SlLYi|6V8rT&6s\2.t1׉nJҜଣ Ms<9OӗdUN T(I@8ʰaD*ъ QRt|d&I_IK4)yQ '7WJO %Bhӗ4@5PBԘJAT>R5i,Sd&էOE W~3Ci6U}j=+X!.ғk]JT2H9Xΰ}+jqkJdmJVi$S%{ʪMI[Vv{T <߁ի6^/[޾vM]r vspqvl__th&۸XYl[V։WUZ"95` /a?ۍIn`wux_*gu/f*_7Y1q je~O;ϋ|d?nБ|5$xGOқOW֣?=etvRtg=O,&6ߗ޸5Tcn?Γ,|ǝդ>ޡ^O|>:?xw<~G>kgNHggS1^·uS}~fv&xH]r7}[5qGs8Bqup!p"_o T0tBr~IwȁwYa}_G<D5h||҃k{8NbjW?l (e%V7mG}JhlL~u8sC`EaW~`_}m(|DjEw|Y؄eOPXmԷsbwre~Vhgwh#yPzfXy'(K78Z\ȃM\gw[8[a(hXQX7x^X{86]#g(HOg}~Xiz|{xʘZ^֨Nj㸆8ߘhux&XpV[i%(h~|(U%ĖɊy5/"G8G^#e/YؒXyt*s8IljHI鈖ȔxJN93ِ02ɕ4bC@YaHr[c6 HaI mGy)?z s mq( Wijɖ9SIɗ ɏY` 9?yxY9vٓ tg}G)Zu)|H%)xwY(C ũœ_pYwiEٔVYP9WHKyc(i(ǂt)6M韏ɒ͙zIY#tR. ޸ڝI!ɜ(؉4/_i 9r)Q dE.(R**94w!bi'Ypa3Q7PGqVZX:NA6q1^Z1QB9E)+Iٛb4m5@wdʦ+pJ0LSɚEj9l[pkyʑ)j*Y4}ښ)8ʨ{:٨*mֈ)Y(*JW~zʪ\ꛤs׫*jZکȺ;Xiؚ͚ ]zJ ژ⊮ZpW:#XJz:ڭdK:㉰:Z*"k뚬 ۯlZӱ%/骹J2;6Ff ۳o:h!HKnJk>Ku.P 0MKTVaD+۵,k" Zor[WZG{ȷz2Uk#/'[۶LI {봐+ʵ[khNS-˶kI;Y{**k;)+Iٛb4m5@wdʦ+pJ0Ltutorial/giffiles/bridge2.gif000644 000466 000017 00000006577 07325330415 016531 0ustar00timusers000000 000000 GIF87avF@XF5s@D8MNMxO@L@WvXv @@XXFFXF<[M@iMvXfvF @(2L @X/vF4XM @5qs@@flXfLF@\2X XF L/5{sM@@PLM̘Ll\XFԆXX @@X0X2FL0L(UX2EF|] 5Zss@|Mu`"@X @nXaFgX0FsH`"XF|;2`N"HX @HRl)qLO#XH|o@@BON XdWXqvF,H` "LHp!ÃFańN81cA;nIqI \ɲK^ʔs͕5o̩S;)%Ѣ0R}<'`ҶS9X%++6d1tݱ<rp{U.wˈ[a¤DzexJٞ(/*"ъa i XJaN<(Dpz!" CɅe4 ґ% $яr\c(H~F# ,(l)mhq"14:_Lr3t C>LϓD*[h?Ue 5YY*喬7JS겂I'ΕL&4wKQ~TU<$s\8¹͹Nt:)ĝg9:ӵp/ 4o9MK&fH}b1@y *2'# &2vJ4 OGC&r.tdPO(A$i@8n/ŠFPܤIwfLϕ5 ҂ѥrO+o*"hYx8ѭUk[yֺ5T-VZi^U\tȏzu5lU yTRVeټֱUXcYnVe9[lRMӪk=خehg S궴 oa4rL<[ӹer+V7 vz xKMzpSK_斸 P[ݲֿͪ~ *p}a;`Ǿ -ka.pa \ cV1=ܨm9_hY+:㖰wtsq\s|bu%ka"O÷[qT${jFRT+{KnL˜#%.<`l+/ԠH>t*U/oXJA޺U&&`ňw0AE|jS_է653ף޲jYif0"=LI'~Ie7Jl;Zϝv kCe*oP1EzJS](=LηgEqVʏ+M|ąkGhsnw#]|j9\B+wBpwayOސkI#hO6zS^hC>)uz|WSvW6S/KiinRzo|5mzׇ%GA?h^`[ȃ_xc(xixZֆȅnfaxB@ex؅}uƇzhn~y@!c8X!xHrkHB88p8vhtrH8)HPljx~Ȋ((8v=as艧苭XH;/KiinRzo|5mzׇ%1ibK:IEE&}җ\nYcYgYOJ#p^IPxg{&IF$+b 5Zgr}ڙ'yiKΉ菟*h ⤎2]u:ꬲ*zV )zUij꡾겺R:䪦uwۆxߖnܖ뭹+ lU6VKl:k/R/rZo& ڪ,;B"n2S#'M|$y-mnG6笛Lz멣.ꉿ:߮=KWn;{<{{N?35w_{v,*O蛷͓?_ӟ>ݔ_;75߷˟Xic?Jh@>{u@ u DzP( !7H@*p$ OBІ/`p2d4wL> !%oPaGxD#Њ WB39ESߨ?mY!SHD "хnb86iۨ7q/V; ڴB)XH"&HCdj"AVPߞ7DF*yHGRp$le]}?9XєDe0kqntf6LuBZ,2O6S'=~ʲA ІsB;"C Qt0{|SRfi>Ԥ+cK5qJttE)誛j+wL9TR E*ЈVzuEWQVMgFJK%h@JU,e;֎nkhYǺծ+Y/4Mn4`kEɩWT,a;Ұf(XrqE,Z(Y̚V e,AKҕ4 ,C*R"dl15 rmKH^kC0nʎuP7XtxPeJ0<*DCK0bLp4]Ӳ7{D"| `G3VUwׄ nٺnoXǫ&]M1TܩOW\:qMe?ڭ}1@Ῡ!^' KFǷԵ VG K SJ_^2(ra$bN.y˜JNj)!84?yęr`,-+wWyE [EӶƭmq'}\Jяnd/"N{ӠGMNԨNWVլ>5g]jTA΅/ә:nub:yN~_z~6c>q`Hr/{J`?_W|n'C{ }h#8,Fgp5fic17MkGΣwci_v hsZ4]r~%6UoG1Ulj=z+qpR7]&:^)_7ˠ7_Yu_뭒G\Vzpwu;)LWzoWG!'[|OCmz،* o Gm }rT_~¿qo[}2R}ko3|ՕQxhy<1 XIPe|WlzUh(P5?'r{ {-r'~H#dwcg{_Cx2xrezw5wvWwwtv$IKzvWCeW]>x2`ׅF]]6a~S]5Hs'~qh~oÊ؈SEgx(Hӌ#;X؍k6cq8È9X娌ǘ)#hHX88ZHsȊxÀɨ(QtkhXGiʼnh֐搐v&!ɐy LsѸz#z!q' FȎ %?0"ؑ3H4i.Z< ٓCi?G,*4َ}h˜[9QN9Ribi(nyJٔ(idPYDYtْpd|jɔY`ul)%a)yɗE٘חGXwXؙ b{Fi鈭I4ɚ9X99)zy~)~Bi3y29IԹ W`y iɜy*}9Yؙ ٜi) ꜉ȣ:Zҩ)T%|Gw)'Z%+)j;cq8È9X娌ǘ)#hHX88ZHsȊxÀɨ(QtkhXGiʼnh֐搐v&!ɐy LsѸz#z!q'tutorial/giffiles/bridge4.gif000644 000466 000017 00000020755 07325330415 016525 0ustar00timusers000000 000000 GIF87a:vF@XF5s@D8MNMxO@L@WvXv @@XXFFXF<[M@iMvXfvF @(2L @X/vF4XM @5qs@@flXfLF@\2X XF L/5{sM@@PLM̘Ll\XFԆXX @@X0X2FL0L(UX EF|] 5Zss@|Mu`1@X @nXaFgX0FsH`1XF|; `N1HX @HRl)qLO#XH|o@@BON XdWXqvF,:H` "LHp!ÃFańN81cA;nIqI(#d˔WtEqjygN;[JѣC ]T)ӧDB}*ujST2(׮I lWZbUkTP5 7ܨw%0p/_u7„Fxl⻍>+eœ 9sYgAt[oQC\2fsYU,;,lͪgߡ^z޼cZ/SG_pru#߮xunN>[o{ۖWH }wW}%ig`z br8-hW# BWa+b/b1X nxPg,uY3NKKdyIy=A}nz觏z騷묿.{WN6V;l;K?N6|'=kQv+νH,}=oT?ß ?Ѐw@{- \8U}ͻ M_RJ4a QA\ [@ 0L uAڰ cH { DQ9 C*2ŃQш~bhFbň:n9j#Ʊ8H@V "N9Sd5IHURRT&-ILu $#IIRZҔD&UIVzҕ(K9<1sy@겈4fzʩJ,d0KbN-l&`Jc5Gh.r1yHl2&"in14ىs^-<6 zӞ'Mp-~NJL7ePB!VȨFHυNdcD~MM3:}hGpLVJ'=t?bP)HSUzrNW4PkϪe$.;n!2!EА DhMZֶf4rֺxͫ^׾}kW9WsHJ2! Yաv)DGNک4TT"%afQ"3^mq/ujn[>f*mA.׍է)ezl.PyS8щFG^jֳoū2n:oj] v =g ZڷameKOB >p|!Z>׏54kloA8mx+\3voz <T1S: 5U"pQhH4ƥYy/F£om|XRXOYTv[& ,df0lL9YGsI>IAn0rvlSF;EV -טREvEV7M(xEntMeGnG|㦪np;jwݬx;ٞ4;Ljnl|CF5l;W 2歎'+Eq<._yMr<)yd߼8/ɶy?v'>d w-Ov>MCMF~oW1G-.ש$us,t{Na_WwYu'+r_onۚnoۗv;VBӋW:3s\G;y͗^CiNGOxg-ӽy{h?S}[;dIoXoJ6՟:wcǟϿ|g}6)'ly,u~yQ{ŀ bkx{w픁|{"zp4w5'(}=}|UEłׂ3zvU:tB 아ܧ5+uUY>l%|XH{3hEU8i:fO؀7׃^HA[b8Շa5$Ȅ;M[sH3Qօ|y~~UyWڥV؈$D}wQ\5Zp9YaJڜT 3ih׉ c[Nj텠dGx1F)[mN&|W)` ozJĦׇV^ v@٨X",NW¨]z蹩Jh}_,rtaUX*ʫQʉIJQGJnʕ*xJ"ehptTʩJDڦb9jG֬<(ډcJb*J:mFiі{짯:v'hZ]* `ǯ 군Y5t몦%fmZPZE&xW1깭{ԭp uz0{ꨣ% z5[Պ9ֳ~HMzۓBuuYnt:)RdlEL";{ Bv%AZ^x @q˝J:TpʷMȴ:놃kkh7Ÿ[Gu:~Fv[ZR+ʥV;y;w[wQs c+oˀo5uD3> AV$BCEJkhۣܛ˫0[{蛾껾۾۾ۿ<\|櫻ծ&*ZI۸~׹_+G pckC",ZKȖ%ܺ;N)E)R K>|;v,h`D;jl1Ȍ"IzxrI[|9#G5aڔb̝|TC-zTϤK6u4SBkVr%جd*Xj -PT2˴ѽR oߡf.%6<8r^@=l仕r(h̗4Wƒ]o~yQ˅[`ӽg}6.N[]nk\zrʉǦxǃ=4Ϗ}{ /ls|iϿ ?쎼 ok'C*P P)됯 5D*DJTD#V| :qnCF<m넌H $ tY4%TRDH-| 3*̬24$:;SM;sO=RGMsXQ= R$R, S4S<%TO#jGMEMTT']V/}5X7Z?SwP}U9TAX:e%Yi]P.اT[ OGDp ?M+6B7^e=ADO}jvx]=~5`7[|Pqي3f'=k?6ێۘ_MM:= $ufe-ee9ˡm&AgGWm/&[kyg.lW{m:Bd~YBjNjpf]ośuNiжn/joXE(Ք65swvٞ=tI'bQU&ϽǓ]yiǬo,"(>,j|G?}^'ozh}秿~?_ wy/$6>6ЁJj 5<np6{Dg( sΫLTqve 6υk! 5HŃ3|FCZ:]&A 0,!ߦp"D"xCKiKAQ|!e#'q;fʼqP[4bY#r1Ca/XC;Nq>ѐDd:*rj$e5Ajtx=RI1R+T#9N|e"?iV1(,e.a9K?*-e-9L$&(7YLRATKK2ӓ´+)KTS&-)7ٴ%6&Rә 'g>Y}Q{5hB9P5SEB# чԡhCJv"|'c9mT\&ݹR,%7aє4 U".izmuTOM:ӟ4CQo)Ԓ65hL=RSFKtZUMjVYLbzεa:uoc'R[w{ލG֝lUY.x]WOx}#Bs~ LdS@8S9<[kdAsAA?;=w3>x|[}}`xW`ywgt{W}6߆ J!#X"'*!~ `~,Ƞ.҈Z7Zhab##HrLdf gBinYfo~kRgwmfv08eZ'*ڧF g_t>ʨ 餜)p9饫f*Ui5&kb+9, 겤2+&;B`Zm>mNޖ e!;.ڲK.5YկXWwU0WoV g0GR cLs ̰ W+g/w3\7;. g;G 2mKǦjnk[5_u\k*}/iCI7MtVW b]^v؃ w_MˍoSC^QK^w߁sNv.ޞ頧>;8o:sc^9n麫o<;3'CS[:_?G~k?C_7?π]l '18AU~D jg1aWAP$ _AІV cP@Q  H C#򇈓cb xC*ЊItbiы]x0Όâx#Jic8G7-!h=ZЏIRJ2H\) S9FVeDd$)JR򒍜d&-IL>$!2JGR*SSҕ4$*aJZRe,IJ]җ Gx?EEeЙzd BiњmL&6 :j&HMbBs,9XFq`tg5)t>Sħ:y'3f8GMh< MiS<(:!ZE6Ѣ1ZQf CБԎݨG׸Ҕ~ԍy?ewlNgNfԧiMySq)KRt'T9~զHR*ԫ5iiOPdE'WԴիQXV•w}ͯ2#k3̰:C,׿:6ld ;V6]lf JֳeEYjִlgWֆuha;[ٖEZQ6koyT>4ojT"=p\Fν.1Ի'5{\ռzYUU|^bվ؝z)U_7nH޶{S nP[X3 Wp '/{/|`Gغ~X1fpRiX@qI AJdI6 r,.۸~e/C2raxiJ`n3g)ps.K<׹|e h?:φNtCъ4<2HFLA*caVͼPgiִ9\S՛uU.֣a COֹIm+WǚWeic/YV6Yv^ߛF7[7Ž);/׍j{{w5_<]Kyƥ!M.ۜe3Iml^[mmt P?zԛ>KTǺճ{e`Y;͖gWvƺ&9\=;ϭw~{́>x柦9S>K0|NW>,w? r6z$y<w|!|:Ie 0ӽoz_=ލz`rW}xO{/ٯ?,H?f{Mk~.zʧyyxz5Ctg z\W7g} (G9 s~AZ~'w}.B{x XDvD!$q=gFiCHg88iFXBK(iNHLgQ(hJ(OSHhW؄Pi:T0 b8ch,Xꗆjl؆n~~r8tXvxxz|3(xV_gaY/gX;h_(|/XC)1=c}8|UtAQ􊣖XWQ8uiF¸nXјx؊XD%VrӨȍHǎèyaD⨎P w؂!D?8툎hpT r {YJ;!/ 2 ْ7Y9.ޘEkGvmgvEiZ8itJvGvMtLN9UZ]ǕO)Vt^/>99e8= 81Ip8l9Ek)*i#Fu)ȑxaiy>{Y"wy|sYnIx$y~i9Dy'ٗ,ɓ٘Y(Uy y#)48i)hܢHY՜aނfةhD $iGɚAi(G: 晜q[h]tIɅX؟Z9ڠI*fJٖDG C!-# '*ٞס2:~1-;@:ѐ?ʘM$`"*ĂOD*sbI w]ɦiN*eшRnqZwp ^*$׸fZz6r T/Vښc *aI,w"j٧J^,zZcYi[9XUIj bڕW *Jꔰz=fjeZ `_jٚ(ƋysJzQlӨ4|¸9خ*%Zn8꡸s:[y;X*j ښ J*jvGر ۰(~˩ʐ(1Ո9=Բ^1S9bu)*ZZ6K+-2+; (Uck]ۯM `Kbd ӵ~zlLgZ J 븉[]ȸ ˆ*빖;۹+P5%GVQ`}부۶;{{,(ۻckȻ:K؊7ۼC˳ ʼ!kQ;^A۽ {'ȽKf RQ㻾[]ɷ qkKNg;kB 'k~\( \򻼑A^y8˾˱ \#!Lx-\3 '\ÂׇŇ:@k>[ԇZ  9W<+vzA\ĬbZ̫ϊ]L`YL_Đe_ܬ՚o,q|slǛe*jkQ,4 j\#\J22oU4<@,%;ḙdV }L{ג1m\E?|XɜW䒩ܤ~o_̿Q$L臇ļ̨v+7|:Z،zͥ7*[˜ݼ,ŬÌ!",ϬLF,^S9ی22μпʍhᏳ|."<j1ͅKK7 g9=ӟ{=Ӣ; ꆛ[4/I@MMLN-!V}XZ\^`b=dM0gi]jXnpr=bX݆ttmWz׀؂=؄]؆}zr+(̐k{P.Lw*A@@ha &|1">0;HňB<)cɑ+ItScɔ&iބ93'%}hІC"4z`Rٲԅ6}4ѭDeɯ?"p`Y.U 7ӹrKļ{-Wp]U #/$CеZ2P.44{ ;;=4KBFqct"m|ʐ6RKj"B0lѽM= 's2)Y.JhK##ͨ,.2Nd@-H?Ϝ<Kl<4Q,TRCŪBdB 5oOWOUKŃ UIPTWa3UASuhwU[q5tn/[ߐuSZ)mM\Ysw|6rٽvZlRf_Tn~ u> z*anX߇l=uVd/eCy[v9ec`mvig}hU}6iS**h>gz驁N:뭿ki:mvk~Ͼko۾;wߛm#ڋŘW{07aK.pHI17qa9߷Ywt5vG%sE}qՕk`_owW^s_^s]dEz}nr4zx"ᇏ>,O{gzӻ_vߟZÇ={{7OXCT*6د}\C@3A'~ (<3D_hp=0` DZ͑rһq( t0|!!14ȇp2"03T)^1 +X=8BRycbi"(G/ЌHa^aTbɈհKcgD IE1cGLpZ:RDI͑5DrJEe)Q$1S\9&lћ,9 Y˵ğ8 GzdH+H`T %hDZPԡ_EwrQ*E5Q^4,H%щ6T-)KeΘt)NoԦ?iAt RNOe=qy|2UPLsS3ҳLdXzbu$3j-h<fFM sU{խ}g2;/Uϔ MIU_%ԴaVK 5,`?KY&V[bEʦц=*4reemIִkmqq\r]pKXQBɕ.c-:G .qV׬ժ_Vz$j+^vn|oXJ|poy ]6-YRѨm_~[׽UcETIpkkb{\+]+|aX[pIܖ8:yc" f2,sF~lsZ JG\&d5yRVN._,D `F>پ~l +{ƲK['Cʗnq 1;&x-4vU\iˌGz={u'8-q15bͶ¹װoM밵س6\l-6c ظ^5dvu=mUsnmr[;~v3Qc:u}) vg:Ǹ ꆬ|̎6ߍGZnO~x#2nԾeBsF3Pڸ_pۆy %/.R]t7xrSz/z=r W3?/:Wϸd\3jkʥf|#ԃnpRGw{>2 OU˧M*ץ+bSDϞX3+a}C^1((OST_%+jo ӿ?<@ Hz[@ l+@ ʈ@5@ A$D #û#?ج#>٫׋9l<7={ D=sBYB(|k(lBAú $B+³ C;<S-hP+C-B8LC)t:?>ķ@C/\'ÂCB@3DtB9kDA4HÇsDy kA^٫)ԳO4Y\GBDM [C[<'ŶT<"E`Ldle=$`NAFPqEfkKIlR|CcHqRGFy ?s6uCudȃTH^7j3ȅdfHtȆȍhȂHI\Ȏ<ɑLɏdI6\ɗIoɈTIvCvFpD{d<_CIE\~GIdBJnH=4ʥdGUʨGw HAl ­tJ"$JF88ʌ2#Kd{'QK?A\AğKc$8K25J>zE^,̰TCK-ɷB7Ex|åI ԼL G#YT/U1uPUmVЯalZ պ=U 5P*UFscSdO[ϱӲOUƲ3\*aTֿTb V%GV ;eMWOL ݔ"zWmKܔ08Cle<"DփE~m.>Ʉ>Uf}ZN|؄%dzV09ݲEրWSXYW5W]-&åw@Eu؁YVY$Y䜞K OeUf-ZkS-MFE$X6m٩- NͰJIuwe@҈HYt[%8 ZCXE˩ܩYJYXW18Ե ktNI-زY]KC%FUB=[m IȮ4ޫɌ^uI^IɉD^m^ %_}^^=u}ALW2&༚eYڅڎ@j Q5Ṭe܈k[u`Z=ۈ=5ō8 `]λvޕաà`a ak Yo]\T]"^ɵ*Vb%`WlGE[Q b/5v6#Q6VQ1O}c'YS"&c@ae J^(6 8&d3dĕ$v%EH?I&eEdTb2&aSfbRHXFSFdMceDeVd+>dKV.bƲUecֺ.5e+8毕lf!f"=Sl4qofsfrg+Egq+]gu>gyNr^ge.ihhMN(f ihj.iꩆإN^&O~NVi@&&;F虎fnF8.jkkjkVJ®ij).Fl& M_ߙll\F_6^˞V$mMm͎m̶Ȗji=kNQjFkm6l>CnNi^igMnn>Ef^j^}^kFoV&^|no.7nUVp wp~o^&q7_p8 qppW_dlR "g#g$#g$fxv(_r)w&+rlg"߿-Rm9Ur pp>2wGqnpisf g8wk3ϒFsBqAo:Nn^s>oFtb~>7t6sSNFDa+Ic_u1%KudWqUuboq_M_GnkjIoxvr{ nm֖~wFZO.Fx^xwmtw|lquwtVwnu]xGyI_y{osqkxgWmf_v=Z_GvkGyw9/yݭtGoyw7oxw?EczOyz@qMJzKy tyy/6w{sh?vGڷozWz?{O{oyzGzzio{g|ĿOnį{//}1,r.r_}ggzVw}ڇ}ٯr(}rܿ1}}|y|{O·|W~S7>_G{'r~?\||X}f~{|l|@ „2Dh!Ă#2H1ŋ3jȱBE$I!Q~R#+MX7#سϊ2c hB,u2-tiQҤJRjIZ:R_Eb%ӫشW -X ˦;WK|k%^|Y[yݙ"_jM`ԯ#^=oظd@o,;9ku_헺m嚣kw˻&9ⷧ~zJ[uKjz1{4@ :` B:Xfx bhHav8(rxb*z",ʸ&c5#@($3HdH#GF);RYdSf9Iv[by}ܙ¥[Gq9'uy'y'}' :(z(*eE^UߤfZ )*wisejd=*Z*Jn:zrjl.תoN׫Զ֦ڧ [b٦\ϊ{/["/K pV$oW̮f[m |-[ 1k,3F<o,- 4)'t9LN R7gMg:SMtUwb3.k}V _]w=w`w~Mz5d7n\?.8ހOymҝ;.:7kN܈n9ݰzd{꒯{9_;>7 e u?Ocs/o>/~-0 M0 * A! =N*4YW; υ%L _֌-슷B퐅A!:QN!(E#T`(^q;"F,6f^"(Fnmqmbx-l('qAQ# G.r}tdF걒f%L"d!A9P>)ʾrqeD'KDv)gIXR.Z0i_.3d%3h2s3]Md6SҜ6Npr,Cuk&6)Ohӎ,:o{r5'+N~䤧A Pm&t}(C%Z(%(FQt IMђ.MiKaҕ4J)Ji*ӝ괧8UOcSB jM} qcCqL>2uH~u<`BYWnv,QYM킣f/+%.1ױU>|7y]2Ze^3,hEs3!g9ӹ }2g3OyFM8g8Lsگ~5A]h56ְf;}[kZ֎W[סMxj_Zԥvv}Nؿv'V^+;שn;ldvͽnj{fMT}Gu)To?~MU}O8#p_\81!t&gQ~myڕ$[;emIWntĄg?ʍyלS?uΓsWzԭr74}R;} Hzٛ\:up7{ uqWz u]ۀϼ7/7'/(g=%/zwЇA{ϧiz^q/|X7}'GK/??Ogv?cW_?|c>7+3 !_1DA1`5_Q .nZ`a j `N `fN` ` ڝ` `r &a "aF 6aB&1VaJa$`b! !!a!Vҡa!ara bb"!~ZښU"1\e]"qm&n%Ǒbybƙ"&"+"*r\+b,b5-"$. b.."^D0ޢ/!0Jb2 02>c3#~215*52|Mc Bc6"#4F6"8:: Bb<&W@R#;u@>c .dB7:"DcCʣXU;"E=rF]$7J$@$i=!_LL]K$LN$MOM$Nd%!e)%1e$C T G$ATjUcKrABUXDXU:d}eG%F.XaXbeT#\[ze/ Z$^Fd@]Zba]`ƥ_.^db\bV\dYdneceef2&b~d^Egvhbca%lfhZVfek&ag#nmn:j(**vbs~"s*sJ'tbt^uf'-Rg*r',bvrjx'yN+ 'ko[qf&$;%Ǒbybƙ"&"+"*r\+b,b5-"$. b.."^D0ޢ/!0Jb2 02>c3#~215*52|Mc Bc6tutorial/giffiles/bridge6.gif000644 000466 000017 00000032656 07325330416 016533 0ustar00timusers000000 000000 GIF87avF@XF5s@D8MNMxO@L@WvXv @@XXFFXF<[M@iMvXfvF @(2L @X/vF4XM @5qs@@flXfLF@\2X XF L/5{sM@@PLM̘Ll\XFԆXX @@X0X2FL0L(UX EF|] 5Zss@|Mu]@X @nXaFgX0FsH]XF|; N]HX @HRl)qLO#XH|o@@BON XdWXqvF, HA*TpÁ :(aʼnRHp#G z8cɌ'/Rbˇ/18qSN=-`QD J*)ժLbZTM>klVPђ ٵgߺ 7ܻtnەW{7/~.m㸆#y篾?{'yGg|h` }W!~!aw$B*Z"'6/jX#7z#3. R?ƠB#hHxI¸Mڸ#LV RFYb:ra~T$+Զڬbm^m2rn~6 .;//+/{0 ;Ĭ0\ܫ<ԱC/B#TA'2A+Բ@/ "L&*Ͳ. 2#MLOS]W['N RqgKƺ;1oCS.[<7}{ 6݅>8u3+~ߓ7pܙsΰ6.w䐓>W.9i-z{菧Þ;;#zϧ:3?OO޼' ~“O<{_C=7L h@"plgQ0~һ76 o1X>o~ a Mhzu/^#@ ڰ8 uC@b="vυH$iDI (ŚKa{1}_^8F61" qrE3njXF&Αh,aϷRqjEBrOMbclƑ$hHJFҒtL#1)Nr򓚬d(/9LBF$e*MiMғ*a9KYTe.YY^.2e0wIKbҗI ""6!eњn& * YH #9m3΄g7Ood)ЂԠ \@ ψ3|gFЉB(Bчԡ((HGR-ݨH’41LeD KmҏQQr@Pӧ8jQO՛TXԝ:_jV՚V4*Y ײ.5k]j֪}M\׹TbXYͱX$5zͲ`f˶Ya}lh#;ɖlj3zvuheKZښֶŭju6M,b9\}w`p{6W$jqa ֶvku+\&׻ՕV3v׸Eoxy^q7+{勻"ͼE+`k;ڷk_T "0_ c)~c׺K C$! 71M ^_"p_cEŲqA@dx<AO^~ l78A Ae?92087'svef#8l38we3CR&W&dh 阑l@':v <07mL.^@X@QR&2]Uպ)bskZթn_=X{nN2R;~Ȣ+[j[ζm{Mr6P?is9 dQش 1oy[ޕ4!}ކ>PUo4ãqd4n7m8 S.rC摮6Wg]j珞ko y#t5^G~|g>^ߥʗ7H)|uou9?}揾[>z{;[:Я}3 8Nݎ~lϿ}wGۿEzczwW|Gxzȗ|CG H9Qtʗ x|{g! ǀys$zw&('#HH()?Ax{W*hHxCƂ.؂$$B;x#8|N(GU(G{R7=CZrPc{փDI7(qhGl'hva8qa7JHHhFxo䇶3((d)ydxB8BXhu8X|h}OօpHxMfkkLlHl(xƈhlȌ҈lHӈh_^xoLzȍE_ވ-(;$jG{xn-Ȉ8FgH9 s/h騈gYMgӐkq(@yJ4 )sȊpo1w*i4)Ad^#5铵oAv;ɒ+ywyK{{n” bxjiJ)0[e{ɷx۳˺ݨAL %1; g䦳:[MNq[xTm+HnT[;xλܛ:V˸!۽f9GkL뉰K!9ª:D{I)0xۿ jE{ܺygk%|7 ȨJyJEfK v@CąPH*ċl\kU]a_Ÿt0"U 2h;̐tHƋy 89Lpu,{{Gz}ƆܼHs~,@sC+y l| R|1:Ɍ"캋4^6~8:<=;7.6N>~HJ`kKPRM^V~XZ\^mS]%=NGNWda>؟̆`]l懭M&K x!߃Nߺyd?焙`wt41ދޯ~ gd׋u}yӍ<-͏oΉ}/MꙎbX ma]Ȏc:!۴nn,=^mփ鷎$^ۀNQq~%Nݷ]Ϝx_~;M?%}Zl[ԶiYIYo o'5&4.25 i.&ػ ^F_вєE߹o_Jܮ =^~m->9{y b~ih<q_dW֖y踫,~[^ļeþߊ ̼P2wDsoqulUwluW{w ʿ ¬liC^*L ɸMOVwCyˋɼnO㏥Nodj^@@ P`B "4C)V(1Í+HG$# p#C#1LY%L %dΚVgQJ:= )ǥRUVXt kXYǖ%{صiX ܰcnmkۺ|0ֻ \8/þ:~W1b Lozn0赤њ.mˇ[fƳ-+ZWݥ[krepNe[]0ӿk]8⭓ ;v6o9*_~~y׊΃ A+N|p@NBr0-k# ;cL?EB<[,,d^î d/ QHH,99DZ]qT"1K-L/ oD1+DG7Q|+/¤sJ3NlN2#<?MEs Fݮ4o+#ɬFRSO3u7T =UU]RL|TQZo7J5UEYL,U8UAs${3Sf?X`ϤZvjh\sgYi7%Ic3݄efPi ~&O&wXc˖uc8kufEY2k޷-ɚ:z:^:l~긱;혹o~F[l8+;|T;qn~\d/;EI q猡@ PTUSRN#*})K $4)RPSԧ<)AtS0=MD""QLҩWC D\%VJU~uV*VJֳuW&te(bi"͇.ٙviXRW~b;Zn[Uˤzw {> |6~1<-8!̀ջN0t3 3x,K!*83~:2%pbW>r'd$7YI.|)';y86p(Tra1,,Oe^ml3$&aOlcS҅3pl#ص`4,e-+=9Є֤۬EתƖfVQ'$4G}"KzjΫ$:sr]A֢+ao޵b &9+mb?d󵵍mR{۽Fvmgs6ϭt{ܭr5gCz.4m|7c>Szg+[e<8vsos\ x6~39R:ΰ-s7i+gQqGlmqș~hCװ']cP_Nk;mx> \onD8goug{>v n{Qcpoҩx˃< yw3 =?o^ô?;9^]}x-t%/|wvxS_aVUOktj5GۯծΟM=rg+??"@[LCk@8>k;=Ϋ>>=jý|$ S2l]‹EMtId乫' ND(ODϨٌN@yOߴ!ONt.\C{T: ŗlC8PC,NCkPm03M$н.&T';=GˮM7 {=lPu5#ڼ0PB K/TO%}G/ ,%2wU$̺SױS/xlъB>==%NJ`J\Ѿ~SY,2DR4:(ǘ;*W]dէS [e@\U)ZUճJb4@deVa gVZf\%(Wmptq%r5sEԬQmQH!ެ9h֭<(HUv}S=L]Mu=lW:Ը{W"ױ6U2hTQԂWH%L$ Xx}.Oki؅ָX#US)XKWL9ل YGYه Y ZPEפT,U~UZYZaYك٧D+ӯTzْJmڣM۩EKXE5ێ=н5>xU}۫[%-EZZ@LDU[QZuOuۑ܂[͕̍7ƝS[K5X}\UuĭZѺ\y],{JʛT^ʥ`͵^]U Fa߿= `n.>$a&f6Zz%c$2"b2'Vc()bb:ٵc8nc>c!A-Nc,.>c*CCc3ajUj\dbd_dedYidPdHfe%U>eM^A:&!cmbZfF{vh~ځnh ik^Vivsvz^hfFybmhgF%ޣVf]jТ6_6ꦾjfGF1j=_FS?h1x^iui^إhV\뗮kkhl̼i~Nѻv촞6.>lkFPwg&^ij VlVЮfvmm.mϾmmlhV"nmnnnn>fn6!v_6k.p޵n>o`JVdeeLodUoKo.pT&p;pWο_~v.oflFVP~|p 'q.p5DNgo^mWo&[7^qtp"q~rf+ l:rj2&m.q GrU8.a5"%/lvs r's*7s7B3 1@6kCot#\t҆t,~jttMNIRkS/uP_uQOuV_UW絯N^TY#utDt6^vKOr>H;ItdssKg>=Ot+Es^v|B:vtvMv.wgowatqj?iwkuww9Wbwq0Sv`!>6v(Wh_5mc~w kwLOx]x[l sw'w?x}xuoxyR6z/WztpGzU驪zwzz/xEt5GWgwF'{wylxA_yy7ķ{/|ۖ|Wx͇ҟwwwy_}}Gڏo?d~~v}7r/~}ޏ U~g~}_D~s[o]wuV?ZOkG,hP *l@ F8Ň36ǏCXR!I)?2K1/Y͑9Δ(`ɝ=5hǢJ.͉eSQk>T7JuI:[RdϚUٖ[qaΕYZyۗ_Yo+mP_wU\60Mȇ \1[˗ kNg[isٸ5ū#ϞkͲc8Qo8hygVk͙n:j쪵>uo'7wm;/^7^yٿޞ'Pw܀~ٷ ~x'E1f8u ~(b#*X"$8#4fda%߁H`2x6¨I"MB$SZ)D82c'ne\>v fX#W%g)t9x*em}Ʃljh{e6j碈(U^cA|觀z(:Z+kΊk*j,: ,J{-mv+ْ;[̶+;/{ gJjj lB'7pÑ.qƏR)p<1'c*L1 )gy6,s?:?n?W?ݏ3`< A/s` JDA@>؃>f! q Cp!ApX">CEiDq9t&RU4E%nV"E1r^ #ǘ2j|#8qvTaWhA<~pc M= !B=~,#H r}$"1dA9BQ>Г_&?9II2N[dcUr-*JWΒ|%`K\:4(YT43M[R&$y鲙L6]4'1yNuoݜf8NVd0Mz5ޓ@ Zxj1N&"-:·Ӡ5=hM#;.vhC;ؿv[ב0-n<7>}9p{ϼN踙nj.wmw &x 7>k!~mS۰=ҵx^񐫕l5[9wuy^[.3s^s%ɁK+ ;%rqK]6mcK݆7lwK鞗r߽xZ׼Ezk]W{/+_ ؾD.tutorial/giffiles/dff.gif000644 000466 000017 00000034762 07407736425 015763 0ustar00timusers000000 000000 GIF87avF@XF5s@D8MOMO@L@WvXv @@XXFFXF<[M@eMvXfvF @8(L @X%vFD|XM @5qs@@flXfLF@\(X XF \%5{sM@@PLMܘLl\XFԆXX @@@X0X(FL&L8UXfEF] 5Zss@|Mu 9@ X @nXaFgX0FsX 9XF|;fO9XX @XR|)qO#hX|o@@OM XtWXqvF, H`T տkDw/}o8W|~y1uAxyXZ!j!!:x-mh/"3b86X1c?(_=yz~9VL&TBBIdSI,xY%_%gREaT*fcehil'pv hN6foI➁٨ *R:)bjɧC"hr靛2Z+R擻zXjjꐺi+" 2{&6[fKmCjX%ʫŎ:{n [.ΚP[밹ۯ쬿|- + K1C.[t<@ $Lr&<+/s, s,(3?,DtEF/=tP+5RWMO[54O]k6;;=6e{}i{1w;7oWq|ߍnrNv 7A7Unߓ[9K99'sۧ+~9ܺ鱻9^;.:7<;㞼^?^דۋ;<}[p_糟>㻯{/?_׽Sѷ!f ZP 3kD!SѩЁ0 gCf/@B І ԡBPuGTDP3 XD*pL"xE.0V+&BO4#Ѹ0bQ#XĎ]sG>я{MGBR9Dd!yǑɁrCIT򑗌d&'iNbғ%'?IPrL%*WHInB:і7%K1%D\Qeyi*n,#1ZN̼u.ΔR5Mmќ=9rތ;94e>iz:<;9qs,BN5%JNzZ]&F7.iF':Ҋr'5iGQЏRӥ)iL_x4!;a͒t*ePJԟըE%MgPԩ3fT{:sT]Qfͫd6~լaXZVխi:WUd+^׾v+X{=bGlWX!P*fzvIf#P TMgCKUͮvV}j)R&H)? rc{n2H/>k8k_'Wy hj wv\qujzs ;p"|kxL:ǥwdΝ]%/XjyöMKyϗ>dzȧ{=/ٓ^(K=?v~$>ԯ^={ڛlv{ާfz-x3d 6MYw_/n~c[v+5/lZzVpG1~kpptĶw9}sm.}cg(}1?w/kql#׷hl}w,T\W}@/x-ȁ؁/FXEwmB>n?s,x߷&w2Xi~F6~ׄb}kƅHhq#?GZ؆U1mK؀f%xV0u nxx+x7džaFjxKʢnCpsExt؇Vyqvg(؄&TxH6:bx}h(n8v89(pn pȇ<ɘkȃxF[8B`uGucu H9xv(~黎H׸門i'A|(و(qȉg8TvLw8Hl.aIUZڈe:ka.JYڥ`ڦ^JsWZ&9jh*}Pzja*{J|:~cڨiʨZZ$ygzJY W{Zʇ|w:*˧PZJ:ʥzyjƚz ZjJ બ**Ⱥ/κjϔozj亮ZzjzgjCت=+:t'ڰ ˱۱{"K+[? $ /['kÊk3˲4{l*o;UfWYɴeh&ٴyVO[]ʳ1>=j&dB+pEfq+ez[Bv+x뷃s۷{;t븑<+M˷y۸ruK K{ˬ +O+{cK{Z+ۺU@{KRm;˹{˻Tjګ{k|۽ʫ޻ *[廾{;+뷳+,kk{ȫk*ۿj̛<,-;\|ֺ{"쿱 ' 8A˫#CT6!Y]+ݱ-~&[ׯLk^2-}eH< /M+ҞЎcԾ.^8^>B^Ŏ$NZٮ}Vb.^.^>∴>nzfۼ=3n_+]zؖ%'_d6&e~ }()1r4?9O=;?fmraԤeb D;LO7NY >.O=Y~U9cߒARDp?row^̾&B$W7GqýTt?z{OɁrH~nʙG󊣟; gOW51[SQm8Ώ)pO%2uA@`DP!A `P#:4(bŒ dp`ǂ%• +6TSK HFu fPD]ѥ}J3˩'D%Ȃ"K(ւdrǦgVפDֹ`wlK쉳%Ϡ8uTnX Ye̛7wtˤE挺4ѡ[{~YulʹOV7鐠u `Jö9㡛/LXg_mv줷;x£޵߫=t?z;2 0Bp\p*@h$rʯ/DCDO+.+NH/ FF1Gwrj sp'D#LR%aR iC&\|R&mʯ%(𯫢4>&'~D' Ө"OSP$ N3L+/IBS\lQ#k#4Ӓk32=%ʏMUR1ŵAsմK9"%¿Z%J[uU2 Jj"#fv0HO~} tVe U*tmT_;L4֬{})$dIVvZ~M̎=LTk vm{x.^}W=Ki%JUT 6ov=͖ߗϜδXt玥i.6jvy٩]yGdF[ˈdÍi.N$+릙94:D޹YyVsii׻rOlEsnȡ6jS7]}vKG/oGt_;SjdӉ|؟x w)iU;|!'/|O^|>Aw?}SAȶt$|▧, 8A V\A˽I `1YS 3Bi,aЅ 4 [8E8kH >wKySԟ!0w1Hߡ!(35Jb4/bFqs~Q AרFL\%}IB :Q")MbHVQ~e*J?~ҕth!PtTd'G Њh9Uj>2֌dM zy4%)eiESGULӤF.U*S7TlF- TJʕS@jzUԝQ=ĺyjXW6[=cY*WTժ>X^+=iSOXpcDP|YHlg#Z6!iU[Z=|RZЮvmmi+؎-^;斷-.pW\&׹ͅ.f=UǶ/QvwdґܝlT륷n̻e%#e ;"{^j]7NZz- ս%,__׿զ |N ƫdۿ76 1.fiI` SmlzCWpU/\+ڈcN _{oǶq;ey0a6 W+,>r(e|eY-'鹽ZɅ(L?: kNHlN9Zp'g̔Lj*^5ZŒ/MCΐ._LKyg Q6ݬNx^1"=gm^+WviBÚk-ZzvXi&h$[S6 "ѝu BvZ {n|oz }p{3U=l#7M/}؝r8fيۅ휫9x~;IeA5+g:fdt:V;Vz{k;C]Rʟ~u39ufg]l-[l{Ww9}`.=FyӹxSֵ oyZ?>owG\wv} ?>wџ?Oi?̓/~eJ׸U.b.S @ܿ[$J@$@@@ T@ <`@t |LAH˿C?(=k?^=c?=B A%, 2?sBD*L =,{A, >(lB0;;B#TC[)B8C B!lCB1Bc<"BoAB*|);4|C<>%lD&䳴EĤB]BOdD[DEN BVT_DS<^,L?KųIE)$[R]TbgT?>$ջFWC_4q|`$W hdCmԪfFll qE78G|G}L4{s8HȄDž<}dHaTȃTH<"tHG4ȌDȇ,HkV$iTIԺ,M">,-C+%<{NTՌ2-%ӚDˤ"5N\N6}65GԞ:9ͰBӆ>pTK=UQUSS}(+BUGE*D/ET5]U7[ULFNO\6M}T\VU`eEɊ,Ilm>VHoHr p5q QMWn͠FkWquבz{EpuVbe%c  X>}dFkuC-}$V[% S]UCXTk_UH@ثՌX}-NXhENSL]/ټTُRÇՙZ Ym]̚ӛYEYItU؃SOVm,Z@ գنUJD[ڥ%g5ڤڟƖM ۱Z]۔UE[-Z2x[MO]Y%ZYVCo[l׹v~ԷMO-P=A d=P-]%]O<U\}E۝:}\UƲ]&=٥uLȵ>ձE5ɵL'۫^Veō\]Z^E =Ƹ^[ Eީd^;|_٬_ 6M_m_Ub3J^= R-`eވ ^_T܊]`au`_yT aCa-6aڬ ]laYm`I6!N=Ua abjN|V-.ׄcI{bz-6c/3sU4F4ט(7.1vczbu^Qb!v˖+'ީuL'1C~2I aHu=l\(RQ~;MR`5\N^O.e?dV.*F);Pv (ZfD ^cE>_WVX[[o垳f]Fed40FVh>r+fl-3eal9vn%v笽gsnʃo>%zSzdjDvh\>l(|m#ln^Smik־3k`ljDVeVFlbBVm~foVnkl-k`9퐙c2c8n{ou-"Ęyv6o:of2G'p6p6巆.n0n"^66Wn  'e/ ~i?(g W >Svnpq0qғOg Grc !AqV+'p-(!o!#n.qyBla.2"293,f9'N*~^T o@ad;y3ܙjډs&g>7+X`2Y=q'%OSG@2ɏtos٦jYO Q9 6RCg&} IdcL?ߚq8ٓDk>2b`o|zvhuۼ`fI/@,Wtij~j꠾iϢ /@$xwP8.hpj ^qiuib` u!AU/mf"|s!sܶk3Ċe><Yz iwXF[z4z7רtFaIwQL Udn{/9{G1Elxt_rz|PqrO4!e{1̶?||qusutv {p.{ǴA'i"1|}Qߡ_xuDǴ9ey*$f/ÉBoiՇ Ϫ'BQOrqXn~+ y^Y ,h ‚2d!D>ذń3QGDҤAQrdD0',Pː"urM P&QF&- :)֤KjJtί@viYDjlPrݎZۓՃ˗ᓉ?z4.ކpF۹NFYgcu=[6siŅM7jPkW ymƋ[ָ[`翴u %knmc"OM|EQ=;±G?:)݋MB_SZJiI]JVy"]> &GY֘ ud.)%m7'8VXy[(,~曒9(Q.%q(}֥' 4pLP{wfaJY})a66rnjju(N!U륑zCy\ {. gFlj6{rk2kV蹯)K"vx(/bk/f:nFjÞW/z)a{0 [ r~ܯ.<+G{Kȳf <*ʂm]BL1'Q ,5DS|J:C!O]PPdmjqH[ $o5T;7O=3ͮwlx[dj nO~4ڛ .Ӝ=zSzy֦Su.79x iczr{TƣP=gc߽Ճ[_>w᷏Lw߮s~? _ /J|GrpCh0}$SXBp3 0׺nfYbs>Oy@"%P""*}!V6Ce0_cJ`5x3+RyF'=3`WL96.61z}1.A‰BύuM'A=JNIs5`@u& %u35 ӊ͟/Is:S}tGo Ҋ "57dN)N)ӞuI:T28C U C]9$O)բ[TJYRU}*`ecTuN)Ua,i5+`k*ޕG5ǴYڴ~l` c6ɩ:EC.m)_kG2j][斷Kmlkִ{jmq߃[7epP֍.j[ֳËDղnLūױn mY[~׽wKZn1,76/N`N ~oBN ,`7ZWx #\hؼ3UL21 pCڸA*Mf1d%'9{([[rEeaq97󔻼d0ch.W\gli;#9c3gH4 AWNf9Ozq'o~hPtjxBf UjXsUZֱn`w=^uy}`&vlc7Ϟ6mdk6mqѢF iuѝVs)hXۍo/z6wC~ݴQKz =W>qM+ޟxqC"G8|O)r9c>rG=8[o[;s>?r:߷w{ =:~ws.r[]>t=/͓sC̃GOϿ~}mz^Wx_#uG>gW{ɿU;k?x7?|?~׏~ `9`% _R v`zY ` ~` 2`F .a6! ƠQ1  ! r`&f!|%۵!n)[z!J~[֡ڡ!!a !a"!bR!>a$"Vb 0%N %^"֟'B3I$'f"j)j(b!*' -"/,/"1*b1b2Na0"3 bV5*.c/FJ#/~6^06b5v0#5b9r,~#4f=z#6cB<֣>;= ??$B?"9$;3C>DJ9BvbBVd>nE2FvA$G6Ad-^^J^ŤͤK^dK$NMLdPdO$Ms2G#HB8*eD"<#SGUTFCJNbVB%:bSjeW%W:dXXR[ZYUe]>\^6eUYRST[c\Z_#`NVe^%cN:cF&bBfc%f^fe &Z~%}ffvh`ʥiiV\g&ih*fbJfefŦnڦlfo_b]8a#"!.b2'rb .tF'u&suNgvV'tnwv'x"v"xo g`&egzp8'q'}gpz|> ~Ҧj֦z:fjrf g/g{z%pb"ꣂ&({Z]~jf6(h}Fa;c/FJ#/~6tutorial/giffiles/filter1.gif000644 000466 000017 00000011354 07016565276 016562 0ustar00timusers000000 000000 GIF87afFF@X( F5Tc@DXMNF?@LXF@iOle '/hodm/tim/filter1.gUWiff'@?, H` &\xp!†F8Q Ċ'faG~L8aH' ,8 J]UjUW T9ЯB XN$\J(q.'B.6騠藑R:_b(*ZjEr*mj+ꢫŠ+wfJ^k"[mZlxn+e,2v.Znj6ۯڛ/3K}'|[1Iq s6|-,*#d(0/;S̰@DmH'tJ7As6R47:\\8w-d_5=[3a}uYkl]sj<7rMw}v<؃^'_.8x{ 9~.3#ڹ硏8旟^9N: yR޻~쩫κ': A/|7+mAys=z⇯@OO~rYGMOL LORLq4X&rPL$A(L W0 gH:NLFO~^qgI^Dx=LPieG@ ~dЗ jsNb3"EPQ1!g'zqd#!c;E1=}ܞHt ю@OH1$ H=u9cAxHэ#()Lq( DQ>d'GͲe,Ͷʉ2+kK@`/[i822d>n#ͬqYe%J_vSl9 M6~YNmbl3c &G#BÅ:M:yE- 8#|nxT8ϏvrLH?ϔB = ɐ47Hi63SvTv>O"TnUZң2%*P*,. VZ8fUղn*U%5 {$fTo6L?Ż:u]5W+X܄t?\TiF>k[6ֵD_#GXΊ'-ehZU|6TI ͷFJl+{Z6Zn [1m)mIЅؽSt1uWL5B&}7VJ;ZӂıYno ͖kEk\%;+]/"4W~[ۗW0LHrd.}c:Ɣ+Ń|0?GWf!\f8e|1"}l,{E^"(Ec̞幮}qMy/9~p!X$L*ZI,(]:8ˡr΁r54g)6,b9;3egјJM0T Yzt+YkV'WZf2XUi#OxɎPם]n,y+BJʍZ_Mhbtj ^ i)nx4g{mlڔžgs{3n#;5~}``U]ȮM\6ۗ6K#y_5՝_N5p4'Ka.[ U-ds 22 YyN|bf۶xrƍg'vTY*szhNP}hOϯn)r`y9B)6.}%UUB^t?W_ Fntƹ6O}SUBp7҂}0#)8v{, I83p0qNOO/w8Yw⧀ǀ ~ Ht{pWzgw,y(XzQF;{{lzfv;5elbEtӢFFA(<HqGw6li&G8+zTu4Eh'muhgtj/AGcHA$ySHA؃цs7qjvJ[F_6dM$ghi~@W;p<[dlElwK(iR?VB9@ߣ@z4zWsqsWeKXoUhhuqEuwc#'ȇBP83G=FvF/[]WbGp "qEQuZ肾 q4x5vQՇjfCsgtJnhhn^zLSOgfyVq;ǎ8!'$̗PI֐Y|)&6 ŏWvh" Y ؍XhHnu(<'u' #tk%9w)LHNE0af!ґٳ&ؓn*5ٔ򈓈N6G>yQyFh2`*tڸؒPƇ+kɌP"ٖV)vLyv+ȖXaYk@'Oe%tXY{W}if,蒍ivavD.̨WiY/z/rej9yifd&}qycɗ77^ט7ҙ[7Gce(YQi479'ؖumC@ŝ=֋[se)ahZC:,D,SbੜFy39hl ]y!)P%:ҡ>NRKzWQt*҉p4ڌ dYphقMI0 SNz&uQC?ʟP:] [T$*)C)yiAg*]W:[YBɦ(QJnzYxvL;'器صU4eꟓjr ҧs%j"UjVuJoڟ6hJj:YyZaO ʧꩵZJzǺz*~ʫ'% z %g((p?ʎy7VZ%Vh6F٪*U꥽RnC [&mצ ۰;0Ğ 7@*X{Q[u-5 Z'lR®J3x꬏B*ڳ/[Oຫ@;1DZ+wI[N{:*KE۵^YsɵL[Z[Ud{f+i6wBQۤr0vKxڶ ַj_p{:;ZI[]:HCɺ{eʹK+ۺl $EIk![$ZC {t +ۻK˸[ͻ fj k;KI{++֫[{Cӽ˼һȿs;;k[ Lܿ+|=;3"|Kk , ™C“ON THWXafF, H` Lp!C:(p"E1>ȐcC A(QdEHB49ʐ&_tIeǚ"eΔ=/8tcћtƋf;ڗo}|B٩o7^ߥwO=o=_} u x Fh @'=WatR:!#סqX+x"A"!^8M)7z,)O1bHd?6ia=褊BI@.YeQR9_򸥏Oj!dzYf`9ndt&jYurw '~X(Rb:(D~feꩨꪬV**Bhj㤚lz6֦F{f2k-N+nr^k~(Kkz[nԶ+)9/#< C0x.:L16%@D'q+LrF{P# 3;\19 %c6#dBE,JϬ%MY-\pA]K7}.9E(p]seM-ӫۤ,@V]݌-34;YTUU_>U@o-褗n騧ꬷNJ֫׎VPIϝa='3A7OK.j$Mm#gO!%;%~`qwÏOZ#YԾFNm~`d?LwƾhyZحiBAV~@UG#7B.nÅ9raxf*R pI$bB̊b MhD$:1C_([l"h2/U$EA#X=.PS\  m!yBRRdBFǽe\ %Wb'Rk4 Rʬ|GdNZ qKZr[H(Ryk$yI^Z2n|N&K0Җ|1w͸ b^%la&)Mfs'8My\8)3g3fS)P;'4MS) "1wAԤL놑 Nx99QzZ𙼍:&~9gJv6}#ъVHdJm%Ԑ8}h5 @H FԃZTI(7Ӟ/yjCx赪F4V]ZGe%ZSBV%`d%)Wtm,+UXŽ2+_ך*4qg ֲfŧ!\7Y5$-%hXۺB+Kj4ZznT5mQ{Gek.a̖qլ$[ގ$>-r\\J-[dzґOո[4y.JI#.Wk8ַp[7wKUת~y;ĭx_A`R-;SD "vOEX#nK` U{Zeч)\S+Ŀ}e Vmx3 qNKbVo$s"kSTtC-R㈼^)R(JZZcl%#g׸ɘU;5ʎt}5U穠SI,MeMxӅօ(Id9xӌ3jKYÃl4\ ra*5wXt.eJ+c.NqNZi!I(Wp6-Qc+Jlޚڑc_UBv2ZJK6wm( v$s ysIbv|&Ӛ47m~|Uu|Y%6v)TM{Zg'z\\vw+}"86qw=R3/`!4oͻlGJ4\\{痰@"JuE|&+\? };}k;,,J0get.9>whpnۜ.yp>-GOқOWՋ}S/ٗww{݋?z `7E7~{jē:L0|pueD/p4 ."F¥s">8Gm>A2$Bw~}_ȥvFloV]?@0>(BdWr6Y'ƀ瀛6Fm=1'K~|ǁ%ljV0GWG[OWhFCabtwH5Xknj\iQU!3f7cׂ tףwS8uFc.FkN6W'*Rbu~F0'i5g vuv&$B2QV-O`:}攳6Dg:7 &gw;^ar[蕋edqs))K9)T y捩xGh&x(q u;ZjYayY emxɐ*ɗHq\\Wُif5Royӹɖ5UcȞ?G{)MRd&s]yϙט :ӑ_k̉9oɂyJGs8)MԡHԛ>4ehY4z,W!2ZyS8>ʙZh;_)ʡCGnXWZg›6 ٣wȤ<6ADOvcJN8ɚ`d'S6~ntSZ]0A|ʓq*@+zj#RZB *ZeJczצ;ȪPY*z}D~uBʫZt=LUqw[j,Iwu :~,8Ϊ_2X5:Zz蚮3X]W#ȚĕJwt9Hǯ뒽:v*[ zð@Z];:D[%"ĺ#;۲Z:V>3kC+Yjx(; l*T+lQ봑 .3W3kC+Yjx(; l*T+lQ봑 .3W=ϳ8};yW 1T.hFX` rڅ"j\!hb|7a0n4~"*Xc<@)DiH&L6PF)TViT \v`)f8ƨ\͈fة&½)܋5)'e% }>皃 'ygt ߢ"X)uf*b5Jr*{hVꩫ8+ZNjvz밚z]n+ogZ{k5[묮ylrkgmj['d[䮫..,XRV/&{5,.nk1'~,z $/t 44l8Yn > D=3.IKC0`%3 5X*32 {q>dKphoTSs(?,i[ˉ|m0eW@mmWux`-}9߬:N)sn皗 疇i椛:WTl?xLꣷ._G~;jT;Sq.lj;[V|i?7V{㾏g pп!{\nm[~ko~3Y.P} e Z̠7-hBGXA0~K %h!r#`Olaiط_1\! y/qF$8D$]d DqL Zxy(rWY<UFmQ#N7„fDF,ldS5<&YFxa$!GBqv*XB YE7 Qy#CɺQ.ktϽ"6Ɩԋn{t(HZ̥=ȥl ͗ 0IA2<*dvr`t1MFZsK%ʕ8EYMr>Ӝg\N:%t3NS<#6yOP9tol'@O:]EOP~v> YWz/gF/Qu]($3sDEz*,ݨJRIF1$D8~zڧa:PTy+uG!ж:ծJU*PS0FTDc&;Ejp'FTY5!=&'M.2;Vհ̫*%*Eo^rk %;Πֲ'6m))O3k3MXke[֙B]-h-2U[֓-Lw[זֶE,^&Z.ͪz̥kq^B*^[HjJ\醳Y7~!/k_ 5 垷AuՒJE!rYu6jtǫXd/r8nW9bո3qNG9Vā@%Za1m|/)>n%o0G'LfO,^7;o\Пth{Ů-a 1;%uisME'Pչ^idR_->pč,KdOV'C܅y`9o]_Do"wngc3x}RQNLB?W?8~>"|+;+䣍N`7=~H?On{rվ |Ğv`_ ~~}%vwh}_٧S}k'M~g}f͢vW_!Xd`8h| Ղ€b1 2a76'a>WC51PX:f%H҆r(\5vxY(xk3{s"zI\88S {2R3t#i%I͘GVl7sK&t-/gFdʧg_Y1s@1Uyc~vmLYh,/(Bd^|umG_DU\|><җYkyz䗃%W`xҘXXUe!Fpdyhc'.sWF"H5 3q&nJy| yydlI/ dxvv0M+qykAFk wAhqi9刖`9EPur YÉ!;'YaȆQK]9&1>ɕ5(yK?B4me}" O e˰@ 7yIp˛ "|M;۞;̹1&3~<[KU.y[qRޛ吊7 ]DCNQH~TN^љj.4XuWYR{z-tͶ̒u>Eei(,D^|eccBxZ f=_!n^~8]^NҞҸ՝з~~:ݞ},QI%vhf=) f mx-R?.nŖn2i]Xz U$ &}7cPuᲖ:f<>b@?D_":F{,Ng~ 1fN٘J.ݩz-#(AqXgMeTyV/#>Ξ~S '">킟~ň/ӊZhsR{oێG]`? p?OߵK'@%*М5<^_yEgOݺ?:/ [)~csͿ-oyA@@ pp`B*|É Ņ vTAI<(#A+ &J OlG'ɓP=wDzTQ <UTU^ŚUHT>6,ةb5٭^ 6حi͒ݷom`… F7bQ4ڲ՛w-f~ ;rIFWlZtKسSKI궽!IÃ|7No"gR赕[4ӷc =S%fP=?/;~ 0<Ш\糧ko P&4K8\B!Φ )/4W<0$[E`<)MPk0Gm0EiG)RA'כ󌓐EF" Qݸ|I7ۄ<*|m<*H=M3Q<|SΟERHTR9r2j#n4R4AӤ14UK|EfUUV؞ LuMO5VE mh͏HM'Oo16֜6%_YyU7[W^ks[ zqĘ]l_|5݉_xn-#9{)~X}!X2fYQ;FEN皫kdo9Ng9ܝ9uwuy镛&痝F랭κ꣩zR 5g8V甠;Zӱfo׮k={A&^ q<9愁& Hs[6x<0Vse ІQjoxoStȪсkWVGC*N= I/!1LEpr"kU HXZψG0FˌtZ,!Jo%hmюc8q%''j2ndF0,M)QJV+I#UbUU]jUb{B0Tu-E*;[=.SؙFS~W] q[Vϝ%tKƹY+BŸE.xgw-`Udm_+Z]|G*󖱿-e)[WR 9IJml{^`vg+WwW&~VY"ժV@Fpe_'5Z>=V!0q7w:}#d}֠iwU0;<1z}c@Ôl`µ}$rhQ'(Yo c#aSֵݲd8[wԯ#=dc sW yR ;9J80FOIԏa?;9N.Ҡf#=kׄj6h5]_sQ4"AJlf{tmmu$*Ǜ]vݟ)=Ꮊw;6imj]{Z{l}- '}t]h3&xI#yڎIi! Ǿ"r:@g9b~JރP$5OHv̹*'(CG-zm RX~x_]VMr`= SO~wbqboo#Bq| T.v/\.IZjoS>MܧyECg ~}ηFWo豈cVn={!sgt"nAjk?s$ =KذB-A1,@{‚&Q=kc?EQE?)12A\ 0xnӐ`uM=e dϗU,kq?+TƳVbcݰR+m?QVzȣ5<.Uy7XL8lCڈ㉹ѢUЪ"--T ^ ׍u5OPVcXv}RfiBW#Eb%?[Yv%;e)+\¡zR/E݆+Z]Ur VzRf=ǺJec~ݑF V^]dWtd;Ww\uT[[g=ݖLRMUpR {`&-VܼxAVikߡ3 `QWTWĸSCIu4"WϫOW#=M9=W= N \&dI^5BQ<ac"9.^a:44^8enIZY{@ԋEYW4%6֊c4@ XYmxĘߺܷNܘM9We`_JbMa:mfكD^ b v a0Usb ^dM a9d#vbu)fBa|RnmSTl(W&_YN6 [&FDh fmde\,~$cTdR]=~`]$ R bb\gERosqWdeZvw֙MGFedT8eּ%gvfFwkۃ~i )H^bV\&G&7AfSg%eڐfWA嚾魳i~erNd0kd.e~0ySnj~jf_fM?/^c= 문.7lkT=f@Y&VjV央\ڙ1 mKB:s^R^^i}QN1IAq6~m$]=imk ꔆgVFĎų.ގD>0o}I֎:(\fk&n ൺ^o=!V>4ii֜l_yoQd.0o"E_ov6PDim_ۖ ǐq^6hFWvn&it%}qk2 IOr޾oѓx4uݝi8#w ZgpT<'_:o)d.[jd'Ѿd0Ͻ%<r3`4_ٿ^0ٞe98 4VMƊ3PHt-uce˜ljNTeljr?v MCp5A[CbVEr]l["_r'pT<>@oA-&"oT~ugs(XhZrD=W& pg>b!v'rYilnfatIpOp;'`JuwIp2b|G7uwvi xG+ud&ZlOtGdviЋr?_ Md`W ]>^ݶOv幱['ymvmpvγ DeCOFbދ=1!DN m7J=Bٛb{_4lbo}EKfWjyz*wq9\yM#>sm{X: $C @= uJﭐ]lSlt~t?cSw~KH@ | p7 2Q]eDJֈPdOX\u89褔jI$Nɢhyr޹'@IcnVf|>sb'j^ƨUՂZV fuyf(`Ev Ѫ雴-f*Qzkf((Wli֐bP,f,JKkF֫ǵ:mz-~`_".>/ɂyi=os7jrZoE0(*!V8q69]ݨ0EȐr\10˺t${JR(,G;RQK=5Dmh[g5ue5d6mq=7o]j7AtjÍ6|^ύr зTGNRWyxͷ{N柋~襏nBHm~;3W ; ?<O;<;`[tASO_sZ[oKYL1zz(oO ED]g[F?n'i2@_|cW:+]X7AV^h %/T FZ(|@VP`#7у뛠BE,N9^RWF() P;kb}H! Q2jRÑ'`9~OUL سQ^i`hnjIco(! )> ;BcEa1ڣHT1\Vb~Gk94:|>/4M#'IrV)2܊.gR]$H<;{v,R~rBD?igQZRiL;ee1dPIMvg{e4p7ԅ"$ Ƃ̢=d1}Μ iG-yNd&TMQ?SVPMVF;Ip#]~Z;Z/RIʣ洧dBDoRjSqn3V3UI:ֽ5s+\&PhP M̃W0S}LpR'TNZOrg {r6\Ĕ*)ӁT^M?k''zn#2B<"v(!iHgiPpZ_go,lbOC4Njcĥr[rlkר481-\EebGh*u3C&s&6*n3],D9_Ҥog˕a- bRL7SԚؤ..qe} R9R ^ 9}\u9к4ۭ'EBb}("9JjMw,,V.XT΢rd:;tqgo&78}t ^? tQCԁ3VTs۪?W.Q5lj]q&3҉>vyLޏ^:Ԟm\{wFvH'Y۝f1Mb/Pw:)mtM-[on.ez?p=7=f;%Cl;} iln+gug>6c$8qi<5nρ98nsSVȉ][N)+~s>o`GeS>?Wh\;/)'cfk.q=_?l;uC]ʹ{BSMv|:k+N<0Tkm{zH< ~aGأ/uz.+^W߽wqJ>؅zm^;˒gOuw.H[ԟfz~_13v+9םz`NܟY_< ٞ%Rf (G*IAR Sφ Ȇ`s_'} ] w`Eu \l -̌,7May`bS! >!ɹW$ n[TCL  nQ!$!K`1bIx4!upW8`$z#Nn{D|[@]|@_u..XPeU".NUU[EWM/.]O1v4٤݀3MZ"ꥡ"a$ SICE`ytǑR16rcw9q|b(.kbY7 R%h\SB%\\%E\._7u"d7.]6N]TjFVfG_b!cŸO fcXa9ec]b*UDž #a*ڦi.k]c:]dDZ&&*LYraҦg^66s>'tRUYAuVu^'vfvYE5&0nf$qJejXg젆)gҦy\b~>f%g&Wp}Ol%go'y&fl1h2؁Rr*腎'KBm(^hT Tel'Z(A(u`fJ&j ʥbfbQW\eHhR&~:zlD(p2$6s)E(JViG]:i\iy))WlQ X(VN(Έ̤ کļƨb!I#a鄲#RtPo#L ~ w**YXͩ*g(j!#]ի4j>j)'(H% fV!FdžňrJ-)22jB* zbd)IyV: jvqk%jkk"F:xiAka *-i W%^FĆI'+j"si>(ˊEk̎f~+]in۹rhNkТNk'*ўdl&r2/lU-7 ۾-/*jm5*NMZ׆lnl{k] ۢJߞ㊤v_mjajlfҬYmb-]2WN"hk n>,ښY2g~.F* /.սE/6%J/nN&mb/f"~/ٶ(ﴥJ/ov*0fz/Zf{3._0:0ؒ0f`/0 n \oSKH`-ްo gN sm kos {p0opABJ1 C pg0:SZ Ro/G*o!i7)ޮZ1 r !oo"W"p%_S#/;qiFrq 72#_"fSp&?/))Kp+c(1*3'w-i,W.K2(702.?/o+*,o0q$/1q.q2cpT#_pN*/35373$222;;"! IҡǑ%#xʗ S&iJ3c꼹3gO]VE{VյTJnXq5k.ؼd /ֱ#^XUqē3 oc˔Ak rgÚOc0˟anX6d۸CӾZћW=E]o{7ᶟu־޾t3N~]lWr쉗|շg }H_ w`{ >w ^衅g~z`bH mx%Rh܋NHj#&#?B6x#:E٣BHdHV99IeQABbt^Z9fugjzdtʸpnYfhF`\Z'v('n8g2痜nꩦJӠ} ٩ZZ꣮z)(w6zN짶ЮFmR-v[kz+k,l 7G,&{-Czr̫nk#jqܢ hȯԮֶl ߜ3;' m^El4/{457]2><4IWʉ>=5^_v}H\uk~oc2f_QoMnee-w]=xw׍ߓ ՋWrJz@ےG96j^:'Ś z?$z'{޹/;N@1~{R/ ]ohE|QA8^f B0 gHP^ kn(@ @i~!$Љߟ h@dVq/HDvQ+cθqDtkKHEQV4#TwQM</7F2DB,sYhB6|c#CVOA 1bi0l9IYNh+I4R)LŲLa# II33¹* 4d*QMrߔ$/JZқ2CfQR5:N 8My\%*Ld23$2ͩQCjSΔq9Y ׀U jZWd4Zמ2k+aӻrf]ds׿:E+FS*Mlg;y֑ 6iijWvsMa+ynNB}[ VK\kMs\"vmɸ"︋*4µk} K>ugK_ӒU[K׻U/j^Wos/`=~Nv3,_VKmpw[vucF"jңVű0{A_2EOX. s[!80PJ&;P)[X.kk,M.'A| wFpdr~8V2XΖ`Q= sݬT6XsF/C_7zY3}mfForw+h:xOpǂEZ̈&NOԞw-TTi5_Xk[.5il[ּkGCD&v]84@7{82OIOQ/wx wIFpw{޺ lnNx!NKK` c{܎vL(XCU;š]f[]q~nxFխs&6'tyk\K%ÝW:(xFљs\'tr|fOyuD۶Ck[=ʹMm/ցb=En EWSO-gv?C_xdY;oϾ:77/{;{/^G|`n֟]7>?SG'[I~Ca/W^:}>+~}}f7׀(V+X H} t7~x4ys>GYQ'h} 8~8XX:b$xJ@WH% G؁Kw"h&tD<Rn^ȅ/hxh7M(9e-X~]75.tHlvXGsl%HjXlJWhlm8]KHvwgyhQWȂGXTw\TGZx~MX~k$5؉ʸvFwaqO; Ak!ȋuhȆ8Bh~GF{pQeAB(x5Hh(JȎ؈[xOEv`Q|dcyّ90VBs/.$/'Y/$sxXH"3I8En;f89EGCt8z;iX>>@I5pM^2&sDnj6lu>aYU"w]೅{EG2ymifMiH%5itvPxJzُ(֗hɍ62HT~͸v GIGXIwTioeI(ty9wTi.vwI9oY0ڢ Y)ts DޚU 9#MaٖȘ4=HyrZmZtk{zi딘HJLAʩsAfRWhKܪ-&([^+Ju"k]*%6#[ˉڰRAIW4k[=8+; S?kчYc5GhBd˥&YUzeaJ+7Ҷ\Js h.t[`jҷ~K0r.~+ʷxj[/ uD;㺙Gn[$ڹӢ[[֚"~ \joK*%-%{17KҺ<[ )뼬˽D[#e$һ󇓻 پ5 ˻A[ꬲk뽳[z CaJK1)JC6˹[@;#̼&+Kjl:L([ùBrJ]t Zl7",K+қL)< @,`6ܸ\gwJW1B̹(ʷ *I+Ġ{j|lK/%:h>J7`l<(zp y%q^{D~9<0k4\ >̨RG#׬w]AUМJY%Z̫М?xəHC]rMT3G"9sk%-U," V.S%)}*U2=ӾV10}HָA ͉IPk)l!t :tZ, /x)|<`ZIԜiqֹȇ>ftUʗU͙ ւD׶8♔l}w !wZItd^8fjlnpr>t^v~V4Ib`qN^±6ԲMG:BND#/79cM^޻lQ䍮6:ΑY>0 ɥ\m(q c .>Z]E[^ONɚ.A̾ޝ!=~{n!ξ=(>^.p^n꛱^}.`^~~ۍ־CNF2 ΎJ R Lzy Nn+B4ʋ/Aڛm2p3h: > 4 CL'{1#j.CTDJ(C(Ɇ#ފ<|P.@r0p<3mR\|(FJ422R/'42&)L:04BP2@mGEUp8TM%lS(3@JD U>GP5TU]@2MRUtՔ.6QTLZuXQI5UYFMֵ1vZW}-Sa{]pwuYuYh!uXY]uUM-N{u8y0^fۥ1wu]w%z!3ȶu[RSXO \PUXe8bXyEvi}uaJe!tbbu:f9㪁:<т5g##`%XW>Eh[zpܖg!v"z駧>zůϾ{zW<%&{g}߇?~~~韞Ɨő I@`gQG\㺒=M.KV%x,(Uq0ZhN,$}׫n(DƌCiЈkHJbCӉP!IN8x7t52DvmE" ;T%j[X1:>щڊ9=u##F20gD!rhI#OR 9H=!QU'JVڊgTvXE+Mq)IHU&3YMl!EiP2Δfh9Lny1[/'z$󜑬3'YJa2)\Yǥsk8߹r N1,+NԄ4(_LQh'4F \($-Q UXAJ^3+)f7Ss THDKΔzWu"I&׸ݏ6oAbnv]▱%x9YVvU$u"OX U§5{x^,A 7嵤bYIW}YW^dG1U`ՋC] e&0b \W[w[`fa#1^nj +uƪR ×m/f)>#r$xʏK2]~3!#Kl-zj =R2}A39Ƃsm2]8WYE&YYg'a]gbh /DlJsH濧>l X#?,(PEkGGžXd%JO44۸SkB{ fddڛR B^0Z6 0iC$dcwe~b]_zwg9(+W%UԤ[:b% a8NpZ .b\=Ѡv~">WƅSv37@;ezY:4Tc FF1`PC˺Kqrr<\zd.0G&N3kߞ.uɹt`:v }'g'n:F h@vxaן66}+=m䕍lCu׸ە̜iwnq{~g뷟xDӄ.wme2;Rs:?g?ڵ}}kڞ٢t(3G1:y79wC+;c@јuj lËCB۵34=K5: pC8T{S'A&W?( \DEk" @\EBOAXBJ=c=iÏ:2O,26Q̷n[S{iy{+bDs@9A">{wG#G2Ft$،?Q=?M1+#(Hlc^D83Â;㦁#T+źzHhȗDJɚ.I>,0 QH5D9>µԼœF35q+%)EJc ڹ^ʭ,G(A*HMI4IĻ4kV SK/-tRDŽRjQ'{ӒQQ.țH+3] CM>%ҝjSu/DOٷABkH۶`!XdUSձD-ES qV-cD[Vԕ<A[MPtM]}Aw n4LVrlVDGdҾ,hsDG V=N-1Ek=[ԫֺRPWA|Rm 3BaV~ =D5W}e3y%"DOi)]4|3HK܄ۜ ͤsi.U?ԏE- SGORסUM%,XiTݷ >ٱ5UU:`ɀi<-wٔ ֓ڊC @x9/ZmX:}XhSK쏤sݡk<W[SۿD-\=em͑;Xu]طRL3Yۄs5(*EYQMـf[(A=]ԅOs[tYPTYB5akF 5M^F56Iom@{^@E$N5&ۍ2)+~, .%"z`#rbf[eCcZi%];.ah1R3*dy\u㝩7T&c:Uԕ|K&QM&2d5U-LT ,mJ.ѥ\ei>[V] H9f"q4]<cm^1~d]ڵNvx;lm'Ʋundf/g}mfgd}v6cLdWzQ昃6/h`EcW6gQZe%6B*{n2^CViԝo~$\jhJgtOLԎgh@iV`&igD^G~?^B-dZNĂ\hEa.FAY.\sgMdyWbhRit-jt~f$,Bkk}kgjFNZL^޽&ľ"]ll-nkDllAh&lgl8]霵f`ٞ~eliN޶Mn-mNXd=f-"]j-Vh^s3pk[홖< :3=fnbk٠NoeEznGѭ*K oflm:p;UppmoPV ￵xpFh.״N ]p==q?rqpcVnH^жo#p׫~Gr %nA#?r]k]ˍkD ]3r: :1n~+Gӧɮ55u2ЊF)&tV6Tvʔg[J;M9"Rό$|btt*o5ta))r{Gω蔑bHNJK',>Mt>1tΘMeu )1w^upqRsELP+)VKX[\Oe wޜ`aBQ$LJzn!sSWXގnzZWG?xٟN<6KxaORZy%jxݍibY9^G-(8t&h*dztiBKevbM*8K5?<1`G8dO־uk/םIQqvׯeYT7VV>瞋~Yꉓ>姏tzcg<|gt޻o{d/ĩ|A# Uzsl)}O|iLwNMuS+,|ݬ֮Y~H`X I&kz\H#q  ~(MDH4/fG iFn( xE'8bH>|914Qnó`K$(;.vq-,^vI2bL8Q!\$>蹆+b9!0CxA5H0]Fҋn(R"ŏ\ WF3p~/4dIG%}]3Ҍ⤚UOpUTGsV#S$0x-\Ə L=s5D&hBK_X6+bfR3D{29ՔIdAQ̃\G:9>V4|M8>NSUծ~5c-X`ֶk]:d 1c>q砙()dӓ g_sRc~3]^TktSS׍t[ި>U{7T#0MY3>&)fclж޹ӹsg0A]` f30r-Pd)&W&Ka07s)@B<Ė=mN_ ;{ncxŎo7s=~0Q]ˡON_pV,mͨl02]ujB+wHIUL֘jץXlP/ Nv |`}*2amذqyo8޷YR Ql?xSE驉}'ެg)?> =́]z.nhOy/ iJe/S_oE bx7Xsv|3r8Q&R&lUy%yL_u-#uTd1O^ p 衞-EUxe--VpJ cE]V-_ʉ9^UB7=\X>FT EaR`G-K P! V8we`Y-^ *%!h\5a `Ta<>DI aUiO"jU%.1]_aޡW&I-H0I!!a;aZҞ%%'Jc~ cNbBIS еU9#ta!Y}p%Z-%8#Q!;VZ2֣{adU> ({b&U4bO @v ]9d->w=.. $\V!.>0 _@Y HF 3DaI)\$+fS6ոD5$ ^DQ$L.Ь/G_&^J^ $`TFL_.Pb3f%l%W>AdJO ]E %F2!R:Q0%Y>FK=^E^L?eS$t"4ƢA>~ea`~)ݨeZMQ&PH9 RKbUR`%HUeo%*>fMTcB]a+$m,&Y]eZb9 a=SI)I]i'bl&Ad7@V[NFf&{5e !^nk_>{J|'mb(&mR~K䁾MU1n*I~bvRm\?u-#6]`(:IXEӂf4&1(Aa'oz_喆%{VhHjzaK0&OonVz%WVVY}V'~vƧ)?vh: 6B٨ Rz -PO{ZJ%rڡ={(5Q )橕,zjLr)D}Ǥj}*Z'ה)wjlJh]]]cMOjMXa~[ >nrM)BSb#2^ }TkjڪwJq*$f igJkkF 7"!b*ߗV+&jfn+vu+k}+kj *P++KڊϽi&,ɒS&,k&&-,k؎lMIX쥞'ΖbީF(>~("*6-~솢lڨ6B6MnnTlkҠ"db2 &Nm ۞)kԲiEX곆ܸFMīnX&-ڢ( wkNim)k~e )m-ʮ.*,ֈ^m,)l.Үf-*.h㊫.m-0oކQ5&do~-v熮fRP$n&o=!j1¯=Ҥn}LoKL~k ҇0 !*f_nr[obD/ +$[/nWmlf*Zfcj0b@k(o].5.op,{+ _Lۦ_mj/!l")121 d  GpJ/Vqmήѝ/zц0린1>6LnC-q`/K&!qh:7r㲰>%+&]Pkn)I#) -p"1r0$;S*DZ-W.Òo'&oЊQ/{9ιJn *Ȯrk? 0Oe_5Ǭj*5h1_0.', ) k0iD#3?*335$n=n-?ci@)gsCqm:[t-7t2Mp 01=C3C%>s4`4{m(*m<4n3шC{s 2N+FˮF'3G;OC*rp>uTKt45AkQ_TCIZpa|tBsuu@6ݠ4,M/C/u` /Kie+Bn0k7Xk5wuuFCk3m+j'u%*v'k5*_5.wxx7)L$ux{7O63;sk ll2~[E_intpDky`47YS|v_qWc;@b i + xAvV0Y"Xrz^3h1TAa2?lϧbC.UG5UE8}Wyovv3w(׹_y 5}րF㖹,ɛ%Q]FTy̬%I9x湀79﵁gNX-s?k{&]aE/?UZLzߖ2ogOpMNswzK'!9º_#e7wyK!ɇ A;&pxY'p<ȣk;v/;J9n0bf;SFPSZ=rajě{@t;TϥP:* [ {w7klBCG9:cv|V#Fǧ|yWG7 bɰg|~]%RLPDOUEHYz{yIFWjm]07;i[f{р=SuE8G @՛aeX&=WI7S7V4WxӓiTf|&G ˼+hw=0w}ɣ1?5sNJ7>ۑ"rW7W_~we׸η~Hszn~es{r^@/UD[~~{w'B#XhͲS;@(0 AD8P tp"ʼn#V(" nPE AHybŇ]0fM7mgO8y:thК HROd 5#˖̺5ԙ:zU:(W=ŞSm͘oE j݅%K.Lr IɂD\`1^…L7㿐?f3gXۮfZE͚nzj c>5jdK[+A} } ;q|W>Ҹ屉n`茋/n|zN9ϥ':4p_=Z(S=^u# )# O3kn"P6B! [,×Cʣ B6LKR$S!PHD;<,N2. 澼СʑHM*BsCK[t+$SQH{|H5*[QO3O*@_0U L> [mMV]^sUX\cMVemg\kV[[ o Wq-\sVj-=wWyqlk{v|} XD;!DT+FUgnImK$%u2dL:Vle.mJ 3=ԝ{bYOe֒~StM\g0j+松rTe۸;ΎFgFۊ92.b]YPXÆƜV[ZmezǰC-+n"07m0KZuZ[_ٵ>S#|hMN!Κսɓ|0+nCC/˾J?y+Qqo[mU1~_QxasE='r(z.fs` : p%]7>Qp}5@mZB8yoIV 6A% n0R=e0ߓg ok>u0=ߪL.r9E 6" nT=a mIͰR Lި<^ zS1u-I"@rHCT)bi)̈tZ 6ck\F0؋'oxi%,OG]%m"A{"x(rE\gȃ`Bb[p$(V2pl<` b4r]a]idRԚ3@Uӗc B0} `ϪlJ@-j4m(AE* H'ΛH"I-q~X1n: K_{T5-O>RL1#0s) Δul|O鹳hTeIMjN2&딎&L"ш| N_S jCÓGX;@EIR_ՑOk"=KQfUtr9}#jC|^:ե.nMi7`Džq\zח=k]c ;Qnv1S?'>£|z<ةwz9ox#g!x=?_ucx?u,Ys~fgMNhMIEoG}/O*q+u쟩{w߼ޖJ4QXp%]0/ƈ\B\y+Ќ"]-^Q o.n,pn4oFO]JN7/`Z0^pcN%K0wJlK #0 M P uz Q0p!p 5 p"ZFYNPf./u(ZP }P-9py( RNIzF*QetHF%nX u*)̯ ʐNq-Q`'-pJPmdcaH Lj.F3& j #F .͐ > Цlʋo E.4i%‘FQm "w XPQ 7q"JNg WO W,:,3~g0!#2p'y'QH4)-QN' / &R+_ҭ'"C,)}mShcH>2)bS$SX4o Nf3nBn-"0!rfɼe(n"2Q'󲘜ňZ+H&3/ m2Z\k =q'6q38S*kȘ3RQzr7$4Iorq.fR3&낖/6ɒ2g9g7ek2I/38ө$e4 f).(0 !q l?1SnsA@@I׌9SjjI?YmT,B u)]s2S;%DuP1P0'GesE6}N(ڤ՚f8y :Fer12;tJS;tLSt&$$Dd4 JLNFTrNLOH@?q*_a5U_Ե:dK?Ve9VWY 5M wάMV5G^vc6Q=UOSHjdPOva`v gV 6R]sDŽg_e5eNhWhUDIvlQmKmhyaYUujin/=2g/eĖouh׶G6pp6dnW"&4%=AAqiv16n">U-#WnO`psmocW#an'"EEćk]UWvc%Ėp񏆧&;%hwhXwq9xkzv #xw{i]e{yxxv}s#6t=*2u;}mVו{O3׳N89~Ws6j7OY/;wpYvF\A8ExIإ$3'dV$KR2`iʡrJ%mX{7>]}u ^w}]Q09"q e=]]k>K>q)N:9eě?^ލ|g~75$7V3~eI>eX݋ݣ$ ?-neϭoɰ-e}}VM|2Ӽ~ ⥙ٞO>1Da M#뭾[4ŞϞ?.Y~$r̵5i~?Wp^c?;? dU?___?@X 0l`D VXq‹/jDǎ!KBidF))$F+kڤp$I9cfP?4zthOJa2uiҦEZ* ֭\zT`˚=+@ΆX"].ԫjus޽ruKw߼x 8.⽅67侓C8͕5OlyПp^̨ fֵѯ[Ӟtgܗug-jӹw>Mk߾mȇ[}r襯 ?[{/;'Oz{g|7o<珟tW8}` ^^]w!wR߄@b&b*b.c2Hc6ވc:c>dA dFdJ.d5b8e F h%|vx%bN@f&k 6kB9U܂ '_ɧmo)g)hju9TOv%I壄6Z)>(i.҉(:n橩2jMV+ʪڊljlDN+mf쭮~+t*l^vn3U+*K{*{.JB(in ־;׺o˱wk\2o/0@r,<74;tּ@Ӭ2w:\4>' ZGu/m"=;uqQmpH6t=Jڋ{-+ώW2gAXw~g3nഖn렏ꀺ>G( _N' ;M;MN.|?}ӈ5zX8}~ů4rO9缿~CnzO\·;~ԉ9O}nCa0l['{s Ԡ 3Xf,HB)4Z<)Mô0 a XCH "CLQaIHDObYظ!Q<| F&QrOB: bC̿RUXV[,^VB\7RV}di]NuSjCf5%-oK[JԷElW ZĊon;V>wMn jwwnp[ׯ[%ָgMzJJgm պt|{\ֵ^l;=I.ad*5+:2"*BO$,Pڱ{'BWIt$.+d3՘g򲘳̿RUXV[,^VB\7RV}di]NuSjCf5%-oK[tutorial/giffiles/halfamp.gif000644 000466 000017 00000024132 07320152207 016602 0ustar00timusers000000 000000 GIF87aWXvF@XF5s@D 8MOMxO@L@WvXv @@XXFFXF<[M@iMvXfvF @(IL @XFvF4XM @5qs@@flXfLF@\IX XF LF5{sM@@PLM̘Ll\XFԆXX @@X0XIFLGL(UXfEF|] 5Zss@|Mup1@X @nXaFgX0FsHp1XF|;fpO1HX @HRl)qO#XH|o@@OM XdWXqvF,80 "\8@!Ã"1J#C A&8dC'MJ\lI˒6giM?SSgQ&EQiSF5GWĺUH8]:i٩gk[o/rukjܰd^yLÈ+^̸ǐ#KL˘3ϠC'Ft_ӀS^tӯUfumvmӅ}[voڻ}W8\ywΣCܸ\0V'~.PݑW^{я~^zzޞz|s{|we x&Hx 5x }WCY`a!{z7|'z"+X-'36!/r#Rc&模88$=2iH%SX$X YeNv[6 7JZ`DȦohY:Ʃ'$$ni&y bTj%G"'Y(Jڨ.jiRߣViz0fʥ:im^ **jrǖz듦k8&jRƚ-*n+F[.(v '/QkY,h|nך !pB<.;c qwlr(Sq##327ۼ5?,r,4={1BsAmt43=5V/R}H;dK]u^km6`뼶iguP-hez}d-xg=T"On8ޓg78ܐwޛ#w^ym:K:檷x{;꿟.9s|/{Ng ooЗ^L~?ǟ'ĀY@r!iUy$b@<AE^4=/2! %"-$ /.Ro.DdA;ax</@8Xo!$*!0W8E1qR`SF?0&[E0r#8 Ώk#І:}zD' фk(>l=+bF avTUi9"r#=SjOvδ<]HOJ*LOnT(MRo"]EmQWZ6T jV=ndPϲ=jU-VnUX7 U U/M\VX5]J;Vlt ,`+~Mb'XcF(k.z;TΕ}khδ},lZ*gu+vUEEKw18,re-Ymf6mjZ֖ .Ҵ+ݷngt[׊oFkw܅/nc{i7i+yK^_\` Xo}1kpyGVb>,aoBx\PѥSNGôx_$R$Q,KK1߫Zvޖl6/8NGhTѡC%~stf4Y=X־]r{x9L=P߸[kv޼ c}0k}wW~dno[o{_qrt&'V%r8XxXKFmŵ |~>'H'hs}'8(7%D6G$Gz/X}IgdHMHW53|;>`:\(zAE{?Y:|y8i);Y9eTّXYLs@"YyFnש Y`ɚy9IiThsIyIC9<ٛƞٜӟy z\%p=9 .&9p]*c#IJ 2Jqb w01*ꢳ9`);9)feIJLKSʢ& ҝZ\nإ":Z*$ zwD $ڒ ֩*3&Ru*X{zk:Crª0rd V *:êZ*:Ԗ IݺiaJ*-JR.j(*:Z]ߚH ZZZ ۮ;;W*J"˯*%+"' +KѲAw; [{/˳)CHJV?*3(WGXxS(Ä)rЧX,Oy -lN+Fl[9az!AEFN,ELWGܬcK$\9低;W6,X, k_uq;.WpL̃twz)pȸ*Țz8lV& Ⱥ)DuO.(lWjUIب1k9fڼ2lm[8أlڱ 6Fpi-=&}A;wcRڷ}f'9ۃ,I'ʗYѴ]=썜d[eM̔ӁKhwS(dU-iU8m՚Ul]Ћm:i cdɿhٛ; .|<߻g4}~-.M7jVhҌ7H޹;NL>DcfrQkTmݝ攡oOMoliNV.<:#KiWX%~љ׭[^>`^jj%5ɌKYK>s{Н~/.]uHޖ(m۝>t4ǂyՌhs륙uNwpbk ꩈ.ОD<`b8.ՑXOcUbnSl/sYPvzaM }_Ԃ;L(v7҅ӏOg+H8Ûo'4_߇dM0 [;fOO}9ň,B/ܘJ'uȯwV-H ɿ߿O&~Hx_ׯ?<1`@0xP p BVhcF91dƑK:Rn⦍ 8p{ @hҥEeYrꚬ??{εg5bո=mQa5]|2='KmJ_{7ݽ^x͟G@zݻ_{|~@>?D0Ac0;-.մBn9{8 ~{A []4UQa" њ3@4-7NH&;JECsSQÜjČQHDR6c]J 9M-S\IW^qXZ ^U:m/hUq*b"SudOeW<wYs=t%6\oUT5t޳)44Ӷm[eEڃe^-OE6_PDžX_g#W2p }d'NyO]P%QQ(DmBI^WuhKNZ@hW;>Sgwfh(b734ۮ(ꄛXꮵ{-HiْR)v{{nnO|RnO9Q$ӧ,GVs\|kaJ;o;sP};*WxoWvQX&8Nͣܗssz'zg?>&Ǐ:s¶H*_HA?8H?O} !h>$hH J=Y.>s`'}"܅B35r!O?ڝE/o0Z禉lm@Y+pSG-MV,fԕAH(swxDny:l_ ?qxx? mtbqWG+1C" V6ZHs| 1B:E}(.dKIw鍕>"> p"#Sn2"0H5.ntdʎ|s ڞ̘)S՜53L*}5hAvsz_oM0U }xX>·M1aL`w%na'&v/l#Mb/}/VԎ/&lbn<CP\e:KqOepf;74-f"9L3,|цA\6z=>׹1kH?vq5=HsυUtq>X~53'v.g ;D.?Or-sQ=\s͠Z?hIlvH޴FkĹmp*7tӓ[SQ^uZ,']kcz/ٻvoq]pOouS=m;Ӎx3d{_y׼-xW>|˻گ/ e?{G<r{Z}_x|z>[^/7yΓv~S*Iū>m?TM_}_o?Ϡzv7ݞo7?><?C3?Z+@J  $㛿, , ?H ;Ak@DA , L:!!,4BCB&<@"AAA<>tQ¬BB -lAkBٓ68܏JϢ:CaC\C)$C?0)4,4A4#D DCB*[=D,I5LlD?lJBDK\1+DEEDRDNl.|DWŠDOY UdWlR7_LEYE]E@,FKLc7etPD]|FF+K wadPXx]ԏY>X2Y FY}ُ٠WلZYm1%ZWI٤֟}اZ\X4Z =ZnZڑY 3ڰ̱٦e[ZM׮M۽Żب=1k[X ۸\1\}-ۥe5ۊ%\_=ܬ[u]l5% ʝZʕe\ŭ[ƍ]ĭ]\]ǽ]U p^u\@]=וR}^[`L^\e^5^]^S_ U[u_U _5_^}߾_=_^=]]H߅2U6`nuޔB 4 &uq`|dL5a-L`+afa4`5"FbdV%n >bFZ_)PbDdb*a/ₕ&c!.^'n-bc c2b bFZtutorial/giffiles/integrate1.gif000644 000466 000017 00000011332 07016340553 017240 0ustar00timusers000000 000000 GIF87aIfF@XF5Tc@D8MNM?@L@WvHf @@ XXFFXFT(j*l2d*&;jw鬫ުl^lV,l ,E~ [NRԾm*oK{.[p<.|җG,XIg1 k*q[kk ,ܮVs,t{yN_ A#7ᯞ =n9;CT<#Ƨ=!S|Y/u<_Pǽ ƍ3] τV%ɅI e-Ɇ.<f$֐p! H"z܏D6PEGBDH<' CV 8,bQީh1ID!՘F6Q_g+F8jyF[c")>rd# 3я$&y9B&LZ%JB*r l%$Qy=PRc*q[f %Jbјf,8`jЌf,&jZ`"6۸]"3[,e1 Fp6e9nҜ-fd:i~&s;yN|GUAЃӛe@Mse(=' ŇhEIQLmJRԠ&(JY47mfQ")iN7SaKRԦ:PRJU? QQrj%_4̊N҇^%xJMNp*+Nz̸nH.m&b 鵁c GծG:T,vCEg>Ҷi* a5{Vv!=d_{UӺ(`7Vގ |,m1v FqEҫ 'Re ֋Tu>&5ۤrTm)骈-jq{^ꖽh|ۈR)s֗+2V kBV&zQ0[;Vxg5o/`(Fpkܤl8qb+-2_50Xb.rif:#wI[ou8> wϕwA|8sTb3vMp&Վ rVN8funVqkwm=`}ӕxjr1=^ʗc:39e=VG~ANRKP,O:kkt'VCw.2 `FU2?t ]S'H9ud]>wgQʞw9!g{ɳe}Q7v?B=[/eN%Kx߄c ώx`z8u+ ,Bo>i .Mo _w\iz{%G:ԓo|$JO[Ͼ7@_/?~:vw6Uy'tzwzGqxǤvw0u|w7Gy"8'v$l؆7bw  zh7xw*He,x[E@G%h:(92v=8i?8^AOYG778'{Zyga*'z{w`xTbu'gWwtOXrPstxb6xN68Ht5wt.vs)yXBr'mhqQnu㦇6Aqahl }qW{{R"p,d{]Ha&Xt7+hZAr(vۢ>Ȍ8fVtȘ`X^ոtiǍHWkKS3%}@Xf:EwXkzk8e؀Kс pu\vHBGgGFQ3{ y3du5i\f ijXwx3Ub9&و8x,y: B9(ي68ђ(\ H7i@eɈU R)Tٕ3ұ81XGx>woI_ T-:hY8'y֗M(ye膒knn锍 11׋Bp{(iDقqYKfV`ٔšd)^%]HTɊəMژ "$[9UՙZ O9 )؛eOʙei쩞cza'IL7>))vb9J: q┚,Z1pV|]٢ք[d&HL)5eE) YWJJJ!Z j'GwiHi uV:2\JHX 9oLʟ¹gg_zUc <OڤuFawvowWm:OWu}z\lJC**tQM hj2j:4fY|ۥ|Tg|GD3єcǨitZkj Hqzr 1{ۘHw$!YĬéA)(7 RyS׫nHWhNڤ 2uJg9Z꠹hڟ^T?F҉\z<) K ʱv.g V ʪZLCtck${&+=ʰKP7[E[K<\K{>K2LB{kUJ{=WY%ZjM9;HK\[Jg+Apn`KnJI<([NqK5Dz[ *|;{ָ:Zm ?} uFָke۵+-˹㔹kvvkL\ֻGۤ»;[r;yǫ)ksF{^⻞+T_+8 ƽ c˾@۽䋾EټPĿ+{h K ' >yK\lf[(|% L+ - l|#p0,46>1\"*{6,A|λ<ܳOBG;?F҉\z<) K ʱv.g V ʪZLCtck${&+=ʰKP7[E[K<\K{>K2LB{kUJ{=WY%ZjM9;HK\[Jg+Apn`KnJI<([NqK5Dz[ *|;{ָ:Zm ?} uFָke۵+-˹㔹kvvkL\ֻGۤ»;[r;ytutorial/giffiles/lib1.gif000644 000466 000017 00000003620 06374344135 016033 0ustar00timusers000000 000000 GIF87a""\⋙,(0I8ͻ`(dihlp,tmx|pH,Ȥrl:ШtJZجvp/ޯ8Ǒ3zR7Vfvu'Ym~\J'15`Uv6˛gw}KSң_Όӯꪜt >䂷ˎ)v$n _O1?uuA]/,h$HpᣟYYs)`o{aG!Zxl"oaG'"7Ƹ ;"#iH&L6PF)TViXf\v`)dihl"QhP9O5Vgg)pD'Wv‰OM/=  % $r4A{4Tr5׈5m5936e:Y'w}v-rwp x?|dt[3x+& \ʳ8}3;2JW`θH[1Ǭ.:h mʟwnBfL&7JKks~Xim/y{w">=k(d]#0.>4=s=/;~~8)+ uro{2(8 rp`YGv0O#JZIuR`?(+VanV!Q[@PQ+ĉOE}H [Y #! i]" Ρ0e\wpp =Vm}{l_8A4r"!5XH%҂$# @.$IQVlqH a*)?j (2%EURx>Vx^<[bH( $򋺌,YM6bo34;]wH&0qs4a6iw*p3x?f@8,s{%i-lCiJ"mOb7a3(=6Gt,ijɔ4f^C^:!23"fӷTB= )r7!j<-j'E@tꚀ8JBUcNn7 WA hMZֶp\JWլA+^ӈm8(-1ee aWhQ^hOA`AWVLZUfW}%]{Rlr6WT6QyN"T+,V^$'2\d"LrEVvٚ,Zr9тv{73{YF*p_R絞ta.S,LN;xE ;VlqH a*)?j (2%EURx>Vx^<[bH( $򋺌,YM6bo34;]wH&0qs4tutorial/giffiles/load1.gif000644 000466 000017 00000010517 06374345551 016212 0ustar00timusers000000 000000 GIF87a1""\,180I8ͻ`(dihlp,tmx|pH,Ȥrl:ШtJZجvzxL.zn|N~s,rhh+hОİ*ȣԳ)ء(@G+w,R=#Jԧ0ֿ34pǏ UMt ɲS#_]4͛8U$g.ϟ@GgУH}YfҧP=.-9$/Qj5h(JΡDy6,S[pJCK) ĎW־y;_” ,1k9%Q20eI6h^Wk\[c*w[}mfY荶rIszg\$yY^I&fy 'QVvpJ*!YަgݩfFs୎*ܣ_ҩget};۲n)+i **2.JPUֺκrg.w3\㊫KK*k㶨` "[( <"ܙehK۞'GɁk܆uz' ƙf@ᬚɲa鶹>,7lhukk)ȝ jXGƖ` u5hi'zݻ^x~6  %)g HF'A#Ӝ؅I3nG aś9L 歇:;{e^lXJD;Ri])⻵cX,&6һD} ="v}ccp-nnv-؀j[9AСS8L|, 1MS+#NG7.,Y`8oQ'`7 bx"}P0 W70"v7^)? |5Cݰ9+2g4a 1XK",(l *W~âxSQCj JS1|cH  iI4,d؈/RDR|%EMtRz$,ىLJⓟ@%T ʤrcd)yJ2%-mI M2.L9zf:җ|,yIf62e-+amR([s"4Ɇ~(D ъSHBPx>ԝh-MO((^3OB/5)4IӇv(+U.ힴAˡu&>{kӠ<]i ǩH|4Y iUzϧl#AqUd^Y$cZkIU)zruVX>1Gi>G?4nKLs}'Aq+tdrA&7DC"Gڱʂ,W$8 WxԪV7ζ5mcQϪ("4{"Ŭ,B1sSTuT䖰]LSa:"װ]wX\{%z6Bx|{ZJvoA+*q-pڋ;W90d_[ҚxI+s+έrf'uv'\͇Ug1< kM.ѦcwK ixc+퐱6jAr:|b*V׉muzKc2R0 .34π=hlr)Ɂ0?ck[ [ږP:0l q/ڝv 3d*ݤp76^3η- }#ۊYEEQD\k v_Ց<҄NWr@{ ߠZK W/ nd9'[gV|_GzcC>h2rqb0 cz^pӑJ5pE.)b[W6m{[Ͻ2)n*an=PaFLweq>*WpzaH[LQϩksr':#Ogz|#旮y7"61lxÿp q~h>V`ϯ{2meqOլlgzHyEy&o='`x,7b ^:&@8xhy摁υCd"d'b.{Tcn{/Ob6(cp"qFvG>@74s L8bI}0V/NPWх`t'PO̧kHi~4fuf(BWb|U 2m7@]|qrVobRo-v7}Zmwxc:y2o؉TeB XA^68Y] GB)(vGebyu_ƌh^Q'}HW&8Xhp긎؎y`8Xx؏9Yy ِ9Yyّ "9$Y&y(*,ْ.02p097=9:99Y;)2P@JɔMI `- QYI7?YH)LGdٓhSYf wIkI{ aIp9tɗCYqi8isi|iY)9ٖXbٖyɘYy)隓əhٕzɛ9)8NI U )֙Ʃnɖɜ靋阵oq ˩)5)y񉖚Il9y~z ڠ:)z%ڡZO%:4p(,ڐ/ڢ. I2!j9;И? =zG49 ?0DPj UI}YY\JK^y50_ZG:~)iyٝv Btڧyɟiz|z |*~J60Z IycIZDJJO IY0a剧yYhIzSjX׹̊z቗ʹz9)g)˺ ♬ڜ㪨ΩIКqJݪ*ɯi)){: z*媪BI*jc9[k k *ɱ٭ V*!kJuz:9ۮvڴ:X `c\ʳ@ZQ6yK;i nw{{}[t;{QK۸øۏ[F{"Z۹MZ{;[{ۻ;[ːK~ [i60۫;JI.*S ᫾ѻOZо+N@:yeI ;ԻZK1ʬ8ʤ92Yy Ok%ܕNښˋڲSz0"Z6l@E]{#VAkJdpKc-{zj驶ZH| ],|tJeF; "OFۛ \c~1<̷c,lkLl<0I-\a+1 ;xpʪʬʮʰ ;`c\ʳ@ZQ6yK;i nw{{}[t;{QK۸øۏ[F{"Z۹MZ{;[{ۻ;[ːK~ [tutorial/giffiles/nand4.gif000644 000466 000017 00000007536 07407721447 016225 0ustar00timusers000000 000000 GIF87a@XF5s@D 8MOMxO@L@WvXv @@XXFFXF<[M@gMvXfvF @(=L @X:vF4|XM @5qs@@flXfLF@\=X XF L:5{sM@@PLM̘Ll\XFԆXX @@@X0X=FL;L(UXfEF|] 5Zss@|Mu%@X @nXaFgX0FsH%XF|;fO%HX @HRl)qO#XH|o@@OM XdWXqvF, (`L0†>p"ń.B ǎA:#CQjTy%E38f͐7 ܘ2N;+)fГCs2Q5",L TU$V7^ +ALr]6,ڦlƍhg[wg%Y\o%toͻ㱃A%ge D sC A'AQT-uװ72wG_瘧Cw=;wZ]py㷓T;%7~yGĞw'߁z FH |g^ ^y؟~_ Z"Rghvh#6#:c7A)B" =2飑GBFNY$V֘eUJIB 8b b&""pjxq'gif~gΘ'vF~(bi^$'r*jzJ|Jhg_hh**ѧjںk 骡>z.Kivm-nߎv6vF,6ki:'ћ, /0FO\pW1gƵƺ;p fVL(;{-0qV3) -ԫkQ-}+C{+دut0[,́h}lC]+ALLg-u9|=+me2Pq߸6eO^@[9^:>:ˮ#FG-Pf1}'%|e)x[S"ޚa!,#?~=P/l}џ6pK`$F4 }Qߠw@O9ZPYAՓk,j%{!3mjZ>}CZmyДQ+V]׽sXqB׻%'d:]βma[?bʈ^`\s$Ɩ)!s_4rlr[:N$ő@I=M)NՋא0<8fԅ|&Uq{w8fd2afrY0揁ܵసܧ P*OLK:]F4e,tՒ?e.WT-{M_|5ksxGUP"trˣƞ~\dŘǦºJm}g[ ~Ů1UEx~lWTv+wg:>2D4l־ăX%gJ1ۼ5:[ڮuc]CGj$&oz%}kֵ>k>b|v~pct8N,GS83P%q<_yܳBngJ͇BiN:nf2J:K7u1oR:ַnu <9ا"bO{qa>Xn_9ˮvsO9sMwxÏr^NtڂxNsS~u|oy}Ћ/3[FSnx>}a^Lg~fGy_wE_|ɟ_ ~Ǘ}pr|T| g~"bb}qgr}Ea G~)'}ӗ|0~/8#~1ާ+4w@h!㷀gEm0h;X2~Qu\Rf\ąT6}W($`#^#0#e(ekuih[҆5rcV]#A,!w7i16x}|q/臄}|&1yC!ǁ!}q'Xւq~(Ifz:yhX8HUEHNxĨ}NiXM刌wt혃~9HX}y } )֘ȋgҍiG| A{'o'E!#yصg{.ב2s7IFi('{G,f>y;Ɣ@)嗔3锌G(:iǓ[Ix'ZmX yW)5O C`dctvIwxUWxY}O_RrٕMqfyEɖvm_9f8xY™陖9$giG "+8qɕH 隧)IŸWIy&Y*ɒi-妜~\9)iO雊(U;GǝYi穝Is♘ÙJ5)ҩٟj Z;:yhX8HUEHNxĨ}NiXM刌wt혃~9HX}y } )֘ȋgҍiG| A{'o'E!tutorial/giffiles/object.gif000644 000466 000017 00000004512 06374632724 016457 0ustar00timusers000000 000000 GIF87aRa޿V;{""\⋙s==@@77p2GGlYq00::44DD--{Vx1 'l8^|7$C$cb`K(q2cϐ:} (O$~4POB%*5SWVjUǕ_iɵ֬5)M)6Mҡg]qڸs ˗۩xU:nayU[dlX0eėZ ß3-4ќFbՌ!5`۸t(ݾ1'OV92In H&5Ggzh؋O3럴ޞ&a]e?$>wcFGOwi>w`wӑeLWay`H^`jMԃǑ8X޵aKۋb"W cIh&5z5A8 +&ɎHEmE*yxQGWu8jcsXZcg$e-(cEz9Ɲf8g`dD8DXI&JN2bGg9Z"Ugg )g~✋:@5vj ](Bd~f:6ꏈf*J\d-pvGћvK݊mt&+xVLhMl,*z#QݾE9}:l;bLp&╭JY2'q3yrCe*&y*®Nss|sOqǧ ɪa|k(=GIǴ2Dl&U.NQ4u8 ^gvTT]  hI?},{)u]L7InkT$/Kw:67*̈h9k6uٽXZwJ s2Qm`?#z\;i^Lڼ<t{HK)1AV8Zsx{E?:=.?y=l&} c5gXE*G'7}eٞ@Q eLCȶ64I ~V|\P6`Et72LDBp5XB@k|F!4]@C[Z&*Jd^u/SBF&v1x)4B'_̌yb,Ȼe{+'5)IMxnx$909qRjv #ڀcM,XH>.ppsg:|hG*#HŮszyHE%ks&`2s l5IUı,ܼc23hyl`΂ΚP(\1Zc$BGԵ2h*qKVR'3:΃rTxQn\V!Lp^͘|HT]pڰ JHa˩FԎvcЀ1;`*QiϧBu-WZs:l=XrzC=7GC^3 `MbkX6v,`;YZֲkf/YֳHaVhIӾgҎQDuPݢ!-Zhھ%)rŰZLAw*|:)Y͖DC U\ʸ'6i0^Wz2W}k-Hů>vO?t[]* ~gLTln3rc 7Hnqc7XF1%le"J,oY 6+]׌q3*0vre x޳ZP\*c0ˆγa}$8т.4kc@|4w3ӈ49?WԒtMjUwšnu'RZCN=BJ#^_OQ{Zֵk0'{m-f[ׯZmkZۂ 6M$y{ض({fE;`MbkX6v,`;YZֲkf/YֳHaVhIӾgҎQDuPݢ!-Zhھ%)rŰZLAw*|:)Y͖DC U\ʸ'6i0^Wz2W}k-Htutorial/giffiles/objedit.gif000644 000466 000017 00000011752 06374634570 016636 0ustar00timusers000000 000000 GIF87aS޿V;{""\⋙zs==P@@77``p2GGlYq00::44DDSS--WWZZZ{yoqwzr|YJ^\ZWTkiPNbiUhg_ÿeHɸcDϺȽg`jܭ^ZӗWAFDxÆNIQ]~MOd'Az\I/]r)fM8%i3 Z?9bQ;SiSe2IP:@֯[6zװhNJ-m׵IƅDn]t;٣@'epI:Ӿ-f\zYAb֘ᩩ답i藍Z(ʫ!kzϮڦcuZKpb+-Aq+Ī ^ߊK^U^;B,\ߕ0_ yp5-n&u2ksZyɱ1h,#/Wh&n}G乐 :]!1̃-[ GsUVS'hb( ?ul5<_hv H䌮vŎrAkkՆ,;mt1Mvc:jdz8Ex"_ސAn]Y߷+~2B.@{Y䭻yT'3&U%S>Y>$PY$>G!9OCSDEЍrW%7 p&x=so;s8+s2Mg8YFnb޸DWH7FYo/E.s[Z_X1vSAUt΍o<`C:֥(2U d 9 Zʤ3V7 #ҳbl'H] Wٍ4$?.:,æB򗾔2`O˥r%3O+6[0=b&¾]3/9͉DH #Cfr ɒbӘ"$&i{ AO2#'|ZCnʲ3hdRs<154fc#ufn Ì6G8Н/kjKa2^MdnS4xcr ԧtq~jI\d"GFiU،БGE QoX\JC*t+K0*֊%\hȬ +U/FH(QIƀb8-2Ag$_c;Eβw+nIA qߓ>;G⛮v,OJ.w+՝uǿwR ׈ER= ֕A՞XK#T]ז׶+pwjZT_*;f$%rZƽ0@[4U(TPuR ݼ8S1v"!ǽQE;@j63vV12y)9;54Vn_wjHVF&a5CR^jٓ.]gQZ֥PT#W\z{YVvшgS~s$̖S싔6SO.իgjXֲ5u=\z׋-r|)$:Ll0 5|igD~p3'9#i6!(ہNVXiw{nHN`лߘ8g{ck'm|8JEK.BLqTV8:-R^7sg^r9"/7nY㖰J{~l˙6k}wWuvX:u+a_n$ZiNZ.8(6Gd!i\yE .G݆x+G/=9¼5 /D_w})=޼ ǽe_i/G=>߇? y {p柵;U\zo/1}ėz}~'mNvge7}i'&{lՁ H{7(*)'p%Xw xs3'؂A 5hȂ0S;6x >w$(QvkWTxe^`u[؅lVg\e(a#MR%n1(rp؀'Ex|8y({؆F؇HHw(OLXȆ=؈&(4ȈKX)Hv8xdHX[芤HO:c>ӦJmaW_o&,7 >W5Xnw8tkjmqskuػۦv^ゆ,+xf8S֌Ļ8?reُ^C~'0:2"c̲!(l339׾3)5|&"1GL43-&0Ԇ^@&2T[}0mN]3bv۹$LIsr7R8q~x>j؄I)C9ߓ_ߪc9<+yg{qNy9ݏӾ᲻J.p;_JCi#|QJ'nZooWtOKܱ _]{?}Htt@kO T9Am=Pyl]4€n%){/x-Õ&5dVdLfH<&:P%Xb쬈ƚ!! AQXb4Ƃ͑ql븳=h#/?lH2&r4HEԇHIʑ^"7Q~$;iFRjtd(!JpD"!s `K%)YBH`ReIZR& `FӼf5Il,[Bgfo\d2sہf8cYbМZg ՉN+!>T' lvs|h)Q\.s)΄J ='BP7V\A39a+]Ci͙66)K=MWr |*Tԟ%O͖K}Bs:T/MaLTf[cTTfjJ>5k2*M/\FxVLkֶN#b+U~]ld!;ؓuM)N #Ekت,h5{βllZO:Vulq[-p}[E.hH[7mrK[bUmv[n״noMoz;&W=w׹Ls|"";r4HEԇHIʑ^"7Q~$;iFRjtd(!JpD"!s `K%)YBH`ReIZR& `FӼf5Il,tutorial/giffiles/path1.gif000644 000466 000017 00000005737 07016321621 016221 0ustar00timusers000000 000000 GIF87aWXfF@XF5Tc@D8MNM?@L@WvHf @@ XXFFXFTݷ߾u姝Gy%y  7 >H!!!Xrh!|!!x`&z#2b6ZF<@)EBP:L..BّV٤'&OjY"`E^Hfh֨&8 mpsmfo+.NK>"Ìk~";_}}8鉪n#_e^z^<|zC?j3|k5?O|GϽ:m?+# O@@@Is_@$$Aa9旽tKPnx\bX7Ͱe ??A=7 նCNЂ[PD"PFGCOLsE%mQFlǢOG󝗉,&΂R¡Bצx:t(&o)44(B35⬤'Q LRJk_'H!K5taʩNSzꄠ@Pw~u%H #S:TvSTLRZU:.iIULX:vMu֧լ+FWժ-C0hujYXVܦp=F]V::bǂvgiŶӆ4,joEHMfیhh\ n8KVy+L:>7,e˓6n'˻.յ<`;j"=ma-۝7{\/wRV5j _I%k+Y v XYUp[\^MR+,\+JN8R̈9By/ͭg[#VoC}Ӂ/xy|"0z,~%stA1w=i n 8=dԀ}K27Ė!/;ǻ ׼3b|307:r66bU$HgkReFks$mVO,v-nR6anuK4=jt7N&:̍3MеLgcz4XzGvlu~~pN$:Osrʓxg },/}^zKO*]UIoE;0z,~%stA1w=i n tutorial/giffiles/path2.gif000644 000466 000017 00000007761 07016321622 016222 0ustar00timusers000000 000000 GIF87aHWXfF@XF5Tc@D8MNM?@L@WvHf @@ XXFFXFT(PɆ$E"Ty%J.3Y1̛6sĹIi JFE{*MюH)\*ԪMZUkVOn yrWazv[gG;n\fիve LÈ+^̸ǐ# LasWv/_5gnYvΠSs^}ְ_]żm&hߵy~Wxq v;͙?w:׏gO^҇ro&vяʾG~}wٗ_}'~X "xxy7_:HaUh8- Ǒ^,"h"u3&X(آ/Zc7<GK&\NFH6i%Jbɤ _ryedy^ޘnJUfx9DJe*`衈&袌&Jhc=*b[YVadw~cf\ 򩩨Y'%jZ)jtvѰ r:kɂаV#?R-*+СJ;+Uvkjj.|;@~YKKG.ΛD֞0lf;odGYwF /#1mr/7|A.Ǽr%rܳռ/Cl6 YşM*`NmXaUg]Kg8]4 59m$skqw-w3ٝ|7v*-& }t`?4:9~9;}G4Cy颣u:BvN쭟vN{` }.: ?ЏN!G#Kg>dcO>Ηݏ&?o?߭Py18* '>/}U޲.x=QĠL G4%0mKZ:-׊! 5mId#8wȾ":BIbg;Ї"B"qXdiD}F4A+1C#D*Qx FM1~ 2%!G(%6K$HGma NzR2k* *dcc 9>Rtab'qL%hrdwZy$/-YAA&0-<): ^6LFy%Yr=[9NjNS I\0"gt'*(_S;WҳI;i; . TmTD$)m",@>I t a\ SPMM3SP MCے:.k*輄Ԩ(?m**աj̡V5gORMUaBִv>*Gz2ʵWrXO[+QZO`^!&GedoXu$ݫ;GƦγj V6%բ@GL-ky*PMwkF10U&e[Pme ufxZsЭ$ln/V˂wEazK筮y݃ؽ/u^ֿՔow `ַ읯v`% 0]`ׂ -zfxiݻޏ($qS|^6 <t.m\?p_9=rc dc!0qc'Ø1%d. yzPfw,0oyb\e%{Y%v3=9xnsD>(_0MhЂ2leoo2|3I}ijZ΀ti4?zZsli8oӡ^5)MVۺgkYuQajd{f NGڍ4m kb[&]]tՠnѮnZsnxK;ۧwc×G7_\}߈rۍqvqvmvYӮ0bm\Cqߜ#w7;Kۜ>Ӂئ+ԉuRXGNK]a7{ٻZ"qٝKtڏ> ͷs+v^C&;>yxI;zy3yݻѾxț_Qy˾߻%I=}<3|ƼEG~y_OpoogRR|QGVEߧ{VH577~w"F'~?$~wIz7AȀ9).%Jw}adsT$G@>`?F|c?Ge E>t;xQ?GddWPzItOMxdP%HC괅I8]хRZX_V(6^ubĄlHJV>o<5%QWoThnhe;ײ#s4}X\G[|(|$O0hNFEUYufKU'vTiO{!U8i'}\V_ (WV<~Áo4X"WWvsjUz5h(Z:Z^xX{2Lbd8vf \((X i!WwYyYX}9 yَ)$ɏͦ1 f&.ǒH;l¨hE%iW-)=:ٌI)wFVb 9h8)ՑÓ\yDy38NE joYnY> F9/IzƔAiYuxiS.BiH ~P}ɘYM9iW,&i!ȖdIcيٖd|)hyl9I 8 i)vixͩy1♙əRb)JX y9ɞ䉜M)oϩGw9j9̙ٟǠYyZK* :":\jjtON^'_~ g\1X 񇞃a^!vh_"Y^~3a(<@)DiH&H PF)TViX^!7v.X^>/hp)Ua'dixީf{U'Y袄6n:gi)ѡ6ZZj)r9z')*鬠Ig2讛+:*l**"ljZ,jmY۪^ +&F.zܲ+۶o[n+0~"Y/[1k|O1 q*7|0ˋ1p8,343̳9 WH'$L7PG-JdXg5Sw[1K]4qfMej77s-a/| tMSB]am?8є=y3 ONmjrq6^7N:+h~%އwq箲괓{#~<|惣aC;bsW<Wipʹ赏>s7/*{.+3?Ћ_PZ?MOzA).}$r҇10y`(X;H}iFXV r130x8ܡ\TC%J|)AH!1 B'nʇZtajE5GL;x )l H:iY;9E6"x1B`| CDP< [HG"!hKj " hOFFW"9ɓ=n2*QJJo$#mRGKDFM"SS3OY^&3 PEkF,7qKf8 RO9aNz/\\yz}=v>$_φʕr@ ΂f)DzuJ$?uYуb7iQ &AgzQ1(8K$+ JeviKsS&2hRBԢFU%P)KK:ł] v XF*ugZU)]WU(MiZj6ubHrA]ZTv(j]#Jը%p15{m$cXe;;WVpD,d=KWPgUmfe:U2?[vM~~bUae\֚Vi[P mnQwB}xQ]D]mwg[r^y-5}ڝB}4:s nik`7ͷ p + {xAa%ϚnV}bإ]ui=J`M+[DzNB^c&# c.w )~oV `b95/)?^1233<3=p[aV qqyܳyc3w54W·0K&3Ok7ԛFUGw3ZKՒ5+kW׺&qrk;cNGzi߫0;XikP[5!-gk6VOXcÚis^6r_َ{zO_m<[۰i#ž"|УY%}n:\ߣ]@S<6~?g9ǷCֺ8-+YG'\IFQύd5kGң4;FMM$]g|{üdhƹGwgr\כ*oKJ3מɹY`8XN [?Oy᏷ P^x%yLy/x>?I C^״<_3[~A+Gz?~~v6w|Зzt9T7*ShHs(GLj7sT8VVW>"(k'ȁMycE8l$Ȁׂ5}dKt_4KӃM5Astt;#@@FxHtӵ}Sdu}nD/^ m㇅a[~zvCg_XՁ7A1;(l'8~80wh@yX{7_'{uH64wֆ%8X^jX?hLJ艐()bxXy8z5Ņ(Jdah2]hm3؊F/芢%8hnx8X(ȍsGX%C؎EVM8$7،H[h荗nX#h8ꨐ( iUuȑ8'I g oΈ G g8(9))n47.A9*99d,I7K)8yNy+ʈ:XyדXxkeRi5I7ٔSiȐH)/}iȕw6ybٖt#DX$(%5Y5 $ؕƒY)y)g|)qI隬`pgi) gN 陵)ey `ɖW);ٍiYFydBy r)0kɔpWٜJ؞ɞYُIsٙDZ:Y٠n ($tu)'$ښx 46#:{؛HZAډ١ 7=JbxJ;:J@ٟ-Y\ uD 5jW ¤a*TI99Z Ji8ڑjl]d*@j*E* ^ZڦȧFh7:Zg٧kjʨZ0PICzGb7봭)-K*.˱=۵EKW${c{l(lk by &ŷH eˋb[۸;z`{M 'H{_?;+۶ʸhߙcv˺G+ ;Ǖ뺲 뻈[&;[i;˻۱{ZT$Xk%{Y˵۫zQ9ۺ3{;л+yk뽒Kk\{K{ۥ <*L.l,[´#|! ,%⛿Z\H@B;%Ö kyH9b; PRT4LXz` r%s%cVƅ~=jijr'fVKdjվ}![»uH@yiD|TJ fVHȄTNLGm&{ѲyxnU w2s7GJxP],d,y\8lԴC@.*vǯ|zbm'7գ#mAs|'rmrjY4gM[LV\,DO]5d، vDڗ>ٵ9աuqgڱ ڪ۽[*YaSȄ:^2yS`P} M͗ܓEHfeX-6Lx@8xJL87,ٺ6|ȝ>;{-_>m N  =-N^ >г%$+;)N267/*>~AC^N8~+P>}L&HM0L^IBcNNG~nqas瘘(b.SxurnWN慎N.fmn猎Nš`{T.R~~VDŽ/;GJxP],d,y\8lԴC@.*vǯ|zbm'7գ#mAs|'rmrjY4gM[LV\,DO]5d، vDڗ>ٵ9աuqgڱ ڪ۽[*YaSȄ:^2yS`P} M͗ܓEHfeX-6Lx@8xJL87,ٺ6|ȝ>;{-_>m N  =-N^ >г%$+;)N267/*>~AC^N8~+P>}L&HM0L^IBcNNG~nqas瘘(tutorial/giffiles/path4.gif000644 000466 000017 00000012075 07016321623 016217 0ustar00timusers000000 000000 GIF87aWXfF@XF5Tc@D8MNM?@L@WvHf @@ XXFFXFTƅ Tn],&ۖ[v߹]XpaeK5rcÖ33bțCwbϧM  zүSv|5۲qF۴߬'j3yuGw>t֩c>8.'~|˓~z_~ۃO}8 ~WSz } *X`9Ih~A zH( a+Xa(H3^(c0H;R<ID _EL*aPc7$Zv9KZIe[ih&Xp`N&uvHgvfy|9ht)n*zӟRZhiiJV騤gRi0嫢Z+e!++k찾.TQ6BF+V,j,m룶~oy+_骮kJZ\nz{>/ [p*pK,gh2olq /'/7[)3sP+m(l4=t."15./=S}ni5'm$w53sue7Dzab?4V=u-&h-8'=q6ԃwcCxW~w^즟aWԼ|9}sՃORs'Ǟ;?&N~H,+!,:! | A,?O~\M~?=UxàΨO|D! DG.T 7C3ŐB :§<C= JRhĜEp;P*D)Zw_b g?ϡn#Od#(vQ>$F"ߚc7~q#G;q+ݢH3,?WƲt-F 2! [SdV\yP6N$*LcZSb5K\3MJ-ʬ8is\Y'0ى:tjs*$g/{'79)#BJ$eD'g=(_7C͖ nh9Œ)LQ:ʒlbLsR&$.Җ"@m8qO:Ԝ0 SGԞk3%%U-t4t*T 겚Augx! uw ]ۅδ49Mb:Va^*Z X5gͬf7zVZQuTVQn;gWֺv_u*ִDWkwXhK[pEr\ףkUZ=s[ SՉr dS[3vyK_" (En-`}L^Kne{ V^=q!n_M V%֘`xlkI`k2*w\Zq-;K ?H&/lE&L.9R~z;B7{/di1en,䱊Fl6ʛ89՘Я3wm;t2'YECV% aJ{zhMMx@G:Chڷ!^m_4V_.m\&7F?&8̉- :Mi𝯺$:ËqYvF6@\s-z)=uk=j+Ve7x'L|s;\3{OwF>ȏ\?٧߽WO~.VgC'xh-_ĀzthVv8`\ܶ?8FV8hօqf}8W8_&,8_Hn؂,hgD|geeYd֊9z#ȆXoi肄(xXTweO^eX\Xx88i؎_ho%g (EXcd}&dXzYW[hF8h [ H(~Yiˆ0(+PH5yx29.Yy57 [ɌGx@~ WFy(ٓJjBψ6#Ba3i4Ɉ߈%t9<&l9 hJd9jhrYXIx[8v)&yl)RȘYYX$X~)|ɛXWaHȔIiXI&ɕy_9Oؔ`2y|y]⹔ܙTIy}ogy;)io%4:a2#lG0:&wH{9gJ j $qw,-*,)iYڢꉢ#zA:)yWHJ6)G ֘ŤM)]䥥UZI %ږ9jʇ+L %ҫ@rլXzukXgvYpŖٖlݷrҍZ. v7/ெU1v!:xQɅkncĝAs9S^ͺװc˞M۸sͻؘ/<|2iѥ7mxN?~e_e{w w5h |Va~NFHr`nXb"Jx&" Bb+b0(#:x㏖c= idH#4 ɤS~$VVyWJeZQ%\9gH$^Q)g9gih&x򹡝ty'gkY(J9oVj饘f馜)6*jFyꬬ++,+"[z;d.[mbKʭnnԪk~[岋n jK k/#;|/ļ/kL+\r l!]0\)4l82sn 'B: `H'L' T]Mg\ sɲh5UCvcjmJ,o,uyt-xmvηF6B5Cwl9p~8sni{αbt.;מ=y>7:o|#/|d g=[Oh/Sn~n}ާ1L?>^l~L`?+0&T{-{n7x-QJ9HyЂ aT4Xn BЄ S Uu'ܡ b8=P X9^Q"HErY,XԢ# .+aS766kNEq0i:h4@ↈ$!i^NK$"IHGbf$)YI?ɀɅ"IHH2WH 1iK\R/Jr.]y1X" )%g1P3Il~ͬ&7]3ǩr)1$mN=Ӝ "Bz2,&8 Pq3 %IЂT Uꯄ;e$t&DEbD%OR G;b2bJo8R~E)J/:t&fCӞ@]1Ԕ54kjAΜJuOT:Q0ujjԖє|YZTFnD\1Vbխj]ZRrvzչZ$!lS*9*vM?Ŷ^b ׂhv^Yzuekh6Ԗk-ڮvq5P۲2]aK˓ }j͎UF+s܇.w%2)ݺ/nvu[U}vgx Vi'{I۸al.(2M{Kֿ\K^wvE qabq@i^?,^6g$o<8Ÿݙs)Xälk:K_"{vHNݚwPWlYX2k`f.[0{ˌ6yF@|:#Ybe<=泠gyЈ~=D;zɅM GU~tӠƱau:i&uk,SեmryQjXβvwmNs$5/}L |iyfǚە=8+[6mlmÚύqlpW&w}ґ[݂6w nx7[.궽7o;$w}U&ws h#씿-vq sPc|jv5}sit;˿J\V?yѕ||KwtӫtG=Sb{uQzp;|X:jѾf:OKWmW;fw滝V] wӚ9;eb<%o'=fп/-w{jZz5ga˼_տď?wkkKi j~a9tg s[zB>E}?_w{ep~6ybkah}h xn ~\ҁ(@F.b懂Fy*`08s28Ux8y h<؃󥃝'WFz,H$J}DX~O^U(zwPH~Z\bQS}Yhxb6Qwpj(^[8JuyXJg`Gt_KaㆿgI?)ሺu{a sGl'yt4`Rw{w9Eh*x؊%wS4h7K{WK(|MfEL81Ȍ5wNψ('N@tjQWR]M9pmȇ\ȄVhHXAHu,iΈ(yѐɈIMx؍`\ u i0Ss{ @,Yl. %0n04"M:yn<*FnS"Ba6aJ<6s7sQ yEvsY_#LeNُHXcS^jY3h1rjmYcV*O|x}i &َ闍XYi_IIf9s)ii9I 鑣ɍ)9IU99pٜ򔛿9Y6Yʆ>˩s9iiY깝II9)ٛ噜艟ɟʞzٟƠ:)z ") ҄::o&Z*h;WR]M9pmȇ\ȄVhHXAHu,iΈ(yѐɈIMx؍`\ u i0tutorial/giffiles/pcbcap.gif000644 000466 000017 00000034417 07325330636 016442 0ustar00timusers000000 000000 GIF87af@XF5s@D8MNMxO@L@WvXv @@XXFFXF<[M@hMvXfvF @(.L @X+vF4|XM @5qs@@flXfLF@\.X XF L+5{sM@@PLM̘Ll\XFԆXX @@X0X.FL,L(UX EF|] 5Zss@|Mu@.@X @nXaFgX0FsH@.XF|; @N.HX @HRl)qLO#XH|o@@BON XdWXqvF,fH LȰB!.HĊ \Hq#G1z pɎ'#Lip%K._j0K,LdO?C8cьGELhrEOLZ*J0f:`ÊuYeϚMV,۶h}+.\m{Zn;Wp\Fx0ď6,lˌ1S,2VUr54ңM;Tݐu԰Q:a퇨oGl[ԷqåNo=R(wuέ|t2ɣ%Ûޞ'lhyQhH1Tq aNVqȟ(hZX~""₹exՉؠjU"0F#4jb/vcC~X$I7x@iᷤSXWbBv ybX&g*K[򘥏oI'k'{&w(Yaʥz2 (Tgq:Y)!rJL袥RY6Tzj5 gbj,![vOBlR+jb۬M,K ې {[;,p[pp p묮rJņb(vK1^,k(rƳvǾjܨ7D#WsDLFt34. AL3H7Js-O-ےq e kwםr,6ssOw'vN{߀ uEMT_޵*B.܈w~y?޷Ͷ>n7xnu8/v^>꘳xؙ.9ėmpONS2.}_o߳=ˋ\͟M<{O=λ{#D?j`g l-up&YA 7B%!g#ClƆa]txŇ{b_Ґ1C&ЉA g9*"C:,vЌL׸ xd G!ovDcOxF>Ϋ# ,x)zqc$>A:_c.L2Ґ4ۈHKnPU$!; ILR'=J򊮔d.)U)eY>3iJf),,_9M]Қ3{c6L%7yM^²L%IpⲜ&(NwJSLؙjӟgq( τN APr"Ԣ1*JУƤ':Gjv4+LF#:Дh, HS=hF'5iEu:S `HEXRT5aOXT%6xE̪UUzmի]W|լ*iOZӏNCgQVw+D*Q5k` ElKLu)_Xޔ9kdVı)c-;ZVִ4lbWKY֒j[K׺mkZu lg1J\j.cu \"!PZ\vקѝnBkҖٽyS;\W5o|C"^׹e+|Hֿ0vcV6pnۻ_׳gɫWxw[` p g5&K/oJ |.J;0r( EpUx#Ed)HdOWr*gsmr>7mnsꞷ߽o}'7ֆ-jo+I}7ܖjo5n6OEp /y+n/ܮ ]nqdzx5;pw9ʅ';C8tҥ~4oEֽ>hzmo5CvkwWNҠL;4>C}gA^t >2;[GGS| C#tgd펐Ο~g=NfUgj{^j:|'kZ}M?kO~Ge{_{ԷW=_?);s>'sxyȀx (~8WRy ځ~Gc'{y+ "}38&4؂%Wx~2X8wGW<}@8169H=hP8{BRH]XzTh^O>\ZhbX8Q*8WDԦ}Up`xׄhEB~hxцHwR}xȈy׉ULJ(F.&v8gghh(iHihiψiVPF8܈ݨȌV/ql((Ahhxو8H( (|` 9 )i&#%H$i0d5(9ّ-Y"i.>ɂA ȔHyYHOQBɓatHWy`[\)bXY,ٖU)Uh7HYyMJ) *1J :nxMnY,j2K-z_*KI#FXl m*oJqjsnzpgQ}iX(rjtE ADʤ XڟJfʢɥJ6Zꢎ**Jʡڨ ?ڪ 3Yg*ޙWJZjڥzQZS:j(*ʺT%嬮#Ԋ e:*mJ:Z庣&!Z :Jگ˰˺ ˯:GZAé||}%K}'){+ 鲼Ii‰9<[=kUGʮ *XIkMD;YRVZk빭JGTL[[Cwj˵Ba;N1'd5ZF+qkctxKN+O:WdYK {;{KFe{+yK b ;(9=i[kkʻ̻軲KP{ [ͻ۽Z3);&{G뢇۱^;ZiuǾ"1T JKJL,0{񽤫kz{{E .AC.?iRot?hc=Janvs8I?_,.M ]owʠOŸS\5I@Zoԯߑq_l/_Q@@DPA >$D)^hE7NaH ILx%Õ [BT@̗d:2ʝ({)2ǡ;4ҔLST3Zh̭\J׮bazjvdYdݦmU+ܷVk7/գuuz7Kॊ2nJSÏ+#\f:|f戢e$15[S|=16k;0 {#}08 <^ rY;w ti[7Ĝ?{/ zuާzܿw^~xz?|O%*^ :4j to? 2 Ê{pDlD%004CӰ^l)qųtQk$EzR(Y\*K:#@ך'+L0<2o 8MTs0;Gܳ>Od36?a<4DCs 2OC!MS&89/dS+>(T*ATfP;UJ)SQiW?uW4=U`gbs=v׿nMfUh1P$L3}tY2pOxVq\wgk]zeL_\~ŷ˜7U{ X܄'_ ^݈I'`b56֩!ِ eWf9e[YcyfYfun9g}蛅蘍g^鞙j^fnZꩵ:jvk{km_8ۃ/.Z8tKWݹ5 ;pXW•t؍ |v;^zf oSc/?<1pAA).E}uE|3ugvSGi-}'erx^]Gsv\`};r_%8o'ߧמ¼Oh-0Ȼpwͻ`AY'A]UBNPb% Bpz9 U=DbWD %+ E+qQd!'Do}<# UҒ*6Kns71,;u3|"#G@ۧYNIֳ,ρӌg8P:cAI A5;3 υvԟ&H#Jt"/$LI)ӏ\EsP.!MKc:ԙ%)Noҥ%L'wPrqH*GԬ6T+JF5jS*VlujYTjJ*W޵_D֖J`֤06p}lbW®İ4aٽr/U,dC+Yv$ժ_:Z6V=b_{֫c]-KgKٹb6ew;5pek[E)qܺW+na[ZmlM]6lU{6kKEwO|L۷ /y򊷻Ν(x;^60o֮ͭ+ԢpI/a\v-+,{0\x913l}1;K*jw<)XrqrZN${L.Iee$k>g}f2YqQża|fɕ6Qq ]gC7Zчy?Otg:VT iGoy4.ujJWϮnrC축ԏNqkS$ѽ3g^vulf{#vvmjOuiT+[z6l(#]g6pCYԯƲ-}[%.ˁ<80.̅|3#.͉Ssĩ&/>Í#'8g-k}ѼnF[,tSoyo|<9Љ}]0vu!)ʃ;*yN7} ^'I"|"^daTRɍ{sB/tN~v@}`MJx&vߌGwvu!~'Dt?:+:K{@⿅x;л=? P9;'-$t>X@@; k; lQA3?r ?{; ANcA%t;A)A4B;B, LBA™CAS$c*Ћ 4#3Ñ+ B|[BkC<K?[ÿkî24LC?,AU$?A4@8LD=;&-c@#$C BőrB>QĽQ?D:Mdr\';=?BcE:A[DAedF(Cg<[2ōp?k<"j"㿵3AcF; 6#>ܼ 4"FAdvH|Uy$r/ @qK ;ǯYDC̴A;TLg\LwGƖ0>,LpLMKL ڌެ*+uDKRJcDP4­`D ,c=NSNtEk̂ͮMUm:,?,CKԺ`OM\#~rϹ<EĈMOծCQ,#PjP u4|%ŤЃ4@ -P,/̡L2QLUًPC>uGB +eO45=PMrBR(<<>|'ꤊ)s"`ND,S,4OS$Be;<\S8t%A0;D:"=.L0K;5TKOHEUϝ#AG%(I4>]wOXT99M'L#Ku|KZ5|UTϫUcxM]_BWU*L3['teKS%Uhi!XVQUu-|LfmPPXќssD<ׂ\4Jݹ|XiU ͌p< TR[WJAȿ9'?ؒUTSFXOȨFkRtoĘ]_S] \W 0]20|_̭_T^Mڄ_J|EDk`ֽ``mV> `? fa9}^b.`>{"`&!aF|a^a&b'*+b/.$a-,F-.6~c3v4;@&B=C,F9c;:&d2dDcE%VaF^#cIVc>RE.AdJ`2bP&CvR^c0d%bM6~e?0aSeNeKeʗ|Je ff*f;|dJfef_fs90bff`fCeL&~dWeOrsnP6t6wvxvo=pD@ZdW)UVerVgx<>M>D85ز ;%`Ndv^gs؅vܐ Ht]!4[dinefc ˑ踅>7U◦ǧL#=S4E՞hjIT|j%hP[-QndynuꄮV2=hmZ>ψVU=kI긾d'jbeد;ΫV 빮j(Q.Uۓ5V?hL9]GniLg͞UvZC ȾeѶ州lKwZLY*X;Ud \FVd hޝel-lˋf55lcd^nvnˆnmG=Zm:ȫw]mVW$Q;tuø>JcGԆBjB^ҾP>ٟϟ@]&nʩCLTst0_S5װ4thl\eE+?uNu V}{|\d Bm27o5XMoV=vbw/sunuGoUgMWtmw6xZ[9ה].l=( L7>#Y6 wf}=wlivx?l{vgWW=Qxo]#~nmxxGyt6O^GteWWEb<^?;v'o|_{`| n_8ag|ne~uS^(ah!s:x)j\4ecuhޏ 2xߋFƈg<& xc,f9٥OJ)f`T$% JܗQ)'difJh'vgѠѡ%JѢ5 ѣEФ UХeZЦu:ЧZz"2ꪣB*')$"眷&n 9(Y jTeB읹j:YV뭮hzDm^nnۤ.+/Faq{ۼKm{X 4.Pd@ F +21p %O0njږy,f5cIqg5tJ2I7뜳Tk񽹝2봲G]]_< =U|Sn[{ݵ ]L7ERp[M7!'>bxDl{}@}xkS:^+5g=嗗y囓6:ָs錧K;KnP~~ЬytIvSv9v%}L{<4'5i 0X٦ `\'9ω=j>d@DOSs\\A^.1O=µ )bJTU[mUyԈ9OGUԢ3 +-*ѯRIJM! Uꕯ@ZfW5*X2|:m7+Uّ{bD8]ͧ0Rm(;W h˘NՊVP2_*Օ|הK Ntl~snk}$|pu.[Dx֬-8ыJպ]e̻xY]c/)qXZOQI0pߤBc< =gBx❰DZQŖr1 *kƜp4f"Z]v!>ËiFŚ2֫g:g_uϧ֛W>|'=g[{?M8}>ާO|W~<_wO}џ`)!_9`I[> 5M _r߳:_ _F,2 z ΉU  ` & Z`j`a6!>?)! `  _ B!"f!Y!.Rv Z^! . aa5Yb!#Y# #Y$$"Y%*%2Y&Ƙ"yb''baR aC*+¡*N +."^"aa/ c"#1"Ab, V! 3V02jcA84b5b4.).67B 1c6#06&<:2c=/@c^-Jc?R>;.d<:<$D=.8#8NEaC&dFz$;9N!@#ArF?bdH$d$LVJ$=dM>EL$9J$HJ_Gd $? BNR%Y$%S$-EB%qd@OGSN%W}dNUVYn%Q2$XCR\eQ*$MeZfe[v#YFF$["e^]VJz#] f_6bc>N@;` & Z`j`a6!>?)! `  _ B!"f!Y!.Rv Z^! . aa5Yb!#Y# #Y$$"Y%*%2Y&Ƙ"yb''baR aC*+¡*N +."^"aa/ c"#1"Ab, V! 3V02jcA84b5tutorial/giffiles/pcbdiode.gif000644 000466 000017 00000007332 07325354747 016770 0ustar00timusers000000 000000 GIF87ad@eX.Fgif'?@D8MOMxO@L@WvXv @@XXFFXF<[M@jMvXfvF @(NL @XKvF4XM @5qs@@flXfLF@\NX XF @LK5{sM@@PLM̘Ll\XFԆXX @@X0XNFLLL(UXfEF|] 5Zss@|Mu0*@X @nXaFgX0FsH0*XF|;f 0O*HX @HRl)AOverwOrite exXis tiong @fiOle '/hodm/tim/tmp/dutorGWi val@/, HT ;Ho -  ƽBwM_6ӝ{|{wXĻԾC^{/ݏOS$}}7+4S߾qO?ճWyg$3n7`#Az*_ ;ɯ` B{#` EЄ! ٗC2!B6Ou){!1VdH8&1*Ht1p["F.0mHE1.Qs>rF7m.u$;J $'IJ񍎄٤E*@B򓝼5Q*gLQ$+sU2L )X]`e*JL0KPXfiL: f)LY^Ӓ&8# Sd:7HRP >A~s @JЂMBzFD'Jуq\Cq)JRŴf7Qң4g4sXRs)ICʖ4*i9ˏЦ)*_*Ңv7iOҕ$*9uJՋҴPMjUjԜZpY*NeU ~aժYV\]s5pU]^iHjvUIzU4ٴazX.uc}V=Ħsm#lA6Sn~Ub!ٮ~5Ye+v4m{ZuVDl-5}vиq]mnrZw'&•*e[;rŭc{Y׳]gsk^׵z7/|ɫ_/jKWepwL[lxm07LjIzΰzM׹"Ċ\9Щ,N1cg G$ J:,`33ƣmAcWn7p۴;LX[ S?Zԃo0wy 2h4(˘2e9$ҭt}޳ h)WЈ.ɼ3TsShgѫi9:kj.i|d,'s#S}" *R Gk[+2\iF녮k>C-k^+^-Ҽ u vmx& ZxsmFVs6F0=aum.J-oz'[H6'ߦרn]GYor⭎6Anto(9p}/(74uS^.._>sA⎑49spO ^ :hϗn{S%ӕNp l:\C:~\Wf:5s/?OWok#Ο}QOd-Ͼ@S~M?#/;&~?!oPG BdGygGZzizEpW%rƙm[?Oolq~7C~ww[}AG_D`s P~ǐW·m8 "8Bk"S.b#8Ύ8V@_-DRؑO'T:$WV[Pned^\BXAX*.[Bj{\8fN]ș vv!weN"umV2Jx}b2)r=9#a4bzh5qM1'bmF-^ߓzdu腋Ib2觭02h,B쟂BV;l z mq zaTE&%YfW鞫ѺBT 7([@.Ponk쿒15k{&CFB'0ը DZ-~`Bvl}c!/d^ 5N0ip3B oBc!vV?:*w;" C.5:]$'Ea(+}Z^ŃD)+ gB-NE}; Hձ!kbc(;ű,bcӑ%1_l#Q hHM+6HȄ3iDasc#'ݸ:,$)CIj"LbF=>0R| xʁH/KK*3X$f>Dj))ȹaI.eI=>q7s84Np3al:s L(0R| xʁH/KK*tutorial/giffiles/poly2.gif000644 000466 000017 00000017232 06374343406 016255 0ustar00timusers000000 000000 GIF87a޿V;{""\⋙s,pI6S3NXgj7^oo3Y -\~7G ml&_˨8UVWS|jJ"ctY}uݛuXH~ikmspyu1w}{/& ̱fѥҩ׭ٯ\ϧ.QhO`? 2 E 8_B NTPGKG#\Rbq,OjlIQH$ir'H*u ИDgufқOs6itЪZEZ5VL:JgٟYÞE۶pZ`VܫfՐv^wUʀoǭ{pTCe,USY =/i ;挚lE mtdک?6gRe'=7p/ͻ擽M|ΏgPa緱G]@+Wշ]RׇҬ(hH2 "e}{0|i>az7`؅7`(!v[х"*ʗc8+dc X܏1&iEF'd\J %9x^V9y!)ѐ>T"Gܖe p^p *駁!f bj ) u"]iX5a2CòBqȺHZ;*v [FI՚nfߊ[_zՃkK,|`bf.7i ߱V]J1+2 aqL+̬ɯy8r Jr1<|3x2;_sr@W*htGMuKXuCOQY# FMYWUDPsMce{TqCvwVK4Ẕ̴rtMy{jiOn%-Q8pdx :kP[V۔.6wػ4O8H(nmŲTnc{O3.}O>/(>/>2@}wRX+-re/tTVXqmk?0 K(=Q<l ׳Ƀ4hU99.6]E!eqAP Cv:s)P B zPh#:l#[7 zR"7nB_M\t`{h"Ov.h`b9& pZUq\Q7z.v37Jdh9rc IPj,^ߑfm F9z)f,/ FV"3'A ;9߾QDF6ϗ]S}X HANyD1Z T>i3 >92BQAY6L~n m\i 6*3b h%(QG|g@ZˏvP)Q:҈5dB_RrО`AG˓s(tOE\$#)uɜےZ8VuoiUTLJuXJGT]UZZj\ VT!^WlL0{ *6csAu1Z7[N9,gj-ucfQg@oE$MYl_V[8u[jOY7&rgu&7ga.׃W-J^/֣vwrJF5?f{ހ1|s{&{ֿ|u-A#Ձ~bJVwP:-s˗ /\|MvfhO.Ξ/KW{^gq3=Hzԉ 2߱Ⱦ}0|/@x'=n|Ůߏ?<'y1/z A֖OmNuKҮG! '㾯=zg |kuكX9z^Ɋ DO~ci""97ҕR^)(M {Œ錁9H5֖PpܘGuXEI5hikN)4`pfo> 6ti<镛)/VU)QY)8yi>I ؘMÛ9yoƤ}ǘLt)èѐ儝9b)YќIFiydh,PyLzÝq i=)ɠ`(`iZiI1+a9Ö3k_ @ڑY'K!\TiH4NjS~>=m} ٗᣥ襅`Wphjlڦnpp8vrzzqʧ~w1Zy mjzZ fm(C*'<.h9,0LzJ6`5jT𤶚zt"0ăC<&jIj1 9&J{Uՙ!ɢXp*5Vlwک^*"^Ryzzbua*3*I0ڮ2:b'* ªjS-ͺBjsIAy:a DڰZ=a5=T*E)B9I v({+-i?<˱3WPj[w%Gfk1:8ɲ{鵌FF*BX[\Uf8/]*;{;۸븐K Nkgzv{MWƩnh˴m[kk) &۹{։htlzM+BlU+,ۼ뺁C°ʺѫֻh 㛼US +[ŋhi˺ۛlxĻ^zʙYhw28+K L'l(,+N5\Z} 1 D,|(èy1CLliVX|^ʸZX E糞M|/龘B}P&,ǩ[Sj4Kfh!gb+v?lEBI,s Ț}I(.,ts|Nj컣ܪɗY,<m嫽O }M5CncRQhRwL8]}t]G)mJ`Ɍ.l-#c&,S,鐞 -Kч0C޶鶮en=詓_^W݁C:e͓qA좮T82}7~^"%ʾNk* Gg(^IlҮ~̭̒X;ڜ~뷾>] o'Ox_Ir"?~?.?p,m4 o$)R73B O#gHKCqQLVO NFPROI-/b%R8o?) nng.ZtqADOdNkV bQ2uhOoJ?WwuyiϱmOs;K?_LEjǏx۳ҟpOsL+ixAo?\^,jB*"U$8gۏ|Pγ3F R[6%Og:]2bM]u]6&\wѸ6\DKuZ>l@72²C@9A?;I L #бFTT&J٧VS\V]H_$[OOcdYXb^iejbHi]jprr1swsxcloWxokfePW8z)\/|"⻇98;2b8FD001KDI&9)ɼIɀcOP .eSQNmURunWaŎZ4"YJa P/ZǕNp&Ef# +':ZnJ"jۿ r̠Yݕ![/Hqf陰븢{Y+YjwuWZG#]ˣE-EWS_z!ҙ5wNۈnC t-˻L߿x֋Tm O,6PͼCP8| 00 KoC Cл"nDQBN2Nd1'/_Q0a,F | Ίa~l 9ߎl$+ {r޸2ЃMNts>01܉I3yJ69{S"AO+>iO Ɲ8%kDhS"6SBRZ"P'uUOUͪUV͔JQ]̯+O1OP` 2 _TRjGlU_"I]VXgse+M]gq4yeOl}r166%w+v<x._l_!6uɵ.,c'o4Ʊq-DZ\8>^Gc$5}2YRvg*[ M,{ 2|fm0wB6shʌe5wx\f3\7ym޳/9i3=fC: th9CqR%fZӛt;Oϗ·sLS_ҔYKZͫ.";OVp jŰYP<+K=T]^5-NPKFǑ0iIUX4Z V[R52e!kՉ\^J$5R $ئx]+Y EUk:z]cXO@0TƪFX˂~lhׂ<Ժ֭|akJX}ֶ=.z,f,iod2VX]K[b!_U.pәDƶG]Zzr'(F׼uO&KSƗ o}+#7UX9*n\x)˺~/z`B7z_tfsFƄ%O>!6uɵ.,c'o4Ʊq-DZ\8>^Gc$tutorial/giffiles/powersup.gif000644 000466 000017 00000012107 07325357271 017072 0ustar00timusers000000 000000 GIF87avF@XF5s@D8MOMxO@L@WvXv @@XXFFXF<[M@jMvXfvF @(RL @XOvF4XM @5qs@@flXfLF@\RX XF LO5{sM@@PLM̘Ll\XFԆXX @@X0XRFLPL(UXfEF|] 5Zss@|Mu`X@X @nXaFgX0FsH`XXF|;f `OXHX @HRl)qO#XH|o@@OM XdWXqvF,H*\ȰÇ#JHŅ.jȱ#G C I&S@$˖!_\9SL7[T3eϓ5c9П%EjsӣO2 Ԩ5LFrgٖJǚU,O>en\sץ\}Ml`&n{x⺏Fw2`˂1#y&ΊA3X4dӒQS6L:˯3zvڞhۮ}|wϋܜvʯ3n^~}ߞ~xt8_5߃ BXq:a DJ"'Z"`h"3#p?V'<$E&yK#M%>VY1*iekXXԓRn Bjy%Hvl&oBgmYgj9I`Ryg{f\p"ꤡkxE*餔Vj e馜v*~:*%z*(ꪩZ*}kzk&맿XZ,l2 l.[-NZ-⺭"[9ln򚮴+loז/'\0:1j1GJ1|b,#s7 2%ﻱ-4+,ll{|r?$m5r<3FA/M_H,1u*dmC Y]-tmx|߀.`to#@_{6]IoCN>?yMycRN9τ:զ[8ִ:^z0濫.^>E.Ouh*Z*OJKב'B-MTU4Ut?BIUN6}Wm2V-Kj"ɪIܪ v`~ԨlJ$†ULkXce_z@Tg LʒƂy [-I.ɞt bm*77%nlH<ַ!NF)kdQG \ 0+Hv"A.eļABކo:wރDػނW E<߶!U%Sjw;ūʽہ'dLnu\@nE\IFeU2,tf,0u5Hx4K by9^۪7V9 Xs~Թ͏P|pK9#wQw9[r)w؟trGPmvj7)߮Ǽm6Nw߽k9νp,:gKh #_͇ |Vuݻۯcg|xMGBcE~ٷl!\}Uhav}U;R{nzEwf H}vP7n'|Xg؀W7Yw,Wg{W 8xf'aghT1{Uv+؃idTHJWhj&hi_kĄă`zO1akUZWҵegV؆edVTfHvixglhottXyp7zYxh8x3y!yhssh#)"8Xxx8Xx(Hu~Sw'xǨђX,(~~NȈwFg8?ÍM8oxAFR'~cTDǁ{䏟}N֏udHXL،X3~y~_G~hY똏#/qgZuhH yi@hи0}Vh.9L!7DEHV cM>4Au(Vj!YIنoe|☌7|]Y]AfC{ZHȐf֔HcYT3H8Y(~E#4ɕ5 Wyx#щ_Cq_9_I!_wr|2~) :~Xc}i%m@X1S HH.t 2YI+ijaf)"b9옗& ө I)NIڠnqʤPCgrO|jbNW ;8Nuz^:y*! c*&R6ZGb@꧖*ڧ=ɪJsmZhZj: JĊ艨d,z]:`wʜ V:ʢj:h* ڝҪ>8ʫzshvJBìjo%{蚨z kqvJ{:k+ g|d +ZB^Eg18K] ] ] [yX):S@j5g+/J tfRɲ`۫WUX`ƐUKڴ.7i`d{mka;gjW9Zpۮr .Xzgڸ{Kk;[LL{?;i{q{+; >ieu ei(=;ۈ˶۹趚[ ˻KQɸJ:;Y˺*j{ㆽ KM*ۛp۲c sۿ*j˾ܼz$ ᛰ3a{ lVLgțh”bi# Îk ,8|"C;?L&lA\,P \Oln4 Z|SWq^ņKj}h\ mC [3; sۿ*j˾ܼz$ ᛰ3a{ lVLgțh”bi# Îk ,8|"C;?L&lA\,P \Oln4 Z|SWq^ņKj?|}@ ~_~gxg`) | =HarX@:衈$7")&(Ҙ"*8!<$?8@&iX#)%R!KfYN7Z \VebgY?ᚽfp9'>fnɕ=zegɧ':*(Eri )*z鞟Z)hJꪬ*무j뭸뮼+&+jz*BjVlZj~+Ԏ.NܦX-Ђ[.ʛ;Brot+߫nn n.\ o& L1ܱ!{x 14ol5|3/\3gD\F>+ 15&=KM_K#ݵcs]g36k54ve=v˭Ք`׍~ÍXwxGx˒mu0Nyܖ=yϕc9{~:۩:jn{;o '7G/Woc۫ } =ŗoyaTNzOMnB`1R)Ѐk(?IM~޷@QD3 :+aBSa  -4*8Є!<~І_tH2шElwQtŞMqUl"@nVd9H3vˍlb]E *ddt鈙<0"x8 QN)$"8Er|E&7NJ^Bi,>[ld%OBEzLva+aJ4jM¥)cITJrl/"Jڒ#]y, Oӥ#IHiҙ&6ff^ӋЌ#/o:Ș/Irs$;Yn >O%3mDe@Sٲ8Yt8|(hHӢ LnRg6%х҇GIP }PRC* 7K*6T:mJ[*))Q NP%(JժnV(ʔ8jMcT⧩ +X1:ֶDJ7JEFӯG5H갡aH.5r|$`;jDA]bDŽ!aedfYjWךZkQO Z~"ۄ֍"'-oyܒ1ǵd5:7/en 6xˎ']E r&5ni .w 2_WMC{fƿIO؋֤ޅH};:~BTZ/J.l$.Y`,X }VJ;׹A Xo_ߩ791ӛ#yqr_WXUY5VV + nfUI8jt3u5g: k8eUfAs̗ x r&MiIGn7LsĻǕrQZR!Aл.rnjFȏb.+TIrNyԟFHqE\ǖ=氪jZYAK)k>6G=_B-g5;<5&2nnunBi-;ЮwAbjj.jqq>C'wSBGC.uqa;ƴ ?ewW>y_[\ļ"5p ~l$<]s;gY▱K+БtL{ ثevoXI>ukG{qT{^ſsyoy2?w~CO:ϴ3gO{WɾJ7q%s'Mލ)߻yOjys:W9|ۖO_woy_և]s7z'rHd^7w~du&EzZhuc 8bH}~Y#|ɤ_WNǂj8Rx/92Z:(:肚{w{H(,J*M+OxIQ{T8+ }id#Gw) eHk FA)7[Y h؅癊͙)6$J@APٟˣ`9&ĝ﵎ jRĆ-YlqPj7 (l-xGm9iN *9:x4ZX>**Vgi,ڡ9uhi&j7٣Y&Ysy&ُYWeihTʜ *sCBʣ-8鈑H Zi~y9?ڛd$ahFYsiyظok$j:u Fz@Z䊸*qjiP 1ɥUJ`ڞdi7_ RgxIs)gj{*Obz:gwm)>[fUfwFN{{t.i/LYqJKXslŢZZ'֩rX'֙;ZʫK6kUYq_:[ByJx ۅzB:1"y!b Q˚ɗJ}W!ck uT{kڦBisI( ʲzrh4 _)@I˷W{tzZXl{ y ry+]K+6k{x2U뚜 ۥw;{R~;H۝ʫmĢ ټĴ+uU[,竖<;+ m2Ihw{۬~{!˽G ̵ܫ|B+T۠g;X%w;*̺Q,,07<3,zL?|5<19 :{J\K;LVl1SQK_,Ķ8ДTĩQp<"Kht{zLfܻ]j<̕ZF|́l/|. ,AQ<6L \}|"|>ɘLG}g\ʢ,ȗȗ{ʕWɬ<Šl?,ʰW-wpR%¯Wod\x4\/ǫU\h솩pϬԚ'%$DFk>圵|{ VV؆kͼ|Rh{fvz-gt||ѱWEqhՈpVҥviF*,ˣjLFlkUH:, 1 rd3{&vu69ϞK}65^8˦ Sg]e> ')Hq}IӹrmHPK41Շh֤M ؆9؆"~]MO-إͼ-֭ {ez ŞƩQ ۳m٦-*č;nfm+͎ ڮڧʺTm;څ|ۓW-?ݐݟmMjݶ}ޅ=2Mޯܿ mٖ}m >]N؀ߘߛ-[} >]ި]ۦ9ŝI5~rܻ;L.'. >.@.MZK0Bی3^*>D]+>ӬFn-"g(]Br8cinz΋m C{}>b-XNⅎjN^n僞v^~N㿣^ܦ^{<^>^~븞뺎0ٳ^~Ȟʾ.ޭ钾Վ ,lSM>|^R.2dԎݮi./}_NXO >ꧾ,o&?3\n2(/#<Ao'OzGBTO>sC?\Q[W/b/aYAxJ>ahi]F?&_O~kE?.j9u9lp?F/Oy6o]_JK?oo/._dO綯oߡR+q_=o…@u;^n僞v^~N㿣^ܦ^{<^>^~븞뺎0ٳ^~Ȟʾ.ޭ钾Վ ,lSM>|^R.2dԎݮi./}_NXO >ꧾ,o&?3\n2(/#<Ao'OzGBTO>sC?\Q[W/b/aYAxJ>ahi]F?&_O~kE?.j9u9lp?F/Oy6o]_JK?oo/._dO綯oߡRtutorial/giffiles/quadparts.gif000644 000466 000017 00000006605 07407721275 017220 0ustar00timusers000000 000000 GIF87aKKKIIIKKK bbbjjjlll"""000NNN000{{{000333ggg ,,,dddFFFtttϿBBBqqq???___ yyy___VVVKKKvvvvvv***SSSjjjPPP...vvvAAA tttס\\\ooo777SSSfff888$$$ccc/// JJJ666IIIsss ccczzz___SSSWWWAAAYYY::: (((KKK!!!ddduuu%%%``` gggÉccc***WWW666DDD666 vvv YYYuuuRRR,,,===ggg(((999&&&''''''LLL''' tttIIIaaaEEECCC}}}bbb***GGGҠ```,,,```eee222lll,H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx˷߿ LÈ+^̸ǐ#KL˘3k̹ϠCMӨS^ͺװc˞M۸sͻ Nȓ+_μ9WУKNuBk߮=;]<@SI<ݗ~}t1B~JH`7!XQLĠM4aMt!ǡK:R,*)jȢ08_8ȑƴ>b;I1yLN6 eeBFtE[7_cc&kbiIqRi(l瞁y*Z"⇅* 2j8hn*iΨ(jb)ޚ#ګ ꬦ ,J,Y,~Z<*{,غ~E;eΒk Ѻ'X"Y>oR[0 l3pq.\07A1/nܰ zn l6,K]'43H2B?M3V-u;-wB^-6gCK]e6ots7?}6r;o\3}]xًLۛ3I,Cx ąoE  O,`틃c(q+4 D1?i[_c XX2I\d-7xFβ18`<.XGfs,dl5Y+|J2as]7>vŜB9ˆftoMh@9А/L/-CylCtAvT~o#]iOZ$>_Y̰V5]kZ۸׸֯wk^ufם%Gj>3CM|5֓޵U*m"܆.Mvݞ=R1 |Ca*{݆|=j8,Q}\bƸםiB|Ǟx_*1!fکoA|o8.dF<-gJΗX^eJ:j=HOҗ;PԧN[XϺַ{`NhOpNhjJ>!-שּRMo.:-!MIf1Snh!-שּRMo.:-!MIf1SnhsdE{[nU{FJ7LwVM|.邙k8}oÃc_='J(n9._'>zt%t%x z&$߅Ї~ןmvpm:8&睁."a$ZX{WIء)'du"\ yZi\jxqwr)d~KT餄Ι g0Zy^vYI"Y\!v1'ޕ17o6^*.*k:wRxbm}g!q9HBja*CIEWJHƴK:(DZV&AXBӞ吱:v-OƧ ߖkkܸn:k,lp#'NWlg/w"Aq! OɌ<ʊī.&3"3S!.{sL/<"t 0m@:tp|PrL0u+NK ~u%JU_Ҷi7eCiR$v*p]8ߋ DK2x߅;.W7t/.减8۞3n孷祃nMz蝌N6S^$Fx坟>Nu w+"6!K/cRȍ}={䓯v3^ۓgGu]@-p} ]3n H3.ڛ EB_RO{{ 8C1~$am3ULJ%fLgą3}r1JЅMІ˞(*ъvͨM0ю  i>@*ҒVМJWRqsf'aJӚڴ_/id*Kq Ob9bʣ"ASwԧ:"֘۾iե Ztt(VA;tC)VEOЪ#E5h^&CU I8s+0gEѯiWD֒E]DbJi-zlUM{l,;E)k!()uZ7k $^υbBkW"U 悂{wZ¶g&6]uYC@~w9Tr[Y rv7A w'Wc[|-Ͽensuk_,zXb'7løWaƳvիJ Y[q/K_@ pɴgVH˜ŗf!&ʅjz.o1l1ĤXs9{Ds~k7qhb1óUSέ=]47[iK7&I&ꑂd~jAR̬G/ZzԱn^3א1a>e;~gi[[վqm{1!P:󰣮n^Szb9k}7owZٍ&n3o$j ojX.paCǃMnU.ёO6Te9lÚ] TNR wh~I綰Å2{1iye3.#} MxzDcgNo<-ce_ޏnkdr{G;; '繻Vz`h\d|ߜS> n NQo>Z|M{^E{fUʗOw,[T4} `ǖ~2U @cwS2p^Dɍ~#n/m'o1'R]qwap@6DnFx疄J(nL؄PmR8VV(mXζ\l^z98&pc8|Gjkfh((l x h7y..tg3j 0 rxX 'WCUCX{ఈ|aDT[Jd]ׁn[x{Xwa_'[;uEgc8]W]bf@{}\pu'}sg~0։l`h[x[vl'|d"C-d(%b'ԼlR> Lϓ <軽,,Cќ Y--+|KH@=_ <%Ux::K*|!\ 2:xt ѝJE%,a`Id[J2m%eeVZk*Rɮi KYu6C]xAhXf.N юI Nkn4y޳~lnll=Fݰ ?0I%,.@0`24!9=%/'O)o+8"o:;PM4 FL; L{ܭN JXN^rD8ܚ*Έ =(JN( w-/1NJ(Gú#^a648M=NDa*y^M.G3Klѵ[i-mꃼtצZAI͔XXtutorial/giffiles/save2.gif000644 000466 000017 00000010614 06374345752 016233 0ustar00timusers000000 000000 GIF87ae""\,e808ͻ`(dih카tmx|;oH,Ȥr ШtJZuz`  `/|Ny~1y\6x̻ҰdژߢPޥCwR=Y!zjO?0Nm?8ѡI" )[cė *豥̐)N<͜73M4': t*CbH_R4vlXYfYʰm25ڹ`Uk>q=Xv_ͽ\J=׬gI7ߴ: 4e׋:f]yn½%Ч?c"MiN-U9LBy׹u;/tW ] e].l>ܽ롲7me;HB]6UmTsw-%]n:RXpԕ!G(vPF6Hq8;)1Ҙ=^"eOI:&Iy5b4>F@(eLvLn)f`i晼lfm)tix|矀* j6裐F*Lji@iulJrFJj`| k޺~k:BЍEG!D8BBx35ޚŲV ƫ.ղP׮Z;o:Km5;0nR`/z[ ,0zr-+|2s{gqb B))Ի0/r c+3=R<"[-(th++t)Zl9W3rlGHQ!d Wp) gH8̡w@ H"HL&:xHG .^lT)B͈1p 4Gmn|*XǂXvxG4<ҢXȣt5PQN0eSKJH>Rm{>+{hH.Bl$8G=?jD UIuk}s.s(K Pnxz[0IEJjRo3eF4ءo~<8b/՗9\jt©e"j&'X Swɪɶ~\;@3Lmd.A h~M36ѭ-_gdh;I5s(B}N24VseC=4$]N3ZKR[PoRW)o*Hy2ih Z9Uyss+Sѩ0iO0atT(@%<[z~d$JCb3}|_G=ϓaD!`z&P5l$вMcﱠ =Qњ"jWֺlgKͭnw p#r:y#t Jv?x]*l$`w5ׂyU^zX&Ͻjv_z+-Fz~ %%VAHkv)Ś*Wvu`9ay\}#.֛W I ^5Ԗyq׽蒹OW8m}3Lm00 : ,a+u׌\3kf?ouys+1ܟ NlG;s:f#uQN?zԵ&,IC;};l >\i3>v;/җćiwliܖGG)g÷fžnWFprؕVfe]*uSz w33D+Lr4L,<{La{x4r6dm=";6o)'Y)(o+hX'D1c Z3X77Xap<\pB8DXFxHJL؄NPR8TXV8@Ttq*XZ,ą.sEHW:cG6(xFYh4e}fkQ3O3j5wtm(;y &vMGdpQUc0|gzwnUc%uFx<(^xkO$t0t1yuLx7`‰[R,PĜv%h$HgI[ysyjhb/85pSc2EH9~r`dcgxć>Vw,wxP=w5[DaWKh {fNyMpl<( *u_P f{ X }T%D/8W-:iJ:932FʑHy}`#/I79dJ2fh&Ԧn*9ƩspIrw%} 4*jęZ :Zzک:#'j\Ju::ZRXpx: ڪ**Ú jŵ`vUЬ@JccȚUiW((.zsWDtvzb𪜊סy@u4&&r*3nǭf{V 8h|Rjv/5WkI4de+K~xDP>7U'z;+|VO!35 :z9x>@{w)zHKjGzڇDzN.H%r pȞMҪQʳ7kww}i2 ъ<?ٓb{x9Eۄ3맏 )7{x[Z񦫦{ڸLxۺ @K> Aۻ;[{ț+m;['\*{2Xv"/kR+⛾?u竾k{:UmU[ߋ,+jغ5@8PK^)tKn p듬6p{;z+Q KǞ!L$ ݷuKr;F}"^'u}'yH[ u}ӳ Rew[IWkuԣxijZyP꡼xQ\1 @S/szWtSi8v)V=,*,jb Aۻ;[{ț+m;['\*{tutorial/giffiles/select1.gif000644 000466 000017 00000002400 06374345125 016537 0ustar00timusers000000 000000 GIF87ap޿V;{""\간͵,pP)-47bWR~zoqٌ\C"lD>b&e>.keu9PjS%o\j}iv,_<εszpv|a'E?$ - dݺE;Ѭ>S.O t߲-|"'cY zyqƞ٠%Rrl鄫YC3碾!As't[ڵ;GF-Bcg碏G ZdK9q1o~_O.w=0'&@'V!`*X3U W|%7 ziНJ݅"ayKR'ux"gh.7agA᱗K^ana'ZjW&GF4nBds&iMeSViYk*BޅY(ץwIb^)EdT&͇GLl(dz*'ШCYVjTjf"_CH\֚ ھ0ku4V*ƒx`> {.jnY<: ,>6= g:Ϡjnd 1x'<2;̘J]8cp.gj%eA,.F{%CQ+TTWTK {Ztϭ,_v͝ ms`2s}vq_1w0wUf܃ m%r|&]y7[ 9~_ ͢t)ajwg#Rwu޻ o'7+c~'n9?mx/~ONol~OOz;Տd䧿o+ b(0Cs  ZX@0_XA$;dT&͇GLl(dz*'ШCYVjTjf"_CH\֚ ھ0ku4V*ƒx`> {.jnY<: ,>6= g:Ϡjnd 1x'<2;̘J]8cp.gj%eA,.F{%CQ+TTWTK {Ztϭtutorial/giffiles/select2.gif000644 000466 000017 00000001271 06374345164 016550 0ustar00timusers000000 000000 GIF87a/޿V;{""\간,/PHM֞H!b gsYw7 3 SGhAZجvzxLfTOr|ow{Ť H*4hÇ#JH_Ê3jŎ C #ɓ(SJ4ς/%oJ4ʤh`}?sD䗳Ϧ:^ (T&<**S(j8(P,K0+TUʅe̱v=K7LE{I`je;-FNkX/d3Wr߭|ʝmi"EȗIw^mR>Z{@dz}S.;]Ζ6f뮅םkL.opbOo]4cD9ѐF&AH.#TViX;Ť H*4hÇ#JH_Ê3jŎ C #ɓ(SJ4ς/%oJ4ʤh`}?sD䗳Ϧ:^ (T&<**S(j8(P,K0+TUʅe̱v=K7LE{I`je;-FNkX/d3Wr߭|ʝmi"EȗIw^mR>tutorial/giffiles/spline1.gif000644 000466 000017 00000001623 06374622501 016554 0ustar00timusers000000 000000 GIF87amj޿V;{""4\͵==@@77p2GG00::44DD{1,@A,Ȥrl:P#aJZجvzU!05~ rI}oXs]nmon{|4xzvAd}pkh?$ %"˯?QF K Eô  祼̻. u):ϓfe w%.eC#!4#$ֻ(#I"G$\*&#̘i&Ο|LĒ;-(jԥNJY0P1A ԭk^rM՜PxolkKuDG;ʵ-ִ[g0ǟ) EO%SqTYrޘ7-\O9OZuEה3wM,D2{{c!qϫ w^<2sΟ8s?ɮ}qo/~tz&փ~\q>biq _~5q ՟=oVxm~%݇7C]PPuh׆0i5Yk9<(#|mxd'xHrL(^)Yޔf7_nTHd6Aq):`j:]Z&uFoG*y c0-&αMsy рF 39t:9PNl&ӥҸ38JҺ'8d~㱈I#ƉY찯J(-R+5;LĒ;-(jԥNJY0P1A ԭk^rM՜PxolkKuDG;ʵ-ִ[g0ǟ) EO%SqTYrޘ7-tutorial/giffiles/spline2.gif000644 000466 000017 00000003323 06374622632 016561 0ustar00timusers000000 000000 GIF87a޿V;{""\͵,pH%֞)H!%-c6@. }C);IN[*kb0w{c㯗F?is<[r|1 Du:wtsvb3&^1 - -"01IUZˀZbߚl_p^UdV6fߕ}duyh]NyF(|>Zi⥜%}: ٧Zj"魍fjk: ,jbүN+R,'H-ũ%on-$dž͊+-cӲnD;lr]R.Mӯpd).,^þڰGqsj;,rH1!g\#2L({<m@CRDmH'L74NG-TWt"g:s:9OrmiKPgMr ]saS7sL47m8VϞ6&whG8ᐻ_UǗˋJ.倿?:.靟;xW<{޲n/㶇{o<屢/; #=NV<[OЙ;>o:an~ w<=+zby}9',j}[`{f@)0HD z%,;ow#aD`^^B0:aLAOP7AL+"bD%$(jljV2&p /cMFvK w8ZbDmQ:;"=9Q0mOɽ6ϐH>n"??HT4CIJI OdX@<\%O6=$28D |e/2C0(STsxLfD$ jfzt/.z:<2قD -e996k=G곒DS&ϩ͖ƚDnh/gCmԄ>a9h ȨFG*-k9NRt/Rt4hdz̙n"??HT4CIJI OdX@<\%O6=$28D |e/2C0(STsxLfD$ jfzt/tutorial/giffiles/spline3.gif000644 000466 000017 00000007460 06374623005 016563 0ustar00timusers000000 000000 GIF87a޿V;{""\간,p9]H!"<\ڝM_:0IȤrl:ШtJZجvk$pEfCsvS<5_zoy[udj5m9p@2xz|~0šhnͽx_AH^B| ꛨA#^ԘĊTaHkk|~; Q..f' | (@M; pzPZ`E /% 45(C =yaP1PQiA aG&A &xDArO`hh.bQ_hs Nިԥ0+D@j)KQ:hzm4rI %r{H$we/6kd>IAkd3,`"l+ q d&ӀK4g,5Y'fp2Dja,9ةts"ԃ<=P*x޳tO(0i bYlф!!!+d2*$J EGiQ !M)$et,6f a\ ȘfJ_Z"I..%~TtM瞎J摪B0TS|IRSM_)նZ:d+@JԄrB_{T.!:d'K,cz,hC;ҚֳX[0zˢ|:#q访/pccA~ÄW=c|"]$Xa)DZ"rQY %F8!!FƸj%iYPؕp@Iq c$ƅ% 1ixRi29YI9ι`٘:ש@))xq癒)"(y$PjiXsi`w9䩞)>Z\ y:Z/ Cz+j+" -ژ=3ꢷSiJ2UIV9C&'nɣ#Z*HJڤ=!Jb9 8IЙ@:\bLvlzYp ͹hz, :Qڢbmv Zjfskz)~ B`z ڨ{ J!c*e$jXz\&we:j 6جJj6ʪz:a0ԭz(pJVj?Ԭ*ծ[ZjV*{1˫j; ˰ĚK+ kI ˱FY:۱& ϊ'˲(;2K:7K;xq癒)"(y$PjiXsi`w9䩞)>Z\ y:Z/ Cz+j+" -ژ=3ꢷSiJ2UIV9C&'nɣ#Z*HJڤ=!Jb9 8IЙ@:\bLvlzYp ͹tutorial/giffiles/symbol_enc.gif000644 000466 000017 00000042037 06722266616 017347 0ustar00timusers000000 000000 GIF87a@WXfF@X(F5Tc@D8MOM?@L@WvHf @@XXFFXFT9da(T~fg^{ن"]6BACW ow| rrT!CH_"eWA*cE9&v;*,W$CJ#bJB/R-Y[bIahaYcsky&+9p~yz%YJ2x㝅٨2 y.*ifz)3F)jj~hIg*:Z무z:ꮕZ+{>ZHi,J d $kmFr{z*.~2.jf;%ײ{0lp;1p.̰; /%C 2,s#̤;g,h8K\Cs4'|qܭFS1H?P'?;\w=6X}6kc v)L,ǚ<"]ujvRGݶۇ8q-xoO8b=x!rc9{y܅oի.:ߠzNyNz-{YONyO|_ЋK}_~9ǫ?C޾s^hW?M C^@5ʭ {#6Aj0`7A"U p+!e8Cmx (<9}8D"0/&:PH*Zk1! $ ]8/e!#@6эZcaD:ώ'^W_ k尃'c31[6%+pո]~Gov=;dsw77qw;x`'[G Kr\N6 9x\X;&^B+U,|1cϕmr/O4XЕs B4Ƿk aHtatYr:,])WvvjhiK:Ѥ.5jf)в9q0[>paw{~3b% Ը+}SFy=kl!rN6ks8ZZ7C]niVwbmyt7i>W:즱1pVh%{mpOy_Kl{[Bu5[V 8O]qz%79gr1We糎[ 7}8?#npڼO7zҕ{W'ЮKE^V/?\CMg0ۑ}i{-.c^pw~XL;񐏼r_\t{5oG}}xUo˯/|ռ^c_xs{݇}pɝL3`Uu89 tʗZ⠌Xש% !zY"x(Zj/ ȣ=zB:|)>+;*Fʢ9ʤVJJGCK*qX[Ňǥ-Z6a*V-zd:rzuJpJyڤj!o CzwJUn:} 8y:Zz::m꤀*tYڨvjکꧫʨZsJڥڎz~ʩzx ʦ ZzZÚʫڭتʬjʮZ*纮ڪ9ڮ:2:گڡګqʰ+Jj۰x k:kj%[0,+ |z)&.۱86{%˄;+<۳F "JOؔHx O;({R'[۴Zbki]˴J˳\KhXp qyv}[{r MRgN:f lAkQ+;Öo1_jo[oYQô);o9Y(%\V9!ሺq{` ˼ëU )tY+eZ{^di{boΈ^][6՞uؕ [ lx[9N,/&]8<][;dI79"kt⛛,#o;־k' Zo VVÖ ?LI7 Oÿ R,aG|^))lZ+ܿ-|`A%^ZS޹\WCo}uL_ll:{Ȇz\U8jdw;,{, ȏ\rlƌ֖,|]݋C9ʗ|heވHˬL ŋ<(FšʻckgH _gyiL cFα 9LHLCĘf},j<&|lxYН5ѽNV;g;tk˶!{{xPD+XK{Am{=2}]9 %; >MA]}fk? J-])8-#GY\T+с{7 ]C]]i]eZV W}hq^}׬׈=؄]؆}؈=ְ:Rmrzm"=oҀL֕ͷtgٜs1(==ӤTق٢P]}pmڴMֵۿ=vܱږԐ]Բ]}ϭѽB>=n-]m}Mܝޚݫ]--61:-nˍ߽,}8ޠ$-"(m^uz`+ċӌ;nLlBER5$CD^K%HL +[M b~ mޖf )1Mf˜Ոv,갩>Թq_K'zdyXJ^iK@*~@EnT[&q|1oMU<ȾR UNinO^qNþ4l\qoⵟ_ᾟ!@DPB>aD'V(1ƃ9fcHIhƓ+tf̎4Uڄ8N<{L ϘD]=*t!R<6U2Ʃ2ּJȭzZ0ر_Yh$Zh7ڵeνnŽ[ms5b&VB39sc͂+[ ;KӼyj֞O} kWGMp앷Vwˆy>^RUw7\t9.Z۶jN\7У}qٓ~lo>r|;4?l"нp 0)C i:KLQ -|+m+n1ˋQQqq QBR&K2H卵2J-r.J,i|/;0qKI719c$SIO ͒CP=ILGL:47TJB4PCmBRSM7]N;%"0S)U[E5UV[u.6UU`<6ATW-VO VZfKtD[P vXj5$PorYϥWzU[y9VDEUu%P_ݗKf xaK6sa] nf!Nb|g9 p^>9^ceYzedqycM- f`eRf{66gEImA=^i&鲡j:ꠥzd.xIn~Ugw.Z'K=8mŭYji^nL՛jv!S |tVԏǽo_'gwQ>swSsg<<]w&!7G}W>nov~mne5?d{ޓ=aSW1\C!Dbr5+mmWs D)1Q"%=0.qaHwf#R",\!F:yģ-я,!H5.O~ӟh@:PԠEAqIMqrs|hD:p6(DyMaљ(H)*Ҍ IKM9r,DK*SԦ5iLLW.ӧ.i@T7%%[nOPGRuGE*VUTzvDU*VJ5c*ZGUmUokY?T5ujyVUUT+&JV=lZWf5g]:X5/SSvֳd3Y:Vvi;ؠ&}-bU;Zu}5hYvM-fYlڨ6uesJԽoϢָU.ti{"׫ծb6ExЂ}/y[kIۢp=yؽ|]ؾo~K`?Xnk/L*Y0Gw7;z4oh |>x]dir!=}P|Y FӜ>+a'eͺ=W\\ M.ހWҫl/֚?o{SE?|#[?l<@[kc t?@ T|@ <A?TJ !$"4B{?k{ A,T@B*Bd@AkA?%B\B/-#C4,0A5B`75tCS=X4U@`|FeEZ\XDf,^,FbF,DRdQD>`$GBdEpLǶm4\DFw|pGu\hFY]lGSkƂ4H~ǃLHDJ\izlGȈȆHTtĀ,lB IɉGz?B9m(#]P0-T3'AUT"eSIUӳ$QKS 2-NeRTCJPUOe3TJTRETEV ՟DT8MRĜUTXJUGu[UU-VdeT9uUZKb]HmV2UY5U_=keVB]hUEoVVWrT׬m SVvMTr dI=WsW5i_ctmWkփ=PUWwE}U]WdyWq׋X{U uX[сՌwUY%XWW5ؘFMYzW؜כbYWLMؚJYt YY]ڝUڞMZ ZnؒX=ZNmXe֓ZZuY~؍m٩uZڦ]۷۶۹U[[XaZWM۳%ڰ4Y}ذ`ۯ \e۲\ټ}Y]Z5[[}\[Ӵ\[m\Z­Ѝ}ZҕZe]=ݾ]\ƍ[]YVZ=^ѝEإ̽\5Z ޡ]E]ܭam^i\Y^E_Z_M]M]%_mߢ]X_=TU__5mݕUe`ҭ[^}_& v`޵ ] U`ε~]۽a !&"6b"aean'b+U*fG,` n`/vV$c^MUu&]-N.f3^Snc..a)`V=Fa5a6(FBW@]^H_;>cM6dGNd~V8^dEG&JQ&a9cU6eB7>UQdVE$.uhdwyfvuksd~G _Au4gze/xnX&xeo~xOwur_E|7xZOsso)F^KjwV*'q`bVqwGeA?Nusju}iwF8vyv7+G=o8zb}yeq(y=/Tw<^khr;ņq/=v?:!n>G{??갿g|ICoyw%gn79zN3~pׇ3m'W o[}nk}j_wk}Ny7gs >+?'w/~!Z1g?|#6xuW-"~s @ „  0p '6hËfĈ(aG#?rd2“.+N9͍6s.ɳOA2\)@GC*] iO .ZҤѫSCU*P`ÎeZׯgͮeP˴?m.ݜ^ Dz/Yj鵰a4 +^L/KqeubfˢG?͘tig7kd}ϧN=jӶw. oЪ}-|8഑KUX[7/NztG{ޫjO^C߮zO~~{z| _ߝ߁WW -` V6xmHa~uFH`"~-JXQ5x#9#=#A 9$Ey$I*$M:$QJ9%UZ9%Q04'2 +b1>&.&bFarwwguj١Zfw*J{&Jz旍^ʙVijre:)jk%nJ*۪ji&͊,ÞjƖ)kb,^;nN{lnª-pܦ:o\Vo <&-pG- +/[|q!L$v<(kp[$r bG)jEЍфFLìaX?QPQDɒF愒#L69Q*kb aR4鶈=hR)T&9Ӊge(9Sl4gy,D$Ӓ|> K(Jsメ6!H_FR\Ku„9Jn.RiEG:\ iN}Әt4y͍ tg-Ev1DŽf.6IBs]'qԠ[)C 7t#@vS&hu??ߺ1~{ݷ>zՁM㺷<{TbVv{Nȥ$VfeiV$Hd@H"UPEe>vWڤIeC%\[S%SN%Zr%^Be%_֥]&X%MV%b&_Xvc&[YeeWZRbzGvh&ii&jjdd_6ff>\_FkZQ& menY&lƦfnN^&f^pZ&or&r&tR'd#m>'tf'@&p&sn'&x&wUH.'qkrg|Zugu*}ov~x'~gF'{}z'' l':&hJhAhxf:zc}2fΧx'F*hhe((u qΨgjzbn(|ڨb(z(樑(hs(*)F)yzVvbB畢(jwvhhZi6(n&X雒.闺ijNh:pdWe%ȣe'\kid&VX M-Vq*(VW~QVQ9)V!) M¢~j0nWF㨒̰!4|cj6!_v>k6+jn&avY*"!~"дv++aq++E`"&U$r8׵+jշ"#yࢲ +.l:Æ,ZISN8icVRȖl=*6lr#rŮ&jŪ_w+.",2YmT6clfᑬF&,Bm؎lvF,Ln)3£(-2ά٦٢9b`(^"!B_AbWRmnl`l6Bk*- E.>ӯ҂߾rJnbĖ.Pnbnoʮy.h.ޚZ 3vnz/)~JRboz.IBo,2j)6Hz꘢/گ?pw/Jg/ocVfiG/C S0/ƌ/ p ˰& owp# / >qSqcCs1/1d 1DZ1pǰ0Ep1qwr10+2 K2 %!2%]$k'2#;2f20!&(Gq+O2( ) r')r#.2$.r.p/_r10) 'r,r-/r4rr0_1237_4#7W2&w82?i973"3;r':3?s@36393(ós?g0@?47313*,3.36CA#+4>/tE[4+W7bUeng4̮sD'rt~t:m.KGN.L`:4 5B4b1.KXjT)2K.D-u¥YR_jluVt5RS_^{b_#6u]-_ZyYbp5_q``'Zc/mbuf/odgwEgJwecfOvkeh3e?abۦ6lC"kǶkn`\O@vmin7svoswo;7V7Ym{n}6htGQwwSr?;EMwW6wV{rwtKse24{_Wvs`|wxz7`+1Q7e*U{wwRQYd_wew~5}[8h xTg8yن(6R 6X5WK[!d7JOzcK.:#{۲ c{[;:3;;{L;zC{9{;zK;;绽}{{ͯ=޷=_~Ӱ/}Г73>oK4{>ϓ}׫>E>~~죳> >>ꇼ~ocCwK?3Gz߽'?O+Xcbif]p>*tKGjÎ}Zvbϟkzuױg׾{w?|yѧW}{=~}׿E P ,LPl!P ) 1P 9A QI,QLQYlaqŀ;}{{ͯ=޷=_~Ӱ/}Г73>oK4{>ϓ}׫>E>~~죳> >>ꇼ~ocCwK?3Gz߽'?O+Xcbif]p>*tKGjÎ}Zvbϟkzuױg׾{w?|yѧW}{=~}׿E P ,LPl!P ) 1P 9tutorial/giffiles/text.gif000644 000466 000017 00000003275 06722264617 016201 0ustar00timusers000000 000000 GIF87a40@X(F5Tc@D8MOMԨH @q@PWHf @@XXFFXFTvo2;|q|A۵}|˿Ajh| (P'D QzQ@E :xBJ(P!4:dJ+7 iH "Mxox R-w QbaL97 !Kicx$ I#:BgV "!xhTi%?jIa &J8؆!ꗢvg1 )"(Fze)@!]4jE6DAR.tV{+Y`r*jKiZ+ i*AeP_.ay)-e峴*:Ajm9ㄴ*[Fק+&7J{+ ;+2g[:[L?rءK\2l魽96r*RdXK_YnDJF촉JCtyEMEMT5J0+|L߉>!W\&utsw.Pl` 7v'5-ݷu砇.bn騧ꬷ.~z̙?nZ{HyrGk>|ބG[o3/3OO THWXafF, |+H*\ȰÇ#JHŋ3jȱǏ CIɓ\r%ʗ0cزJHpi"fixz: j衈&袌6裐F*餔Vj饘2J` *`煊X)(j])ꪴ6ժ.묵ӭா;&H̢*kԖlrDCԵnrnt 0 6b-[o  f[*6DA< /^D ekt:t"@ `C d 8l)~3 Y20|%`Nڣݍ  VDžJ_B>(`dlaV6D*P^U6eʬ8 ~STC!o} UXryόq\}ȈpHCʤɃu4Q|nf)o #JYp%$YU9 (9:2!B|fI61򛻙ALl1[ R>ؽ.+>ΏA[i-P'yH]45`. +JJ)pQfD0ց# ͌LJi1$dvS-+et W AJ`3t49[6ۭj $zd )o%W,pIAV0!B$^S :eRĭU&^T &Ь˹0YS「7 jt= g\@}\+މ YࠗS޿V;{""\,>PI8ͻ`(dihlp,tmx|pH,ȤrE  gJ,v{ZZo%4z}njwΦ<~z~|3K %#νw@7ʜu*p1e I$C] (#Ǐ<9pɒ(E$t ‹Kxa1ljfQ̰*ʼn!8iҢK>]F˛nϟyYY_MoQͫWـw|W52O|w໇~صB.#]{᳟>>-vϧ$A~}hgjUY0)! XFH, vy` ~(b$b8dt,0(4h8< DiH&L6PF)TViXf\v`)dihlp)tix|矀*蠄j衈&袌6裐FVj饘f馜vj)*ꨤV jꩪꫛ 무:d뮼+l쳜. Ifj+m: .ߎin+Iˮo l0s0 > Nlg,rV"*`r+,@Z1\ͩ&]+,s%|/=+K3 NwZ3[}_ڵgsJWʶLZ1_:xt۔|Ml}۶Z36 c-56q MؕZuyީc۝]鳓{yo>**8ƺښy7.}L7@nF,>N߷s:Z[?'p?mUѼW@nU!XR}w9ۭn^@遰r;>O\ǸjPv3W;\U`BW#np6#KB6wO:C _H BO5T]B#|FbH.kM p T^u1% z|# Y<۹PyYU؈DЏbdxFK~{XyёrDcidxreK!jqxbdK".P獱Q%eL3FR ,7Hpd,5[jʑl ,&IM_a^蕟zϞ>m|/͗}{÷k||+~Cw}_sF|V~ ȀGgȁ&ׁ 8&'((*~21H0x'~u8h3}HHAXg?hGH%ȂEOM8 XlXBJ8]ȅFPv-hh8iaLȆcXu:HlH)xD"9+ɔ1I`RyWi@Xd<`KyJMuZYBQS 7f]kyזtٓ~Iivzٗ|w\阋I)I i陙Y)[yr9ɘysYɚ99:wI隸Yi9I ɛ)) ɜiΙҙөYd؝މ9ɞ٩iٟY Xz8 ڠFyy)i׉=IjɌ *,Tșע*0'q*9JBʡ3Jh1Aj;OQڣR:&K<[zY:$#:E:H`JM*eSo qʤsZ2~V٥tNjum:kVzy*J|ʦZpr꧔:?ڧ{:UzڈکJzZʥz; JJzJ*ګ* ʫ̊zjʩŚZભ J*Jڮf Zʮg) Ƞ  nJ9j+Z!([ K'k: )5;j:v0k7˲Bɳ+K/kF;.ڳIkK2 T4;c۲8M۵JR۶(^Kqk\[i n[y[EX˶g۷+ws+z;T k+Kn|˴{j˹;{K{Ka뺥ykdz;+{{뻴(ǻں˻KvH;[l{껾۠Kk+Ƚ{+;K[;˼ {0{;|e L x  {1+6L,0|'&*3w+BAD{%O\CNlRSTXd;VID[ P^|exl}|hoanÂrEc |DžLlǔ Ƌzɚܔ۾\ʦ{ʪʬ\n] Kǰ̦ș˟,|,˼˾ɕ<˃˿ɡ|̳;ɽ<|tܙʌܐ\q|3k׌ δ,<|\Ί,ɉl,ϢL~o|^ Ѧ]=[!Mm '=)+-ѦIj5-7-=8] 0=,C}ԼI]>ӀQTM\^mb=_ 6ՐlUlm]#-R-o}Kx=]1My-~ׁf=s|ׂ؃=|g}u݆m?}}ّ֕Ւ֋=ٝ Ԍڨ]Ʌة٠ٱ}ڲ qΣmۼmGېmآ=ڬ}ۦİ˭ڛ ڶȽ۾ -ݵMM}-hh =}Mܡ}C8da=~GJ߉j}} L$,".'N #J0+%nMM $-(=A9FNH 6WӹYS* _nc.QNP*i|e^qdu^X>?my .NDxȫR~~.~^kKn虎n逎>[~ꨞ~8=>|n[^߽똨nn@kF\ڷ첎NȎ>b^ܮڭ^^츮>^ﳞž0N|^gIO ˮlO>?$_N0,-"}:h<@/53ol2_6C1m|W/Z[__a/>VjDi^e^ONwohxn?o?o/'?:dr–sp}?՟OHqo{N<./Aο>?VoOй_ϻğ//щ? ULoΛWB**PuVHlΑET6yȞ1u-QWi[ʹ.L^)K\YėLMSM@e SПF*ӆ!E *ӌX;j5ɕUCuMJVϬfe{+NoƥVTUu[ݦ{NKx+K^\cņ6օW^ʓ% ZȌ7M)3ӤC;pi7Y`ךs9ޠO}[lƁ+9kW8:tşk=nw7s{gޗu̧_}p@ 4@TpAA#pB +B 3Ԑ>fn9 :HlODP,1(Tln_R1#$ҷ>7$mTrGI!lJJ+$&&TL6LM1\2ɲ/N=K:244? t8>od (:-;_!< үT 5Ee?~Ѓ!фЅ!3P,L_ WH1Ɛ 0=! OA&цK$bUڜ4lH9c X$$b}-(ьlۗ9zQe" 7vQG=ҍQB.R!S9LfR$IPR$eID2ҊT(I򕸳d|A/XrtyLHRi{/[< S)(h6R4YMn.s0`氙&.]fh":gNp3O뜦8ωOwɴ?IPt=(6 ΁:4hCC=ыzt73zύ%EHYґv4*5Ae҅t.)N5JҞr6D}RQ R*!m[RT25NZPx*VծtamjYRhn*]֬R`ik_z#U$la {}elc Yxշ5gdٺUu~{+`7+ɢQi1e9VEn3*=Z&pFw{-rk]>5וsKy*v\y.{C]ڢlp^w|y@ڷ/}ww%pz`6Dy#` KXM3\­氅/ *LX3eb}=qKb?1Kfc|a%C94{l|e,GYr J$xRf_4Od~E$3ei0uf5ǹkγ\gB'4\E=ъ33]A7)gr>c@czҞf3. QgU ZҸC]:حukX#Ǟ3DcF58i;6S(_ޮ5imYu՝g{趵=nb{:6Cz&{-g[ExRxeg\eϼ_s;}|yOHW^ӣXǽ%q_[~_>a{7wozG}^O}z?~|^i|C???hK?k@+@R@;@T;#+ 0 ľ D < @A*AA@@ t5LA@4A ,BZlBB"l;)LAB%BBB0-D/B>6l+>7C92o;CC?C@ DADB,DCe.`] u Fe`N_^`Jv>U9 >aaiiV`v$(]"YE%_,6|)/bdW>^e]LIeR^VYv%cPfe[&?bh^I-fj`6dNVf_dddN~m.fPl>rOMnw:x^gUVg%gv@sgeI|q[gyeCez.V5{hvhFS}#ahq脖hMfi&i^ieglS6i:v燖J>ijN8fnj/ihGi>j6dkiivbjtínkV-j~aF볶WVk^^nX&kÆFjvk^k&=ʖlTVlqk#m FMnlv]lF^&mK1cjmjVlΎmV.=^m6fm[VkVmnn.o=HvoNnY&oOVn}}oknVpXnp)>?gp v>Pn8^q/>v$p?t7YqFqp rm #g%/r'r('nF+'qm.r0f)pc5r+'s372XTs9GpTr40׮>wF@rBj7Oty@.dt=O*s?oP>tHW~qODztQפsMVToK4GGEqXGrfI|sWY7ZatCG.GC5/bOu^WvCulgsyzBo$kv\ufvnSswU/iu`uxR?{ysdt'w_RvZ/kuGPx|xw/UjGxx\Txhg3y}loz~wonyc/xxGњD6xnq`d_vOzy?zܔx7ByWozyWtzez/HO{gax`oPx| {878{'_W\ z/|Ns'\Ov}zg{o/|ggt<}ݟb'|ן}N}y~O܇~ jُj~_uo\|oɱ~7q~!orjxggDf5 k/,s>T\)#irQopnIT"6̕z7sSgw&.d mq_aߘ c`^ߤ哠%dagbbc)g*(j^)窨-.mo.o0q1/,2qtrt63v88+ffmy5|w|={>>8*4cF_;~c@N8E4.<X2zlXɈ)+$e0aLޔOjgQGsdp߹3FԪҬNMnEUWa]bPXVM6IUMu7߽~Nkkj .1dt)@^ʑ3cϝAoFygԣU&-5` y2ԳW[X)8pŕgme;1Ss;5xܡk=鑯ﮪ6㱇W_}o}  h`%{Uv1xZX!.Hxraix~H≧ "18#5x#9#=#A 9$Ey$ $M:$QJ9%Ub_%z%!a b&lR n3X%m)gtƙ枀h硁&:y()Ңh&)ih隊&6) =*:ZYj륹'꧰9hj*(.Z{b{mhNZcf˫ Ԓ;ܚnt l{ /+_/"ē\Bk\ԁ1 Lq#tqږ*r\p.qr>;s|r /9㕫uM~'6}8C˜:>;6*Y;;[Yx钇03~0#, S03 s‹0C,$>1S.~1c,Ӹ61s>,dsF>2%3N~2,y7-s^2,fcy).Ӭ5n~38t3=L2YgJ`^`|h ;^!=hz8!MbKSzҕ441 bPԄX?-ji:3c->Wyњ>CjեFuwb_wբbzטF6ǩlի-c_[(-q{9؂6elkmXf1olpÛ jR[~?A3-oowzݎx*N~[x'鋫x'79am8yU}s\3s~ퟷ<?9WѦ8o}Vȱqtgj:)-kf9wuNhtIo:xvi/m=$6!yIp+vw|x}`7|~WG='.3λ~?!/{]}݇ZsuYz\'}_v?/y}OY_^A޺޿9`>`5`_`i%_\ J`Q Ωѵݳ1 2! F!Z\IMa]_Mޕ!!-!ai!̑aU!faa-͝[j!٥}J".Yᰱ!9#6Y"^&nQa$Y'2Y&*y'R^m""+^,ޢ.""/0#1012.#32c2N!-64N#5b]#6f6n#7v7~#88#98F;vi/m=$6!yIp+vw|tutorial/giffiles/wramp1.gif000644 000466 000017 00000016256 07016340547 016421 0ustar00timusers000000 000000 GIF87a4HLHдXF5Tc@D8MNM?@L@WvHf @@ XXFFXFTʸ WeZvU7ɤ\~jYG)ʙ&wY  &e*yՉv2'29饕#Kcf)YiRTzj٧i՘jV ʐ 񪐯 {^TlERlDjBRlNm:ڨ+)皋j)~.d꼬{oRĮKS6/²*lgpk1{ o zr<-/$(Ӽp84? êWD_> M;ۋҗ1}5=grP]#6r]ۖ 13ZSu{u%=ꆍ؄Oډ3nvvoR;~CM9֗CxIOzüqe7~]봿^{n{.o/#^^k|c͞S?[>po:k/yg>t }ک?w> q9g>zۜo ^ ?N!HE$_9Xz`6(B0!!| 7B0( s2m', *"x6 ;L 5D VL\hD=1]LYhbD _lӨ0ora xFṛEt% M::El0LbJ3q70rf0tr;QNUVf|e |2|ZOē%,\^B!Py (=$VjTfBRo“O[^p4y/Up\:ST)m^LuzStx;jOS59>E*kjqzt (JNfӤPeVUUUn)hVǎvulG vVU  *զΕh\_9ıu"+]VzV:Q" l]iسnֱE{YBv.{ _J٧d*a?[jSum^Q+Y6o`okFV$dr \D6Tnt;]V\>utK]Z׼mbkY>m/{Ybx%B>]l:Yw~\"oW okWiv+-;;a!-w6vtָ-i!b7?F]{cȢU '64qiGwZq<[Rwy;2ͥN]"rp BY|Uk3;-&m$Z$3bϦ6)elc˾(28-vL+pg#-]mnnqQޏ\ݲw}|g *xoV{/B̫a8 oXB<./O __ /MAtHGrrЁ%uXcW׍v}WAk"ҕ2i'ؿ9Wx߭P?^ɠ,]n]WuH/w3972p\g%ʋD{8w(A?6c?#GNw{q~'y[{Z?sOU=w)|&7;~536"QwccIv3K\k}z/zWt'cn76Vݓ?)~a~mjz~rt*WuNW1U}j@G:vi,i1xT5hh086i:4jb7h>iEi`{x(F~h|Jhq_XhLC!g{pL8MXw~SX7zG{OHe}{nxWX7RȂvdXqȇ'1~@ W8@b(8}{o]F'U}HK&hJ芜Ef(Vx$u'vhvɈtWvxvѸ,u^u]eޘ5,(mH.fq(F˜c.8M鈋bՎ_h׊Ȋ1bibXy YhQ#Y䘑zI9)E$ aJ֐Ȇ؏)Dr洉0* ZHi.su.9)/9k\b+,IfG;)=iD'ykA0+)#uQ2qG@hCH=im?x2XőuzDƁsQa1nYb٘9YyЙ٘阩ɘٙXMy!~xxT+}'Ǎ8YYK[U5؁gėEZʺBh68jLw`چʪz6ƫ>ʉm窡z*::*J_5JKGvjb ksz}ڝKGVaip*Jj :)t.4F-x8+3Oai14Ǟ=4A{LZȞZ\K,HJǀ#Tw |yuٵV]SzVkX+E+q6&g(y&ۂC9YB+O{#&Zw{[PK`y2Qsx,KZdǹz$f~K+;ak6zCVo[-{RK{9kJ Z÷D2+K;˱Ľs2_KRd}9l;a_+Q A;z+reK{%0۞hiϺĚ&\(\Snpii#,|',)ʁvKxez*v{ ~?ܿBDEI룔#^ \8\:<Z,ALF\!~6dTѾlS] _Lbz,T(K[5e,u|hlkG< mqQdžs&K4<ʱ4o+ql;8kk]Ykŷl˹[K,|ʓLflbp ᆮݢ^Q>Ž~M~ -?0=.*~KU课ή. ~~kodΎ??*"c~.QD-^ĘQ#D| cMDRJ-]YcH#KęSN=}8H$ETRL%`TU^ZPY~VlPP9VZmn\uW^wX^]Fmƍ?Ydʕ-_ƜYfΝ=ZhҥMFZj֭][lڵmƝ[nގ \pG\r͝?gtխ_Ǟ]vҹ^xG~dcݿ;yߧ9~Û/@?/Ap?{/9#60D 0EqD!l^oFJp9˲;qE!/﷐$mQ<&Fʬ(<r;*$KB2ܑ4';1!߄/(ZR$ L꨼#9ԓL& \s}gb%u4膃T7z+wfm`uVTefViѭz鋛^ONyjUhZcf^Ʀfn3MfJ댛F _pѽ])隷[j^uqLLh]uk?~sN \s}gb%u4膃T7z+wfm`uVTefViѭz鋛^ONyjUhZcf^Ʀfn3MfJ댛F _pѽ])隷[j^uqLLh]uk?~sN} imagemask} bind {8 8 true tmpa {<30 70 60 02 03 07 06 20>} imagemask} bind {8 8 true tmpa {<0c 1e 1e 0c c0 e1 e1 c0>} imagemask} bind {8 8 true tmpa {<0f 0f 0f 0f f0 f0 f0 f0>} imagemask} bind {8 8 true tmpa {<3f f3 e1 e1 f3 3f 1e 1e>} imagemask} bind {8 8 true tmpa {} imagemask} bind {8 8 true tmpa {} imagemask} bind 7 array astore def /ppaint { gsave clip tmpa dup setmatrix pathbbox neg exch neg 4 2 roll neg 4 -1 roll 2 copy gt {exch} if 8 div ceiling 8 mul 4 2 roll neg 2 copy gt {exch} if 8 div ceiling 8 mul 3 -1 roll -8 5 -1 roll { 3 index exch 5 exch put dup -8 3 index { 3 index exch 4 exch put 3 index exec } for } for pop pop pop pop grestore } bind def /setstyles { currentlinewidth mul setlinewidth /style exch def style 1 and 0 gt not {closepath} if style 2 and 0 gt {currentlinewidth 4 mul dup 2 array astore 0 setdash} if style 4 and 0 gt {0.5 currentlinewidth 4 mul 2 array astore 0 setdash} if style dup 256 ge exch 480 lt and { gsave 1 setgray eofill grestore } if style 16 and 0 gt { gsave style 224 and -5 bitshift dup 7 lt {gar exch get ppaint} { pop eofill } ifelse grestore } if style 8 and 0 gt style 512 eq or { newpath } { stroke } ifelse grestore } def /polygon { gsave /num exch def moveto num 1 sub {lineto} repeat setstyles } def /xcarc { gsave newpath arc setstyles } def /elb { matrix currentmatrix 7 -1 roll 7 -1 roll translate 5 1 roll 4 -1 roll 3 index div 1 scale } def /ele { 0 4 1 roll 0 4 1 roll } bind def /ellipse { gsave elb newpath ele arc setmatrix setstyles } def /pellip { elb ele arc setmatrix } def /nellip { elb ele arcn setmatrix } def /spline { gsave moveto curveto setstyles } def /polyc { {lineto} repeat } bind def /beginpath { gsave moveto } bind def /endpath { setstyles } bind def /bop { 1 setlinecap 0 setlinejoin 6 setmiterlimit 0 0 0 scb cRedef } def /insertion {/PSobj save def /showpage {} def bop translate} def /end_insert {PSobj restore} def /setpagemat {/pagemat matrix currentmatrix def} def /inchscale {setpagemat 0.375 mul dup scale} def /cmscale {setpagemat 0.35433071 mul dup scale} def %%EndResource %%EndProlog /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def currentdict end /Times-RomanISO exch definefont pop % XCircuit output starts here. /PIC16C54 { % 0 0 480 736 bbox (?) 1 beginparm 0 1.00 0 0 0 736 480 736 480 0 4 polygon (PIC16C54A) {/Helvetica-Bold cf} 2 21 0 1.00 240 320 label (Vdd) {/Helvetica cf} 2 23 0 1.00 464 368 label (RA2) {/Helvetica cf} 2 20 0 1.00 16 688 label (RA3) {/Helvetica cf} 2 20 0 1.00 16 624 label (RTCC) {/Helvetica cf} 2 20 0 1.00 16 560 label (MCLR) {ol} {/Helvetica cf} 3 20 0 1.00 16 496 label (Vss) {/Helvetica cf} 2 20 0 1.00 16 368 label (RB0) {/Helvetica cf} 2 20 0 1.00 16 240 label (RB1) {/Helvetica cf} 2 20 0 1.00 16 176 label (RB2) {/Helvetica cf} 2 20 0 1.00 16 112 label (RB3) {/Helvetica cf} 2 20 0 1.00 16 48 label (RB4) {/Helvetica cf} 2 23 0 1.00 464 48 label (RB5) {/Helvetica cf} 2 23 0 1.00 464 112 label (RB6) {/Helvetica cf} 2 23 0 1.00 464 176 label (RB7) {/Helvetica cf} 2 23 0 1.00 464 240 label (OSC2/CLKOUT) {/Helvetica cf} 2 23 0 1.00 464 496 label (OSC1/CLKIN) {/Helvetica cf} 2 23 0 1.00 464 560 label (RA0) {/Helvetica cf} 2 23 0 1.00 464 624 label (RA1) {/Helvetica cf} 2 23 0 1.00 464 688 label sce mark v1 (pcb:U) {/Helvetica cf} ctmk 21 0 1.00 224 256 infolabel 1.000 0.000 0.000 scb (1) {/Helvetica cf} 2 23 0 1.00 0 688 pinlabel (2) {/Helvetica cf} 2 23 0 1.00 0 624 pinlabel (3) {/Helvetica cf} 2 23 0 1.00 0 560 pinlabel (4) {/Helvetica cf} 2 23 0 1.00 0 496 pinlabel (5) {/Helvetica cf} 2 23 0 1.00 0 368 pinlabel (6) {/Helvetica cf} 2 23 0 1.00 0 240 pinlabel (7) {/Helvetica cf} 2 23 0 1.00 0 176 pinlabel (8) {/Helvetica cf} 2 23 0 1.00 0 112 pinlabel (9) {/Helvetica cf} 2 23 0 1.00 0 48 pinlabel (10) {/Helvetica cf} 2 20 0 1.00 480 48 pinlabel (11) {/Helvetica cf} 2 20 0 1.00 480 112 pinlabel (12) {/Helvetica cf} 2 20 0 1.00 480 176 pinlabel (13) {/Helvetica cf} 2 20 0 1.00 480 240 pinlabel (14) {/Helvetica cf} 2 20 0 1.00 480 368 pinlabel (15) {/Helvetica cf} 2 20 0 1.00 480 496 pinlabel (16) {/Helvetica cf} 2 20 0 1.00 480 560 pinlabel (17) {/Helvetica cf} 2 20 0 1.00 480 624 pinlabel (18) {/Helvetica cf} 2 20 0 1.00 480 688 pinlabel endgate } def /LTC490 { % 0 0 416 384 bbox (?) 1 beginparm 0 1.00 0 0 0 384 416 384 416 0 4 polygon (RS422) {/Helvetica cf} 2 21 0 1.00 192 176 label (Transciever) {/Helvetica cf} 2 21 0 1.00 208 128 label (LTC490) {/Helvetica-Bold cf} 2 21 0 1.00 192 256 label (Vcc) {/Helvetica cf} 2 20 0 1.00 16 336 label (R) {/Helvetica cf} 2 20 0 1.00 16 240 label (D) {/Helvetica cf} 2 20 0 1.00 16 144 label (GND) {/Helvetica cf} 2 20 0 1.00 16 48 label (Y) {/Helvetica cf} 2 23 0 1.00 400 48 label (Z) {/Helvetica cf} 2 23 0 1.00 400 144 label (B) {/Helvetica cf} 2 23 0 1.00 400 240 label (A) {/Helvetica cf} 2 23 0 1.00 400 336 label sce mark v1 (pcb:U) {/Helvetica cf} ctmk 21 0 1.00 208 80 infolabel 1.000 0.000 0.000 scb (1) {/Helvetica cf} 2 23 0 1.00 0 336 pinlabel (2) {/Helvetica cf} 2 23 0 1.00 0 240 pinlabel (3) {/Helvetica cf} 2 23 0 1.00 0 144 pinlabel (4) {/Helvetica cf} 2 23 0 1.00 0 48 pinlabel (5) {/Helvetica cf} 2 20 0 1.00 416 48 pinlabel (6) {/Helvetica cf} 2 20 0 1.00 416 144 pinlabel (7) {/Helvetica cf} 2 20 0 1.00 416 240 pinlabel (8) {/Helvetica cf} 2 20 0 1.00 416 336 pinlabel endgate } def /terminal_block { % -160 -80 320 173 bbox (?) 1 beginparm 0 1.00 -160 -80 -160 48 160 48 160 -80 4 polygon (ED100/3DS) {/Helvetica cf} 2 21 0 1.00 0 80 label 1 1.00 0 -16 32 0.00 360.00 xcarc 1 1.00 96 -16 32 0.00 360.00 xcarc 1 1.00 -96 -16 32 0.00 360.00 xcarc sce mark v1 (pcb:J) {/Helvetica cf} ctmk 21 0 1.00 0 -112 infolabel 1.000 0.000 0.000 scb (1) {/Helvetica cf} 2 25 0 1.00 -96 -16 pinlabel (2) {/Helvetica cf} 2 25 0 1.00 0 -16 pinlabel (3) {/Helvetica cf} 2 25 0 1.00 96 -16 pinlabel endgate } def /LTC1152 { % -192 -192 384 384 bbox (?) 1 beginparm 0 1.00 -192 -192 -192 192 192 192 192 -192 4 polygon (LTC1152) {/Helvetica-Bold cf} 2 25 0 1.00 0 48 label (Op-amp) {/Helvetica cf} 2 29 0 1.00 0 0 label (SHDN) {/Helvetica cf} 2 20 0 1.00 -176 144 label (IN) {/Helvetica cf} (-) {/Symbol cf} 4 20 0 1.00 -176 48 label (IN) {/Helvetica cf} (+) {/Symbol cf} 4 20 0 1.00 -176 -48 label (-) {/Symbol cf} (V) {/Helvetica cf} 4 20 0 1.00 -176 -144 label (COMP) {/Helvetica cf} 2 23 0 1.00 176 -144 label (OUT) {/Helvetica cf} 2 23 0 1.00 176 -48 label (+) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 176 48 label (CP) {/Helvetica cf} 2 23 0 1.00 176 144 label sce mark v1 (pcb:U) {/Helvetica cf} ctmk 21 0 1.00 0 -80 infolabel 1.000 0.000 0.000 scb (1) {/Helvetica cf} 2 23 0 1.00 -192 144 pinlabel (2) {/Helvetica cf} 2 23 0 1.00 -192 48 pinlabel (3) {/Helvetica cf} 2 23 0 1.00 -192 -48 pinlabel (5) {/Helvetica cf} 2 20 0 1.00 192 -144 pinlabel (4) {/Helvetica cf} 2 23 0 1.00 -192 -144 pinlabel (6) {/Helvetica cf} 2 20 0 1.00 192 -48 pinlabel (7) {/Helvetica cf} 2 20 0 1.00 192 48 pinlabel (8) {/Helvetica cf} 2 20 0 1.00 192 144 pinlabel endgate } def /DSUB9 { % -160 0 320 186 bbox (?) 1 beginparm 1 1.00 -128 96 16 0.00 360.00 xcarc 1 1.00 -32 32 16 0.00 360.00 xcarc 1 1.00 0 96 16 0.00 360.00 xcarc 1 1.00 64 96 16 0.00 360.00 xcarc 1 1.00 128 96 16 15.00 375.00 xcarc 1 1.00 96 32 16 0.00 360.00 xcarc 1 1.00 32 32 16 0.00 360.00 xcarc 1 1.00 -64 96 16 0.00 360.00 xcarc 1 1.00 -96 32 16 0.00 360.00 xcarc sce mark v1 (pcb:J) {/Helvetica cf} ctmk 21 0 1.00 16 -48 infolabel 128 128 beginpath 128 96 32 450.00 333.43 arcn 124 17 1 polyc 96 32 32 333.43 270.00 arcn -96 0 1 polyc -96 32 32 270.00 206.57 arcn -156 81 1 polyc -128 96 32 206.57 90.00 arcn 128 128 1 polyc 1 1.00 endpath (AMP 745781-4) {/Helvetica cf} 2 25 0 1.00 0 160 label 1.000 0.000 0.000 scb (1) {/Helvetica cf} 2 25 0 1.00 -128 96 pinlabel (3) {/Helvetica cf} 2 25 0 1.00 0 96 pinlabel (2) {/Helvetica cf} 2 25 0 1.00 -64 96 pinlabel (4) {/Helvetica cf} 2 25 0 1.00 64 96 pinlabel (5) {/Helvetica cf} 2 25 0 1.00 128 96 pinlabel (6) {/Helvetica cf} 2 29 0 1.00 -96 32 pinlabel (7) {/Helvetica cf} 2 29 0 1.00 -32 32 pinlabel (8) {/Helvetica cf} 2 29 0 1.00 32 32 pinlabel (9) {/Helvetica cf} 2 29 0 1.00 96 32 pinlabel endgate } def /Crystal { % -144 -144 288 288 bbox (?) 1 beginparm 0 1.00 -144 -144 -144 144 144 144 144 -144 4 polygon (CTX169) {/Helvetica-Bold cf} 2 25 0 1.00 0 16 label (MHz) {hS} (20) {/Helvetica cf} 4 21 0 1.00 0 -32 label (N/C) {/Helvetica cf} 2 20 0 1.00 -128 96 label (GND) {/Helvetica cf} 2 20 0 1.00 -128 -96 label (OUT) {/Helvetica cf} 2 23 0 1.00 128 -96 label (Vdd) {/Helvetica cf} 2 23 0 1.00 128 96 label sce mark v1 (pcb:X) {/Helvetica cf} ctmk 21 0 1.00 0 -176 infolabel 1.000 0.000 0.000 scb (1) {/Helvetica cf} 2 23 0 1.00 -144 96 pinlabel (2) {/Helvetica cf} 2 23 0 1.00 -144 -96 pinlabel (3) {/Helvetica cf} 2 20 0 1.00 144 -96 pinlabel (4) {/Helvetica cf} 2 20 0 1.00 144 96 pinlabel endgate } def /ADC12138 { % -240 -464 480 928 bbox (?) 1 beginparm 0 1.00 -240 -464 -240 464 240 464 240 -464 4 polygon (CH0) {/Helvetica cf} 2 20 0 1.00 -224 416 label (CH1) {/Helvetica cf} 2 20 0 1.00 -224 352 label (CH2) {/Helvetica cf} 2 20 0 1.00 -224 288 label (CH3) {/Helvetica cf} 2 20 0 1.00 -224 224 label (CH4) {/Helvetica cf} 2 20 0 1.00 -224 160 label (CH5) {/Helvetica cf} 2 20 0 1.00 -224 96 label (CH6) {/Helvetica cf} 2 20 0 1.00 -224 32 label (CH7) {/Helvetica cf} 2 20 0 1.00 -224 -32 label (COM) {/Helvetica cf} 2 20 0 1.00 -224 -96 label (MuxOut1) {/Helvetica cf} 2 20 0 1.00 -224 -160 label (A/Din2) {/Helvetica cf} 2 20 0 1.00 -224 -352 label (DGND) {/Helvetica cf} 2 20 0 1.00 -224 -416 label (+) {/Symbol cf} (VA) {/Helvetica cf} 4 23 0 1.00 224 -416 label (-) {/Symbol cf} (Vref) {/Helvetica cf} 4 23 0 1.00 224 -352 label (+) {/Symbol cf} (Vref) {/Helvetica cf} 4 23 0 1.00 224 -288 label (AGND) {/Helvetica cf} 2 23 0 1.00 224 -224 label (PD) {/Helvetica cf} 2 23 0 1.00 224 -160 label (EOC) {/Helvetica cf} 2 23 0 1.00 224 -96 label (CONV) {ol} {/Helvetica cf} 3 23 0 1.00 224 -32 label (CS) {ol} {/Helvetica cf} 3 23 0 1.00 224 32 label (DO) {/Helvetica cf} 2 23 0 1.00 224 96 label (DI) {/Helvetica cf} 2 23 0 1.00 224 160 label (SCLK) {/Helvetica cf} 2 23 0 1.00 224 224 label (A/Din1) {/Helvetica cf} 2 20 0 1.00 -224 -224 label (MuxOut2) {/Helvetica cf} 2 20 0 1.00 -224 -288 label (CCLK) {/Helvetica cf} 2 23 0 1.00 224 288 label (DOR) {ol} {/Helvetica cf} 3 23 0 1.00 224 352 label (+) {/Symbol cf} (VD) {/Helvetica cf} 4 23 0 1.00 224 416 label (ADC12138) {/Helvetica-Bold cf} 2 21 0 1.00 0 64 label sce mark v1 (pcb:U) {/Helvetica cf} ctmk 21 0 1.00 0 0 infolabel 1.000 0.000 0.000 scb (1) {/Helvetica cf} 2 23 0 1.00 -240 416 pinlabel (2) {/Helvetica cf} 2 23 0 1.00 -240 352 pinlabel (3) {/Helvetica cf} 2 23 0 1.00 -240 288 pinlabel (4) {/Helvetica cf} 2 23 0 1.00 -240 224 pinlabel (5) {/Helvetica cf} 2 23 0 1.00 -240 160 pinlabel (6) {/Helvetica cf} 2 23 0 1.00 -240 96 pinlabel (7) {/Helvetica cf} 2 23 0 1.00 -240 32 pinlabel (8) {/Helvetica cf} 2 23 0 1.00 -240 -32 pinlabel (9) {/Helvetica cf} 2 23 0 1.00 -240 -96 pinlabel (10) {/Helvetica cf} 2 23 0 1.00 -240 -160 pinlabel (11) {/Helvetica cf} 2 23 0 1.00 -240 -224 pinlabel (12) {/Helvetica cf} 2 23 0 1.00 -240 -288 pinlabel (13) {/Helvetica cf} 2 23 0 1.00 -240 -352 pinlabel (14) {/Helvetica cf} 2 23 0 1.00 -240 -416 pinlabel (15) {/Helvetica cf} 2 20 0 1.00 240 -416 pinlabel (16) {/Helvetica cf} 2 20 0 1.00 240 -352 pinlabel (17) {/Helvetica cf} 2 20 0 1.00 240 -288 pinlabel (18) {/Helvetica cf} 2 20 0 1.00 240 -224 pinlabel (19) {/Helvetica cf} 2 20 0 1.00 240 -160 pinlabel (20) {/Helvetica cf} 2 20 0 1.00 240 -96 pinlabel (21) {/Helvetica cf} 2 20 0 1.00 240 -32 pinlabel (22) {/Helvetica cf} 2 20 0 1.00 240 32 pinlabel (23) {/Helvetica cf} 2 20 0 1.00 240 96 pinlabel (24) {/Helvetica cf} 2 20 0 1.00 240 160 pinlabel (25) {/Helvetica cf} 2 20 0 1.00 240 224 pinlabel (26) {/Helvetica cf} 2 20 0 1.00 240 288 pinlabel (27) {/Helvetica cf} 2 20 0 1.00 240 352 pinlabel (28) {/Helvetica cf} 2 20 0 1.00 240 416 pinlabel endgate } def /TK11950 { % -336 -112 672 224 bbox (?) 1 beginparm 0 1.00 -336 -112 -336 112 336 112 336 -112 4 polygon (NOISE BYPASS) {/Helvetica cf} 2 20 0 1.00 -320 64 label (CONTROL) {/Helvetica cf} 2 20 0 1.00 -320 0 label (RESET OUT) {/Helvetica cf} 2 20 0 1.00 -320 -64 label (VO) {/Helvetica cf} 2 23 0 1.00 320 -64 label (GND) {/Helvetica cf} 2 23 0 1.00 320 0 label (VIN) {/Helvetica cf} 2 23 0 1.00 320 64 label (TK11950) {/Helvetica-Bold cf} 2 21 0 1.00 64 16 label (V) {hS} (5.0) {/Helvetica cf} 4 29 0 1.00 64 -32 label sce mark v1 (pcb:U) {/Helvetica cf} ctmk 21 0 1.00 0 -144 infolabel 1.000 0.000 0.000 scb (1) {/Helvetica cf} 2 23 0 1.00 -336 64 pinlabel (2) {/Helvetica cf} 2 23 0 1.00 -336 0 pinlabel (3) {/Helvetica cf} 2 23 0 1.00 -336 -64 pinlabel (4) {/Helvetica cf} 2 20 0 1.00 336 -64 pinlabel (5) {/Helvetica cf} 2 20 0 1.00 336 0 pinlabel (6) {/Helvetica cf} 2 20 0 1.00 336 64 pinlabel endgate } def /Capacitor { % -32 -64 186 128 bbox (1.0) (\265) (?) 3 beginparm 1 1.00 0 -64 0 -6 2 polygon 1 1.00 0 64 0 6 2 polygon 1 1.00 -32 6 32 6 2 polygon 1 1.00 -32 -6 32 -6 2 polygon 1.000 0.000 0.000 scb (1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel (2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel sce mark v2 v1 ( %p1 %p2 ) v3 (spice:C) {/Times-RomanISO cf} ctmk 4 0 1.00 -208 -160 infolabel sce (sim:c %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel mark (F) v2 {hS} v1 {/Times-RomanISO cf} ctmk 20 0 1.00 48 0 label sce mark v3 (pcb:C) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel endgate } def /LM13700 { % -256 -256 480 544 bbox (?) 1 beginparm 0 1.00 -256 -256 -256 288 224 288 224 -256 4 polygon (BufIn1) {/Helvetica cf} 2 20 0 1.00 -240 -144 label (BufOut1) {/Helvetica cf} 2 20 0 1.00 -240 -208 label (BufIn2) {/Helvetica cf} 2 23 0 1.00 208 -144 label (+) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 208 -80 label (Out2) {/Helvetica cf} 2 23 0 1.00 208 -16 label 1.000 0.000 0.000 scb (7) {/Helvetica cf} 2 23 0 1.00 -256 -144 pinlabel (8) {/Helvetica cf} 2 23 0 1.00 -256 -208 pinlabel (10) {/Helvetica cf} 2 20 0 1.00 224 -144 pinlabel (11) {/Helvetica cf} 2 20 0 1.00 224 -80 pinlabel (12) {/Helvetica cf} 2 20 0 1.00 224 -16 pinlabel sce (LM13700) {/Helvetica-Bold cf} 2 21 0 1.00 -16 16 label (Iabc1) {/Helvetica cf} 2 20 0 1.00 -240 240 label (Dbias1) {/Helvetica cf} 2 20 0 1.00 -240 176 label (1) {/Helvetica cf} (+) {/Symbol cf} (In) {/Helvetica cf} 6 20 0 1.00 -240 112 label (Out1) {/Helvetica cf} 2 20 0 1.00 -240 -16 label 1.000 0.000 0.000 scb (1) {/Helvetica cf} 2 23 0 1.00 -256 240 pinlabel (2) {/Helvetica cf} 2 23 0 1.00 -256 176 pinlabel (3) {/Helvetica cf} 2 23 0 1.00 -256 112 pinlabel (4) {/Helvetica cf} 2 23 0 1.00 -256 48 pinlabel (5) {/Helvetica cf} 2 23 0 1.00 -256 -16 pinlabel (14) {/Helvetica cf} 2 20 0 1.00 224 112 pinlabel (15) {/Helvetica cf} 2 20 0 1.00 224 176 pinlabel (16) {/Helvetica cf} 2 20 0 1.00 224 240 pinlabel sce (-) {/Symbol cf} (V) {/Helvetica cf} 4 20 0 1.00 -240 -80 label 1.000 0.000 0.000 scb (6) {/Helvetica cf} 2 23 0 1.00 -256 -80 pinlabel (13) {/Helvetica cf} 2 20 0 1.00 224 48 pinlabel sce (BufOut2) {/Helvetica cf} 2 23 0 1.00 208 -208 label 1.000 0.000 0.000 scb (9) {/Helvetica cf} 2 20 0 1.00 224 -208 pinlabel sce (1) {/Helvetica cf} (-) {/Symbol cf} (In) {/Helvetica cf} 6 20 0 1.00 -240 48 label (Iabc2) {/Helvetica cf} 2 23 0 1.00 208 240 label (Dbias2) {/Helvetica cf} 2 23 0 1.00 208 176 label (2) {/Helvetica cf} (+) {/Symbol cf} (In) {/Helvetica cf} 6 23 0 1.00 208 112 label (2) {/Helvetica cf} (-) {/Symbol cf} (In) {/Helvetica cf} 6 23 0 1.00 208 48 label sce mark v1 (pcb:U) {/Helvetica cf} ctmk 21 0 1.00 -16 -304 infolabel endgate } def /Resistor { % -14 -64 157 128 bbox (1.0) (k) (?) 3 beginparm 1 1.00 0 64 0 36 2 polygon 1 1.00 0 -64 0 -36 2 polygon 1 1.00 0 -36 14 -30 -14 -18 14 -6 -14 6 14 18 -14 30 0 36 8 polygon 1.000 0.000 0.000 scb (1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel (2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel sce mark v2 v1 ( %p1 %p2 ) v3 (spice:R) {/Times-Roman cf} ctmk 4 0 1.00 -208 -160 infolabel sce (sim:R %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel mark (W) {/Symbol cf} v2 {hS} v1 {/Times-Roman cf} ctmk 20 0 1.00 32 0 label sce mark v3 (pcb:R) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel endgate } def /gnd { % -32 -60 64 68 bbox % trivial begingate 1 1.00 0 0 0 -32 2 polygon 1 1.00 -32 -32 32 -32 2 polygon 1 1.00 -18 -46 18 -46 2 polygon 1 1.00 -4 -60 4 -60 2 polygon 1.000 0.000 0.000 scb (GND) {/Times-Roman cf} 2 1 0 1.00 0 0 pinglobal endgate } def /dot { % -10 -10 20 20 bbox % trivial begingate 248 1.00 0 0 6 0.00 360.00 xcarc 1.000 0.000 0.000 scb (x) {/Times-Roman cf} 2 29 0 1.00 0 0 pinlabel endgate } def /vdd { % -32 0 64 66 bbox % trivial begingate 1 1.00 0 0 0 32 2 polygon 1 1.00 -32 32 32 32 2 polygon (Vdd) {/Times-Roman cf} 2 17 0 0.90 0 38 label 1.000 0.000 0.000 scb (Vdd) {/Times-Roman cf} 2 13 0 1.00 0 0 pinglobal endgate } def %%Page: 1 1 %%PageOrientation: Portrait /pgsave save def bop % 1688 848 offsets 1.0000 inchscale 2.6000 setlinewidth 1.00 0 664 1648 [(5) ] PIC16C54 1.00 180 -24 2384 [(6) ] LTC490 1.00 0 712 -160 [(2) ] terminal_block 1.00 0 1800 944 [(7) ] LTC1152 1.00 0 -568 1296 [(3) ] DSUB9 1.00 180 1576 2192 [(1) ] Crystal 1.00 0 904 1088 [(2) ] ADC12138 1.00 -181 -56 1664 [(4) ] TK11950 1 1.00 1432 2288 1304 2288 1304 2208 1144 2208 4 polygon 1.00 -1 2072 1168 Capacitor 1.00 0 920 304 [(1) ] LM13700 1.00 0 1096 -160 [(1) ] terminal_block 1.00 0 1320 1424 Resistor 1.00 0 120 1984 Resistor 1.00 0 328 1456 Resistor 1.00 -1 -696 2064 Resistor 1.00 0 408 1600 Resistor 1.00 0 1384 992 Resistor 1.00 0 1784 2224 Capacitor 1.00 -1 1512 720 Capacitor 1.00 0 2088 832 Capacitor 1.00 0 -280 1456 Capacitor 1.00 0 504 416 Capacitor 1 1.00 664 544 504 544 504 480 3 polygon 1 1.00 504 352 504 224 664 224 3 polygon 1 1.00 -664 1328 -664 224 504 224 3 polygon 1.00 0 -664 224 gnd 1 1.00 664 160 -472 160 -472 1328 3 polygon 1 1.00 -696 2000 -696 1392 2 polygon 1 1.00 -440 2240 -504 2240 -504 1392 3 polygon 1 1.00 -440 2336 -568 2336 -568 1392 3 polygon 1 1.00 280 1664 408 1664 408 2336 -24 2336 4 polygon 1 1.00 -24 2048 344 2048 2 polygon 1 1.00 344 2048 344 1728 280 1728 3 polygon 1 1.00 328 1520 328 1600 280 1600 3 polygon 1 1.00 408 1664 408 1664 2 polygon 1 1.00 328 1520 408 1520 408 1536 3 polygon 1.00 -181 1704 1760 [(3) ] TK11950 1 1.00 1144 736 1352 736 2 polygon 1.00 0 1352 736 dot 1 1.00 1608 896 1384 896 1384 928 3 polygon 1 1.00 1608 1088 1384 1088 1384 1056 3 polygon 1 1.00 1992 992 2136 992 2136 1232 1384 1232 1384 1088 5 polygon 1.00 0 1384 1088 dot 1 1.00 -440 2144 -696 2144 -696 2128 3 polygon 1 1.00 -440 2048 -536 2048 -536 2000 -696 2000 4 polygon 1 1.00 -632 1392 -632 2144 2 polygon 1.00 0 -632 2144 dot 1.00 0 -696 2000 dot 1 1.00 -440 1392 -440 1888 408 1888 3 polygon 1.00 0 408 1888 dot 1.00 0 408 1664 dot 1.00 0 328 1520 dot 1 1.00 1144 2016 1368 2016 1368 2112 1432 2112 4 polygon 1 1.00 664 2016 568 2016 568 2432 1784 2432 1784 2288 1720 2288 6 polygon 1 1.00 1352 2016 1784 2016 1784 2160 3 polygon 1.00 0 1368 2016 dot 1 1.00 1144 1376 1240 1376 1240 2144 1144 2144 4 polygon 1 1.00 1144 1312 1224 1312 1224 1632 616 1632 616 1888 664 1888 6 polygon 1 1.00 1144 1248 1208 1248 1208 1616 600 1616 600 1824 664 1824 6 polygon 1 1.00 1144 1184 1192 1184 1192 1600 584 1600 584 1760 664 1760 6 polygon 1 1.00 1144 1120 1176 1120 1176 1584 568 1584 568 1696 664 1696 6 polygon 1 1.00 1144 1056 1256 1056 1256 1760 1144 1760 4 polygon 1 1.00 1144 992 1272 992 1272 1696 1144 1696 4 polygon 1 1.00 1144 2272 1208 2272 1208 2416 24 2416 24 2240 -24 2240 6 polygon 1 1.00 -24 2144 40 2144 40 2400 1176 2400 1176 2336 1144 2336 6 polygon 1 1.00 664 736 632 736 632 800 664 800 4 polygon 1 1.00 664 864 632 864 632 928 664 928 4 polygon 1 1.00 664 672 600 672 2 polygon 1.00 0 456 608 gnd 1.00 0 -280 1360 gnd 1 1.00 -280 1392 -440 1392 2 polygon 1.00 0 1368 2112 vdd 1 1.00 1992 800 2040 800 2040 768 2088 768 4 polygon 1.00 0 1512 640 dot 1 1.00 1608 800 1512 800 1512 784 3 polygon 1.00 0 2088 896 dot 1 1.00 1992 1088 2072 1088 2072 1104 3 polygon 1.00 0 2072 1232 dot 1 1.00 664 96 408 96 408 480 664 480 4 polygon 1 1.00 408 96 408 0 1208 0 1208 480 1128 480 5 polygon 1.00 0 408 96 dot 1 1.00 408 480 408 1040 536 1040 536 1440 664 1440 5 polygon 1.00 0 408 480 dot (Flare Genesis) {/Helvetica cf} 2 16 0 1.50 1896 432 label (LED Interface) {/Helvetica cf} 2 16 0 1.50 1896 336 label 1 1.00 664 416 632 416 632 16 712 16 712 -176 5 polygon 1 1.00 664 352 616 352 616 -176 3 polygon 1 1.00 1000 -176 1000 -16 1240 -16 1240 352 1144 352 5 polygon 1 1.00 1096 -176 1096 -32 1256 -32 1256 416 1144 416 5 polygon 1 1.00 1192 -176 1192 -288 344 -288 344 1072 504 1072 504 1248 664 1248 7 polygon 1 1.00 1144 288 1304 288 1304 -320 296 -320 296 1104 472 1104 472 1504 664 1504 8 polygon 1 1.00 1144 672 1288 672 1288 800 1144 800 4 polygon 1 1.00 1384 1072 1288 1072 1288 800 1192 800 4 polygon 1.00 0 1288 800 dot 1.00 0 1384 1072 dot 1 1.00 1144 864 1240 864 1240 928 1144 928 4 polygon 1 1.00 1560 848 1560 992 1608 992 3 polygon 1 1.00 1560 848 1352 848 1352 640 2136 640 2136 896 1992 896 6 polygon 1 1.00 1512 656 1512 640 2 polygon 1 1.00 1576 800 1576 720 2 polygon 1.00 0 1576 800 dot 1.00 0 1576 720 gnd 1 1.00 -392 1664 -440 1664 2 polygon 1.00 0 -440 1664 dot 1 1.00 -392 1728 -424 1728 -424 1856 472 1856 472 2144 664 2144 6 polygon 1 1.00 120 1920 120 1856 2 polygon 1.00 0 120 2048 dot 1.00 0 120 1856 dot 1 1.00 -392 1600 -408 1600 -408 1520 -280 1520 4 polygon 1 1.00 -280 1360 -280 1392 2 polygon 1.00 0 -280 1392 dot 1 1.00 328 1392 328 1248 -472 1248 3 polygon 1.00 0 -472 1248 dot 1 1.00 1144 224 1320 224 2 polygon 1 1.00 1176 224 1176 32 504 32 504 160 4 polygon 1.00 0 504 160 dot 1.00 0 1176 224 dot 1 1.00 1320 1360 1320 224 2 polygon 1 1.00 2136 1232 2136 1696 2040 1696 3 polygon 1.00 0 2136 1232 dot 1 1.00 2040 1760 2136 1760 2136 1936 1320 1936 1320 1760 1368 1760 6 polygon 1 1.00 1320 1488 1320 1584 2088 1584 2088 1824 2040 1824 5 polygon 1 1.00 664 992 600 992 600 1184 664 1184 4 polygon 1 1.00 664 1120 600 1120 2 polygon 1 1.00 664 1056 600 1056 2 polygon 1.00 0 600 1056 dot 1.00 0 600 1120 dot 1 1.00 600 992 600 608 2 polygon 1.00 0 600 672 dot 1.00 0 600 992 dot 1 1.00 1240 864 1240 608 456 608 3 polygon 1.00 0 600 608 dot 1.00 0 1240 864 dot (is not complete!) {CR} (this schematic) {/Helvetica cf} 4 16 0 1.00 1864 -80 label 0 1.00 1592 -176 1592 496 2456 496 2456 -176 4 polygon 1 1.00 1592 400 2456 400 2 polygon 1 1.00 1592 304 2456 304 2 polygon (1.0) {/Helvetica cf} 2 16 0 1.50 1896 240 label 1 1.00 1592 208 2456 208 2 polygon (Project:) {/Helvetica cf} 2 16 0 1.50 1624 432 label (Name:) {/Helvetica cf} 2 16 0 1.50 1624 336 label (Revision:) {/Helvetica cf} 2 16 0 1.50 1624 240 label (Design:) {/Helvetica cf} 2 16 0 1.50 1624 144 label (Date:) {/Helvetica cf} 2 16 0 1.50 1624 48 label (Notes:) {/Helvetica cf} 2 16 0 1.50 1624 -48 label 1 1.00 1592 112 2456 112 2 polygon 1 1.00 1592 16 2456 16 2 polygon (Harry Eaton) {/Helvetica cf} 2 16 0 1.50 1912 144 label 0 1.00 1576 -192 1576 512 2472 512 2472 -192 4 polygon 1.00 0 -664 224 dot pgsave restore showpage %%Trailer XCIRCsave restore %%EOF elvetica cf} 2 16 0 1.50 1624 336 label (Revision:) {/Helvetica cf} 2 16 0 1.50 1624 240 label (Design:) {/Helvetica cf} 2 16 0 1.50 1624 144 label (Date:) {/Helvetica cf} 2 16 0 1.50 1624 48 label (Notes:) {/Helvetica cf} 2 16 0 1.50 1624 -48 label 1 1.00 1592 112 2456 112 2 polygon 1 1.00 1592 16 2456 16 2 polygon (Harry Etutorial/pcb/LED000755 000466 000017 00000142311 07314705355 014024 0ustar00timusers000000 000000 # release: pcb 1.7.0.ALPHA # date: Sat Jan 16 20:06:58 1999 # user: root (root) # host: localhost PCB("" 3500 3300) Grid(5 0 0 0) Cursor(65 880 4) Flags(0x000001d0) Groups("4,5,6,c:1,2,3,s:8:7:") Styles("Signal,10,40,20:Power,25,60,35:Fat,40,60,35:Skinny,8,36,20") Symbol(' ' 18) ( ) Symbol('!' 12) ( SymbolLine(0 35 0 40 8) SymbolLine(0 0 0 25 8) ) Symbol('"' 12) ( SymbolLine(0 0 0 10 8) SymbolLine(10 0 10 10 8) ) Symbol('#' 12) ( SymbolLine(0 25 20 25 8) SymbolLine(0 15 20 15 8) SymbolLine(15 10 15 30 8) SymbolLine(5 10 5 30 8) ) Symbol('$' 12) ( SymbolLine(15 5 20 10 8) SymbolLine(5 5 15 5 8) SymbolLine(0 10 5 5 8) SymbolLine(0 10 0 15 8) SymbolLine(0 15 5 20 8) SymbolLine(5 20 15 20 8) SymbolLine(15 20 20 25 8) SymbolLine(20 25 20 30 8) SymbolLine(15 35 20 30 8) SymbolLine(5 35 15 35 8) SymbolLine(0 30 5 35 8) SymbolLine(10 0 10 40 8) ) Symbol('%' 12) ( SymbolLine(0 5 0 10 8) SymbolLine(0 5 5 0 8) SymbolLine(5 0 10 0 8) SymbolLine(10 0 15 5 8) SymbolLine(15 5 15 10 8) SymbolLine(10 15 15 10 8) SymbolLine(5 15 10 15 8) SymbolLine(0 10 5 15 8) SymbolLine(0 40 40 0 8) SymbolLine(35 40 40 35 8) SymbolLine(40 30 40 35 8) SymbolLine(35 25 40 30 8) SymbolLine(30 25 35 25 8) SymbolLine(25 30 30 25 8) SymbolLine(25 30 25 35 8) SymbolLine(25 35 30 40 8) SymbolLine(30 40 35 40 8) ) Symbol('&' 12) ( SymbolLine(0 35 5 40 8) SymbolLine(0 5 0 15 8) SymbolLine(0 5 5 0 8) SymbolLine(0 25 15 10 8) SymbolLine(5 40 10 40 8) SymbolLine(10 40 20 30 8) SymbolLine(0 15 25 40 8) SymbolLine(5 0 10 0 8) SymbolLine(10 0 15 5 8) SymbolLine(15 5 15 10 8) SymbolLine(0 25 0 35 8) ) Symbol(''' 12) ( SymbolLine(0 10 10 0 8) ) Symbol('(' 12) ( SymbolLine(0 35 5 40 8) SymbolLine(0 5 5 0 8) SymbolLine(0 5 0 35 8) ) Symbol(')' 12) ( SymbolLine(0 0 5 5 8) SymbolLine(5 5 5 35 8) SymbolLine(0 40 5 35 8) ) Symbol('*' 12) ( SymbolLine(0 10 20 30 8) SymbolLine(0 30 20 10 8) SymbolLine(0 20 20 20 8) SymbolLine(10 10 10 30 8) ) Symbol('+' 12) ( SymbolLine(0 20 20 20 8) SymbolLine(10 10 10 30 8) ) Symbol(',' 12) ( SymbolLine(0 50 10 40 8) ) Symbol('-' 12) ( SymbolLine(0 20 20 20 8) ) Symbol('.' 12) ( SymbolLine(0 40 5 40 8) ) Symbol('/' 12) ( SymbolLine(0 35 30 5 8) ) Symbol('0' 12) ( SymbolLine(0 35 5 40 8) SymbolLine(0 5 0 35 8) SymbolLine(0 5 5 0 8) SymbolLine(5 0 15 0 8) SymbolLine(15 0 20 5 8) SymbolLine(20 5 20 35 8) SymbolLine(15 40 20 35 8) SymbolLine(5 40 15 40 8) SymbolLine(0 30 20 10 8) ) Symbol('1' 12) ( SymbolLine(5 40 15 40 8) SymbolLine(10 0 10 40 8) SymbolLine(0 10 10 0 8) ) Symbol('2' 12) ( SymbolLine(0 5 5 0 8) SymbolLine(5 0 20 0 8) SymbolLine(20 0 25 5 8) SymbolLine(25 5 25 15 8) SymbolLine(0 40 25 15 8) SymbolLine(0 40 25 40 8) ) Symbol('3' 12) ( SymbolLine(0 5 5 0 8) SymbolLine(5 0 15 0 8) SymbolLine(15 0 20 5 8) SymbolLine(20 5 20 35 8) SymbolLine(15 40 20 35 8) SymbolLine(5 40 15 40 8) SymbolLine(0 35 5 40 8) SymbolLine(5 20 20 20 8) ) Symbol('4' 12) ( SymbolLine(0 20 20 0 8) SymbolLine(0 20 25 20 8) SymbolLine(20 0 20 40 8) ) Symbol('5' 12) ( SymbolLine(0 0 20 0 8) SymbolLine(0 0 0 20 8) SymbolLine(0 20 5 15 8) SymbolLine(5 15 15 15 8) SymbolLine(15 15 20 20 8) SymbolLine(20 20 20 35 8) SymbolLine(15 40 20 35 8) SymbolLine(5 40 15 40 8) SymbolLine(0 35 5 40 8) ) Symbol('6' 12) ( SymbolLine(15 0 20 5 8) SymbolLine(5 0 15 0 8) SymbolLine(0 5 5 0 8) SymbolLine(0 5 0 35 8) SymbolLine(0 35 5 40 8) SymbolLine(15 20 20 25 8) SymbolLine(0 20 15 20 8) SymbolLine(5 40 15 40 8) SymbolLine(15 40 20 35 8) SymbolLine(20 25 20 35 8) ) Symbol('7' 12) ( SymbolLine(0 40 25 15 8) SymbolLine(25 0 25 15 8) SymbolLine(0 0 25 0 8) ) Symbol('8' 12) ( SymbolLine(0 35 5 40 8) SymbolLine(0 25 0 35 8) SymbolLine(0 25 5 20 8) SymbolLine(5 20 15 20 8) SymbolLine(15 20 20 25 8) SymbolLine(20 25 20 35 8) SymbolLine(15 40 20 35 8) SymbolLine(5 40 15 40 8) SymbolLine(0 15 5 20 8) SymbolLine(0 5 0 15 8) SymbolLine(0 5 5 0 8) SymbolLine(5 0 15 0 8) SymbolLine(15 0 20 5 8) SymbolLine(20 5 20 15 8) SymbolLine(15 20 20 15 8) ) Symbol('9' 12) ( SymbolLine(0 40 20 20 8) SymbolLine(20 5 20 20 8) SymbolLine(15 0 20 5 8) SymbolLine(5 0 15 0 8) SymbolLine(0 5 5 0 8) SymbolLine(0 5 0 15 8) SymbolLine(0 15 5 20 8) SymbolLine(5 20 20 20 8) ) Symbol(':' 12) ( SymbolLine(0 15 5 15 8) SymbolLine(0 25 5 25 8) ) Symbol(';' 12) ( SymbolLine(0 40 10 30 8) SymbolLine(10 15 10 20 8) ) Symbol('<' 12) ( SymbolLine(0 20 10 10 8) SymbolLine(0 20 10 30 8) ) Symbol('=' 12) ( SymbolLine(0 15 20 15 8) SymbolLine(0 25 20 25 8) ) Symbol('>' 12) ( SymbolLine(0 10 10 20 8) SymbolLine(0 30 10 20 8) ) Symbol('?' 12) ( SymbolLine(10 20 10 25 8) SymbolLine(10 35 10 40 8) SymbolLine(0 5 0 10 8) SymbolLine(0 5 5 0 8) SymbolLine(5 0 15 0 8) SymbolLine(15 0 20 5 8) SymbolLine(20 5 20 10 8) SymbolLine(10 20 20 10 8) ) Symbol('A' 12) ( SymbolLine(0 5 0 40 8) SymbolLine(0 5 5 0 8) SymbolLine(5 0 20 0 8) SymbolLine(20 0 25 5 8) SymbolLine(25 5 25 40 8) SymbolLine(0 20 25 20 8) ) Symbol('B' 12) ( SymbolLine(0 40 20 40 8) SymbolLine(20 40 25 35 8) SymbolLine(25 25 25 35 8) SymbolLine(20 20 25 25 8) SymbolLine(5 20 20 20 8) SymbolLine(5 0 5 40 8) SymbolLine(0 0 20 0 8) SymbolLine(20 0 25 5 8) SymbolLine(25 5 25 15 8) SymbolLine(20 20 25 15 8) ) Symbol('C' 12) ( SymbolLine(5 40 20 40 8) SymbolLine(0 35 5 40 8) SymbolLine(0 5 0 35 8) SymbolLine(0 5 5 0 8) SymbolLine(5 0 20 0 8) ) Symbol('D' 12) ( SymbolLine(5 0 5 40 8) SymbolLine(20 0 25 5 8) SymbolLine(25 5 25 35 8) SymbolLine(20 40 25 35 8) SymbolLine(0 40 20 40 8) SymbolLine(0 0 20 0 8) ) Symbol('E' 12) ( SymbolLine(0 20 15 20 8) SymbolLine(0 40 20 40 8) SymbolLine(0 0 0 40 8) SymbolLine(0 0 20 0 8) ) Symbol('F' 12) ( SymbolLine(0 0 0 40 8) SymbolLine(0 0 20 0 8) SymbolLine(0 20 15 20 8) ) Symbol('G' 12) ( SymbolLine(20 0 25 5 8) SymbolLine(5 0 20 0 8) SymbolLine(0 5 5 0 8) SymbolLine(0 5 0 35 8) SymbolLine(0 35 5 40 8) SymbolLine(5 40 20 40 8) SymbolLine(20 40 25 35 8) SymbolLine(25 25 25 35 8) SymbolLine(20 20 25 25 8) SymbolLine(10 20 20 20 8) ) Symbol('H' 12) ( SymbolLine(0 0 0 40 8) SymbolLine(25 0 25 40 8) SymbolLine(0 20 25 20 8) ) Symbol('I' 12) ( SymbolLine(0 0 10 0 8) SymbolLine(5 0 5 40 8) SymbolLine(0 40 10 40 8) ) Symbol('J' 12) ( SymbolLine(0 0 15 0 8) SymbolLine(15 0 15 35 8) SymbolLine(10 40 15 35 8) SymbolLine(5 40 10 40 8) SymbolLine(0 35 5 40 8) ) Symbol('K' 12) ( SymbolLine(0 0 0 40 8) SymbolLine(0 20 20 0 8) SymbolLine(0 20 20 40 8) ) Symbol('L' 12) ( SymbolLine(0 0 0 40 8) SymbolLine(0 40 20 40 8) ) Symbol('M' 12) ( SymbolLine(0 0 0 40 8) SymbolLine(0 0 15 15 8) SymbolLine(15 15 30 0 8) SymbolLine(30 0 30 40 8) ) Symbol('N' 12) ( SymbolLine(0 0 0 40 8) SymbolLine(0 0 0 5 8) SymbolLine(0 5 25 30 8) SymbolLine(25 0 25 40 8) ) Symbol('O' 12) ( SymbolLine(0 5 0 35 8) SymbolLine(0 5 5 0 8) SymbolLine(5 0 15 0 8) SymbolLine(15 0 20 5 8) SymbolLine(20 5 20 35 8) SymbolLine(15 40 20 35 8) SymbolLine(5 40 15 40 8) SymbolLine(0 35 5 40 8) ) Symbol('P' 12) ( SymbolLine(5 0 5 40 8) SymbolLine(0 0 20 0 8) SymbolLine(20 0 25 5 8) SymbolLine(25 5 25 15 8) SymbolLine(20 20 25 15 8) SymbolLine(5 20 20 20 8) ) Symbol('Q' 12) ( SymbolLine(0 5 0 35 8) SymbolLine(0 5 5 0 8) SymbolLine(5 0 15 0 8) SymbolLine(15 0 20 5 8) SymbolLine(20 5 20 35 8) SymbolLine(15 40 20 35 8) SymbolLine(5 40 15 40 8) SymbolLine(0 35 5 40 8) SymbolLine(10 30 20 40 8) ) Symbol('R' 12) ( SymbolLine(0 0 20 0 8) SymbolLine(20 0 25 5 8) SymbolLine(25 5 25 15 8) SymbolLine(20 20 25 15 8) SymbolLine(5 20 20 20 8) SymbolLine(5 0 5 40 8) SymbolLine(5 20 25 40 8) ) Symbol('S' 12) ( SymbolLine(20 0 25 5 8) SymbolLine(5 0 20 0 8) SymbolLine(0 5 5 0 8) SymbolLine(0 5 0 15 8) SymbolLine(0 15 5 20 8) SymbolLine(5 20 20 20 8) SymbolLine(20 20 25 25 8) SymbolLine(25 25 25 35 8) SymbolLine(20 40 25 35 8) SymbolLine(5 40 20 40 8) SymbolLine(0 35 5 40 8) ) Symbol('T' 12) ( SymbolLine(0 0 20 0 8) SymbolLine(10 0 10 40 8) ) Symbol('U' 12) ( SymbolLine(0 0 0 35 8) SymbolLine(0 35 5 40 8) SymbolLine(5 40 15 40 8) SymbolLine(15 40 20 35 8) SymbolLine(20 0 20 35 8) ) Symbol('V' 12) ( SymbolLine(0 0 0 30 8) SymbolLine(0 30 10 40 8) SymbolLine(10 40 20 30 8) SymbolLine(20 0 20 30 8) ) Symbol('W' 12) ( SymbolLine(0 0 0 40 8) SymbolLine(0 40 15 25 8) SymbolLine(15 25 30 40 8) SymbolLine(30 0 30 40 8) ) Symbol('X' 12) ( SymbolLine(0 0 0 5 8) SymbolLine(0 5 25 30 8) SymbolLine(25 30 25 40 8) SymbolLine(0 30 0 40 8) SymbolLine(0 30 25 5 8) SymbolLine(25 0 25 5 8) ) Symbol('Y' 12) ( SymbolLine(0 0 0 5 8) SymbolLine(0 5 10 15 8) SymbolLine(10 15 20 5 8) SymbolLine(20 0 20 5 8) SymbolLine(10 15 10 40 8) ) Symbol('Z' 12) ( SymbolLine(0 0 25 0 8) SymbolLine(25 0 25 5 8) SymbolLine(0 30 25 5 8) SymbolLine(0 30 0 40 8) SymbolLine(0 40 25 40 8) ) Symbol('[' 12) ( SymbolLine(0 0 5 0 8) SymbolLine(0 0 0 40 8) SymbolLine(0 40 5 40 8) ) Symbol('\' 12) ( SymbolLine(0 5 30 35 8) ) Symbol(']' 12) ( SymbolLine(0 0 5 0 8) SymbolLine(5 0 5 40 8) SymbolLine(0 40 5 40 8) ) Symbol('^' 12) ( SymbolLine(0 5 5 0 8) SymbolLine(5 0 10 5 8) ) Symbol('_' 12) ( SymbolLine(0 40 20 40 8) ) Symbol('a' 12) ( SymbolLine(15 20 20 25 8) SymbolLine(5 20 15 20 8) SymbolLine(0 25 5 20 8) SymbolLine(0 25 0 35 8) SymbolLine(0 35 5 40 8) SymbolLine(20 20 20 35 8) SymbolLine(20 35 25 40 8) SymbolLine(5 40 15 40 8) SymbolLine(15 40 20 35 8) ) Symbol('b' 12) ( SymbolLine(0 0 0 40 8) SymbolLine(0 35 5 40 8) SymbolLine(5 40 15 40 8) SymbolLine(15 40 20 35 8) SymbolLine(20 25 20 35 8) SymbolLine(15 20 20 25 8) SymbolLine(5 20 15 20 8) SymbolLine(0 25 5 20 8) ) Symbol('c' 12) ( SymbolLine(5 20 20 20 8) SymbolLine(0 25 5 20 8) SymbolLine(0 25 0 35 8) SymbolLine(0 35 5 40 8) SymbolLine(5 40 20 40 8) ) Symbol('d' 12) ( SymbolLine(20 0 20 40 8) SymbolLine(15 40 20 35 8) SymbolLine(5 40 15 40 8) SymbolLine(0 35 5 40 8) SymbolLine(0 25 0 35 8) SymbolLine(0 25 5 20 8) SymbolLine(5 20 15 20 8) SymbolLine(15 20 20 25 8) ) Symbol('e' 12) ( SymbolLine(5 40 20 40 8) SymbolLine(0 35 5 40 8) SymbolLine(0 25 0 35 8) SymbolLine(0 25 5 20 8) SymbolLine(5 20 15 20 8) SymbolLine(15 20 20 25 8) SymbolLine(0 30 20 30 8) SymbolLine(20 30 20 25 8) ) Symbol('f' 10) ( SymbolLine(5 5 5 40 8) SymbolLine(5 5 10 0 8) SymbolLine(10 0 15 0 8) SymbolLine(0 20 10 20 8) ) Symbol('g' 12) ( SymbolLine(15 20 20 25 8) SymbolLine(5 20 15 20 8) SymbolLine(0 25 5 20 8) SymbolLine(0 25 0 35 8) SymbolLine(0 35 5 40 8) SymbolLine(5 40 15 40 8) SymbolLine(15 40 20 35 8) SymbolLine(0 50 5 55 8) SymbolLine(5 55 15 55 8) SymbolLine(15 55 20 50 8) SymbolLine(20 20 20 50 8) ) Symbol('h' 12) ( SymbolLine(0 0 0 40 8) SymbolLine(0 25 5 20 8) SymbolLine(5 20 15 20 8) SymbolLine(15 20 20 25 8) SymbolLine(20 25 20 40 8) ) Symbol('i' 10) ( SymbolLine(0 10 0 15 8) SymbolLine(0 25 0 40 8) ) Symbol('j' 10) ( SymbolLine(5 10 5 15 8) SymbolLine(5 25 5 50 8) SymbolLine(0 55 5 50 8) ) Symbol('k' 12) ( SymbolLine(0 0 0 40 8) SymbolLine(0 25 15 40 8) SymbolLine(0 25 10 15 8) ) Symbol('l' 10) ( SymbolLine(0 0 0 35 8) SymbolLine(0 35 5 40 8) ) Symbol('m' 12) ( SymbolLine(5 25 5 40 8) SymbolLine(5 25 10 20 8) SymbolLine(10 20 15 20 8) SymbolLine(15 20 20 25 8) SymbolLine(20 25 20 40 8) SymbolLine(20 25 25 20 8) SymbolLine(25 20 30 20 8) SymbolLine(30 20 35 25 8) SymbolLine(35 25 35 40 8) SymbolLine(0 20 5 25 8) ) Symbol('n' 12) ( SymbolLine(5 25 5 40 8) SymbolLine(5 25 10 20 8) SymbolLine(10 20 15 20 8) SymbolLine(15 20 20 25 8) SymbolLine(20 25 20 40 8) SymbolLine(0 20 5 25 8) ) Symbol('o' 12) ( SymbolLine(0 25 0 35 8) SymbolLine(0 25 5 20 8) SymbolLine(5 20 15 20 8) SymbolLine(15 20 20 25 8) SymbolLine(20 25 20 35 8) SymbolLine(15 40 20 35 8) SymbolLine(5 40 15 40 8) SymbolLine(0 35 5 40 8) ) Symbol('p' 12) ( SymbolLine(5 25 5 55 8) SymbolLine(0 20 5 25 8) SymbolLine(5 25 10 20 8) SymbolLine(10 20 20 20 8) SymbolLine(20 20 25 25 8) SymbolLine(25 25 25 35 8) SymbolLine(20 40 25 35 8) SymbolLine(10 40 20 40 8) SymbolLine(5 35 10 40 8) ) Symbol('q' 12) ( SymbolLine(20 25 20 55 8) SymbolLine(15 20 20 25 8) SymbolLine(5 20 15 20 8) SymbolLine(0 25 5 20 8) SymbolLine(0 25 0 35 8) SymbolLine(0 35 5 40 8) SymbolLine(5 40 15 40 8) SymbolLine(15 40 20 35 8) ) Symbol('r' 12) ( SymbolLine(5 25 5 40 8) SymbolLine(5 25 10 20 8) SymbolLine(10 20 20 20 8) SymbolLine(0 20 5 25 8) ) Symbol('s' 12) ( SymbolLine(5 40 20 40 8) SymbolLine(20 40 25 35 8) SymbolLine(20 30 25 35 8) SymbolLine(5 30 20 30 8) SymbolLine(0 25 5 30 8) SymbolLine(0 25 5 20 8) SymbolLine(5 20 20 20 8) SymbolLine(20 20 25 25 8) SymbolLine(0 35 5 40 8) ) Symbol('t' 10) ( SymbolLine(5 0 5 35 8) SymbolLine(5 35 10 40 8) SymbolLine(0 15 10 15 8) ) Symbol('u' 12) ( SymbolLine(0 20 0 35 8) SymbolLine(0 35 5 40 8) SymbolLine(5 40 15 40 8) SymbolLine(15 40 20 35 8) SymbolLine(20 20 20 35 8) ) Symbol('v' 12) ( SymbolLine(0 20 0 30 8) SymbolLine(0 30 10 40 8) SymbolLine(10 40 20 30 8) SymbolLine(20 20 20 30 8) ) Symbol('w' 12) ( SymbolLine(0 20 0 35 8) SymbolLine(0 35 5 40 8) SymbolLine(5 40 10 40 8) SymbolLine(10 40 15 35 8) SymbolLine(15 20 15 35 8) SymbolLine(15 35 20 40 8) SymbolLine(20 40 25 40 8) SymbolLine(25 40 30 35 8) SymbolLine(30 20 30 35 8) ) Symbol('x' 12) ( SymbolLine(0 20 20 40 8) SymbolLine(0 40 20 20 8) ) Symbol('y' 12) ( SymbolLine(0 20 0 35 8) SymbolLine(0 35 5 40 8) SymbolLine(20 20 20 50 8) SymbolLine(15 55 20 50 8) SymbolLine(5 55 15 55 8) SymbolLine(0 50 5 55 8) SymbolLine(5 40 15 40 8) SymbolLine(15 40 20 35 8) ) Symbol('z' 12) ( SymbolLine(0 20 20 20 8) SymbolLine(0 40 20 20 8) SymbolLine(0 40 20 40 8) ) Symbol('{' 12) ( SymbolLine(5 5 10 0 8) SymbolLine(5 5 5 15 8) SymbolLine(0 20 5 15 8) SymbolLine(0 20 5 25 8) SymbolLine(5 25 5 35 8) SymbolLine(5 35 10 40 8) ) Symbol('|' 12) ( SymbolLine(0 0 0 40 8) ) Symbol('}' 12) ( SymbolLine(0 0 5 5 8) SymbolLine(5 5 5 15 8) SymbolLine(5 15 10 20 8) SymbolLine(5 25 10 20 8) SymbolLine(5 25 5 35 8) SymbolLine(0 40 5 35 8) ) Symbol('~' 12) ( SymbolLine(0 25 5 20 8) SymbolLine(5 20 10 20 8) SymbolLine(10 20 15 25 8) SymbolLine(15 25 20 25 8) SymbolLine(20 25 25 20 8) ) Via(2075 1455 50 30 28 "" 0x12120002) Via(1790 1570 50 30 28 "" 0x12120002) Via(1450 1575 50 30 28 "" 0x12120002) Via(1070 1265 50 30 28 "" 0x00000002) Via(1520 2495 50 30 28 "" 0x00000002) Via(465 3015 110 30 110 "" 0x0000000a) Via(1605 2660 50 30 28 "" 0x00000002) Via(1985 1300 50 30 28 "" 0x00000002) Via(465 605 110 30 110 "" 0x0000000a) Via(2965 595 110 30 110 "" 0x0000000a) Via(2965 3005 110 30 110 "" 0x0000000a) Via(1185 2660 50 30 28 "" 0x00000002) Element(0x00000000 "3 TERM BLOCK" "J2" "DK ED1602-ND" 1695 2925 -590 76 0 150 0x00000000) ( Pin(0 0 110 30 140 48 "1" "1" 0x00000001) Pin(-194 0 110 30 140 48 "2" "2" 0x00000001) Pin(-388 0 110 30 140 48 "3" "3" 0x00000001) ElementLine (-388 160 -388 140 10) ElementLine (-194 160 -194 140 10) ElementLine (0 160 0 140 10) ElementLine (81 -170 101 -170 10) ElementLine (81 -190 81 -170 10) ElementLine (101 -190 81 -190 10) ElementLine (-509 -170 -489 -170 10) ElementLine (-509 -190 -509 -170 10) ElementLine (-489 -190 -509 -190 10) ElementLine (101 -200 101 160 10) ElementLine (-489 -200 101 -200 10) ElementLine (-489 160 -489 -200 10) ElementLine (101 160 -489 160 10) ) Element(0x00000000 "RS422 Transciever" "U6" "LTC490" 1005 895 -505 -55 0 150 0x00000000) ( Pin(0 0 60 30 90 28 "Vcc" "1" 0x00000101) Pin(0 -100 60 30 90 28 "R" "2" 0x00000001) Pin(0 -200 60 30 90 28 "D" "3" 0x00000001) Pin(0 -300 60 30 90 28 "GND" "4" 0x00000001) Pin(-300 -300 60 30 90 28 "Y" "5" 0x00000001) Pin(-300 -200 60 30 90 28 "Z" "6" 0x00000001) Pin(-300 -100 60 30 90 28 "B" "7" 0x00000001) Pin(-300 0 60 30 90 28 "A" "8" 0x00000001) ElementLine (50 50 50 -350 10) ElementLine (50 -350 -350 -350 10) ElementLine (-350 -350 -350 50 10) ElementLine (50 50 -100 50 10) ElementLine (-200 50 -350 50 10) ElementArc (-150 50 50 50 180 180 10) ) Element(0x00000000 "PIC16C54A" "U5" "PIC16C54" 1195 860 465 80 0 150 0x00000000) ( Pin(0 0 60 30 90 28 "RA2" "1" 0x00000101) Pin(100 0 60 30 90 28 "RA3" "2" 0x00000001) Pin(200 0 60 30 90 28 "RTCC" "3" 0x00000001) Pin(300 0 60 30 90 28 "/MCLR" "4" 0x00000001) Pin(400 0 60 30 90 28 "Vss" "5" 0x00000001) Pin(500 0 60 30 90 28 "RB0" "6" 0x00000001) Pin(600 0 60 30 90 28 "RB1" "7" 0x00000001) Pin(700 0 60 30 90 28 "RB2" "8" 0x00000001) Pin(800 0 60 30 90 28 "RB3" "9" 0x00000001) Pin(800 -300 60 30 90 28 "RB4" "10" 0x00000001) Pin(700 -300 60 30 90 28 "RB5" "11" 0x00000001) Pin(600 -300 60 30 90 28 "RB6" "12" 0x00000001) Pin(500 -300 60 30 90 28 "RB7" "13" 0x00000001) Pin(400 -300 60 30 90 28 "Vdd" "14" 0x00000001) Pin(300 -300 60 30 90 28 "OSC2/CLKOUT" "15" 0x00000001) Pin(200 -300 60 30 90 28 "OSC1/CLKIN" "16" 0x00000001) Pin(100 -300 60 30 90 28 "RA0" "17" 0x00000001) Pin(0 -300 60 30 90 28 "RA1" "18" 0x00000001) ElementLine (-50 50 850 50 10) ElementLine (850 50 850 -350 10) ElementLine (850 -350 -50 -350 10) ElementLine (-50 50 -50 -100 10) ElementLine (-50 -200 -50 -350 10) ElementArc (-50 -150 50 50 90 180 10) ) Element(0x00000000 "SMD Cap" "C17" "" 2155 815 -90 -329 0 150 0x00000000) ( Pin(0 0 80 30 110 35 "1" "1" 0x00000001) Pin(0 -200 80 30 110 35 "2" "2" 0x00000001) ElementLine (-50 50 50 50 10) ElementLine (50 50 50 -250 10) ElementLine (50 -250 -50 -250 10) ElementLine (-50 -250 -50 50 10) ) Element(0x00000000 "SMD 0805" "C13" "" 2525 1510 -30 45 0 150 0x00000000) ( Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) Pad(0 -90 0 -90 60 30 90 "2" "2" 0x00000100) ElementLine (-35 -125 -35 35 10) ElementLine (35 -125 -35 -125 10) ElementLine (35 35 35 -125 10) ElementLine (-35 35 35 35 10) ) Element(0x00000010 "SMD 0805" "C16" "" 1080 1355 -15 -115 0 150 0x00000000) ( Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) Pad(90 0 90 0 60 30 90 "2" "2" 0x00000100) ElementLine (125 -35 -35 -35 10) ElementLine (125 35 125 -35 10) ElementLine (-35 35 125 35 10) ElementLine (-35 -35 -35 35 10) ) Element(0x00000000 "SMD 0805" "C14" "" 1175 1690 -195 20 0 150 0x00000000) ( Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) Pad(0 90 0 90 60 30 90 "2" "2" 0x00000100) ElementLine (35 125 35 -35 10) ElementLine (-35 125 35 125 10) ElementLine (-35 -35 -35 125 10) ElementLine (35 -35 -35 -35 10) ) Element(0x00000000 "SMD Cap" "C15" "" 1280 1785 65 -174 0 150 0x00000000) ( Pin(0 0 80 30 110 35 "1" "1" 0x02000001) Pin(0 -200 80 30 110 35 "2" "2" 0x00000001) ElementLine (-50 50 50 50 10) ElementLine (50 50 50 -250 10) ElementLine (50 -250 -50 -250 10) ElementLine (-50 -250 -50 50 10) ) Element(0x00000010 "SMD 0805" "C10" "" 2095 1310 -190 -60 0 150 0x00000000) ( Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) Pad(90 0 90 0 60 30 90 "2" "2" 0x00000100) ElementLine (125 -35 -35 -35 10) ElementLine (125 35 125 -35 10) ElementLine (-35 35 125 35 10) ElementLine (-35 -35 -35 35 10) ) Element(0x00000000 "SMD Cap" "C12" "" 2345 1320 -35 -129 0 150 0x00000000) ( Pin(0 0 80 30 110 35 "1" "1" 0x00000001) Pin(200 0 80 30 110 35 "2" "2" 0x02020001) ElementLine (-50 -50 -50 50 10) ElementLine (-50 50 250 50 10) ElementLine (250 50 250 -50 10) ElementLine (250 -50 -50 -50 10) ) Element(0x00000000 "R 0.25W" "R13" "100" 1130 1435 230 65 0 150 0x00000000) ( Pin(0 0 60 30 90 28 "1" "1" 0x00000101) Pin(400 0 60 30 90 28 "2" "2" 0x10000001) ElementLine (100 -50 300 -50 10) ElementLine (300 -50 300 50 10) ElementLine (300 50 100 50 10) ElementLine (100 50 100 -50 10) ElementLine (40 0 100 0 10) ElementLine (300 0 360 0 10) ) Element(0x00000000 "R 0.25W" "R14" "100" 1105 1075 -265 60 0 150 0x00000000) ( Pin(0 0 60 30 90 28 "1" "1" 0x00000001) Pin(-400 0 60 30 90 28 "2" "2" 0x00000001) ElementLine (-100 50 -300 50 10) ElementLine (-300 50 -300 -50 10) ElementLine (-300 -50 -100 -50 10) ElementLine (-100 -50 -100 50 10) ElementLine (-40 0 -100 0 10) ElementLine (-300 0 -360 0 10) ) Element(0x00000000 "R 0.5W" "R11" "" 2815 1700 60 -90 0 150 0x00000000) ( Pin(0 0 85 30 115 48 "1" "1" 0x00000101) Pin(0 -800 85 30 115 48 "2" "2" 0x00000001) ElementLine (0 -60 0 -115 10) ElementLine (-115 -115 115 -115 10) ElementLine (115 -115 115 -685 10) ElementLine (115 -685 -115 -685 10) ElementLine (-115 -685 -115 -115 10) ElementLine (0 -685 0 -750 10) ) Element(0x00000000 "TK11950" "U3" "5.0V" 2235 1510 -139 -2 0 150 0x00000000) ( Pad(-7 0 8 0 24 30 54 "NOISE BYPASS" "1" 0x00000100) Pad(-7 37 8 37 24 30 54 "CONTROL" "2" 0x00000100) Pad(-7 75 8 75 24 30 54 "RESET OUT" "3" 0x00000100) Pad(119 75 134 75 24 30 54 "VO" "4" 0x00000100) Pad(119 37 134 37 24 30 54 "GND" "5" 0x00000100) Pad(119 0 134 0 24 30 54 "VIN" "6" 0x00000100) ElementLine (0 -22 0 -34 10) ElementLine (0 -34 132 -34 10) ElementLine (132 -34 132 -22 10) ElementLine (0 96 0 108 10) ElementLine (0 108 132 108 10) ElementLine (132 108 132 96 10) ElementLine (13 -24 119 -24 10) ) Element(0x00000000 "TK11950" "U4" "5.0V" 1180 1590 -254 -132 0 150 0x00000000) ( Pad(7 0 -8 0 24 30 54 "NOISE BYPASS" "1" 0x00000100) Pad(7 -37 -8 -37 24 30 54 "CONTROL" "2" 0x00000100) Pad(7 -75 -8 -75 24 30 54 "RESET OUT" "3" 0x00000100) Pad(-119 -75 -134 -75 24 30 54 "VO" "4" 0x00000100) Pad(-119 -37 -134 -37 24 30 54 "GND" "5" 0x00000100) Pad(-119 0 -134 0 24 30 54 "VIN" "6" 0x00000100) ElementLine (0 22 0 34 10) ElementLine (0 34 -132 34 10) ElementLine (-132 34 -132 22 10) ElementLine (0 -96 0 -108 10) ElementLine (0 -108 -132 -108 10) ElementLine (-132 -108 -132 -96 10) ElementLine (-13 24 -119 24 10) ) Element(0x00000000 "SMD 0805" "C5" "" 1495 1315 -225 -30 0 150 0x00000000) ( Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) Pad(-90 0 -90 0 60 30 90 "2" "2" 0x00000100) ElementLine (-125 35 35 35 10) ElementLine (-125 -35 -125 35 10) ElementLine (35 -35 -125 -35 10) ElementLine (35 35 35 -35 10) ) Element(0x00000010 "SMD 0805" "C11" "" 2270 1420 -260 -30 0 150 0x00000000) ( Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) Pad(-90 0 -90 0 60 30 90 "2" "2" 0x00000100) ElementLine (-125 35 35 35 10) ElementLine (-125 -35 -125 35 10) ElementLine (35 -35 -125 -35 10) ElementLine (35 35 35 -35 10) ) Element(0x00000000 "SMD Cap" "C9" "" 2030 1185 -145 -40 0 150 0x00000000) ( Pin(0 0 80 30 110 35 "1" "1" 0x20200001) Pin(200 0 80 30 110 35 "2" "2" 0x02020001) ElementLine (0 45 0 50 10) ElementLine (0 50 200 50 10) ElementLine (200 50 200 45 10) ElementLine (200 -45 200 -50 10) ElementLine (200 -50 0 -50 10) ElementLine (0 -50 0 -45 10) ) Element(0x00000000 "R 0.25W" "R7" "100" 1655 2065 150 -30 0 150 0x00000000) ( Pin(0 0 60 30 90 28 "1" "1" 0x02000001) Pin(400 0 60 30 90 28 "2" "2" 0x02020001) ElementLine (100 -50 300 -50 10) ElementLine (300 -50 300 50 10) ElementLine (300 50 100 50 10) ElementLine (100 50 100 -50 10) ElementLine (40 0 100 0 10) ElementLine (300 0 360 0 10) ) Element(0x00000000 "SMD Cap" "C8" "" 2030 1075 65 -124 0 150 0x00000000) ( Pin(0 0 80 30 110 35 "1" "1" 0x20200001) Pin(200 0 80 30 110 35 "2" "2" 0x02020001) ElementLine (-50 -50 -50 50 10) ElementLine (-50 50 250 50 10) ElementLine (250 50 250 -50 10) ElementLine (250 -50 -50 -50 10) ) Element(0x00000000 "SMD Cap" "C7" "" 1530 1075 -370 -144 0 150 0x00000000) ( Pin(0 0 80 30 110 35 "1" "1" 0x20200001) Pin(-200 0 80 30 110 35 "2" "2" 0x10100001) ElementLine (50 50 50 -50 10) ElementLine (50 -50 -250 -50 10) ElementLine (-250 -50 -250 50 10) ElementLine (-250 50 50 50 10) ) Element(0x00000000 "SMD Cap" "C2" "" 1945 1845 65 -19 0 150 0x00000000) ( Pin(0 0 80 30 110 35 "1" "1" 0x02000101) Pin(-200 0 80 30 110 35 "2" "2" 0x02000001) ElementLine (50 50 50 -50 10) ElementLine (50 -50 -250 -50 10) ElementLine (-250 -50 -250 50 10) ElementLine (-250 50 50 50 10) ) Element(0x00000000 "SMD Cap" "C6" "" 1530 1185 -335 -30 0 150 0x00000000) ( Pin(0 0 80 30 110 35 "1" "1" 0x20200001) Pin(-200 0 80 30 110 35 "2" "2" 0x10100001) ElementLine (0 -45 0 -50 10) ElementLine (0 -50 -200 -50 10) ElementLine (-200 -50 -200 -45 10) ElementLine (-200 45 -200 50 10) ElementLine (-200 50 0 50 10) ElementLine (0 50 0 45 10) ) Element(0x00000000 "SMD Cap" "C1" "" 1490 1950 -40 71 0 150 0x00000000) ( Pin(0 0 80 30 110 35 "1" "1" 0x00000101) Pin(0 -200 80 30 110 35 "2" "2" 0x02000001) ElementLine (-50 50 50 50 10) ElementLine (50 50 50 -250 10) ElementLine (50 -250 -50 -250 10) ElementLine (-50 -250 -50 50 10) ) Element(0x00000000 "R 0.25W" "R6" "100" 2375 1680 65 115 0 150 0x00000000) ( Pin(0 0 60 30 90 28 "1" "1" 0x02000101) Pin(0 400 60 30 90 28 "2" "2" 0x02000001) ElementLine (50 100 50 300 10) ElementLine (50 300 -50 300 10) ElementLine (-50 300 -50 100 10) ElementLine (-50 100 50 100 10) ElementLine (0 40 0 100 10) ElementLine (0 300 0 360 10) ) Element(0x00000000 "R 0.25W" "R8" "100" 2270 1680 -30 245 1 150 0x00000000) ( Pin(0 0 60 30 90 28 "1" "1" 0x02000101) Pin(0 400 60 30 90 28 "2" "2" 0x02000001) ElementLine (50 100 50 300 10) ElementLine (50 300 -50 300 10) ElementLine (-50 300 -50 100 10) ElementLine (-50 100 50 100 10) ElementLine (0 40 0 100 10) ElementLine (0 300 0 360 10) ) Element(0x00000000 "R 0.25W" "R5" "100" 1375 1750 -170 175 0 150 0x00000000) ( Pin(0 0 60 30 90 28 "1" "1" 0x00000101) Pin(0 400 60 30 90 28 "2" "2" 0x00000001) ElementLine (50 100 50 300 10) ElementLine (50 300 -50 300 10) ElementLine (-50 300 -50 100 10) ElementLine (-50 100 50 100 10) ElementLine (0 40 0 100 10) ElementLine (0 300 0 360 10) ) Element(0x00000000 "R 0.25W" "R9" "100" 1655 2170 125 -25 0 150 0x00000000) ( Pin(0 0 60 30 90 28 "1" "1" 0x02000001) Pin(400 0 60 30 90 28 "2" "2" 0x02020001) ElementLine (100 -50 300 -50 10) ElementLine (300 -50 300 50 10) ElementLine (300 50 100 50 10) ElementLine (100 50 100 -50 10) ElementLine (40 0 100 0 10) ElementLine (300 0 360 0 10) ) Element(0x00000000 "R 0.25W" "R10" "100" 2160 1675 -30 275 1 150 0x00000000) ( Pin(0 0 60 30 90 28 "1" "1" 0x02000101) Pin(0 400 60 30 90 28 "2" "2" 0x02020001) ElementLine (50 100 50 300 10) ElementLine (50 300 -50 300 10) ElementLine (-50 300 -50 100 10) ElementLine (-50 100 50 100 10) ElementLine (0 40 0 100 10) ElementLine (0 300 0 360 10) ) Element(0x00000000 "ADC12138CIMSA" "U2" "ADC12138" 1630 1690 105 -449 0 150 0x00000000) ( Pad(0 30 0 -30 12 30 42 "CH0" "1" 0x00000100) Pad(26 30 26 -30 12 30 42 "CH1" "2" 0x00000100) Pad(51 30 51 -30 12 30 42 "CH2" "3" 0x00000100) Pad(77 30 77 -30 12 30 42 "CH3" "4" 0x00000100) Pad(102 30 102 -30 12 30 42 "CH4" "5" 0x00000100) Pad(128 30 128 -30 12 30 42 "CH5" "6" 0x00000100) Pad(154 30 154 -30 12 30 42 "CH6" "7" 0x00000100) Pad(179 30 179 -30 12 30 42 "CH7" "8" 0x00000100) Pad(205 30 205 -30 12 30 42 "COM" "9" 0x00000100) Pad(230 30 230 -30 12 30 42 "MuOut1" "10" 0x00000100) Pad(256 30 256 -30 12 30 42 "A/Din1" "11" 0x00000100) Pad(281 30 281 -30 12 30 42 "MuxOut2" "12" 0x00000100) Pad(307 30 307 -30 12 30 42 "A/Din2" "13" 0x00000100) Pad(333 30 333 -30 12 30 42 "DGND" "14" 0x00000100) Pad(333 -350 333 -290 12 30 42 "VA+" "15" 0x00000100) Pad(307 -350 307 -290 12 30 42 "Vref-" "16" 0x00000100) Pad(281 -350 281 -290 12 30 42 "Vref+" "17" 0x00000100) Pad(256 -350 256 -290 12 30 42 "AGND" "18" 0x00000100) Pad(230 -350 230 -290 12 30 42 "PD" "19" 0x00000100) Pad(205 -350 205 -290 12 30 42 "EOC" "20" 0x00000100) Pad(179 -350 179 -290 12 30 42 "~CONV" "21" 0x00000100) Pad(154 -350 154 -290 12 30 42 "~CS" "22" 0x00000100) Pad(128 -350 128 -290 12 30 42 "DO" "23" 0x00000100) Pad(102 -350 102 -290 12 30 42 "DI" "24" 0x00000100) Pad(77 -350 77 -290 12 30 42 "SCLK" "25" 0x00000100) Pad(51 -350 51 -290 12 30 42 "CCLK" "26" 0x00000100) Pad(26 -350 26 -290 12 30 42 "~DOR" "27" 0x00000100) Pad(0 -350 0 -290 12 30 42 "VD+" "28" 0x00000100) ElementLine (0 -70 0 -70 30) ElementLine (-12 -54 -37 -54 10) ElementLine (-37 -54 -37 -266 10) ElementLine (-37 -266 -12 -266 10) ElementLine (343 -54 370 -54 10) ElementLine (370 -54 370 -266 10) ElementLine (370 -266 343 -266 10) ) Element(0x00000000 "R 0.25W" "R4" "100" 1615 1955 130 -35 0 150 0x00000000) ( Pin(0 0 60 30 90 28 "1" "1" 0x00000101) Pin(400 0 60 30 90 28 "2" "2" 0x02000001) ElementLine (100 -50 300 -50 10) ElementLine (300 -50 300 50 10) ElementLine (300 50 100 50 10) ElementLine (100 50 100 -50 10) ElementLine (40 0 100 0 10) ElementLine (300 0 360 0 10) ) Element(0x00000010 "SMD 0805" "C4" "" 2070 2390 -25 -180 0 115 0x00000000) ( Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) Pad(0 -90 0 -90 60 30 90 "2" "2" 0x00000100) ElementLine (-35 -125 -35 35 10) ElementLine (35 -125 -35 -125 10) ElementLine (35 35 35 -125 10) ElementLine (-35 35 35 35 10) ) Element(0x00000000 "R 0.25W" "R1" "100" 2180 2625 -35 -145 1 150 0x00000000) ( Pin(0 0 60 30 90 28 "1" "1" 0x00000101) Pin(0 -400 60 30 90 28 "2" "2" 0x02000001) ElementLine (-50 -100 -50 -300 10) ElementLine (-50 -300 50 -300 10) ElementLine (50 -300 50 -100 10) ElementLine (50 -100 -50 -100 10) ElementLine (0 -40 0 -100 10) ElementLine (0 -300 0 -360 10) ) Element(0x00000000 "R 0.25W" "R2" "100" 2400 2625 60 -100 0 150 0x00000000) ( Pin(0 0 60 30 90 28 "1" "1" 0x00000101) Pin(0 -400 60 30 90 28 "2" "2" 0x02000001) ElementLine (-50 -100 -50 -300 10) ElementLine (-50 -300 50 -300 10) ElementLine (50 -300 50 -100 10) ElementLine (50 -100 -50 -100 10) ElementLine (0 -40 0 -100 10) ElementLine (0 -300 0 -360 10) ) Element(0x00000000 "LM13700" "U1" "LM13700" 1955 2285 -475 -130 0 150 0x00000000) ( Pin(0 0 60 30 90 28 "Iabc1" "1" 0x02000101) Pin(-100 0 60 30 90 28 "Dbias1" "2" 0x00000001) Pin(-200 0 60 30 90 28 "In+1" "3" 0x00000001) Pin(-300 0 60 30 90 28 "In-1" "4" 0x00000001) Pin(-400 0 60 30 90 28 "Out1" "5" 0x00000001) Pin(-500 0 60 30 90 28 "V-" "6" 0x00000001) Pin(-600 0 60 30 90 28 "BufIn1" "7" 0x00000001) Pin(-700 0 60 30 90 28 "BufOut1" "8" 0x00000001) Pin(-700 300 60 30 90 28 "BufOut2" "9" 0x00000001) Pin(-600 300 60 30 90 28 "BufIn2" "10" 0x00000001) Pin(-500 300 60 30 90 28 "V+" "11" 0x00000001) Pin(-400 300 60 30 90 28 "Out2" "12" 0x00000001) Pin(-300 300 60 30 90 28 "In-2" "13" 0x00000001) Pin(-200 300 60 30 90 28 "In+2" "14" 0x00000001) Pin(-100 300 60 30 90 28 "Dbias2" "15" 0x00000001) Pin(0 300 60 30 90 28 "Iabc2" "16" 0x00000001) ElementLine (50 -50 -750 -50 10) ElementLine (-750 -50 -750 350 10) ElementLine (-750 350 50 350 10) ElementLine (50 -50 50 100 10) ElementLine (50 200 50 350 10) ElementArc (50 150 50 50 270 180 10) ) Element(0x00000000 "R 0.25W" "R3" "100" 2290 2625 -30 -135 1 150 0x00000000) ( Pin(0 0 60 30 90 28 "1" "1" 0x00000101) Pin(0 -400 60 30 90 28 "2" "2" 0x02000001) ElementLine (-50 -100 -50 -300 10) ElementLine (-50 -300 50 -300 10) ElementLine (50 -300 50 -100 10) ElementLine (50 -100 -50 -100 10) ElementLine (0 -40 0 -100 10) ElementLine (0 -300 0 -360 10) ) Element(0x00000000 "SMD 0805" "C3" "" 2075 2510 -40 140 0 150 0x00000000) ( Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) Pad(0 90 0 90 60 30 90 "2" "2" 0x00000100) ElementLine (35 125 35 -35 10) ElementLine (-35 125 35 125 10) ElementLine (-35 -35 -35 125 10) ElementLine (35 -35 -35 -35 10) ) Element(0x00000000 "CTX169" "X1" "20 MHz" 2330 910 425 -215 0 150 0x00000000) ( Pin(0 -60 60 30 90 28 "NC" "1" 0x00000101) Pin(300 -60 60 30 90 28 "GND" "2" 0x00000001) Pin(300 -360 60 30 90 28 "OUT" "3" 0x00000001) Pin(0 -360 60 30 90 28 "Vdd" "4" 0x00000001) ElementLine (-110 50 -110 -410 10) ElementLine (-60 -460 350 -460 10) ElementLine (400 -410 400 0 10) ElementLine (350 50 -110 50 10) ElementArc (-60 -410 50 50 270 90 10) ElementArc (350 -410 50 50 180 90 10) ElementArc (350 0 50 50 90 90 10) ) Element(0x00000000 "SMD Cap" "C21" "" 2565 1070 -50 61 0 150 0x00000000) ( Pin(0 0 80 30 110 35 "1" "1" 0x00000001) Pin(-200 0 80 30 110 35 "2" "2" 0x02020001) ElementLine (50 50 50 -50 10) ElementLine (50 -50 -250 -50 10) ElementLine (-250 -50 -250 50 10) ElementLine (-250 50 50 50 10) ) Element(0x00000000 "SMD 0805" "C20" "" 2665 2375 -115 55 0 150 0x00000000) ( Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) Pad(-90 0 -90 0 60 30 90 "2" "2" 0x00000100) ElementLine (-125 35 35 35 10) ElementLine (-125 -35 -125 35 10) ElementLine (35 -35 -125 -35 10) ElementLine (35 35 35 -35 10) ) Element(0x00000000 "SMD 0805" "C19" "" 2785 2375 -20 55 0 150 0x00000000) ( Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) Pad(90 0 90 0 60 30 90 "2" "2" 0x00000100) ElementLine (125 -35 -35 -35 10) ElementLine (125 35 125 -35 10) ElementLine (-35 35 125 35 10) ElementLine (-35 -35 -35 35 10) ) Element(0x00000000 "SMD 0805" "C18" "" 2665 1800 155 -20 0 150 0x00000000) ( Pad(0 0 0 0 60 30 90 "1" "1" 0x00000100) Pad(90 0 90 0 60 30 90 "2" "2" 0x00000100) ElementLine (125 -35 -35 -35 10) ElementLine (125 35 125 -35 10) ElementLine (-35 35 125 35 10) ElementLine (-35 -35 -35 35 10) ) Element(0x00000000 "AMP 745781-4" "J3" "A2100-ND" 820 1610 -125 837 0 150 0x00000000) ( Pin(0 432 80 30 110 42 "1" "1" 0x00000101) Pin(0 324 80 30 110 42 "2" "2" 0x00000001) Pin(0 216 80 30 110 42 "3" "3" 0x00000001) Pin(0 108 80 30 110 42 "4" "4" 0x00000001) Pin(0 0 80 30 110 42 "5" "5" 0x00000001) Pin(-112 378 80 30 110 42 "6" "6" 0x00000001) Pin(-112 270 80 30 110 42 "7" "7" 0x00000001) Pin(-112 162 80 30 110 42 "8" "8" 0x00000001) Pin(-112 54 80 30 110 42 "9" "9" 0x00000001) Pin(-56 -276 120 30 150 120 "MOUNT HOLE" "10" 0x00000009) Pin(-56 708 120 30 150 120 "MOUNT HOLE" "11" 0x00000009) ElementLine (-317 -390 58 -390 10) ElementLine (-317 -138 -317 -390 10) ElementLine (-433 455 -434 -22 10) ElementLine (-317 823 -317 571 10) ElementLine (58 823 -317 823 10) ElementLine (58 -390 58 823 10) ElementArc (-375 -138 58 58 90 90 10) ElementArc (-375 -22 58 58 270 90 10) ElementArc (-375 455 58 58 0 90 10) ElementArc (-375 571 58 58 180 90 10) ) Element(0x00000000 "3 TERM BLOCK" "J1" "DK ED1602-ND" 2285 2925 140 51 0 150 0x00000000) ( Pin(0 0 110 30 140 48 "1" "1" 0x00000001) Pin(-194 0 110 30 140 48 "2" "2" 0x00000001) Pin(-388 0 110 30 140 48 "3" "3" 0x00000001) ElementLine (-388 160 -388 140 10) ElementLine (-194 160 -194 140 10) ElementLine (0 160 0 140 10) ElementLine (81 -170 101 -170 10) ElementLine (81 -190 81 -170 10) ElementLine (101 -190 81 -190 10) ElementLine (-509 -170 -489 -170 10) ElementLine (-509 -190 -509 -170 10) ElementLine (-489 -190 -509 -190 10) ElementLine (101 -200 101 160 10) ElementLine (-489 -200 101 -200 10) ElementLine (-489 160 -489 -200 10) ElementLine (101 160 -489 160 10) ) Element(0x00000000 "OP-AMP" "U7" "LTC1152" 2575 1925 380 200 0 150 0x00000000) ( Pin(0 0 60 30 90 28 "SHDN" "1" 0x02000101) Pin(0 100 60 30 90 28 "-IN" "2" 0x02000001) Pin(0 200 60 30 90 28 "+IN" "3" 0x02000001) Pin(0 300 60 30 90 28 "V-" "4" 0x02020001) Pin(300 300 60 30 90 28 "COMP" "5" 0x02000001) Pin(300 200 60 30 90 28 "OUT" "6" 0x02000001) Pin(300 100 60 30 90 28 "V+" "7" 0x02000001) Pin(300 0 60 30 90 28 "CP" "8" 0x02000001) ElementLine (-50 -50 -50 350 10) ElementLine (-50 350 350 350 10) ElementLine (350 350 350 -50 10) ElementLine (-50 -50 100 -50 10) ElementLine (200 -50 350 -50 10) ElementArc (150 -50 50 50 0 180 10) ) Element(0x00000000 "R 0.5W" "R12" "" 1035 1935 -205 700 0 150 0x00000000) ( Pin(0 0 85 30 115 48 "1" "1" 0x00000101) Pin(0 800 90 30 120 48 "2" "2" 0x00000001) ElementLine (0 60 0 115 10) ElementLine (115 115 -115 115 10) ElementLine (-115 115 -115 685 10) ElementLine (-115 685 115 685 10) ElementLine (115 685 115 115 10) ElementLine (0 685 0 750 10) ) Rat(1187 1553 0 1061 1553 0 0x00000010) Rat(1045 1820 1 1175 1780 0 0x00000010) Rat(1330 1185 1 1405 1315 0 0x00000010) Rat(2075 1455 1 2180 1420 0 0x00000010) Rat(2180 1420 0 2185 1310 0 0x00000010) Rat(2228 1547 0 2354 1547 0 0x00000010) Layer(1 "solder") ( Line(1945 1015 1945 1260 15 30 0x00000000) Line(1615 1960 1555 1960 10 30 0x00000000) Line(1185 2230 1185 2655 15 30 0x00000000) Line(705 795 890 980 15 30 0x00000000) Line(1405 955 1485 875 15 30 0x00000000) Line(1005 695 1140 560 15 30 0x00000000) Line(1005 795 1135 665 15 30 0x00000000) Line(705 895 705 1075 15 30 0x00000000) Line(1125 1435 1005 1315 15 30 0x00000000) Line(1005 1235 1065 1175 15 30 0x00000000) Line(1010 980 1105 1075 15 30 0x00000000) Line(1345 955 1405 955 15 30 0x00000000) Line(1065 1175 1125 1175 15 30 0x00000000) Line(1190 665 1295 560 15 30 0x00000000) Line(1375 1750 1375 2040 15 30 0x00000000) Line(1605 2435 1605 2660 10 30 0x00000000) Line(1655 2285 1520 2420 15 30 0x00000000) Line(1375 2040 1185 2230 15 30 0x00000000) Line(1135 665 1190 665 15 30 0x00000000) Line(1105 1075 970 1210 15 30 0x00000000) Line(890 980 1010 980 15 30 0x00000000) Line(2460 965 1995 965 15 30 0x00000000) Line(1855 2285 1855 2585 15 30 0x00000000) Line(970 1210 970 1568 15 30 0x00000000) Line(1520 2420 1520 2495 15 30 0x00000000) Line(1755 2285 1605 2435 10 30 0x00000000) Line(1995 965 1945 1015 15 30 0x00000000) Line(1005 1315 1005 1235 15 30 0x00000000) Line(2565 1070 2460 965 15 30 0x00000000) Line(1945 1260 1985 1300 15 30 0x00000000) Line(1125 1175 1345 955 15 30 0x00000000) Line(2400 2625 2290 2625 10 30 0x00000000) Line(970 1568 820 1718 15 30 0x00000000) Line(1140 560 1195 560 15 30 0x00000000) Line(1555 1960 1555 2285 10 30 0x00000000) Text(525 2805 0 120 "LED (BACK)" 0x00000080) ) Layer(2 "GND-solder") ( Line(820 2045 920 2145 35 30 0x00000040) Line(930 1820 930 1932 30 30 0x00000000) Line(1280 1585 1045 1820 30 30 0x00000000) Line(1045 1820 930 1820 30 30 0x00000000) Line(930 1932 820 2042 30 30 0x00000000) Line(2155 815 2120 780 40 30 0x00000000) Line(1675 780 1595 860 40 30 0x00000000) Line(2630 850 2535 755 40 30 0x00000000) Line(2120 780 1675 780 40 30 0x00000000) Line(2215 755 2155 815 40 30 0x00000000) Line(2535 755 2215 755 40 30 0x00000000) Polygon(0x00000010) ( (1125 2635) (1125 2235) (1330 2030) (1330 1705) (1430 1705) (1430 1635) (1400 1635) (1400 1560) (1240 1720) (1115 1845) (1115 2010) (1030 2010) (895 2145) (895 2635) ) Polygon(0x00000010) ( (1430 1885) (1570 1885) (1670 1885) (1670 2000) (1590 2000) (1590 2235) (1925 2235) (1925 2525) (2645 2525) (2645 1250) (2405 1250) (2405 1340) (2370 1375) (2320 1375) (2285 1340) (2285 1305) (2300 1290) (2300 1290) (2300 1135) (2430 1135) (2430 1005) (2090 1005) (2090 1280) (2000 1370) (2000 1515) (1370 1515) (1370 1640) (1430 1640) ) Polygon(0x00000010) ( (2635 1250) (2635 1615) (2895 1615) (2895 1785) (2750 1785) (2750 2520) (2975 2520) (2975 1250) ) ) Layer(3 "Vcc-solder") ( Line(1455 2780 2695 2780 35 30 0x00000000) Line(1035 2735 1445 2735 45 30 0x00000000) Line(2340 1195 2815 1195 30 30 0x00000000) Line(2815 1195 2815 900 30 30 0x00000000) Line(1530 1180 1530 1435 30 30 0x00000000) Line(1070 1265 1525 1265 35 30 0x00000000) Line(1145 765 1395 765 35 30 0x00000000) Line(1010 900 1145 765 35 30 0x00000000) Line(1395 765 1595 565 35 30 0x00000000) Line(2155 615 2110 660 40 30 0x00000000) Line(1695 660 1595 560 40 30 0x00000000) Line(2330 550 2155 615 45 30 0x00000000) Line(2110 660 1695 660 40 30 0x00000000) Line(2340 1315 2340 1195 30 30 0x00000000) Line(2695 1700 2810 1700 30 30 0x00000000) Line(1455 2585 1355 2285 45 30 0x00000000) Line(1455 2590 1455 2780 35 30 0x00000000) Line(2695 2780 2695 1700 30 30 0x00000000) ) Layer(4 "component") ( Line(685 2450 585 2350 35 30 0x00000000) Line(2975 1480 2565 1070 15 30 0x00000000) Line(2975 2025 2975 1480 15 30 0x00000000) Line(2875 2125 2975 2025 15 30 0x00000000) Line(980 1270 980 1774 15 30 0x00000000) Line(585 1787 708 1664 35 30 0x00000000) Line(2675 2125 2575 2025 15 30 0x00000000) Line(2120 2285 2180 2225 15 30 0x00000000) Line(2055 720 2055 895 10 30 0x00000000) Line(1835 1285 1835 1340 10 30 0x00000000) Line(1860 1261 1835 1285 10 30 0x00000000) Line(1860 1035 1860 1261 10 30 0x00000000) Line(2090 655 2090 910 10 30 0x00000000) Line(1995 560 2090 655 10 30 0x00000000) Line(1809 1263 1809 1340 10 30 0x00000000) Line(1829 1244 1809 1263 10 30 0x00000000) Line(1829 1024 1829 1244 10 30 0x00000000) Line(1991 959 1893 959 10 30 0x00000000) Line(2235 1500 2235 1475 15 30 0x00000000) Line(2055 895 1991 959 10 30 0x00000000) Line(2075 2515 2075 2415 30 30 0x00000000) Line(1490 1950 1505 1950 10 30 0x00000000) Line(2075 2415 1520 2415 30 30 0x00000000) Line(2175 2145 2205 2145 15 30 0x00000000) Line(1655 1800 1656 1720 10 30 0x00000000) Line(1490 1950 1490 2150 15 30 0x00000000) Line(1745 1845 1635 1955 15 30 0x00000000) Line(1775 1780 1707 1780 10 30 0x00000000) Line(1655 2170 1945 2170 15 30 0x00000000) Line(1950 2285 2070 2285 15 30 0x00000000) Line(1655 2170 1635 2150 15 30 0x00000000) Line(1655 2065 1835 1885 15 30 0x00000000) Line(2015 1955 2255 1955 15 30 0x00000000) Line(2180 2625 2290 2625 15 30 0x00000000) Line(2075 2615 1985 2615 15 30 0x00000000) Line(2125 2585 2290 2420 10 30 0x00000000) Line(2205 2145 2270 2080 15 30 0x00000000) Line(1315 2225 1255 2285 15 30 0x00000000) Line(1855 2285 1795 2225 15 30 0x00000000) Line(2125 2615 2125 2585 10 30 0x00000000) Line(2495 2530 2400 2625 15 30 0x00000000) Line(1795 2225 1315 2225 15 30 0x00000000) Line(1520 2415 1455 2285 30 30 0x00000000) Line(2440 2110 2345 2205 15 30 0x00000000) Line(1490 1750 1600 1750 10 30 0x00000000) Line(2075 2615 2125 2615 10 30 0x00000000) Line(2875 1800 2755 1800 15 30 0x00000000) Line(1635 2150 1375 2150 15 30 0x00000000) Line(1835 1840 1775 1780 10 30 0x00000000) Line(2000 2225 2095 2225 15 30 0x00000000) Line(1732 1750 1732 1720 10 30 0x00000000) Line(1911 1720 1937 1720 10 30 0x00000000) Line(1985 1300 1937 1300 10 30 0x00000000) Line(2015 985 1909 985 10 30 0x00000000) Line(1860 1720 1886 1720 10 30 0x00000000) Line(1745 1845 1681 1845 10 30 0x00000000) Line(1950 1840 1835 1840 15 30 0x00000000) Line(1707 1780 1707 1720 10 30 0x00000000) Line(1681 1845 1681 1720 10 30 0x00000000) Line(1122 2585 1122 2740 15 30 0x00000000) Line(2070 2285 2120 2285 15 30 0x00000000) Line(1490 1750 1375 1750 15 30 0x00000000) Line(1950 1840 2015 1955 15 30 0x00000000) Line(1635 1955 1615 1955 10 30 0x00000000) Line(2160 1750 1732 1750 10 30 0x00000000) Line(2160 1675 2440 1955 15 30 0x00000000) Line(2160 1680 2160 1750 10 30 0x00000000) Line(1945 2170 2000 2225 15 30 0x00000000) Line(1505 1950 1655 1800 10 30 0x00000000) Line(1190 1595 1190 1675 15 30 0x00000000) Line(1190 1510 1190 1435 15 30 0x00000000) Line(1190 1435 1130 1435 15 30 0x00000000) Line(1695 860 1695 1276 10 30 0x00000000) Line(1795 860 1732 923 10 30 0x00000000) Line(1797 1015 1797 1225 10 30 0x00000000) Line(1995 860 1927 927 10 30 0x00000000) Line(1495 560 1646 711 10 30 0x00000000) Line(1657 973 1657 1279 10 30 0x00000000) Line(1657 1279 1681 1303 10 30 0x00000000) Line(1681 1303 1681 1340 10 30 0x00000000) Line(1927 927 1885 927 10 30 0x00000000) Line(1895 860 1758 997 10 30 0x00000000) Line(1732 923 1732 1340 10 30 0x00000000) Line(1893 959 1829 1024 10 30 0x00000000) Line(1646 962 1657 973 10 30 0x00000000) Line(1797 1225 1784 1239 10 30 0x00000000) Line(1646 711 1646 962 10 30 0x00000000) Line(1895 560 2055 720 10 30 0x00000000) Line(1885 927 1797 1015 10 30 0x00000000) Line(2090 910 2015 985 10 30 0x00000000) Line(1985 2615 1955 2585 15 30 0x00000000) Line(1758 997 1758 1340 10 30 0x00000000) Line(1707 1288 1707 1340 10 30 0x00000000) Line(2235 1475 2275 1435 15 30 0x00000000) Line(1909 985 1860 1035 10 30 0x00000000) Line(1005 1195 1005 895 35 30 0x00000000) Line(1060 1255 1005 1195 35 30 0x00000000) Line(585 2350 585 1787 35 30 0x00000000) Line(705 595 875 765 15 30 0x00000000) Line(795 785 795 1155 15 30 0x00000000) Line(2555 475 1480 475 15 30 0x00000000) Line(2630 550 2555 475 15 30 0x00000000) Line(1455 2285 1290 2450 35 30 0x00000000) Line(875 765 875 1165 15 30 0x00000000) Line(705 695 795 785 15 30 0x00000000) Line(980 1774 820 1934 15 30 0x00000000) Line(705 1075 635 1145 15 30 0x00000000) Line(2290 2420 2290 2225 10 30 0x00000000) Line(1480 475 1395 560 15 30 0x00000000) Line(635 1425 820 1610 15 30 0x00000000) Line(875 1165 980 1270 15 30 0x00000000) Line(2095 2225 2175 2145 15 30 0x00000000) Line(1290 2450 685 2450 35 30 0x00000000) Line(1600 1750 1630 1720 10 30 0x00000000) Line(1897 2827 1897 2925 15 30 0x00000000) Line(915 1731 820 1826 15 30 0x00000000) Line(915 1275 915 1731 15 30 0x00000000) Line(1755 2585 2091 2925 15 30 0x00000000) Line(1501 2764 1501 2925 15 30 0x00000000) Line(1655 2585 1897 2827 15 30 0x00000000) Line(1182 2525 1122 2585 15 30 0x00000000) Line(1520 2495 1490 2525 15 30 0x00000000) Line(1490 2525 1182 2525 15 30 0x00000000) Line(1605 2660 1501 2764 15 30 0x00000000) Line(1185 2655 1485 2655 15 30 0x00000000) Line(1485 2655 1555 2585 15 30 0x00000000) Line(1122 2740 1307 2925 15 30 0x00000000) Line(2255 1955 2375 2075 15 30 0x00000000) Line(2440 1955 2440 2110 15 30 0x00000000) Line(2345 2865 2285 2925 15 30 0x00000000) Line(2345 2205 2345 2865 15 30 0x00000000) Line(2785 2215 2785 2375 15 30 0x00000000) Line(795 1155 915 1275 15 30 0x00000000) Line(2875 2225 2875 2375 15 30 0x00000000) Line(1784 1239 1784 1340 10 30 0x00000000) Line(2575 2125 2495 2215 15 30 0x00000000) Line(2665 2375 2785 2375 15 30 0x00000000) Line(2575 2225 2575 2375 15 30 0x00000000) Line(2495 2215 2495 2530 15 30 0x00000000) Line(2875 1925 2875 1800 15 30 0x00000000) Line(2875 2125 2785 2215 15 30 0x00000000) Line(1937 1300 1937 1340 10 30 0x00000000) Line(2875 2125 2675 2125 15 30 0x00000000) Line(635 1145 635 1425 15 30 0x00000000) Line(1835 1885 1835 1840 15 30 0x00000000) Line(1695 1276 1707 1288 10 30 0x00000000) Text(2515 2705 0 140 "LED rev 1" 0x00000000) ) Layer(5 "GND-component") ( Line(1505 950 1595 860 30 30 0x00000000) Line(1440 950 1505 950 30 30 0x00000000) Line(2220 1545 2155 1545 20 30 0x00000000) Line(2515 1350 2515 1415 30 30 0x00000000) Line(1200 1350 1230 1350 35 30 0x00000000) Line(1860 1395 1860 1430 10 30 0x00000000) Line(1965 1495 1965 1635 25 30 0x00000000) Line(1855 1495 1965 1495 25 30 0x00000000) Line(1835 1665 1835 1625 10 30 0x00000000) Line(1885 1395 1885 1460 10 30 0x00000000) Line(1965 1660 1965 1635 10 30 0x00000000) Line(1810 1665 1810 1630 10 30 0x00000000) Line(1785 1660 1785 1625 10 30 0x00000000) Line(1760 1625 1760 1660 10 30 0x00000000) Line(1280 1580 1280 1490 25 30 0x00000000) Line(1195 1555 1280 1555 20 30 0x00000000) Line(2545 1320 2515 1350 30 30 0x00000000) Line(1005 595 1085 595 30 30 0x00000000) Line(1085 595 1085 955 30 30 0x00000000) Line(1085 955 1145 1015 30 30 0x00000000) Line(1145 1015 1245 1015 30 30 0x00000000) Arc(1445 995 45 45 30 30 270 90 0x00000000) Polygon(0x00000010) ( (2250 1535) (2270 1535) (2270 1485) (2325 1485) (2325 1535) (2345 1535) (2345 1560) (2325 1560) (2325 1630) (2160 1630) (2160 1610) (2270 1610) (2270 1560) (2250 1560) ) Polygon(0x00000010) ( (1995 1470) (1880 1470) (1880 1450) (2015 1450) (2015 1365) (2160 1365) (2160 1330) (2195 1330) (2195 1425) (2160 1460) (2160 1630) (2070 1630) (2070 1720) (1995 1720) ) Polygon(0x00000010) ( (1370 1635) (1930 1635) (1930 1525) (1370 1525) ) Polygon(0x00000010) ( (1865 1510) (1225 1510) (1225 995) (1415 995) (1415 1255) (1365 1255) (1365 1365) (1605 1365) (1605 1415) (1865 1415) ) Polygon(0x00000000) ( (1360 1295) (1390 1295) (1390 1335) (1360 1335) ) Polygon(0x00000010) ( (1070 1565) (1090 1565) (1090 1810) (1150 1810) (1150 1765) (1125 1740) (1125 1640) (1145 1640) (1145 1565) (1165 1565) (1165 1540) (1145 1540) (1145 1485) (1090 1485) (1090 1540) (1070 1540) ) ) Layer(6 "Vcc-component") ( Line(1045 1870 1045 1935 25 30 0x00000000) Line(708 2155 708 1988 40 30 0x00000000) Line(2575 1925 2490 2010 25 30 0x00000000) Line(1630 1340 1630 1250 10 30 0x00000000) Line(1910 1430 1965 1430 10 30 0x00000000) Line(1910 1395 1910 1430 10 30 0x00000000) Line(1200 2355 1000 2155 35 30 0x00000000) Line(2575 1925 2485 1835 25 30 0x00000000) Line(1070 1265 1070 1330 25 30 0x00000000) Line(2360 1500 2360 1315 25 30 0x00000000) Line(2445 1250 2445 1675 30 30 0x00000000) Line(2100 1250 2445 1250 30 30 0x00000000) Line(1910 1340 1910 1250 10 30 0x00000000) Line(1965 1430 1965 1400 10 30 0x00000000) Line(2375 1585 2440 1585 25 30 0x00000000) Line(2665 1835 2575 1925 30 30 0x00000000) Line(1120 1875 1190 1875 20 30 0x00000000) Line(1045 1595 1045 1875 20 30 0x00000000) Line(1045 1875 1120 1875 20 30 0x00000000) Line(2875 2025 2675 2025 25 30 0x00000000) Line(1285 2355 1200 2355 35 30 0x00000000) Line(1355 2285 1285 2355 35 30 0x00000000) Line(2675 2025 2575 1925 25 30 0x00000000) Line(1000 2155 708 2155 40 30 0x00000000) Line(1060 1510 1060 1375 25 30 0x00000000) Line(1190 1875 1280 1785 20 30 0x00000000) Line(2490 2010 2490 2135 25 30 0x00000000) Line(2450 1510 2495 1510 35 30 0x00000000) Line(2485 1835 2485 1680 25 30 0x00000000) Line(2485 1680 2375 1680 25 30 0x00000000) Line(2665 1800 2665 1835 30 30 0x00000000) Line(2375 1680 2270 1680 30 30 0x00000000) Line(2490 2135 2400 2225 25 30 0x00000000) Polygon(0x00000000) ( (1500 1255) (1530 1255) (1530 1295) (1500 1295) ) Polygon(0x00000010) ( (1445 1255) (1635 1255) (1635 995) (1635 995) (1635 995) (1635 995) (1635 995) (1445 995) ) Polygon(0x00000010) ( (1885 1260) (2120 1260) (2120 1005) (1921 1003) (1885 1039) ) Polygon(0x00000000) ( (2080 1250) (2110 1250) (2110 1295) (2080 1295) ) ) Layer(7 "unused") ( ) Layer(8 "unused") ( Line(3135 3225 345 3225 35 30 0x00000000) Line(3135 210 3135 3225 35 30 0x00000000) Line(345 210 3135 210 35 30 0x00000000) Line(345 3225 345 210 35 30 0x00000000) ) Layer(9 "silk") ( ) Layer(10 "silk") ( Text(2210 3120 0 115 "ANODE" 0x00000400) Text(1855 3125 0 115 "-Y" 0x00000400) Text(2045 3130 0 115 "+Y" 0x00000400) Text(1255 3125 0 115 "-X" 0x00000400) Text(1455 3125 0 115 "+X" 0x00000400) Text(525 295 0 280 "FLARE GENESIS" 0x00000400) Text(435 2815 0 165 "LED Interface" 0x00000400) Text(1885 285 0 295 "harry eaton" 0x00000400) ) ) Line(3135 210 3135 3225 35 30 0x00000000) Line(345 210 3135 210 35 30 0x00000000) Line(345 3225 345 210 35 30 0x00000000) ) Layer(9 "silk") ( ) Layer(10 "silk") ( Text(2210 3120 0 115 "ANODE" 0x00000400) Text(1855 3125 0 115 "-Y" 0x00000400) Text(2045 3130 0 115 "+Y" 0x00000400) Text(1255 3125 0 115 "tutorial/pcb/LED.NET000755 000466 000017 00000002756 07314705405 014455 0ustar00timusers000000 000000 AGND C8-2 C9-2 C10-2 C11-2 C12-2 C13-2 C20-2 C21-2 R7-2 R9-2 \ R10-2 U2-6 U2-7 U2-8 U2-9 U2-18 U3-2 U3-5 U7-4 DGND C5-2 C6-2 C7-2 C14-2 C15-2 C16-2 C17-1 J3-1 U2-14 U2-19 \ U4-2 U4-5 U5-5 U6-4 X1-2 Minus12V C3-1 C4-1 J3-9 U1-6 Plus12V J3-6 R11-1 R12-2 U1-7 U1-11 S00001 C8-1 C9-1 C10-1 C13-1 C18-1 R2-2 R6-1 R8-1 U2-15 U2-17 \ U3-4 U7-1 U7-7 SIG10 Skinny U1-2 U1-8 U1-15 SIG41 Power C3-2 R3-2 U1-16 SIG43 C4-2 R1-2 U1-1 SIG49 C2-1 R4-2 R6-2 R7-1 U2-4 SIG50 C2-2 R4-1 U1-5 U2-3 SIG51 C1-1 R5-2 R8-2 R9-1 U2-2 SIG52 C1-2 R5-1 U1-12 U2-1 SIG87 U2-10 U2-11 SIG88 U2-12 U2-13 SIG91 C19-1 C20-1 C21-1 U2-16 U7-2 U7-6 SIG100 U2-21 U5-11 SIG101 U2-20 U5-10 SIG124 J2-3 U1-4 SIG125 J2-2 U1-3 SIG127 J1-2 U1-14 SIG139 C11-1 U3-1 SIG146 C12-1 R11-2 U3-6 SIG150 C15-1 R12-1 U4-6 SIG155 C14-1 U4-1 SIG191 U5-16 X1-3 SIG241 U2-26 U5-15 SIG252 R13-1 U4-3 U5-4 SIG258 U5-18 U6-3 SIG259 U5-17 U6-2 SIG285 J3-4 R14-1 U6-7 SIG286 J3-5 R14-2 U6-8 SIG291 U2-22 U5-9 SIG292 U2-23 U5-8 SIG293 U2-24 U5-7 SIG294 U2-25 U5-6 SIG296 J3-2 U6-5 SIG297 J3-3 U6-6 SIG310 J1-1 R10-1 U2-5 SIG311 J1-3 U1-13 SIG321 C5-1 C6-1 C7-1 C16-1 C17-2 R13-2 U2-28 U4-4 U5-14 U6-1 \ X1-4 SIG338 R1-1 R2-1 R3-1 U7-3 SIG341 C18-2 U7-8 SIG343 C19-2 U7-5 6 U5-15 SIG252 tutorial/pcb/bridge.pcb000644 000466 000017 00000000426 07325330414 015404 0ustar00timusers000000 000000 V- T1-2 V+ T1-1 int5 T1-3 rectifier1/D4-1 rectifier1/D3-2 int6 T1-4 rectifier1/D2-1 rectifier1/D1-2 Vout rectifier1/D3-1 rectifier1/D1-1 C2-1 C1-1 GND rectifier1/D4-2 rectifier1/D2-2 C2-2 C1-2 SIG310 J1-1 R10-1 U2-5 SIG311 J1-3 U1-13 SIG321 C5-1 C6-1 C7-1 C16-1 C17-2 R13-2 U2-28 U4-4 U5-14 U6-1 \ X1-4 SIG338 R1-1 R2-1 R3-1 U7-3 SIG341 C18-2 U7-8 SIG343 C19-2 U7-5 6 ÀG252 tutorial/pcb/flare_objects.gif000644 000466 000017 00000035661 07314740411 016764 0ustar00timusers000000 000000 GIF87a@WXvF@XF5s@D 8MOMxO@L@WvXv @@XXFFXF<[M@oMvXfvF @(eL @XbvF4XM @5qs@@flXfLF@\eX XF Lb5{sM@@PLM̘Ll\XFԆXX @@@X0XeFLcL(UXfEF|] 5Zss@|MuN@X @nXaFgX0FsHNXF|;fONHX @HRl)qO#XH|o@@OM XdWXqvF,H*\ȰÇ#JHŋ3jȱǏ CIɓ(S\ɲ˗0cʜI͛8sɳϟ@ JѣH*]ʴӧPJJիXjʵׯ`ÊKٳhӪ]˶۷pʝKݻx7˷߿ LÈ+^Ɛ#KLr_6Xe{9 `3AҘ-^ͺ鋡 v>5gԲA鈳 th({T8c=ܱGfG>qCivPylӫ/t_>l[_?znT} x6`aWwe ,чvH^UIn8bE&\1"~V*X n"ޘ^I螎E(B "uT#蟂6ylI dHّ?zh"^2ٟprh&DP*n%Yg+isf NY%噷[o-8|fvZTfv*:gv] GU'Dhٶ#1Jlw餬 36Y> \o:K硍r V뒱RHf. tZbopJ{mDn۬1v&k i*b&) rJ\#ۄrʢrĮ,/d%]:i-lRfs8\SJӻs4KemF,U55E,nT tSZ_׶NZ˕mկ{z[S޶*uΉê]f >xWqs 0y\"|CQ 1tqd?sDO캂\ g^TQgN4E`+(H?R3n}RJ{ps0k==T;Tu1-Or^  vDz>m6_D8Є!GBqȶK!9"+uuX6e.{Z!5E7^!m{cC E+S̛֖31lC_Z>̐qCȠ4R&4"A6 0f̢I U2`19qB1ˊؐ:Yf2_'3JR\.KS cDznƼ@ #ovevSeX)74uS#ߔ"_i1?t#(|a3d(Y:2f.E2`3z*%>h8-Ӡ;1L@򡗜gIQd!5&T+ %PCI d~(-iDKRЭKhGSƓE0=dNNgҩ>EWGt4iE{T#Sϥ˪%;aTVUZ**3dZՒuP5Fї6թȂ*%*ϝzU? FFmr z.̍9t1y갹`tͫ^*K5ZS*T3bU=iV,b. J]+AuQUm>X-la'!0446aoL-p&!d. 3ovfc7YlbaAir`%yF m+Ѷ'c\l[ou]\ӮkK^t@s3(tCIxH7\m¯Κ[zfRjԗ7.S;wY[^<c٣g)?Tl]6_)K=c-*}*كJ-^zxMyMlV}j_B{q-5SqlwI~c}`<їV9}NχQwMBtsIw`6>Rdvojׁ 27"xRY.)h=~`!x]%1/iy]nWsa4(+&6v7=X(Wd%]{Dei3yFgrk'-aL/\3 iւ0n&qg^jwfc3a8R1.Dcˆ (Շ:>%zF9(A3f*ܚtє+p*;8hq`d,lpT+x<ǣZ|y|z|xu[:Ȃ}v9\|V,n\JVȤrܱ ȖfQLJɠǣǤ ݽ|!L-%lT%XHI+4Y)|$ިDR)K#YZ1nސ;v]~@)ӨD~J\,cp^N^u 䳍J>7exnƤ:CXp޺XCd}7{~@~ξF\1:xEGoVc~7ު\mZӌnYgx6y^\ΣxdShR#>Kn3MNΔIwXdxP.HߙvcOо[+wlsay~ΣkF>+ i>?`L7M p ,_~ߠM"ߍ?&ݘ|*ۃ.2o%?6~:>/1B=?FJo9NKR5?VÛ:1e:~`۹j=a?(.8rc_Mtp=|YF]τ{ϧ-ػ?im%ޟ ύ#ЅӊW=X /؛|SZToH/IU/_ȯQME__ןAZo-_o/75OIϓ_O  <8`B >QD#.Tx#ƌ9"RH%MDRJ-]SL5mi#H=.4P(q'QM>UTU^r'ǣHfШOVZmݾW܉[v$nTwyu`… FXqQgzt⛑F/eΝ=ZMM ` Ǧ[lڵ߲Fwm]3vpōG廓+uխ_Ǟ]rkw5ZG^܁b~3s?%_~ǝ?$@@TAP&#$B /0C4\C? CTiDOD1LTq$[1F{qFl1G q|2H!q"D2I%7\R&2JJ+ IJK/A0$LM3ḏK2NO .>5SOD4QӺ+7؛n#~TRKsoO-RdRQGEP4Brt>R_տLOVh/f饟ii:8`:s-N6 Ok}w=O]:>;DӞn֬RN=!n)Fn|'>Oap%;dϾ, .hA}Qr6K(G2H{1SC@zк^=5x#x'1rltKcQ^ qmGW;Ԕ+=I?Ԛ@wʞN3 ciQ:.u jGҨȨWe>kv˽uV1;9pYcwAP$+='q2w=2?[ MC{r4mc{)FᣦD88g? 6e}h)laOJdQByT*ߧn +֙\xUG<ϩ6q]b"37NtW܀nopŘȕtҫ.uhV;,i4%uؗ:b~u76{o8wf'"qZa绽/%P?Invygbys -{Ex/I0NmG.'(IR7}euO~HOw^cSf9]S5"cQjpgUaNp?~tv/{Sc=@1#xk;ok;Z?c.kO13XApA¹H,@z;5:4*2T˺K ̸sԓ$7S5Kk2^B3=ӫ4k+T9A Ӿct'AB7ÑkWߊ?iDĪA4?;iBJB1;+5)B;2 Bk9)28!3B1 ڜz ;?4BN|˷۶QAKƇ+3MT7,E t(lbCV3㐶 CEǢ@ 7 A/ Ec`;O0b$ ˛-#AEDcÁ$*HB42iLq0r~A)$<0/;%CtcDGn,Ĩ;D9|.4nò$#lȁt2.@wZ40d +|=Dt. LSHϹH96N̘;ƎԼ8 $ɼM\M>JLc%t9=țԫ<$N(̜DDN$J>NN]3ϤԻ|l侜OLNϛOĝ|3, T$#PL yC$L%NS;rڔO#1пQӬ DѓU>!ĴN)Q;ѣ RQe?4!U %"55$ 0%@kRLR0{>\"{Mө3d7͜E7sh|@U{bl̲̙p*-aanaH Y-.%~Kf$<M~EЊ15]K*"icՉ~U1|AT( ء3:ck/5Zl֥#$x>9'~$^UNdRINS>Ę\8~A.=d'HU0_ -{P^pm?n咲[:^^dmߒ*cuaօ\ÅfZ|UZ\Ɲ2,b}5+_UY~@DD_;fdJuZU&3paz\yfa=v ZP^Ř4ؘ$z\a6gbEt 䙝T\B^xh`YJiudf0Vɔ9fs^IYH>2Qf~vʀTnYZ3Zs1hK ⣶g1mjRD-ң^JTSf(mhP}5 :'n4MF2V /o(q/&bW̛ݍqC?ZMf3rceYO$_֬]>r1~R\Aȁv-^d>s6/s5mE;U*7 E%e$R?EtK`RHԃBFt?gO^2Knz>iLt+ZeHݿp־XSOT?UU_GN#miS~/\}jN>Wks;PˍGW$D<& gU#l:!qGZ{>dugL|pnwmtCN==OLfuIj!xx'9rx➐oT#7>x42yF(_qxAoyz98z)KJaygeΤf#zd*fƯp@qpi PUiǣgv"s@~8h[ɘƣ_{4wg'CU? lIW\?p-xo$w;3vS 'KNWܷ}'keE}Q/<~뭩я' G:V} O[]C~W$`ǜBV~t,h „ hX!A6@ :hq!Ȑ"9,i$ʔ*Wl%̘2g"H&Μ:W'PAUj3Əxӡ(Jj*֬ZRͮ`b cϏ"iӢƤq k.޼z3z܅J0aSlɘ7櫐"fiQK2]زgm{ٰFUMwߤ&5Zhݹ3o9ʣnbYs?{[ɩ/oӿ+ֆCn jy9Z~'_j58xJ8_RޅtYLy8Wp8bY$ڶ|zxR-ы5ءc1VhAwЍVuVI X !$J69%NRX棖uГRVi]-Ҹfi&UOe)jfe曝&CViց5yhqyG^יNZi 'Zi* ҹܝKZ{>i+'>g(r|妵2 Z뫖ƪgRb:-f&Yl j]2pR+ݢbm9;.2ƎʥP. ) ƛ%kj 0:ffZ GY %+Ƿy6k)왵5c{{9+fԌpF[@+}]99+yLd}.8%5ؗcc~<=wutwJm7\={,t.5&ⅯxĐ(y;޵fv~࠳繖.:&z尓˺A~H8?;O;< .B2V)p4e~G+EyR aU?iggH]H' z Y}_ *[RBתꭁOsZ g%js!v {` yL_BJjC ;Z?x+';3茗QN3o~쇜fYtf|T/ϯ8LObDz_,\\߇ّjWkY!`Ϭ[IZ uW͐Za`5^j!9 _ ΝH ` RXe}VF[ _bʮ9H`%e!р- i!q!My͞rN_f坡aa!f!`Vaa " b!)`8"#5JJaF^Eו\ ^qy"ʡ&"љe+¢&QL%&).2/ 0J qԉ] ]K,A#}Sl4AV| 74f#ܡ @)9Fayu;c<۝Jv"A##O=R YAJDEEFf$1u$xс$.bIfJ$ɭ$KIFKKd$^MTM$& %mݵ@5^Q[}R ӖE%Me&=U@#Qjep%,dٔP1e%`3[2Q6~)]\"~ %``$}O|٥#-9^aRݙ_!d%eLyLE]c}&c|aeՌҜgfaȦVmfoJnv^pvp^qrqFr'p6g-@r>'utuune'ox'1yy'z'x'{{'|ƧF #v,Qk:̤<|d}qTWAE知'Y(U..KڗEYZ6䓄h&Tf>nvhW֣Mn9W%(ƨ(֨(樎(())&.)6">EzVpbo^vitl~bg~&w]j")꧜J$i)؝)7bjjTY" BF2*y 6"V^*n_-$-rj#)JENiG̰j.T*-j %ҟHA=5D(α.6j!FkN+^ av+ +>k)+Z+#+ƕΫYի+k,,&.,6>,FN, _ŎdeZev,I!~ aM}r跮l~Yj̲=L%`W-&.-6>-VF@;TWAE知'Y(U..KڗEYZ6䓄h&Tf>nvhW֣Mn9W%(ƨ(tutorial/pcb/pic_instance.gif000644 000466 000017 00000045000 07314740411 016605 0ustar00timusers000000 000000 GIF87a @XF5s@D8MNMxO@L@WvXv @@XXFFXF<[M@nMvXfvF @(PL @XMvF4XM @5qs@@flXfLF@\PX XF LM5{sM@@PLM̘Ll\XFԆXX @@@X0XPFLNL(UXeEF|] 5Zss@|Mu\@X @nXaFgX0FsH\XF|;eN\HX @HRl)qTO#XH|o@@J OO XdWXqvF,  H]:gԐPH bW_U86aYg %v`[o ĝ.Xbk/Zj0\rӽ8o㽏Wjj˖3[\I)AKƼV;MSFuL3aTݙgۡq|Zwjޫ}xl㳁V~ynKCoSҳ>{q'^o7~#ß_^yϞQ6G& *:y6{e`w~bx#_%'Jd (H&X7d9T HBhdMB/VEFbdGJZNrYgZ&k%Rm>y]uy]٧My&e',裋6 )Nh2饛FکbjJ駦>*jnf:+kjZ* {{^RQ&hR;洇Vi؂Q-9JUjmһn[Uio",- Wӹ*lm'o ''$-lr#r,,svⒿ TDםܐ_9]yܡ7^$铏>x:nӽcC|_U|`|a|b.ocsЃ/}__ zc~.;m/ [j7Ps9@ʏ+`(X/>KYà4HBЄQAR;HR4$'jWNz (GIRL*WV򕰌,gIZRY%5`e2?%ANĉ00ovd 3+H! 4hlV!GzmhB*Qs}G9xS@2:T|BEQjʔ(miDgӘ24M YS+iRڑ3F5{^Vu5|_VUUh-kZϪֶ\ݨb=4:hI)ԾtE*F׼fEHsX"$ lcwzWvTY^K #XϖU)h[ֆ3c+Z־ֵiZ2ִFgkJd%.o:Y=KB=s ]*}l^ײev}ۊP׹ .zk–٥/yZ dU/5e6`3p. <Wp%,LXp1~S?ih+5w~~~(Gy7з|yi?Q}sq}vrր#OE~o(.~i nvX!7Fs6|f7sikց}/9h8J|ȃ~xzJ6rg4s?8_e>1Fi1_&Ɔ憏aVbob$taz|~hmux+`X sr(bh(Vf4T(\ƉdHgX^փU؊XH؋xȀØXȋh'(h(jzbHG&8@eqHȍ?h(8׈yǨ؄kHiȍ(s؏ QsWwYW)>vViVr)`X$u7wxv892 3 5- <'y;ٓCy>9HBhYGَYIE9WIMS@ _)])Oɔؐ^yXɖTBVfycɔv)¸C5^ :x闁ٗWy.Ԙ|)dɘjYYD9}()x航 9Yh)ɚYa1YqI 94#vhcca9S6'vmd083eLahZ8UFxBfy}dTq6'7DÄ87n؞ '4Ieɏvܓ= qljjIȂFixI۶}Bt{*.I7v\(j#fh*ڜ9Bʕn1m2 ʅJ; =Z1GpAȤϓP zsDYZ0^^* >q!ēv}WqdizֹA|>5fA7f})~*יCUqk]Z<5&I=E't7>t u:鑷:+ <;(iv˳h{Q(IaJyz[e&JJuwm?I8C}i\y8cغlӚ6Nu!:{i07Yg⡟*'|{d@eZzꯋEA wBa*z4U-RѦY6ؤj U\ ڭJ'+rjx5ã. ڔ?Q Z eYS0xQ)e۟\U!K;D1M+Khضrp*~KYL0K&rK*,Pizixۀ\ܤ uVz;)X7<|[JS{Pe7gUzθoʜg} 9Ϝ{SUjkfzJZڦ"m y9hƠv Y/\J])S.MJdj1Z{6{w {vl:<ҭ"[S:j8 n SQ}S]Y$ܔ_ +-Mleq=;eӃn}׎*8׺<vx] y ϒ؉LA֣X]-mⲙ y \j$[9ҌZΓ- ]>eVMrʜ}=5u ~e1LXzѪ|8ó 3ޛ7v6ܔPWtj]get WucqٽM]_ckNg'}ݹSE@qZs؛-ʝ䌶Ʊ9}v&*rGMGΑ&N-_N~mVr͌kK%K9%U0 ̋D#{㏝C+ӠC *rfWQ |~늝|д5C}6~hySr 'hԄkht9A y᳍꼞SUϏ;㲝e¼n?n2Iѹ̩QN5fǏLhfDLɞʝ캤\,*/0ɩ58+>OB~6?Ol̕E<űlBCAGQoDSF[\I/eoɏ9Uo Hmu@z^Oq| oVq`o)ޔv(lޕ390L޴*~ʾMrMg߽~p_ooj//ƱiNH/o?Po??:NSoKoQ@@ pP„ laQE7vdȋ$301eɔ#CJkN7Uړ'I,%:ҘL7D4jө3(։\0Ac%X֬ڱlú \t%}+Z|[1z[ %:.d-OeΔE\3Ξ;3AJnma쿞#v.׸~ȸ,ōUF6٦m:l.Wdz^vs?l?dг 30D4 [+@bT̿q M RO 1.7*075$BH,E+l1Ksݛ1GyNE s(L 13AtrO?}Rr91\2iӯ#1)ALR-4s,ѶL4MEVRQ$հ)tgTR0U,UPAX.Qk6($UYVeSCلWt}2,"80 j Xtc|T<4P!1]?-wք׳5\Mse^1|ɬ0_wO|b3ƸQ.1ZFvu~{OF4~ f"\8Ix$M/OyGޯꃊb:R5oNm`'}! q/oo9OӼirs-7]s)]]ȓvWûvp>p6f{oYSևǕxXFwj̍wDŽ2^zh[{'nQfxWm{6,ROZY4sI jG9*ђW C3@4lg"e^ҝDԵuA@[[p?dH%}g"eKҠ<|8$fg5xٲcBO3֠ Oda@hD(bӋhvB`!MZ1E_# +[^yFn4E|O!(8f}]#0ftTA}u9d@C*eڸ(-@< HIYl6%LC4.If|wVq+biF(DWۘiPn(c:7IRSkBgHl\$B̏jP3تbzQw,dM( k%Q*򵰀e*ave&P"5bBVu>1Ђ։M*j/YΪ6gcvdj]Km_+[ִƝn};\rsmnt)\m&ʥnp^׻ukMjs oq\{oukW &:Wӥ2عvp~0 L` s>p7BX&A_8, {n1S^X)qLcw52ic%90urq)Us[_N2\ kَs][gM4z,gus<;9χsgAЅ1lh>7:Ў&LEIcYfq5=fNOzӞsli1GӢrK&c+:L5c_-\y֠Q֮4][ٕ^6PGT=cOϦvmp;0ݦ7<߸C^q{GoQ_%O9eqgin>9q+.WC׶2$[~WMӝ>uw^zֹuc7{Ѿv}TM{^/ē=}y󝛺-w+;xk3sG:‡rs}GytxѷWYwR?2kǽ//{磏t3~|WO>ɧ㿽_+_~o_???`˿Ƴ6AvGH TCE d A 4A@,A\A\"A=A{@{?<@$A; c)dB*+A,ARk /1=3DC"46%|C5B7B:C8C9C=D8B>2?@CC>6Ի! 3B1B?CDDHCIlD[H=CDPPLNELESTO,>DNd2CJ$?RDBD@Z|'4;_Lۺ;;bT;c;dƹjFfEegiFj at;lkU|0plE]\@WZB> ].O]UX& . ~`a"Ru_>'6(Fb'^,.bebb->ZNB* b)7Nb5cc8.c8IW%>ˇdZ A6d@DFd{FWENKn)yYeeU`cfL6NIhdHV.)NeeM ]0šT0qA`eVd(ifJ~^_WW]RnFUflސ=g%qnEfv5s`UUAgOFl1gx.ON n3^R;6I~Ugg{ffe|Vhڒg1VgvC艖h#Y>fd>)hh3fa]\liq珮]K6%f!_[>e4e}6TggbV&fgR.>I閮]؜gWfޣ *j>٤Vb0q8kpqN@e2&:`]``F*&P͎k8 R `> _klɞȎu`gN6덺fXiEc7VžN/Vy^kjk0.~?y6 9k96Q:.it;.ꡢok>xo큮ώ>pLJ`upivep /B Wqg&ghO=_w^rĆqq0O9!c"k>np7-n.Oc/dY^2j f4:nnesFies<O)sr,I.%CtKtFtHcOuGH׾,P'ud8t~1@Ykwv\_lXwsu cZtu`/v,p`GU_7rgjXA_n&ta?JuPNhv sun/[Mw]5W|ivzwmv^eFv~w{?Ǧזmw~_xxw;vm׋xg.7}Ozcu?Jey^grwyWDVnwĝvyryYvm{C~j7gyy/z{ezz}.zo{9tDU7OT|U|_/|f{Po|yG|,' 7}{O?wѷ-Gٗ}{ko{}.} }L}zG/O_gϮyPt~€w{(|}/o~?gW~7@~/2@ „ *lxa `ĉ 3@ɇ)ITe0lYs͔9]Ts̟!%sQ-2eڰ)ԥP=f#ҊL+KD0P'˲X?L֮ֈr[@[] n׻sD LE@@̚-o|Ϡ1 `tҠU{FM5g׬7 vV;6ݬ sۘF[rQ~=}tuأ>}}5[Y'dr'V [~X&Oy?{hP(LF萄&FkH`^7GI~}ކn!T!(˜!3ؐ)@B 2,`I;.!#+ހHىS8W_dL>-dNd fC N)a.ӎ(ik$o>zR}WFt՗N Ő9g )R=␥djg8 YjqhZ*BR(;)jJk]sҪJKd^Z rMr!kߡ·-x$:Ҁ̯W U hsE?ob/B|4 "гLt굼{T#8V:T;4'l4;ou7-vs&T>(iŔf$H?l+=MNQM7s{ku1&O$@]-Yeޤ|Jm€ԡ^Qºz;L?߷U8A_z){}HҋOar8O??4DY=v _W-M~[- lĞG O֣Y"5IvN"g R0l 4-{af/!Mp+4Bu*e XD#pd!4pKh xc4#͘D.x߁rǾuЇ_RX:i4 5ҵ`M]"&rdlKBE0.yI4V!IyP}!u$EpҒ(T_ ʡ,r_ %-myJalFw!N쑺 8LSru,KNrSr)GHqV3$28S(sYLjvE3Hq99΀֓DҒ#峛S4IcʳU]>@C*БZUc ݩKќRN^h#3}B'2ZQr'EgJcSzpzMJQJOj:;nuR%jUU5\)Ye<ьwȵⱫ[Jgk+`ؽ|maZX.Vkc*lZQe6`-U5+R]h׉ZϚ6в%mjq[[ڞV68mZt#og~vUnX{[^u;]_u.vwvenk:^׻.G^f߭/~{^ڷW<{&|` /寁' fp! 85/M[~-`8"pkc߸%qgbe0y"XM`8>f2W'[Xc'o93ldX\2 g(yGn?lsģ#(>g B9юf!hE?ђF)Eozҏ^4+PN30߹sf5|jU,6\V֯uc<@,/kY5]cuKTӫ[=Xw[zv ngp49y>BK@]b`5=E;cKf$Tp&O.]s'41>:0),_U> $mwo+fm:Q~;|ƃׇRN ߼Yhq*`4 ^ƒM!!QH② 2 H%՘EԌZDZ_zZ!&""-"!: ! >5bO0y- Fa%:_ƞѡdxݠ*/!\!MR*.nR a6b#"2~O4TȔ3nal }f#0^c%,:R "Z3"^^;; < ;_> "f~Bʠ0b#An$)1;vdbYP$In `>q$cO^4Zac Bj+ad@ $L֢L%+nM0KBeOO K`=rZQzLF0RR6ѩ.OJUvT*dALb R PSqŵ\9vdW^\]aazdAec†ڡ]ӵccUefe&eNfig6fhv&fni&h&jfb6%\*alkWN`l[ooR`l&p&'npD1TNs'mZFn\`dugmbgqB'u"rmfs x*'zgwgy:vJ%y"f{u}~~>~D'~fg{g~g (hʧ{('(Vh|~h*r(d(hxnZ'(*,j($a5#'(h$棑&h *.jhNi(wbiڧ^gfi(n)R陦_v꣘藦)`^h橙zi)5)OjE)*5|Bjh⩡i***r*n~vJ)ZJjꪾMםj>*jj( dirfjvjVj^idbkdMr+egf빆yC>"jΫ&&e?͈k Ϊ*̹"l~OMZ͔<#Ȭ#JM@*dXŠT!(l v#VM/m%n }78|DeZ;p rl*%- Zn".M2dƴ*N+Mmv~-ql^r`,ؚlm5Bl$Br.ԭάV#ˮL(O&U Hlܶd~׮HM:-$"i̞)AL NvԿAN.xlޣN(ꖔ,cB1o.,/eEI#TYnE Z\➩oJ)/z/ dOo$J-oF](e'Ar -Z*ElnQʞJ&J#/GVq#%5oUݒXՆej Ccl|I0K20"Րr:ފrɣžOZM:.`H0>% %Fr z_?82unHN>lƱXm,IfZK-Pױqkq-> +>B,C /Br+L4'2+]B$g %7. U29NL7".[԰*qxk26r73r*H+fF渦붪s;93=ss:{87;s0778p+*28+42t8"@2EsC6/2f4qBc4DkG2GG*HEt%gD?ADCK sKJF4JO7KosEtP޴G.LtNLStN335M?Hc5uO4WXw43p:Zp[[i5u]55]5^tSVuVrQ+5Zu`WcO5bWYKTC5Nk5U a6h_6QvƴUSfv?iX6E6gvTv{6cfhbUczj#ujnkOvl#wq?p'P77tSsoheotpcuvtw3f .Vd){'vOy'Ѝ9`Ԗ8oֹ'7y9X~8bo;O'ryS>^!8Y(τ+"[̲_p9`wW.3E붔S4֎e{u"a"N"!h\[{{,v$Zanɸ];+Cn)"ewm;zF2Or b;oTr.`;-z: dԲ_;Cg.&U#9gXF2[s) .3ag|ū3,-Sz3'o!CnzП:C2}ÇL/Bs3y/Sr'Fyn5߰o}&r/":}J<# 2Ƨ翋GK~[;Lu8[3{7އv_67ַw7+'7gg2?J?_??~_[v?|6ջwu7?6@X@@,a… ! |D/BE=~$(aȏ&9̨"K.#„(#I6+QȞ4(Rhɞx,zѥ9FUꔪTOAVՙ֮VWz&VbI9lZDߞ(Ym97ݼl \o/K_BX#嚒cV<.翂A\yeϏQ&֪?vyғojw̩edM6_W~|ylϝnf"b!wNpL/p}.;Ÿ>Ï<@T/A xA&B3.: 9Ln- DDR4BEDEM,0C7D 1H#qGzpI$EG $I-2I'T2̈qK11KL04sL+ׄ3J(΋M:NҦsN9tPE5B% Q@ oŬlR5-utO4G3OR!,U*S7]SAC4S[V]sUX[W]mO\TS\XgVfeXW&lvVO#-Pr}eU>vuUWg7z6}%X`.߂>a^!X)1X9AYI./^8f``]@y矁Z衉.裑NZ饙n駡ZꩩꫧVԌhWt{wlFV`k~%]mF ;nWֺ<'1|ՠW='}=l{o!g]r_Qǝ<[7}ug'ra!7sO>O]y^?{pub>uC'vG?zyw?{/@|w=}X׿|IkA L.Bz}"t~0@ -d oC"h !~13a qD搇L̠ !b@Bq$R|sh[$͸7ъZ4pvd<~qa GA'{c!I81$%'a2$C*24eQ4yGVkEErsh\)=I_j & c2,%1 aJ|$5iMarԦ7MCf3T19NlSl'Lf7[Y=IO}̞g>υsf5@P, ]jB(EzQFgG)t3,IOmBUtgI] SXT$9Rd)3iTǍI{Z͚r#jSYTBTPkTt3MMzT2'.gWm*V"cmkU˪ִJUh%kXRQur[jUuDZū`_jW^uaWNv b#&g&ևNiXD"vkA;6%ioZ֮6mfXĞkqڄ;q\JՍ.I TZݮw ܡt}}wƖ׹=#c]/t]׾/7| &Xf{K7 0~{_հ3l#ɮQ#,bx*&0\ x1 `&}d y?Erd'9TN +[ySre1[rAEJ^:qa|K,g9z.'6͈6t iA+ϑ3ij:ЏT@;tutorial/pcb/pic_object.gif000644 000466 000017 00000045574 07314740411 016267 0ustar00timusers000000 000000 GIF87a@XF5s@D 8MOMxO@L@WvXv @@XXFFXF<[M@lMvXfvF @(UL @XRvF4XM @5qs@@flXfLF@\UX XF LR5{sM@@PLM̘Ll\XFԆXX @@@X0XUFLSL(UXfEF|] 5Zss@|Mu 8@X @nXaFgX0FsH 8XF|;f O8HX @HRl)qO#XH|o@@OM XdWXqvF, (`L0†H!E/"̨ ǎ?ّFQVF azIfHTF $φ?1h3hˢ8DʔҘMe>ԚU]^ӤCv)ؒeVk[[s%{6ݰgOE7^}W=XMd;6Rp+# .MțSK.͗5`׆a+VYeۣqS&M;cѻu^t_'|6絏8bfOa 8^`S_o=vs>xo?z'{W|EK-hAQ蜂&f֜PmL f8xcp3&#wyvP72v$4 Y$6J6W5rNUxY[jaz\:RupIɥbitYv`:;)e}Y蝇(dy$F>hNj)کjfF2.*+jjkkj(舭 ;2B˫RmdB>B)蚻ͲmFoD oV{/o|g$0 70; q Sc,sL,,1*'r),s4<5w|9=A\48'owTKGtSK0W tWm/6֗5g6k e`Soc]cwmjzh޷r#Nlރ7ۆSߌ}yݟԕgkvܞ޹z'h۳c^q^y#/:߾/jS+;: 3G/>~[o?׻'<^@I$T_XEvt`wl=p P@@04P 4Ȇ5 uЇ= шE4"C*ъDDAzQb<r1B-q"4B4{p\axo}HGHrtc F5 xHV҂%IWuc(HH'ݨFrx\#ayT^D+)Ir/KCLf0J`Βlf.iIjbRSh&7)JrvDK 4vF ~ @JЂЌN\'+Wf~挥8XэNthFOgsHORRԢ0-)Hҋ-inZΜFiӟEPIZSp.I*S ԆH5MRUc5*Cծ:P5LBֳllVӪTNծ\\jW&d*_Jط5"'U ְx-K:Muk] s&ֲvubG;E-jh+6E"e[&ֶM-kWZַ.nZwe)+l> *w cٹJW#ut{Z~W]wj^@27:|$ux\ƗyMo{F}`عG=p| 38yah1]|xŠvS,ǒ"08,nzCcxU1h[]"Vm Q&GN~BdBQƲ|e.g[^YLf1w_Fs]6e59ah3:ϹHt x109MUBOH>IܞNGlz;W<Z|_7Wq d)ДVǟRt;eR>ca"өhݎ;Nɥik@7c}xd;>8Mj('M\F+4I-ﭓҗHQo2ڪ?ѓ/sg-~'{R;o'gwl't'poWs#UB{V; }wqvaR|5~Kqlu!tWh%1!FEi?)MszXkzz•]9\Y%f铻zdya4ɔ. SIv7)LƒKi)uI5xr鐂)|q {#Y 6p,și(}9;ɘ٘T dY-y|iIQ?ٛsy 9){)H^8ը艍ƨٌyɍ9$cYI9әipxfO65zh1O~䱠&&zjY`jwZX̩(8k{UiG=4pSoYvsXi!2z(ԁs=?5TȢZ:iR4<XYZ7ꤾхrhh綁ɝ8_l}91oThYhr.JUm$"~Hr|gDjxɅdwx?E`8D=p||6Ng 5` !6g)Uj5m&JԫKhEow$O*E R+Z^MxItnZ}R}uSmii`D_BKzh\W{CmQ:DpaF|f|-\+vȯAtv뗪}\jj&觱:9=&İHwl* j%ʦz k1{w3ia xlس6@;W1Q+4۴ A8U}GnK'7֨$*kh{r1Ezqku뵈;L)Y{r c@JB:"8!Wh긕B9 xc뺀*V'Jl[T[ «۷OAۼzK;ʬk[kۥ[ڞɟR {ɿ{ٿ 2˽o )2<,5U/ ũ0-T|BEXU9j8\ƈL` SLȇ,#lһăŸEÛY (ƣʦɕȢ<’|ɔ츟dĬ,ƻ7y6NL-:ɹʝ˯l|\̿[l1lY]K Ic|(;lmá-U׋ r8ϳD-Mmm½؄q4rڻuVKӭ*Nʋ=͇`t ҉5p6VTȪ [&7}Vvڈn=-} F=ږu)z]x}v׈˵䪳aaJtܯSԮ(AT'x{RR[=y7*^E<]4Ѿ.'=)P|{~'⸵GENέ=-7vǍ8mQj]V|1\B>}bnd N֟%V^s"zEbUwZޣtR"M]سmIy][=ڎ>՝~ ֌~d^7[k.7ҧ]YKb*{ҴE{Ԫ^۪ԸW砜(#:%O0lL~^7C]}^m`l$wmg?=hi}x98Mcnɝ-OL N^u ~.qZKL:nmoOW>. κX|΁8l ΅΍Ot/vȎ e{͜wϑ/ul͘?ŵ? </_M,ˢI6_ޏoo_3>{~ |<_n|vA@ 4HP@B .tQD(JxaF 9v,ÑK92%ȕ[j|y1&řOx5#tF=9R<,4dTN&zS*AZܺsגa tKVZl] W\t%-k[} UX {=6q#m6qy>lX3͊;3 9tfΥOb~[yd+ ڦ콴<:n:Q6 :Dܱ}n{œ'/]:T܏w 8k>wg_v᧑{>+KбD S O<"P t0"ND1EWdE_1[cPD GG uİC=$"@ܳID#ې 1Dw4J)EkSi, !6,M\ѡ>zѿGUMUX+Q<uScyIFRu#eYW/qW[@5l)ۖ+FQ{ Q-b ֠t-]Le(6E.]7Wʄ lxo#Q-͔C\ MyvUu=`{e7^jBm!|1 މ‹ށ ܒ1^F }A_U\Z7&qx]iC%o>Yݎ&z5pamx䙚ַCc&hgHNUl Wۮ^n̵loVUZ~6Mm勪=fYk^\fkƋU7pfb;F8V0&tZT‹q$osaN,R@RORAA`˘Cݵ} !v^$kT&@!jDDrp{94F ١$ID d((? Grj+z/zX+;V'bTSL{Xɿ<얱_1,[f9Uq 4LegL`f&D\q$KEMu~f 8-PQg AƷQU"IjfӃ IceTʕzm+ BrL˹ӛq`Agʇ&%Ѫ͑unU"J*PARP'5Z+k赜k<=8\dĢDUjWr@6| Mlxj+lchX^),κĺFH*_CynM[5ZUdO|KDiȌUff\Pqqwˊ iz Kk UW^'9 K*h%V`EݪN`EF;Y樨- E&6 U#]Zsuy?qU(9 jLd*GL+ G򗽜e.oy]Nb24fs58|gݾz*^?|n)=Exχ c:'wv4)hI[:Ҟ4?-Pgѽu=ja6.4eMYկ^uq}jֶ֪]BKlf_,ܲbĮ4mk]cӵn nJ۫7\[ݻ6nkTt YA"B+<'LB+,),C##(0/>8T1<<=;D.=t.44Kʦ,ʨDL$J+LK^K\tʔ Kl̑\˔a?d<&e>?v7*FQ6eW`Xa-eQeVYP Y=e%eO~`D>.WTd6fTLeejeaW~f_kf]fn^n_X[fijFenXknetmtfsbr&mgqWxlg7Vgwg8]M\kL=hu\]\݇艶hDЌ܆V\žI Xq{es Qe@>cɥm:0灝ڕ.V1sՂ&[i0(Ni6-r0pØ֛ffmjݦ^ꞞΖ~>ka|zUE~tkL k& "Nꕞkv&Nkt.|ihkmyjޚŶ K͞뭞l hv&vmdnm'i ۢimh없>ⵖn!-!:[mc~gkjnƶmjklzMavNXj+c٦mV.gVEj oĞ0٬מjg>dEud$MF d1 0")qL= qd?,I'9q0;qNppCdW~>p ?&p>]۩_0i>r#noFlfn"_fGr ?lRrm"m[Vk٦rr6/80A?2FGsUs.rF?r$o~rn'svsK'U%,t$l~.TtrVҞ ?Ru9XKk6SuΞu3GGLe>OOtk7kb*v6L(W+gZWHphui)t Kk6p[Z+?i/w?Wn&svu/X0 wGsgstCwFkv'xl7vwlsx^7Gy&y?yĖoo^sotwwu[xhgrH=y?Ms'zm\gP_gzqF>fz?w~zOx?gEy@Oz!u{{7cP{poqF|p̧|͏|7qq `?gbn}W|G}{oV~']^yڗ}|o}g{է~~?~5ޏgt~|O/N_۟e{$( „*l!D XņnŐEj$ѤǑ*K<2%˘.eœi&NuK4$΁#*\ӧJZ5aԫYnWa#Xنi^۩qΕXZju;jܾ K`*&[1%=lyna~f{C\siĤƜxkǐ ~w5ցuEWކ];wq ;amѣ|wr?.G~]tmwR ]y5zoxym&(TTy 27aDȡY|.b9("zaUJc~E1h 8#S+ޏB&ӎ/pK[HBa0Hd*WW'fYRydfIN%dXoIYbwvɞxVwОm|E!&bF)f h7d[m*(eD~ )9Up^ڦ 0+z뭶⊫k*+@&벻6K kf붳J ޚmގ{ZlR+/[/k, i2Tfz (lF:ۨW"p Gf:2D)L!-O/(B2vJsűe)C.L2q&̓!=sK3ݐm-xҟ|AM} ЂNE)E4V׺ ]2BIa ?"t{Lc&'HTdwCn@g0]d&< Œk-l (bvhP;{- !h+CE1q. _A/Q#c\W=$l+߀Fp!(GFOlUEq4"I@$<Ӛ4puD%l0>Rgy$ ok rGPD(ٓ$EBHd{<&7'Vl4bEr:Qtg;Nyz6Srt&dgEٸtғFyru} Sw针EwˏƘ#~'ܨ*'N Cj= :31S lF* NҖ*4"q%DS~F).zҬ^EO;i(EUTխMU(ZUplm+FӮꔯX:V5G-`Z*@"U|!bҕxW=d`Z[ROޕtOKBoo5x~\-1afaҸ¸7!0"+#ʠAbb5S\9Z7̤YҋAM1QB`<}H@c6ԕڅSS6_E7$ҥ]Mv %PePP"eQ*Q¢IOO<ITO6%<-FdRXbCBȃwBfpBcI#tc|M7%%cYᩄ~HRe3: WKT%6c%I֣^#ہeXvadꝒ@U&"dJfb.Y#54U[SPzW:&3UTfF$`&k>&Qb9_&^F&fF'5R'ecp:$UMg%?RHpRsfqquvj6gtZo%bx*fy Uc;*gLz RPL M tVtjbfj6%F'bf)hQ2g馄~$!v^(ez,de~z '@^ geg{f(⏢ i ` ^`r` F鑚ZZ)^)`^NVn)`<(Ci)eg~)hiX(i%ʩ6"j1꣒)iV&p6$F*)f*}j\)*:j_:***)I*&렺v!*갊ީiv>kRBjʤ[2QS“V뺺+]+뾲v+(+vN+6krk6l.1,T^+*)ƺflr*V,ʾlǒ̚,¬"l͒l~,.lB,JmQ"XȶR-׺lmF- m~nNm*-Ŷ*.friB.b)~) *.j齬mmR-(",Ӟm,UZ(lt>|>VN^nB+.~*S!V[8V7/X.ئcM)oY%bm%ԂJ/5}j]ofܒ*w-.n/ui. X6yPte؊%C\o.-EI&4"j(xo:cxƲ@ﹲmBoCq ;]SrA\eA'WckHvbpQ05&cل`P k/ 1dJpK:qNP1N|M%L` +:2I:]dIG$EإQrReszQ|*cǰ+ &.)'c& s)+K21 zc)WOq1o3DJr#3fDR3^r3;6k>E4)r9"/0s3rOvR97t C@g!12s +ZEPq F4|sz@Hxos~x'-}{m8|7x}sS7'ix8x7i/x|[yCy?#K7븒w9s9jy/cxyk{u06G6=nSdk6fOv#zF::\v筗 8c9wjXuӨ\y_y'qo:|(Cy;wO PZzosψ|?)G/s$Fؓ{I>2-o4E˴kۄ"~:xo P$jSbJpXb{*:[(sY6il[oR{fu|lG"`{8ew'k]{^Sz;Zibr^C|RpEo<+j{I[f.8|%۳n3[^ʷ;УpW^)}IspX: 9<[s\C&(h BYbxYNܢF;]"I2k8O[G!8aeV(k*|b|};5Tg= )S}wr~Lo|=MPAx~I:_;>8~H ћc;c1uSd/g:;;}O'<~2G?ϸC;»w>@X@ &TB:8Qć-.Ę1"NjnP`&< Qʉ.A 9PÚG9P{zx3#LFI"Ej&.rqŪsU[g.-y%Vb(#фnf1$عoپvƾi_*m nᮆ"yauj0G U7b:=g%@s٢u<(JS69kku1+xyaf4Vw^F*qS;z9 sg]aկo*ܲhx'?s>#{Ͽ@ʯ1M!$ 'B -0B +pCD2D O0E G\C]q1w4GT1Hu,G#9I I"9K)<-ol0K0-L.ˤ Kd3ɔSL;ij* D4PlsQ;THQ=͜tMLu8EUKIMu,SM[U[etLo 5QeUS]WbKEuZWgu_ Z[XJm6Vjwն[nUl}um7ZvK4w-T^ԍX}\ki%x`Sa]xaѥx`vb6̘\~wو59x~y]6 d{Ĺnfvd-gMeUygdE.Ґ[k"iZkikkκ6f[~[n9n6jK;pY隃N:qďma%\r|vro9\tI}إI<Ս6,(=+Lh@ohE/Fb'-)hHKo4iVBҔT-U):_ QԞU)NoO*43%0J0-5mzߞ귦BթUUZ QVհVm`XJVժfm+[֯խ]N~*Ԇnt{e_ӚvWR-ׅ"4czWI#QlQ PNv}`?KXNmiȢ,0/أVmgbv!-oYz|no=mrek:nb7q܁\׻nyݏ7o9\en|C[]wŭ_8i$$y`C) FH;82j+\DZx=bgFn1O,b xŌDq/bwq} ]ֵ8kcNwǯ5ocJ }wM+GDV2z}0[FrLe1{BsBL#YkV۬ctN<;װofd;̈h7 _w0/7 Oxg^y.k~| % % XCircuitLib library objects /arrowhead { % -12 -32 24 36 bbox begingate 8 -28 beginpath 3 -18 3 -15 0 0 curveto -3 -15 -3 -18 -8 -28 curveto -2 -26 2 -26 8 -28 curveto 249 1.00 endpath endgate } def /source { % -32 -64 64 128 bbox % hidden begingate 1 1.00 0 0 32 0.00 360.00 xcarc 1 1.00 0 32 0 64 2 polygon 1 1.00 0 -32 0 -64 2 polygon endgate } def /capacitor { % -32 -64 177 128 bbox (1.0) (p) 2 beginparm % fundamental 1 1.00 0 -64 0 -6 2 polygon 1 1.00 0 64 0 6 2 polygon 1 1.00 -32 6 32 6 2 polygon 1 1.00 -32 -6 32 -6 2 polygon 1.000 0.000 0.000 scb (c.1) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (c.2) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce (spice:C%i %pc.1 %pc.2 %v"1.0"%v"p") {/Times-Roman 1.000 cf} 2 0 0 -208 -160 infolabel (sim:c %pc.1 %pc.2) {/Times-Roman 1.000 cf} 2 0 0 -208 -208 infolabel (F) v2 {hS} v1 {/Helvetica 1.000 cf} 5 20 0 48 0 label endgate } def /polarized { % -32 -64 177 128 bbox (1.0) (p) 2 beginparm % fundamental 1 1.00 0 -64 0 -6 2 polygon 1 1.00 0 64 0 6 2 polygon 1 1.00 -32 6 32 6 2 polygon 1 1.00 0 -80 74 66.00 114.00 xcarc 1.000 0.000 0.000 scb (t) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (b) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce (spice:C%i %pt %pb %v"1.0"%v"p") {/Times-Roman 1.000 cf} 2 0 0 -208 -160 infolabel (sim:e %pt %pb %pb) {/Times-Roman 1.000 cf} 2 0 0 -208 -208 infolabel (F) v2 {hS} v1 {/Helvetica 1.000 cf} 5 20 0 48 0 label endgate } def /resistor { % -14 -64 151 128 bbox (1.0) (k) 2 beginparm % fundamental 1 1.00 0 64 0 36 2 polygon 1 1.00 0 -64 0 -36 2 polygon 1 1.00 0 -36 14 -30 -14 -18 14 -6 -14 6 14 18 -14 30 0 36 8 polygon 1.000 0.000 0.000 scb (r.1) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (r.2) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce (spice:R%i %pr.1 %pr.2 %v"1.0"%v"k") {/Times-Roman 1.000 cf} 2 0 0 -208 -160 infolabel (sim:r %pr.1 %pr.2) {/Times-Roman 1.000 cf} 2 0 0 -208 -208 infolabel (W) {/Symbol 1.000 cf} v2 {hS} v1 {/Helvetica 1.000 cf} 6 20 0 32 0 label endgate } def /inductor { % -14 -64 164 112 bbox (1.0) (m) 2 beginparm % fundamental 1 1.00 20 -28 20 -44 0 -48 0 -24 spline 1 1.00 -20 -20 -20 -32 0 -28 0 -24 spline 1 1.00 20 32 20 16 0 12 0 36 spline 1 1.00 20 12 20 -4 0 -8 0 16 spline 1 1.00 20 -8 20 -24 0 -28 0 -4 spline 1 1.00 -20 20 -20 8 0 12 0 16 spline 1 1.00 -20 0 -20 -12 0 -8 0 -4 spline 1 1.00 0 -48 0 -64 2 polygon 1 1.00 0 36 0 48 2 polygon 1.000 0.000 0.000 scb (l.1) {/Times-Roman 1.000 cf} 2 9 0 0 48 pinlabel (l.2) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce (spice:L%i %pl.1 %pl.2 %v"1.0"%v"m") {/Times-Roman 1.000 cf} 2 0 0 -208 -160 infolabel (sim:l %pl.1 %pl.2) {/Times-Roman 1.000 cf} 2 0 0 -208 -208 infolabel (H) v2 {hS} v1 {/Helvetica 1.000 cf} 5 20 0 32 0 label endgate } def /vsource { % -32 -64 139 128 bbox (5) 1 beginparm % fundamental 1.00 0 0 0 source (+) {/Symbol 1.000 cf} 2 5 0 0 18 label (-) {/Symbol 1.000 cf} 2 5 0 0 -18 label 1.000 0.000 0.000 scb (v.p) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (v.m) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce (spice:V%i %pv.m %pv.p %v"5") {/Helvetica 1.000 cf} 2 20 0 -96 -160 infolabel (V) {hS} v1 {/Helvetica 1.000 cf} 4 20 0 48 0 label endgate } def /isource { % -32 -64 163 128 bbox (1) (m) 2 beginparm % fundamental 1.00 0 0 0 source 1 0.75 0 20 0 -8 2 polygon 0.80 180 0 -20 arrowhead 1.000 0.000 0.000 scb (i.p) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (i.m) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce (spice:I%i %pi.m %pi.p %v"1"%v"m") {/Times-Roman 1.000 cf} 2 20 0 -96 -160 infolabel (A) v2 {hS} v1 {/Helvetica 1.000 cf} 5 20 0 48 0 label endgate } def /acsource { % -32 -64 211 128 bbox (5) (0) (1) (k) 4 beginparm % fundamental 1.00 0 0 0 source 1 0.80 0 -48 0 48 -16 0 16 0 spline 1.000 0.000 0.000 scb (s.p) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (s.m) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce (spice:V%i %ps.m %ps.p SIN\(%v"0" %v"5" %v"1"%v"k"\)) {/Helvetica 1.000 cf} 2 20 0 -336 -160 infolabel (offset) {ss} (V) {hS} v2 {/Helvetica 1.000 cf} 6 20 0 48 0 label (p-p) {ss} (V) {hS} v1 {/Helvetica 1.000 cf} 6 20 0 48 48 label (Hz) v4 {hS} v3 {/Helvetica 1.000 cf} 5 20 0 48 -48 label endgate } def /nmos { % -64 -64 161 128 bbox (3) (2) 2 beginparm % fundamental 1 1.00 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon 1 1.00 -44 -28 -44 28 2 polygon 1 1.00 -44 0 -64 0 2 polygon 1.000 0.000 0.000 scb (G) {/Helvetica 1.000 cf} 2 7 0 -64 0 pinlabel (S) {/Helvetica 1.000 cf} 2 13 0 0 -64 pinlabel (D) {/Helvetica 1.000 cf} 2 9 0 0 64 pinlabel sce (spice:M%i %pD %pG %pS GND nmos W=%v"3" L=%v"2") {/Times-Roman 1.000 cf} 2 4 0 -244 -139 infolabel (sim:n %pG %pD %pS) {/Times-Roman 1.000 cf} 2 4 0 -244 -187 infolabel v1 (W=) {/Helvetica 1.000 cf} 3 20 0 16 16 label v2 (L=) {/Helvetica 1.000 cf} 3 20 0 16 -16 label endgate } def /pmos { % -64 -64 161 128 bbox (3) (2) 2 beginparm % fundamental 1 1.00 -44 -28 -44 28 2 polygon 1 1.00 -60 0 -64 0 2 polygon 1 1.00 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon 1 1.00 -52 0 8 0.00 360.00 xcarc 1.000 0.000 0.000 scb (S) {/Helvetica 1.000 cf} 2 9 0 0 64 pinlabel (D) {/Helvetica 1.000 cf} 2 13 0 0 -64 pinlabel (G) {/Helvetica 1.000 cf} 2 7 0 -64 0 pinlabel sce (spice:M%i %pD %pG %pS Vdd pmos W=%v"3" L=%v"2") {/Times-Roman 1.000 cf} 2 4 0 -196 -139 infolabel (sim:p %pG %pD %pS) {/Times-Roman 1.000 cf} 2 4 0 -196 -187 infolabel v1 (W=) {/Helvetica 1.000 cf} 3 20 0 16 16 label v2 (L=) {/Helvetica 1.000 cf} 3 20 0 16 -16 label endgate } def /npn { % -64 -64 73 128 bbox begingate % fundamental 1 1.00 -48 0 -64 0 2 polygon 1 1.00 -48 48 -48 -48 2 polygon 1 1.00 0 48 -48 22 2 polygon 1 1.00 0 48 0 64 2 polygon 1 1.00 0 -48 -48 -22 2 polygon 1 1.00 0 -48 0 -64 2 polygon 1.00 240 0 -48 arrowhead 1.000 0.000 0.000 scb (C) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (B) {/Times-Roman 1.000 cf} 2 7 0 -64 0 pinlabel (E) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce (spice:Q%i %pC %pB %pE npn) {/Times-Roman 1.000 cf} 2 4 0 -244 -139 infolabel (sim:b %pB %pE %pC) {/Times-Roman 1.000 cf} 2 4 0 -244 -187 infolabel endgate } def /pnp { % -64 -64 64 128 bbox begingate % fundamental 1 1.00 -48 0 -64 0 2 polygon 1 1.00 -48 48 -48 -48 2 polygon 1 1.00 0 48 -48 22 2 polygon 1 1.00 0 48 0 64 2 polygon 1 1.00 0 -48 -48 -22 2 polygon 1 1.00 0 -48 0 -64 2 polygon 1.00 120 -48 22 arrowhead 1.000 0.000 0.000 scb (C) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel (B) {/Times-Roman 1.000 cf} 2 7 0 -64 0 pinlabel (E) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel sce (spice:Q%i %pC %pB %pE pnp) {/Times-Roman 1.000 cf} 2 4 0 -244 -139 infolabel endgate } def % EndLib box begingate % fundamental 1 1.00 -48 0 -64 0 2 polygon 1 1.00 -48 48 -48 -48 2 polygon 1 1.00 0 48 -48 22 2 polygon 1 1.00 0 48 0 64 2 polygon 1 1.00 0 -48 -48 -22 2 polygon 1 1.00 0 -48 0 -64 2 polygon 1.00 120 -48 22 arrowhead 1.000 0.000 0.000 scb (C) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel (B) {/Times-Roman 1.000 cf} 2 7 0 -64 0 pinlabel (E) {/tutorial/psfiles/analoglib2.lps000644 000466 000017 00000015540 07176326347 017136 0ustar00timusers000000 000000 %! PostScript set of library objects for XCircuit % Version: 2.0 % Library name is: analoglib2 % Author: R. Timothy Edwards % % XCircuitLib library objects /capacitor { % -32 -64 177 128 bbox (1.0) (p) 2 beginparm % fundamental 1 1.00 0 -64 0 -6 2 polygon 1 1.00 0 64 0 6 2 polygon 1 1.00 -32 6 32 6 2 polygon 1 1.00 -32 -6 32 -6 2 polygon 1.000 0.000 0.000 scb (c.1) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (c.2) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce mark v2 v1 (spice:C%i %pc.1 %pc.2 ) {/Times-Roman 1.000 cf} ctmk 4 0 -208 -160 infolabel (sim:c %pc.1 %pc.2) {/Times-Roman 1.000 cf} 2 4 0 -208 -208 infolabel mark (F) v2 {hS} v1 {/Helvetica 1.000 cf} ctmk 20 0 48 0 label endgate } def /polarized { % -32 -64 177 128 bbox (1.0) (p) 2 beginparm % fundamental 1 1.00 0 -64 0 -6 2 polygon 1 1.00 0 64 0 6 2 polygon 1 1.00 -32 6 32 6 2 polygon 1 1.00 0 -80 74 66.00 114.00 xcarc 1.000 0.000 0.000 scb (t) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (b) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce mark v2 v1 (spice:C%i %pt %pb ) {/Times-Roman 1.000 cf} ctmk 4 0 -208 -160 infolabel (sim:e %pt %pb %pb) {/Times-Roman 1.000 cf} 2 4 0 -208 -208 infolabel mark (F) v2 {hS} v1 {/Helvetica 1.000 cf} ctmk 20 0 48 0 label endgate } def /resistor { % -14 -64 151 128 bbox (1.0) (k) 2 beginparm % fundamental 1 1.00 0 64 0 36 2 polygon 1 1.00 0 -64 0 -36 2 polygon 1 1.00 0 -36 14 -30 -14 -18 14 -6 -14 6 14 18 -14 30 0 36 8 polygon 1.000 0.000 0.000 scb (r.1) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (r.2) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce mark v2 v1 (spice:R%i %pr.1 %pr.2 ) {/Times-Roman 1.000 cf} ctmk 4 0 -208 -160 infolabel (sim:r %pr.1 %pr.2) {/Times-Roman 1.000 cf} 2 4 0 -208 -208 infolabel mark (W) {/Symbol 1.000 cf} v2 {hS} v1 {/Helvetica 1.000 cf} ctmk 20 0 32 0 label endgate } def /inductor { % -14 -64 164 112 bbox (1.0) (m) 2 beginparm % fundamental 1 1.00 20 -28 20 -44 0 -48 0 -24 spline 1 1.00 -20 -20 -20 -32 0 -28 0 -24 spline 1 1.00 20 32 20 16 0 12 0 36 spline 1 1.00 20 12 20 -4 0 -8 0 16 spline 1 1.00 20 -8 20 -24 0 -28 0 -4 spline 1 1.00 -20 20 -20 8 0 12 0 16 spline 1 1.00 -20 0 -20 -12 0 -8 0 -4 spline 1 1.00 0 -48 0 -64 2 polygon 1 1.00 0 36 0 48 2 polygon 1.000 0.000 0.000 scb (l.1) {/Times-Roman 1.000 cf} 2 9 0 0 48 pinlabel (l.2) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce mark v2 v1 (spice:L%i %pl.1 %pl.2 ) {/Times-Roman 1.000 cf} ctmk 4 0 -208 -160 infolabel (sim:l %pl.1 %pl.2) {/Times-Roman 1.000 cf} 2 4 0 -208 -208 infolabel mark (H) v2 {hS} v1 {/Helvetica 1.000 cf} ctmk 20 0 32 0 label endgate } def /source { % -32 -64 64 128 bbox % hidden begingate 1 1.00 0 0 32 0.00 360.00 xcarc 1 1.00 0 32 0 64 2 polygon 1 1.00 0 -32 0 -64 2 polygon endgate } def /vsource { % -32 -64 139 128 bbox (5) 1 beginparm % fundamental 1.00 0 0 0 source (+) {/Symbol 1.000 cf} 2 5 0 0 18 label (-) {/Symbol 1.000 cf} 2 5 0 0 -18 label 1.000 0.000 0.000 scb (v.p) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (v.m) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce mark v1 (spice:V%i %pv.m %pv.p ) {/Helvetica 1.000 cf} ctmk 20 0 -96 -160 infolabel mark (V) {hS} v1 {/Helvetica 1.000 cf} ctmk 20 0 48 0 label endgate } def /arrowhead { % -12 -32 24 36 bbox begingate 8 -28 beginpath 3 -18 3 -15 0 0 curveto -3 -15 -3 -18 -8 -28 curveto -2 -26 2 -26 8 -28 curveto 249 1.00 endpath endgate } def /isource { % -32 -64 163 128 bbox (1) (m) 2 beginparm % fundamental 1.00 0 0 0 source 1 0.75 0 20 0 -8 2 polygon 0.80 180 0 -20 arrowhead 1.000 0.000 0.000 scb (i.p) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (i.m) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce mark v2 v1 (spice:I%i %pi.m %pi.p ) {/Times-Roman 1.000 cf} ctmk 20 0 -96 -160 infolabel mark (A) v2 {hS} v1 {/Helvetica 1.000 cf} ctmk 20 0 48 0 label endgate } def /acsource { % -32 -64 211 128 bbox (5) (0) (1) (k) 4 beginparm % fundamental 1.00 0 0 0 source 1 0.80 0 -48 0 48 -16 0 16 0 spline 1.000 0.000 0.000 scb (s.p) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (s.m) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce mark (\)) v4 v3 ( ) v1 ( ) v2 (spice:V%i %ps.m %ps.p SIN\() {/Helvetica 1.000 cf} ctmk 20 0 -336 -160 infolabel mark (offset) {ss} (V) {hS} v2 {/Helvetica 1.000 cf} ctmk 20 0 48 0 label mark (p-p) {ss} (V) {hS} v1 {/Helvetica 1.000 cf} ctmk 20 0 48 48 label mark (Hz) v4 {hS} v3 {/Helvetica 1.000 cf} ctmk 20 0 48 -48 label endgate } def /nmos { % -64 -64 161 128 bbox (3) (2) (nmos) 3 beginparm % fundamental 1 1.00 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon 1 1.00 -44 -28 -44 28 2 polygon 1 1.00 -44 0 -64 0 2 polygon 1.000 0.000 0.000 scb (G) {/Helvetica 1.000 cf} 2 7 0 -64 0 pinlabel (S) {/Helvetica 1.000 cf} 2 13 0 0 -64 pinlabel (D) {/Helvetica 1.000 cf} 2 9 0 0 64 pinlabel sce mark v2 ( L=) v1 ( W=) v3 (spice:M%i %pD %pG %pS GND ) {/Times-Roman 1.000 cf} ctmk 4 0 -244 -139 infolabel (sim:n %pG %pD %pS) {/Times-Roman 1.000 cf} 2 4 0 -244 -187 infolabel mark v1 (W=) {/Helvetica 1.000 cf} ctmk 20 0 16 16 label mark v2 (L=) {/Helvetica 1.000 cf} ctmk 20 0 16 -16 label endgate } def /pmos { % -64 -64 161 128 bbox (3) (2) (pmos) 3 beginparm % fundamental 1 1.00 -44 -28 -44 28 2 polygon 1 1.00 -60 0 -64 0 2 polygon 1 1.00 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon 1 1.00 -52 0 8 0.00 360.00 xcarc 1.000 0.000 0.000 scb (S) {/Helvetica 1.000 cf} 2 9 0 0 64 pinlabel (D) {/Helvetica 1.000 cf} 2 13 0 0 -64 pinlabel (G) {/Helvetica 1.000 cf} 2 7 0 -64 0 pinlabel sce mark v2 ( L=) v1 ( W=) v3 (spice:M%i %pD %pG %pS Vdd ) {/Times-Roman 1.000 cf} ctmk 4 0 -196 -139 infolabel (sim:p %pG %pD %pS) {/Times-Roman 1.000 cf} 2 4 0 -196 -187 infolabel mark v1 (W=) {/Helvetica 1.000 cf} ctmk 20 0 16 16 label mark v2 (L=) {/Helvetica 1.000 cf} ctmk 20 0 16 -16 label endgate } def /npn { % -64 -64 72 128 bbox (npn) 1 beginparm % fundamental 1 1.00 -48 0 -64 0 2 polygon 1 1.00 -48 48 -48 -48 2 polygon 1 1.00 0 48 -48 22 2 polygon 1 1.00 0 48 0 64 2 polygon 1 1.00 0 -48 -48 -22 2 polygon 1 1.00 0 -48 0 -64 2 polygon 1.00 240 0 -48 arrowhead 1.000 0.000 0.000 scb (C) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (B) {/Times-Roman 1.000 cf} 2 7 0 -64 0 pinlabel (E) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce mark v1 (spice:Q%i %pC %pB %pE ) {/Times-Roman 1.000 cf} ctmk 4 0 -244 -139 infolabel (sim:b %pB %pE %pC) {/Times-Roman 1.000 cf} 2 4 0 -244 -187 infolabel endgate } def /pnp { % -64 -64 72 128 bbox (pnp) 1 beginparm % fundamental 1 1.00 -48 0 -64 0 2 polygon 1 1.00 -48 48 -48 -48 2 polygon 1 1.00 0 48 -48 22 2 polygon 1 1.00 0 48 0 64 2 polygon 1 1.00 0 -48 -48 -22 2 polygon 1 1.00 0 -48 0 -64 2 polygon 1.00 120 -48 22 arrowhead 1.000 0.000 0.000 scb (C) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel (B) {/Times-Roman 1.000 cf} 2 7 0 -64 0 pinlabel (E) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel sce mark v1 (spice:Q%i %pC %pB %pE ) {/Times-Roman 1.000 cf} ctmk 4 0 -244 -139 infolabel endgate } def % EndLib parm % fundamental 1 1.00 -48 0 -64 0 2 polygon 1 1.00 -48 48 -48 -48 2 polygon 1 1.00 0 48 -48 22 2 polygon 1 1.00 0 48 0 64 2 polygon 1 1.00 0 -48 -48 -2tutorial/psfiles/bridge.ps000644 000466 000017 00000031351 07325353475 016200 0ustar00timusers000000 000000 %!PS-Adobe-3.0 %%Title: ~/tmp/tutorial/bridge %%Creator: Xcircuit v2.3 %%CreationDate: Wed Jul 18 11:20:21 2001 %%Pages: 1 %%BoundingBox: 114 302 498 490 %%DocumentNeededResources: font Helvetica font Times-Roman font Times-RomanISO %%+ font HelveticaISO font Symbol %%EndComments %%BeginProlog % % PostScript prolog for output from xcircuit % Version: 2.3 % % Electrical circuit (and otherwise general) drawing program % % Written by Tim Edwards 8/5/93--5/16/01 (tim@bach.ece.jhu.edu) % The Johns Hopkins University % %%BeginResource: procset XCIRCproc 2.3 1 % supporting definitions --- these are the primary xcircuit types. /XCIRCsave save def /topmat matrix currentmatrix def /fontslant { /slant exch def [1 0 slant 1 0 0] exch findfont exch makefont dup length dict /ndict exch def { 1 index /FID ne { ndict 3 1 roll put } { pop pop } ifelse } forall ndict definefont pop} def /ul { dup type /stringtype eq showflag 1 eq and { gsave currentpoint topmat setmatrix 0 0 moveto 2 index stringwidth pop (_) false charpath flattenpath pathbbox grestore exch pop 1 index sub setlinewidth exch pop currentpoint 3 -1 roll add moveto 0 rlineto stroke moveto } if } def /ol { dup type /stringtype eq showflag 1 eq and { gsave gsave currentpoint topmat setmatrix 2 index stringwidth pop 3 index true charpath flattenpath pathbbox grestore exch pop exch pop topmat setmatrix (_) true charpath pathbbox grestore exch pop 1 index sub setlinewidth exch pop currentpoint exch 4 1 roll exch sub add moveto pop 0 rlineto stroke moveto } if } def /stW { gsave currentpoint newpath moveto true charpath flattenpath pathbbox pop exch pop sub grestore } def /Ts {mark Tabs aload pop counttomark 1 add array astore /Tabs exch def Tabs 0 currentpoint pop put} def /Tbn {mark Tabs aload pop counttomark dup 2 add 1 roll cleartomark 1 sub} def /Tb { 0 1 Tbn {Tabs exch get dup currentpoint pop lt {currentpoint exch pop moveto exit} {pop} ifelse } for } def /Tf { Tbn -1 0 {Tabs exch get dup currentpoint pop gt {currentpoint exch pop moveto exit} {pop} ifelse } for } def /qS { (aa) stW (a a) stW sub 4 div 0 Kn } def /hS { qS qS } def /pspc 0 def /cf0 { scalefont setfont } bind def /Kn { dup kY add /kY exch def rmoveto } bind def /ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul 0.33 mul neg Kn} def /Ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul 0.67 mul Kn } def /ns { 0 kY neg Kn /kY 0 def /fscale 1.0 def xfont0 1.0 cf0 } def /CR { ns 0 /Bline Bline fscale0 neg add def Bline moveto } def /cf { dup type /realtype ne {1.0} if exch findfont exch kY 0 eq { 40 mul dup /fscale0 exch def cf0 /xfont0 currentfont def} {fscale0 mul fscale mul cf0} ifelse } def /ctmk { counttomark dup 2 add -1 roll pop } bind def /label { gsave translate 0 0 moveto dup scale /rotval exch def /just exch def just 16 and 0 gt {0 1 dtransform gsave pagemat setmatrix idtransform exch grestore 1 0 dtransform gsave pagemat setmatrix idtransform exch grestore dup 0 eq {pop mul 0 gt} {3 1 roll pop pop 0 lt} ifelse {-1 /just just dup 3 and 1 ne {3 xor} if def} {1} ifelse exch 0 lt {-1 /just just dup 12 and 4 ne {12 xor} if def} {1} ifelse scale } if /showflag 0 def /fspc pspc def /Bline 0 def /Tabs 0 array def /fscale 1.0 def /kY 0 def gsave dup 1 add copy 0 exch {exch dup type /stringtype eq {true charpath flattenpath} {exec} ifelse } repeat pop pathbbox grestore 3 -1 roll pop 3 1 roll just 1 and 0 gt {just 2 and 0 gt {exch pop neg fspc sub} {exch sub 0.5 mul neg} ifelse} {pop neg fspc add} ifelse exch Bline exch just 4 and 0 gt {just 8 and 0 gt {exch pop neg fspc sub} {add 0.5 mul neg} ifelse} {pop neg fspc add} ifelse /showflag 1 def rotval rotate Kn currentpoint translate /Bline 0 def /Tabs 0 array def /fscale 1.0 def /kY 0 def {dup type /stringtype eq {show}{exec} ifelse} repeat grestore } def /pinlabel { hlevel 0 eq { /pspc 20 def label /pspc 0 def } { pop pop pop pop pop {pop} repeat } ifelse } def /pinglobal { pinlabel } def /infolabel { pinlabel } def /scb { setrgbcolor } bind def /sce { defColor aload pop scb } bind def /cRedef {/defColor currentcolor 3 array astore def} def /begingate { /hlevel hlevel 1 add def /defColor currentcolor sce 3 array astore def gsave sce translate 0 0 moveto dup 0 lt {neg 1 sub -1 1 scale} if rotate dup scale } bind def /makeparm {3 string cvs dup length 1 add string /tstr exch def tstr exch 1 exch putinterval tstr 0 (v) putinterval tstr cvn} bind def /beginparm { -1 1 {makeparm exch def} for dup type /arraytype eq { aload length -1 1 {makeparm exch def} for } if begingate } bind def /endgate { /hlevel hlevel 1 sub def grestore defColor aload pop cRedef scb} bind def /hlevel 0 def /tmpa [1 0 0 1 0 0] def /gar {8 8 true tmpa {} imagemask} bind {8 8 true tmpa {<30 70 60 02 03 07 06 20>} imagemask} bind {8 8 true tmpa {<0c 1e 1e 0c c0 e1 e1 c0>} imagemask} bind {8 8 true tmpa {<0f 0f 0f 0f f0 f0 f0 f0>} imagemask} bind {8 8 true tmpa {<3f f3 e1 e1 f3 3f 1e 1e>} imagemask} bind {8 8 true tmpa {} imagemask} bind {8 8 true tmpa {} imagemask} bind 7 array astore def /ppaint { gsave clip tmpa dup setmatrix pathbbox neg exch neg 4 2 roll neg 4 -1 roll 2 copy gt {exch} if 8 div ceiling 8 mul 4 2 roll neg 2 copy gt {exch} if 8 div ceiling 8 mul 3 -1 roll -8 5 -1 roll { 3 index exch 5 exch put dup -8 3 index { 3 index exch 4 exch put 3 index exec } for } for pop pop pop pop grestore } bind def /setstyles { currentlinewidth mul setlinewidth /style exch def style 1 and 0 gt not {closepath} if style 2 and 0 gt {currentlinewidth 4 mul dup 2 array astore 0 setdash} if style 4 and 0 gt {0.5 currentlinewidth 4 mul 2 array astore 0 setdash} if style dup 256 ge exch 480 lt and { gsave 1 setgray eofill grestore } if style 16 and 0 gt { gsave style 224 and -5 bitshift dup 7 lt {gar exch get ppaint} { pop eofill } ifelse grestore } if style 8 and 0 gt style 512 eq or { newpath } { stroke } ifelse grestore } def /polygon { gsave /num exch def moveto num 1 sub {lineto} repeat setstyles } def /xcarc { gsave newpath arc setstyles } def /elb { matrix currentmatrix 7 -1 roll 7 -1 roll translate 5 1 roll 4 -1 roll 3 index div 1 scale } def /ele { 0 4 1 roll 0 4 1 roll } bind def /ellipse { gsave elb newpath ele arc setmatrix setstyles } def /pellip { elb ele arc setmatrix } def /nellip { elb ele arcn setmatrix } def /spline { gsave moveto curveto setstyles } def /polyc { {lineto} repeat } bind def /beginpath { gsave moveto } bind def /endpath { setstyles } bind def /bop { 1 setlinecap 0 setlinejoin 6 setmiterlimit 0 0 0 scb cRedef } def /insertion {/PSobj save def /showpage {} def bop translate} def /end_insert {PSobj restore} def /setpagemat {/pagemat matrix currentmatrix def} def /inchscale {setpagemat 0.375 mul dup scale} def /cmscale {setpagemat 0.35433071 mul dup scale} def %%EndResource %%EndProlog /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def currentdict end /Times-RomanISO exch definefont pop /Helvetica findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def currentdict end /HelveticaISO exch definefont pop % XCircuit output starts here. /inductor { % -14 -64 29 112 bbox begingate 1 1.00 20 -28 20 -44 0 -48 0 -24 spline 1 1.00 -20 -20 -20 -32 0 -28 0 -24 spline 1 1.00 20 32 20 16 0 12 0 36 spline 1 1.00 20 12 20 -4 0 -8 0 16 spline 1 1.00 20 -8 20 -24 0 -28 0 -4 spline 1 1.00 -20 20 -20 8 0 12 0 16 spline 1 1.00 -20 0 -20 -12 0 -8 0 -4 spline 1 1.00 0 -48 0 -64 2 polygon 1 1.00 0 36 0 48 2 polygon 1.000 0.000 0.000 scb (l.1) {/Times-Roman cf} 2 9 0 1.00 0 48 pinlabel (l.2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel sce (spice:L%i %pl.1 %pl.2 1.0U) {/Times-Roman cf} 2 0 0 1.00 -208 -160 infolabel sce (sim:l %pl.1 %pl.2) {/Times-Roman cf} 2 0 0 1.00 -208 -208 infolabel endgate } def /Transformer { % -62 -64 108 112 bbox (?) 1 beginparm 1.00 0 -48 0 inductor 1 1.00 -16 48 -16 -64 2 polygon 1 1.00 0 48 0 -64 2 polygon 1.00 180 32 -16 inductor 1.000 0.000 0.000 scb (1) {/Helvetica cf} 2 25 0 1.00 -48 48 pinlabel (2) {/Helvetica cf} 2 29 0 1.00 -48 -64 pinlabel (3) {/Helvetica cf} 2 25 0 1.00 32 48 pinlabel (4) {/Helvetica cf} 2 29 0 1.00 32 -64 pinlabel sce mark v1 (pcb:T) {/Times-Roman cf} ctmk 20 0 1.00 -96 -160 infolabel endgate } def /circle { % -6 -12 28 24 bbox % trivial begingate 1 1.00 16 0 6 0.00 360.00 xcarc 1 1.00 0 0 10 0 2 polygon 1.000 0.000 0.000 scb (out) {/Times-Roman cf} 2 4 0 1.00 16 0 pinlabel (out) {/Times-Roman cf} 2 7 0 1.00 0 0 pinlabel endgate } def /Diode { % -18 -48 36 96 bbox (?) 1 beginparm 248 1.00 -18 -16 0 16 18 -16 3 polygon 1 1.00 0 -48 0 -16 2 polygon 1 1.00 0 48 0 16 2 polygon 1 1.00 -18 16 18 16 2 polygon 1.000 0.000 0.000 scb (1) {/Times-Roman cf} 2 9 0 1.00 0 48 pinlabel (2) {/Times-Roman cf} 2 13 0 1.00 0 -48 pinlabel sce mark v1 (pcb:D) {/Helvetica cf} ctmk 20 0 1.00 -64 -144 infolabel mark ( %p1 %p2 diode) v1 (spice:D) {/Times-Roman cf} ctmk 4 0 1.00 -64 -192 endgate } def /rectifier { % -112 -48 192 192 bbox begingate 1.00 315 -64 96 Diode 1.00 225 32 96 Diode 1.00 225 -64 0 Diode 1.00 315 32 0 Diode 1 1.00 -30 130 -16 144 -2 130 3 polygon 1 1.00 66 62 80 48 66 34 3 polygon 1 1.00 -2 -34 -16 -48 -30 -34 3 polygon 1 1.00 -98 34 -112 48 -98 62 3 polygon endgate } def /dot { % -10 -10 20 20 bbox % trivial begingate 248 1.00 0 0 6 0.00 360.00 xcarc 1.000 0.000 0.000 scb (x) {/Times-Roman cf} 2 29 0 1.00 0 0 pinlabel endgate } def /jumper { % -4 -14 18 28 bbox % trivial begingate 1 1.00 0 0 10 -90.00 90.00 xcarc 1 1.00 0 10 0 16 2 polygon 1 1.00 0 -10 0 -16 2 polygon 1.000 0.000 0.000 scb (a) {/Times-Roman cf} 2 1 0 1.00 0 16 pinlabel (a) {/Times-Roman cf} 2 13 0 1.00 0 -16 pinlabel endgate } def /gnd { % -32 -60 64 68 bbox % trivial begingate 1 1.00 0 0 0 -32 2 polygon 1 1.00 -32 -32 32 -32 2 polygon 1 1.00 -18 -46 18 -46 2 polygon 1 1.00 -4 -60 4 -60 2 polygon 1.000 0.000 0.000 scb (GND) {/Times-Roman cf} 2 1 0 1.00 0 0 pinglobal endgate } def /Capacitor { % -32 -64 186 128 bbox (1.0) (p) (?) 3 beginparm 1 1.00 0 -64 0 -6 2 polygon 1 1.00 0 64 0 6 2 polygon 1 1.00 -32 6 32 6 2 polygon 1 1.00 -32 -6 32 -6 2 polygon 1.000 0.000 0.000 scb (1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel (2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel sce mark v2 v1 ( %p1 %p2 ) v3 (spice:C) {/Times-RomanISO cf} ctmk 4 0 1.00 -208 -160 infolabel sce (sim:c %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel mark (F) v2 {hS} v1 {/Times-RomanISO cf} ctmk 20 0 1.00 48 0 label sce mark v3 (pcb:C) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel endgate } def /Polarized { % -32 -64 176 128 bbox (1.0) (p) (?) 3 beginparm 1 1.00 0 -64 0 -6 2 polygon 1 1.00 0 64 0 6 2 polygon 1 1.00 -32 6 32 6 2 polygon 1 1.00 0 -80 74 66.00 114.00 xcarc 1.000 0.000 0.000 scb (1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel (2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel sce mark v2 v1 ( %p1 %p2 ) v3 (spice:C) {/Times-RomanISO cf} ctmk 4 0 1.00 -208 -160 infolabel sce (sim:e %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel mark (F) v2 {hS} v1 {/Times-RomanISO cf} ctmk 20 0 1.00 48 0 label sce mark v3 (pcb:C) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel endgate } def %%Page: 1 1 %%PageOrientation: Portrait /pgsave save def bop % 529 953 offsets 1.0000 inchscale 2.6000 setlinewidth 1.00 0 497 1065 Transformer 1 1.00 449 1113 449 1193 401 1193 3 polygon 1 1.00 449 1001 449 937 401 937 3 polygon 1.00 -1 401 1193 circle 1.00 -1 401 937 circle 1.000 0.000 0.000 scb (+) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 385 1193 pinlabel (-) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 385 937 pinlabel sce 1.00 0 785 1017 rectifier 1 1.00 529 1113 529 1193 769 1193 769 1161 4 polygon 1 1.00 529 1001 529 937 769 937 769 969 4 polygon 1.00 0 769 969 dot 1.00 0 769 1161 dot 1 1.00 673 1065 641 1065 641 953 3 polygon 1 1.00 641 921 641 873 1201 873 3 polygon 1 1.00 865 1065 1201 1065 2 polygon 1 1.00 961 1065 961 1033 2 polygon 1 1.00 1041 1065 1041 1033 2 polygon 1 1.00 961 905 961 873 2 polygon 1 1.00 1041 905 1041 873 2 polygon 1.00 0 1041 873 dot 1.00 0 961 873 dot 1.00 0 961 1065 dot 1.00 0 1041 1065 dot 1.00 0 865 1065 dot 1.00 0 673 1065 dot 1.00 -1 641 937 jumper 1.00 0 641 873 gnd 1.00 0 641 873 dot 1.00 0 1201 873 circle 1.00 0 1201 1065 circle 1.000 0.000 0.000 scb (Vout) {0 -80 Kn} {/Helvetica cf} 3 28 0 1.00 1217 1065 pinlabel sce (+) {/Symbol cf} 2 20 0 1.00 1249 1065 label (-) {/Symbol cf} 2 20 0 1.00 1249 873 label (Bridge Rectifier) {/Helvetica cf} 2 24 0 1.00 369 1273 label 1.00 -1 961 969 [(1.0) (\265) ] Capacitor 1.00 0 1041 969 [(10) (\265) ] Polarized (1N914) {hS} (\327) {hS} (4) {/HelveticaISO cf} 6 24 0 1.00 849 1145 label pgsave restore showpage %%Trailer XCIRCsave restore %%EOF 3 dot 1.00 0 1201 873 circle 1.00 0 1201 1065 circle 1.000 0.000 0.000 scb (Vout) {0 -80 Kn} {/Helvetica cf} 3 28 0 1.00 1217 1065 pinlabel sce (+) {/Symbol cf} 2 20 0 1.00 1249 1065 label (-) {/Symbol cf} 2 20 0 1.00 1249 873 label (Bridge Rectifier) {/Helvetica cf} 2 24 0 1.00tutorial/psfiles/buses.ps000644 000466 000017 00000023350 07371541736 016065 0ustar00timusers000000 000000 %!PS-Adobe-3.0 EPSF-3.0 %%Title: buses %%Creator: Xcircuit v2.3 %%CreationDate: Mon Nov 5 11:36:02 2001 %%Pages: 1 %%BoundingBox: 68 68 712 496 %%DocumentNeededResources: font Helvetica font Helvetica-Oblique %%EndComments %%BeginProlog % % PostScript prolog for output from xcircuit % Version: 2.3 % % Electrical circuit (and otherwise general) drawing program % % Written by Tim Edwards 8/5/93--5/16/01 (tim@bach.ece.jhu.edu) % The Johns Hopkins University % %%BeginResource: procset XCIRCproc 2.3 2 % supporting definitions --- these are the primary xcircuit types. /XCIRCsave save def /topmat matrix currentmatrix def /fontslant { /slant exch def [1 0 slant 1 0 0] exch findfont exch makefont dup length dict /ndict exch def { 1 index /FID ne { ndict 3 1 roll put } { pop pop } ifelse } forall ndict definefont pop} def /ul { dup type /stringtype eq showflag 1 eq and { gsave currentpoint topmat setmatrix 0 0 moveto 2 index stringwidth pop (_) false charpath flattenpath pathbbox grestore exch pop 1 index sub setlinewidth exch pop currentpoint 3 -1 roll add moveto 0 rlineto stroke moveto } if } def /ol { dup type /stringtype eq showflag 1 eq and { gsave gsave currentpoint topmat setmatrix 2 index stringwidth pop 3 index true charpath flattenpath pathbbox grestore exch pop exch pop topmat setmatrix (_) true charpath pathbbox grestore exch pop 1 index sub setlinewidth exch pop currentpoint exch 4 1 roll exch sub add moveto pop 0 rlineto stroke moveto } if } def /stW { gsave currentpoint newpath moveto true charpath flattenpath pathbbox pop exch pop sub grestore } def /Ts {mark Tabs aload pop counttomark 1 add array astore /Tabs exch def Tabs 0 currentpoint pop put} def /Tbn {mark Tabs aload pop counttomark dup 2 add 1 roll cleartomark 1 sub} def /Tb { 0 1 Tbn {Tabs exch get dup currentpoint pop lt {currentpoint exch pop moveto exit} {pop} ifelse } for } def /Tf { Tbn -1 0 {Tabs exch get dup currentpoint pop gt {currentpoint exch pop moveto exit} {pop} ifelse } for } def /qS { (aa) stW (a a) stW sub 4 div 0 Kn } def /hS { qS qS } def /pspc 0 def /cf0 { scalefont setfont } bind def /Kn { dup kY add /kY exch def rmoveto } bind def /ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul 0.33 mul neg Kn} def /Ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul 0.67 mul Kn } def /ns { 0 kY neg Kn /kY 0 def /fscale 1.0 def xfont0 1.0 cf0 } def /CR { ns 0 /Bline Bline fscale0 neg add def Bline moveto } def /cf { dup type /realtype ne {1.0} if exch findfont exch kY 0 eq { 40 mul dup /fscale0 exch def cf0 /xfont0 currentfont def} {fscale0 mul fscale mul cf0} ifelse } def /ctmk { counttomark dup 2 add -1 roll pop } bind def /label { gsave translate 0 0 moveto dup scale /rotval exch def /just exch def just 16 and 0 gt {0 1 dtransform gsave pagemat setmatrix idtransform exch grestore 1 0 dtransform gsave pagemat setmatrix idtransform exch grestore dup 0 eq {pop mul 0 gt} {3 1 roll pop pop 0 lt} ifelse {-1 /just just dup 3 and 1 ne {3 xor} if def} {1} ifelse exch 0 lt {-1 /just just dup 12 and 4 ne {12 xor} if def} {1} ifelse scale } if /showflag 0 def /fspc pspc def /Bline 0 def /Tabs 0 array def /fscale 1.0 def /kY 0 def gsave dup 1 add copy 0 exch {exch dup type /stringtype eq {true charpath flattenpath} {exec} ifelse } repeat pop pathbbox grestore 3 -1 roll pop 3 1 roll just 1 and 0 gt {just 2 and 0 gt {exch pop neg fspc sub} {exch sub 0.5 mul neg} ifelse} {pop neg fspc add} ifelse exch Bline exch just 4 and 0 gt {just 8 and 0 gt {exch pop neg fspc sub} {add 0.5 mul neg} ifelse} {pop neg fspc add} ifelse /showflag 1 def rotval rotate Kn currentpoint translate /Bline 0 def /Tabs 0 array def /fscale 1.0 def /kY 0 def {dup type /stringtype eq {show}{exec} ifelse} repeat grestore } def /pinlabel { 4 index 32 and 0 ne hlevel 0 eq or { /pspc 20 def label /pspc 0 def } { pop pop pop pop pop {pop} repeat } ifelse } def /pinglobal { pinlabel } def /infolabel { pinlabel } def /scb { setrgbcolor } bind def /sce { defColor aload pop scb } bind def /cRedef {/defColor currentcolor 3 array astore def} def /begingate { /hlevel hlevel 1 add def /defColor currentcolor sce 3 array astore def gsave sce translate 0 0 moveto dup 0 lt {neg 1 sub -1 1 scale} if rotate dup scale } bind def /makeparm {3 string cvs dup length 1 add string /tstr exch def tstr exch 1 exch putinterval tstr 0 (v) putinterval tstr cvn} bind def /beginparm { -1 1 {makeparm exch def} for dup type /arraytype eq { aload length -1 1 {makeparm exch def} for } if begingate } bind def /endgate { /hlevel hlevel 1 sub def grestore defColor aload pop cRedef scb} bind def /hlevel 0 def /tmpa [1 0 0 1 0 0] def /gar {8 8 true tmpa {} imagemask} bind {8 8 true tmpa {<30 70 60 02 03 07 06 20>} imagemask} bind {8 8 true tmpa {<0c 1e 1e 0c c0 e1 e1 c0>} imagemask} bind {8 8 true tmpa {<0f 0f 0f 0f f0 f0 f0 f0>} imagemask} bind {8 8 true tmpa {<3f f3 e1 e1 f3 3f 1e 1e>} imagemask} bind {8 8 true tmpa {} imagemask} bind {8 8 true tmpa {} imagemask} bind 7 array astore def /ppaint { gsave clip tmpa dup setmatrix pathbbox neg exch neg 4 2 roll neg 4 -1 roll 2 copy gt {exch} if 8 div ceiling 8 mul 4 2 roll neg 2 copy gt {exch} if 8 div ceiling 8 mul 3 -1 roll -8 5 -1 roll { 3 index exch 5 exch put dup -8 3 index { 3 index exch 4 exch put 3 index exec } for } for pop pop pop pop grestore } bind def /setstyles { currentlinewidth mul setlinewidth /style exch def style 1 and 0 gt not {closepath} if style 2 and 0 gt {currentlinewidth 4 mul dup 2 array astore 0 setdash} if style 4 and 0 gt {0.5 currentlinewidth 4 mul 2 array astore 0 setdash} if style dup 256 ge exch 480 lt and { gsave 1 setgray eofill grestore } if style 16 and 0 gt { gsave style 224 and -5 bitshift dup 7 lt {gar exch get ppaint} { pop eofill } ifelse grestore } if style 8 and 0 gt style 512 eq or { newpath } { stroke } ifelse grestore } def /polygon { gsave /num exch def moveto num 1 sub {lineto} repeat setstyles } def /xcarc { gsave newpath arc setstyles } def /elb { matrix currentmatrix 7 -1 roll 7 -1 roll translate 5 1 roll 4 -1 roll 3 index div 1 scale } def /ele { 0 4 1 roll 0 4 1 roll } bind def /ellipse { gsave elb newpath ele arc setmatrix setstyles } def /pellip { elb ele arc setmatrix } def /nellip { elb ele arcn setmatrix } def /spline { gsave moveto curveto setstyles } def /polyc { {lineto} repeat } bind def /beginpath { gsave moveto } bind def /endpath { setstyles } bind def /bop { 1 setlinecap 0 setlinejoin 6 setmiterlimit 0 0 0 scb cRedef } def /insertion {/PSobj save def /showpage {} def bop translate} def /end_insert {PSobj restore} def /setpagemat {/pagemat matrix currentmatrix def} def /inchscale {setpagemat 0.375 mul dup scale} def /cmscale {setpagemat 0.35433071 mul dup scale} def %%EndResource %%EndProlog % XCircuit output starts here. /dbus1 { % -608 0 1216 42 bbox begingate 1.000 0.000 0.000 scb (d[3]) {/Helvetica cf} 2 23 0 1.00 -608 -64 pinlabel (d[2]) {/Helvetica cf} 2 23 0 1.00 -608 -32 pinlabel (d[1]) {/Helvetica cf} 2 23 0 1.00 -608 0 pinlabel (d[0]) {/Helvetica cf} 2 23 0 1.00 -608 32 pinlabel (d[3]) {/Helvetica cf} 2 20 0 1.00 608 -64 pinlabel (d[2]) {/Helvetica cf} 2 20 0 1.00 608 -32 pinlabel (d[1]) {/Helvetica cf} 2 20 0 1.00 608 0 pinlabel (d[0]) {/Helvetica cf} 2 20 0 1.00 608 32 pinlabel sce (data bus) {/Helvetica cf} 2 17 0 1.00 -64 16 label 1 1.00 -608 0 608 0 2 polygon endgate } def /chip1 { % -96 -96 192 192 bbox (?) 1 beginparm 0 1.00 -96 -96 -96 96 96 96 96 -96 4 polygon ( data ) {/Helvetica cf} 2 23 0 1.00 96 0 label 1.000 0.000 0.000 scb (p0) {/Helvetica cf} 2 20 0 1.00 96 48 pinlabel (p1) {/Helvetica cf} 2 20 0 1.00 96 16 pinlabel (p2) {/Helvetica cf} 2 20 0 1.00 96 -16 pinlabel (p3) {/Helvetica cf} 2 20 0 1.00 96 -48 pinlabel sce mark v1 (Chip ) {/Helvetica cf} ctmk 21 0 1.00 0 64 label endgate } def /arrowhead { % -12 -32 24 36 bbox % trivial begingate 8 -28 beginpath 3 -18 3 -15 0 0 curveto -3 -15 -3 -18 -8 -28 curveto -2 -26 2 -26 8 -28 curveto 249 1.00 endpath endgate } def /arrow { % -12 -40 24 80 bbox % trivial begingate 1 0.80 0 -40 0 20 2 polygon 1.00 0 0 40 arrowhead endgate } def %%Page: 1 1 %%PageOrientation: Portrait /pgsave save def bop % 1152 692 offsets 1.0000 inchscale 2.6000 setlinewidth 1 1.00 288 756 288 884 672 884 672 756 4 polygon 1 1.00 352 1012 352 884 608 884 608 1012 4 polygon 1 1.00 432 1012 432 884 752 884 752 756 4 polygon 1 1.00 224 1012 224 884 864 884 864 756 4 polygon 1 2.00 224 884 864 884 2 polygon 1 1.00 1312 1108 1312 980 1728 980 1728 596 1888 596 5 polygon 1 1.00 1408 1108 1408 980 1728 980 1728 692 1888 692 5 polygon 1 1.00 1584 964 1600 996 2 polygon (2) {/Helvetica cf} 2 17 0 1.00 1584 996 label 1.000 0.000 0.000 scb (b\(1\)) {/Helvetica cf} 2 17 0 1.00 1312 1108 pinlabel (b\(2\)) {/Helvetica cf} 2 17 0 1.00 1408 1108 pinlabel (a[0]) {/Helvetica cf} 2 17 0 1.00 224 1012 pinlabel (a[1]) {/Helvetica cf} 2 17 0 1.00 352 1012 pinlabel (a[2]) {/Helvetica cf} 2 17 0 1.00 432 1012 pinlabel (a[3]) {/Helvetica cf} 2 29 0 1.00 288 756 pinlabel sce 1.00 0 1024 340 dbus1 1.00 0 320 324 [(1) ] chip1 1.00 -1 1728 324 [(2) ] chip1 (Three styles of buses in xcircuit) {ul} {/Helvetica cf} 3 21 0 1.00 992 1300 label (1\) \252standard\272 method) {/Helvetica cf} 2 16 0 1.00 192 1172 label (" to see actual pins.) {/Helvetica cf} (Options->Show Pin Positions) {/Helvetica-Oblique cf} (2\) \252sneaky\272 method. Use ") {/Helvetica cf} 6 16 0 1.00 224 500 label 1.00 120 448 388 arrow (real pin position \(normally not seen\)) {/Helvetica cf} 2 16 0 0.80 496 420 label 1.00 60 992 308 arrow (named the same.) {CR} (Pins on either end are) {CR} (The bus is a subcircuit.) {/Helvetica cf} 6 28 0 0.80 1040 276 label pgsave restore showpage %%Trailer XCIRCsave restore %%EOF 16 0 1.00 192 1172 label (" to see actual pins.) {/Helvetica cf} (Options->Show Pin Positions) {/Helvetica-Oblique cf} (2\) \252sneaky\272 method. Use ") {/Helvetica cf} 6 16 0 1.00 224 500 label 1.00 120 448 388 arrow (real pin position \(normally not seen\)) {/Helvetica cf} tutorial/psfiles/dff.ps000644 000466 000017 00000022142 07407737043 015477 0ustar00timusers000000 000000 %!PS-Adobe-3.0 EPSF-3.0 %%Title: dff %%Creator: Xcircuit v2.5 %%CreationDate: Tue Dec 18 16:50:59 2001 %%Pages: 1 %%BoundingBox: 68 68 371 229 %%DocumentNeededResources: font Helvetica font Times-Roman %%EndComments %%BeginProlog % % PostScript prolog for output from xcircuit % Version: 2.4 % % Electrical circuit (and otherwise general) drawing program % % Written by Tim Edwards 8/5/93--5/16/01 (tim@bach.ece.jhu.edu) % The Johns Hopkins University % %%BeginResource: procset XCIRCproc 2.4 1 % supporting definitions --- these are the primary xcircuit types. /XCIRCsave save def /topmat matrix currentmatrix def /fontslant { /slant exch def [1 0 slant 1 0 0] exch findfont exch makefont dup length dict /ndict exch def { 1 index /FID ne { ndict 3 1 roll put } { pop pop } ifelse } forall ndict definefont pop} def /ul { dup type /stringtype eq showflag 1 eq and { gsave currentpoint topmat setmatrix 0 0 moveto 2 index stringwidth pop (_) false charpath flattenpath pathbbox grestore exch pop 1 index sub setlinewidth exch pop currentpoint 3 -1 roll add moveto 0 rlineto stroke moveto } if } def /ol { dup type /stringtype eq showflag 1 eq and { gsave gsave currentpoint topmat setmatrix 2 index stringwidth pop 3 index true charpath flattenpath pathbbox grestore exch pop exch pop topmat setmatrix (_) true charpath pathbbox grestore exch pop 1 index sub setlinewidth exch pop currentpoint exch 4 1 roll exch sub add moveto pop 0 rlineto stroke moveto } if } def /stW { gsave currentpoint newpath moveto true charpath flattenpath pathbbox pop exch pop sub grestore } def /Ts {mark Tabs aload pop counttomark 1 add array astore /Tabs exch def Tabs 0 currentpoint pop put} def /Tbn {mark Tabs aload pop counttomark dup 2 add 1 roll cleartomark 1 sub} def /Tb { 0 1 Tbn {Tabs exch get dup currentpoint pop lt {currentpoint exch pop moveto exit} {pop} ifelse } for } def /Tf { Tbn -1 0 {Tabs exch get dup currentpoint pop gt {currentpoint exch pop moveto exit} {pop} ifelse } for } def /qS { (aa) stW (a a) stW sub 4 div 0 Kn } def /hS { qS qS } def /pspc 0 def /cf0 { scalefont setfont } bind def /Kn { dup kY add /kY exch def rmoveto } bind def /ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul 0.33 mul neg Kn} def /Ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul 0.67 mul Kn } def /ns { 0 kY neg Kn /kY 0 def /fscale 1.0 def xfont0 1.0 cf0 } def /CR { ns 0 /Bline Bline fscale0 neg add def Bline moveto } def /cf { dup type /realtype ne {1.0} if exch findfont exch kY 0 eq { 40 mul dup /fscale0 exch def cf0 /xfont0 currentfont def} {fscale0 mul fscale mul cf0} ifelse } def /ctmk { counttomark dup 2 add -1 roll pop } bind def /label { gsave translate 0 0 moveto dup scale neg /rotval exch def /just exch def just 16 and 0 gt {gsave rotval rotate 0 1 dtransform gsave pagemat setmatrix idtransform exch grestore 1 0 dtransform gsave pagemat setmatrix idtransform exch grestore dup abs 1e-9 lt {pop mul 0 gt} {3 1 roll pop pop 0 lt} ifelse grestore {-1 /rotval rotval neg def /just just dup 3 and 1 ne {3 xor} if def} {1} ifelse exch -1e-9 lt {-1 /rotval rotval neg def /just just dup 12 and 4 ne {12 xor} if def} {1} ifelse scale } if /showflag 0 def /fspc pspc def /Bline 0 def /Tabs 0 array def /fscale 1.0 def /kY 0 def gsave dup 1 add copy 0 exch 1 0 dtransform exch atan rotate {exch dup type /stringtype eq {true charpath flattenpath} {exec} ifelse } repeat pop pathbbox grestore 3 -1 roll pop 3 1 roll just 1 and 0 gt {just 2 and 0 gt {exch pop neg fspc sub} {exch sub 0.5 mul neg} ifelse} {pop neg fspc add} ifelse exch Bline exch just 4 and 0 gt {just 8 and 0 gt {exch pop neg fspc sub} {add 0.5 mul neg} ifelse} {pop neg fspc add} ifelse rotval rotate Kn currentpoint translate /showflag 1 def /Bline 0 def /Tabs 0 array def /fscale 1.0 def /kY 0 def {dup type /stringtype eq {show}{exec} ifelse} repeat grestore } def /pinlabel { 4 index 32 and 0 ne hlevel 0 eq or { /pspc 20 def label /pspc 0 def } { pop pop pop pop pop {pop} repeat } ifelse } def /pinglobal { pinlabel } def /infolabel { pinlabel } def /scb { setrgbcolor } bind def /sce { defColor aload pop scb } bind def /cRedef {/defColor currentcolor 3 array astore def} def /begingate { /hlevel hlevel 1 add def /defColor currentcolor sce 3 array astore def gsave sce translate 0 0 moveto neg rotate dup abs scale } bind def /makeparm {3 string cvs dup length 1 add string /tstr exch def tstr exch 1 exch putinterval tstr 0 (v) putinterval tstr cvn} bind def /beginparm { -1 1 {makeparm exch def} for dup type /arraytype eq { aload length -1 1 {makeparm exch def} for } if begingate } bind def /endgate { /hlevel hlevel 1 sub def grestore defColor aload pop cRedef scb} bind def /hlevel 0 def /tmpa [1 0 0 1 0 0] def /gar {8 8 true tmpa {} imagemask} bind {8 8 true tmpa {<30 70 60 02 03 07 06 20>} imagemask} bind {8 8 true tmpa {<0c 1e 1e 0c c0 e1 e1 c0>} imagemask} bind {8 8 true tmpa {<0f 0f 0f 0f f0 f0 f0 f0>} imagemask} bind {8 8 true tmpa {<3f f3 e1 e1 f3 3f 1e 1e>} imagemask} bind {8 8 true tmpa {} imagemask} bind {8 8 true tmpa {} imagemask} bind 7 array astore def /ppaint { gsave clip tmpa dup setmatrix pathbbox neg exch neg 4 2 roll neg 4 -1 roll 2 copy gt {exch} if 8 div ceiling 8 mul 4 2 roll neg 2 copy gt {exch} if 8 div ceiling 8 mul 3 -1 roll -8 5 -1 roll { 3 index exch 5 exch put dup -8 3 index { 3 index exch 4 exch put 3 index exec } for } for pop pop pop pop grestore } bind def /setstyles { currentlinewidth mul setlinewidth /style exch def style 1 and 0 gt not {closepath} if style 2 and 0 gt {currentlinewidth 4 mul dup 2 array astore 0 setdash} if style 4 and 0 gt {0.5 currentlinewidth 4 mul 2 array astore 0 setdash} if style dup 256 ge exch 480 lt and { gsave 1 setgray eofill grestore } if style 16 and 0 gt { gsave style 224 and -5 bitshift dup 7 lt {gar exch get ppaint} { pop eofill } ifelse grestore } if style 8 and 0 gt style 512 eq or { newpath } { stroke } ifelse grestore } def /polygon { gsave /num exch def moveto num 1 sub {lineto} repeat setstyles } def /xcarc { gsave newpath arc setstyles } def /elb { matrix currentmatrix 7 -1 roll 7 -1 roll translate 5 1 roll 4 -1 roll 3 index div 1 scale } def /ele { 0 4 1 roll 0 4 1 roll } bind def /ellipse { gsave elb newpath ele arc setmatrix setstyles } def /pellip { elb ele arc setmatrix } def /nellip { elb ele arcn setmatrix } def /spline { gsave moveto curveto setstyles } def /polyc { {lineto} repeat } bind def /beginpath { gsave moveto } bind def /endpath { setstyles } bind def /bop { 1 setlinecap 0 setlinejoin 6 setmiterlimit 0 0 0 scb cRedef } def /insertion {/PSobj save def /showpage {} def bop translate} def /end_insert {PSobj restore} def /setpagemat {/pagemat matrix currentmatrix def} def /inchscale {setpagemat 0.375 mul dup scale} def /cmscale {setpagemat 0.35433071 mul dup scale} def %%EndResource %%EndProlog % XCircuit output starts here. /quadnand { % -64 -48 128 96 bbox (?) (1) (1) (2) (3) 5 beginparm 1 1.00 0 -48 -64 -48 -64 48 0 48 4 polygon 1 1.00 56 0 8 0.00 360.00 xcarc 1 1.00 0 0 48 -90.00 90.00 xcarc 1.000 0.000 0.000 scb mark v5 {/Times-Roman cf} ctmk 4 0 1.00 64 0 pinlabel mark v3 {/Times-Roman cf} ctmk 7 0 1.00 -64 32 pinlabel mark v4 {/Times-Roman cf} ctmk 7 0 1.00 -64 -32 pinlabel sce mark v2 (-) v1 (pcb:U) {/Helvetica cf} ctmk 20 0 1.00 -80 -96 infolabel mark v2 (7400-) {/Helvetica cf} ctmk 21 0 0.50 -8 0 label endgate } def /dot { % -10 -10 20 20 bbox % trivial begingate 248 1.00 0 0 6 0.00 360.00 xcarc 1.000 0.000 0.000 scb (x) {/Times-Roman cf} 2 29 0 1.00 0 0 pinlabel endgate } def /circle { % -6 -12 28 24 bbox % trivial begingate 1 1.00 16 0 6 0.00 360.00 xcarc 1 1.00 0 0 10 0 2 polygon 1.000 0.000 0.000 scb (out) {/Times-Roman cf} 2 4 0 1.00 16 0 pinlabel (out) {/Times-Roman cf} 2 7 0 1.00 0 0 pinlabel endgate } def %%Page: 1 1 %%PageOrientation: Portrait /pgsave save def bop % 978 336 offsets 1.0000 inchscale 2.6000 setlinewidth 1.00 0 450 240 [(?) (4) (12) (13) (11) ] quadnand 1.00 0 450 432 [(?) (3) (9) (10) (8) ] quadnand 1.00 0 770 432 [(?) (2) (4) (5) (6) ] quadnand 1.00 0 770 240 [(?) (1) (1) (2) (3) ] quadnand 1 1.00 834 240 882 240 882 288 674 352 674 400 706 400 6 polygon 1 1.00 834 432 882 432 882 384 674 320 674 272 706 272 6 polygon 1 1.00 386 464 306 464 2 polygon 1 1.00 386 208 306 208 2 polygon 1.00 0 882 432 dot 1.00 0 882 240 dot 1.00 0 914 432 circle 1.00 0 914 240 circle -1.00 0 306 464 circle -1.00 0 306 208 circle 1 1.00 882 432 914 432 2 polygon 1 1.00 882 240 914 240 2 polygon 1 1.00 706 464 594 464 562 432 514 432 4 polygon 1 1.00 706 208 594 208 562 240 514 240 4 polygon 1 1.00 546 432 546 336 354 336 354 272 386 272 5 polygon 1 1.00 386 400 322 400 322 208 3 polygon 1.00 0 322 208 dot 1.00 0 546 432 dot 1.000 0.000 0.000 scb (Q) {/Helvetica cf} 2 20 0 1.00 930 432 pinlabel (Q) {ol} {/Helvetica cf} 3 20 0 1.00 930 240 pinlabel (D) {/Helvetica cf} 2 23 0 1.00 290 464 pinlabel (CLK) {/Helvetica cf} 2 23 0 1.00 290 208 pinlabel sce (D-FF implementation in 7400 IC) {/Helvetica cf} 2 17 0 1.00 594 576 label pgsave restore showpage %%Trailer XCIRCsave restore %%EOF 40 4 polygon 1 1.00 546 432 546 336 354 336 354 272 386 272 5 polygon 1 1.00 386 400 322 400 322 208 3 polygon 1.00 0 322 208 dot 1.00 0 546 432 dot 1.000 0.000 0.000 scb (Q) {/Helvetica cf} 2 20 0 1.00 930 432 pinlabel (Q) {ol} {/Helvetica cf} 3 20 0 1.00 930 240 pinlabel (D) {/Helvetica cf} 2 23 0 1.00 290 464 pinlabel (CLK) {/Helvetica cf} 2 23 0 1.00 290 208 pinlabel sce (D-FF implementation in 7400 IC) {/Htutorial/psfiles/filter.ps000644 000466 000017 00000021775 07016565124 016233 0ustar00timusers000000 000000 %%BeginProlog % % PostScript prolog for output from xcircuit % Version: 2.0 % % Electrical circuit (and otherwise general) drawing program % % Written by Tim Edwards 8/5/93--2/25/99 (tim@bach.ece.jhu.edu) % The Johns Hopkins University % %%BeginResource: procset XCIRCproc 2.0 2 % supporting definitions --- these are the primary xcircuit types. /XCIRCsave save def /topmat matrix currentmatrix def /fontslant { /slant exch def [1 0 slant 1 0 0] exch findfont exch makefont dup length dict /ndict exch def { 1 index /FID ne { ndict 3 1 roll put } { pop pop } ifelse } forall ndict definefont pop} def /cf { dup type /realtype eq {40 mul /fscale exch def} if dup /xfont exch def findfont fscale scalefont setfont } def /Ss { gsave 0.67 dup scale gsave mty neg rmoveto glevel 1 add /glevel exch def } def /ss { gsave 0.67 dup scale gsave mty 0.5 mul rmoveto glevel 1 add /glevel exch def } def /ns { currentpoint transform % preserve x position! glevel {grestore} repeat /glevel 0 def itransform pop currentpoint pop sub 0 rmoveto } def /ul { showflag 1 eq { gsave currentpoint topmat setmatrix 0 0 moveto 2 index stringwidth pop (_) false charpath flattenpath pathbbox grestore exch pop 1 index sub setlinewidth exch pop currentpoint 3 -1 roll add moveto 0 rlineto stroke moveto } if } def /ol { showflag 1 eq { gsave gsave currentpoint topmat setmatrix 2 index stringwidth pop 3 index true charpath flattenpath pathbbox grestore exch pop exch pop topmat setmatrix (_) true charpath pathbbox grestore exch pop 1 index sub setlinewidth exch pop currentpoint exch 4 1 roll exch sub add moveto pop 0 rlineto stroke moveto } if } def /stW { gsave true charpath flattenpath pathbbox pop exch pop sub grestore } def /bs { stW 0 rmoveto } def /pspc 0 def /qS { (aa) stW (a a) stW sub 4 div 0 rmoveto } def /hS { qS qS } def /textx { dup 1 add copy 0 exch { exch dup type /stringtype eq {stringwidth pop add}{exec} ifelse } repeat neg ns } def /mty { 0 topmat setmatrix (A) true charpath flattenpath pathbbox exch pop exch sub exch pop neg grestore } def /texty { gsave 2 copy pop exec mty } def /tcenter { textx grestore 0.5 mul 0 rmoveto } def /tright { textx grestore fspc sub 0 rmoveto } def /tmiddle { texty 0.5 mul rmoveto } def /ttop { texty fspc sub rmoveto } def /tshow {{ dup type /stringtype eq {show}{exec} ifelse} repeat ns } def /label { gsave translate 0 0 moveto rotate /just exch def just 16 and 0 gt {0 1 dtransform gsave pagemat setmatrix idtransform exch grestore 1 0 dtransform gsave pagemat setmatrix idtransform exch grestore dup 0 eq {pop mul 0 gt} {3 1 roll pop pop 0 lt} ifelse {-1 /just just dup 3 and 1 ne {3 xor} if def} {1} ifelse exch 0 lt {-1 /just just dup 12 and 4 ne {12 xor} if def} {1} ifelse scale } if /glevel 0 def /showflag 0 def /fspc pspc def just 1 and 0 gt {gsave just 2 and 0 gt {tright}{tcenter} ifelse} {fspc 0 rmoveto} ifelse just 4 and 0 gt {just 8 and 0 gt {ttop}{tmiddle} ifelse} {0 fspc rmoveto} ifelse /showflag 1 def tshow grestore } def /pinlabel { hlevel 0 eq { /pspc 20 def label /pspc 0 def } { pop pop pop pop {pop} repeat } ifelse } def /pinglobal { pinlabel } def /infolabel { pinlabel } def /begingate { /hlevel hlevel 1 add def gsave translate 0 0 moveto dup 0 lt {neg 1 sub -1 1 scale} if rotate dup scale } bind def /makeparm {3 string cvs dup length 1 add string /tstr exch def tstr exch 1 exch putinterval tstr 0 (v) putinterval tstr cvn} bind def /beginparm { -1 1 {makeparm exch def} for dup type /arraytype eq { aload length -1 1 {makeparm exch def} for } if begingate } bind def /endgate { /hlevel hlevel 1 sub def grestore } bind def /hlevel 0 def /tmpa [1 0 0 1 0 0] def /gar {8 8 true tmpa {} imagemask} bind {8 8 true tmpa {<30 70 60 02 03 07 06 20>} imagemask} bind {8 8 true tmpa {<0c 1e 1e 0c c0 e1 e1 c0>} imagemask} bind {8 8 true tmpa {<0f 0f 0f 0f f0 f0 f0 f0>} imagemask} bind {8 8 true tmpa {<3f f3 e1 e1 f3 3f 1e 1e>} imagemask} bind {8 8 true tmpa {} imagemask} bind {8 8 true tmpa {} imagemask} bind 7 array astore def /ppaint { gsave clip tmpa dup setmatrix pathbbox neg exch neg 4 2 roll neg 4 -1 roll 2 copy gt {exch} if 8 div ceiling 8 mul 4 2 roll neg 2 copy gt {exch} if 8 div ceiling 8 mul 3 -1 roll -8 5 -1 roll { 3 index exch 5 exch put dup -8 3 index { 3 index exch 4 exch put 3 index exec } for } for pop pop pop pop grestore } bind def /setstyles { currentlinewidth mul setlinewidth /style exch def style 1 and 0 gt not {closepath} if style 2 and 0 gt {currentlinewidth 4 mul dup 2 array astore 0 setdash} if style 4 and 0 gt {0.5 currentlinewidth 4 mul 2 array astore 0 setdash} if style dup 256 ge exch 480 lt and { gsave 1 setgray eofill grestore } if style 16 and 0 gt { gsave style 224 and -5 bitshift dup 7 lt {gar exch get ppaint} { pop eofill } ifelse grestore } if style 8 and 0 gt { newpath } { stroke } ifelse grestore } def /scb { gsave setrgbcolor } bind def /sce { grestore } bind def /polygon { gsave /num exch def moveto num 1 sub {lineto} repeat setstyles } def /xcarc { gsave newpath arc setstyles } def /elb { matrix currentmatrix 7 -1 roll 7 -1 roll translate 5 1 roll 4 -1 roll 3 index div 1 scale } def /ele { 0 4 1 roll 0 4 1 roll } bind def /ellipse { gsave elb newpath ele arc setmatrix setstyles } def /pellip { elb ele arc setmatrix } def /nellip { elb ele arcn setmatrix } def /spline { gsave moveto curveto setstyles } def /polyc { {lineto} repeat } bind def /beginpath { gsave moveto } bind def /endpath { setstyles } bind def /bop { 1 setlinecap 0 setlinejoin 6 setmiterlimit 0 setgray } def /setpagemat {/pagemat matrix currentmatrix def} def /inchscale {setpagemat 0.375 mul dup scale} def /cmscale {setpagemat 0.35433071 mul dup scale} def %%EndResource %%EndProlog % XCircuit output starts here. /dot { % -10 -10 20 20 bbox begingate 248 1.00 0 0 6 0.00 360.00 xcarc endgate } def /circle { % -6 -12 28 24 bbox begingate 1 1.00 16 0 6 0.00 360.00 xcarc 1 1.00 0 0 10 0 2 polygon 1.000 0.000 0.000 scb (out) {/Times-Roman 1.000 cf} 2 4 0 16 0 pinlabel (out) {/Times-Roman 1.000 cf} 2 7 0 0 0 pinlabel sce endgate } def /gnd { % -32 -60 64 68 bbox begingate 1 1.00 0 0 0 -32 2 polygon 1 1.00 -32 -32 32 -32 2 polygon 1 1.00 -18 -46 18 -46 2 polygon 1 1.00 -4 -60 4 -60 2 polygon 1.000 0.000 0.000 scb (GND) {/Times-Roman 1.000 cf} 2 1 0 0 0 pinglobal sce endgate } def /resistor { % -14 -64 151 128 bbox (1.0) (k) 2 beginparm % fundamental 1 1.00 0 64 0 36 2 polygon 1 1.00 0 -64 0 -36 2 polygon 1 1.00 0 -36 14 -30 -14 -18 14 -6 -14 6 14 18 -14 30 0 36 8 polygon 1.000 0.000 0.000 scb (r.1) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (r.2) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce (spice:R%i %pr.1 %pr.2 %v"1.0"%v"k") {/Times-Roman 1.000 cf} 2 0 0 -208 -160 infolabel (sim:r %pr.1 %pr.2) {/Times-Roman 1.000 cf} 2 0 0 -208 -208 infolabel (W) {/Symbol 1.000 cf} v2 {hS} v1 {/Helvetica 1.000 cf} 6 20 0 32 0 label endgate } def /polarized { % -32 -64 177 128 bbox (1.0) (p) 2 beginparm % fundamental 1 1.00 0 -64 0 -6 2 polygon 1 1.00 0 64 0 6 2 polygon 1 1.00 -32 6 32 6 2 polygon 1 1.00 0 -80 74 66.00 114.00 xcarc 1.000 0.000 0.000 scb (t) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (b) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce (spice:C%i %pt %pb %v"1.0"%v"p") {/Times-Roman 1.000 cf} 2 0 0 -208 -160 infolabel (sim:e %pt %pb %pb) {/Times-Roman 1.000 cf} 2 0 0 -208 -208 infolabel (F) v2 {hS} v1 {/Helvetica 1.000 cf} 5 20 0 48 0 label endgate } def /source { % -32 -64 64 128 bbox % hidden begingate 1 1.00 0 0 32 0.00 360.00 xcarc 1 1.00 0 32 0 64 2 polygon 1 1.00 0 -32 0 -64 2 polygon endgate } def /acsource { % -32 -64 211 128 bbox (5) (0) (1) (k) 4 beginparm % fundamental 1.00 0 0 0 source 1 0.80 0 -48 0 48 -16 0 16 0 spline 1.000 0.000 0.000 scb (s.p) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (s.m) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel sce (spice:V%i %ps.m %ps.p SIN\(%v"0" %v"5" %v"1"%v"k"\)) {/Helvetica 1.000 cf} 2 20 0 -336 -160 infolabel (offset) {ss} (V) {hS} v2 {/Helvetica 1.000 cf} 6 20 0 48 0 label (p-p) {ss} (V) {hS} v1 {/Helvetica 1.000 cf} 6 20 0 48 48 label (Hz) v4 {hS} v3 {/Helvetica 1.000 cf} 5 20 0 48 -48 label endgate } def %%Page: 1 1 %%PageOrientation: Portrait /pgsave save def bop % 912 464 offsets 1.0000 inchscale 2.6000 setlinewidth 1 1.00 528 528 528 592 784 592 3 polygon 1 1.00 528 400 528 336 784 336 3 polygon 1 1.00 784 464 976 464 2 polygon 1 1.00 784 336 976 336 2 polygon 1.00 0 784 336 dot 1.00 0 784 464 dot 1.00 0 976 464 circle 1.00 0 976 336 circle 1.00 -1 464 336 circle 1 1.00 464 336 528 336 2 polygon 1 1.00 528 592 464 592 2 polygon 1.00 -1 464 592 circle 1.00 0 640 336 gnd 1.00 0 640 336 dot 1.00 0 528 336 dot 1.00 0 528 592 dot 1.000 0.000 0.000 scb (Vin) {/Helvetica 1.000 cf} 2 23 0 448 592 pinlabel (Vout) {/Helvetica 1.000 cf} 2 20 0 992 464 pinlabel sce 1.00 0 784 528 [(10) (k) ] resistor 1.00 0 784 400 [(1.0) (u) ] polarized 1.00 0 528 464 [(5) (0) (5) (k) ] acsource pgsave restore showpage %%Trailer XCIRCsave restore %%EOF 976tutorial/psfiles/integrator.ps000644 000466 000017 00000025041 07016341654 017112 0ustar00timusers000000 000000 %%BeginProlog % % PostScript prolog for output from xcircuit % Version: 2.0 % % Electrical circuit (and otherwise general) drawing program % % Written by Tim Edwards 8/5/93--2/25/99 (tim@bach.ece.jhu.edu) % The Johns Hopkins University % %%BeginResource: procset XCIRCproc 2.0 2 % supporting definitions --- these are the primary xcircuit types. /XCIRCsave save def /topmat matrix currentmatrix def /fontslant { /slant exch def [1 0 slant 1 0 0] exch findfont exch makefont dup length dict /ndict exch def { 1 index /FID ne { ndict 3 1 roll put } { pop pop } ifelse } forall ndict definefont pop} def /cf { dup type /realtype eq {40 mul /fscale exch def} if dup /xfont exch def findfont fscale scalefont setfont } def /Ss { gsave 0.67 dup scale gsave mty neg rmoveto glevel 1 add /glevel exch def } def /ss { gsave 0.67 dup scale gsave mty 0.5 mul rmoveto glevel 1 add /glevel exch def } def /ns { currentpoint transform % preserve x position! glevel {grestore} repeat /glevel 0 def itransform pop currentpoint pop sub 0 rmoveto } def /ul { showflag 1 eq { gsave currentpoint topmat setmatrix 0 0 moveto 2 index stringwidth pop (_) false charpath flattenpath pathbbox grestore exch pop 1 index sub setlinewidth exch pop currentpoint 3 -1 roll add moveto 0 rlineto stroke moveto } if } def /ol { showflag 1 eq { gsave gsave currentpoint topmat setmatrix 2 index stringwidth pop 3 index true charpath flattenpath pathbbox grestore exch pop exch pop topmat setmatrix (_) true charpath pathbbox grestore exch pop 1 index sub setlinewidth exch pop currentpoint exch 4 1 roll exch sub add moveto pop 0 rlineto stroke moveto } if } def /stW { gsave true charpath flattenpath pathbbox pop exch pop sub grestore } def /bs { stW 0 rmoveto } def /pspc 0 def /qS { (aa) stW (a a) stW sub 4 div 0 rmoveto } def /hS { qS qS } def /textx { dup 1 add copy 0 exch { exch dup type /stringtype eq {stringwidth pop add}{exec} ifelse } repeat neg ns } def /mty { 0 topmat setmatrix (A) true charpath flattenpath pathbbox exch pop exch sub exch pop neg grestore } def /texty { gsave 2 copy pop exec mty } def /tcenter { textx grestore 0.5 mul 0 rmoveto } def /tright { textx grestore fspc sub 0 rmoveto } def /tmiddle { texty 0.5 mul rmoveto } def /ttop { texty fspc sub rmoveto } def /tshow {{ dup type /stringtype eq {show}{exec} ifelse} repeat ns } def /label { gsave translate 0 0 moveto rotate /just exch def just 16 and 0 gt {0 1 dtransform gsave pagemat setmatrix idtransform exch grestore 1 0 dtransform gsave pagemat setmatrix idtransform exch grestore dup 0 eq {pop mul 0 gt} {3 1 roll pop pop 0 lt} ifelse {-1 /just just dup 3 and 1 ne {3 xor} if def} {1} ifelse exch 0 lt {-1 /just just dup 12 and 4 ne {12 xor} if def} {1} ifelse scale } if /glevel 0 def /showflag 0 def /fspc pspc def just 1 and 0 gt {gsave just 2 and 0 gt {tright}{tcenter} ifelse} {fspc 0 rmoveto} ifelse just 4 and 0 gt {just 8 and 0 gt {ttop}{tmiddle} ifelse} {0 fspc rmoveto} ifelse /showflag 1 def tshow grestore } def /pinlabel { hlevel 0 eq { /pspc 20 def label /pspc 0 def } { pop pop pop pop {pop} repeat } ifelse } def /pinglobal { pinlabel } def /infolabel { pinlabel } def /begingate { /hlevel hlevel 1 add def gsave translate 0 0 moveto dup 0 lt {neg 1 sub -1 1 scale} if rotate dup scale } bind def /makeparm {3 string cvs dup length 1 add string /tstr exch def tstr exch 1 exch putinterval tstr 0 (v) putinterval tstr cvn} bind def /beginparm { -1 1 {makeparm exch def} for dup type /arraytype eq { aload length -1 1 {makeparm exch def} for } if begingate } bind def /endgate { /hlevel hlevel 1 sub def grestore } bind def /hlevel 0 def /tmpa [1 0 0 1 0 0] def /gar {8 8 true tmpa {} imagemask} bind {8 8 true tmpa {<30 70 60 02 03 07 06 20>} imagemask} bind {8 8 true tmpa {<0c 1e 1e 0c c0 e1 e1 c0>} imagemask} bind {8 8 true tmpa {<0f 0f 0f 0f f0 f0 f0 f0>} imagemask} bind {8 8 true tmpa {<3f f3 e1 e1 f3 3f 1e 1e>} imagemask} bind {8 8 true tmpa {} imagemask} bind {8 8 true tmpa {} imagemask} bind 7 array astore def /ppaint { gsave clip tmpa dup setmatrix pathbbox neg exch neg 4 2 roll neg 4 -1 roll 2 copy gt {exch} if 8 div ceiling 8 mul 4 2 roll neg 2 copy gt {exch} if 8 div ceiling 8 mul 3 -1 roll -8 5 -1 roll { 3 index exch 5 exch put dup -8 3 index { 3 index exch 4 exch put 3 index exec } for } for pop pop pop pop grestore } bind def /setstyles { currentlinewidth mul setlinewidth /style exch def style 1 and 0 gt not {closepath} if style 2 and 0 gt {currentlinewidth 4 mul dup 2 array astore 0 setdash} if style 4 and 0 gt {0.5 currentlinewidth 4 mul 2 array astore 0 setdash} if style dup 256 ge exch 480 lt and { gsave 1 setgray eofill grestore } if style 16 and 0 gt { gsave style 224 and -5 bitshift dup 7 lt {gar exch get ppaint} { pop eofill } ifelse grestore } if style 8 and 0 gt { newpath } { stroke } ifelse grestore } def /scb { gsave setrgbcolor } bind def /sce { grestore } bind def /polygon { gsave /num exch def moveto num 1 sub {lineto} repeat setstyles } def /xcarc { gsave newpath arc setstyles } def /elb { matrix currentmatrix 7 -1 roll 7 -1 roll translate 5 1 roll 4 -1 roll 3 index div 1 scale } def /ele { 0 4 1 roll 0 4 1 roll } bind def /ellipse { gsave elb newpath ele arc setmatrix setstyles } def /pellip { elb ele arc setmatrix } def /nellip { elb ele arcn setmatrix } def /spline { gsave moveto curveto setstyles } def /polyc { {lineto} repeat } bind def /beginpath { gsave moveto } bind def /endpath { setstyles } bind def /bop { 1 setlinecap 0 setlinejoin 6 setmiterlimit 0 setgray } def /setpagemat {/pagemat matrix currentmatrix def} def /inchscale {setpagemat 0.375 mul dup scale} def /cmscale {setpagemat 0.35433071 mul dup scale} def %%EndResource %%EndProlog % XCircuit output starts here. /nmos { % -64 -64 64 128 bbox begingate % fundamental 1 1.00 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon 1 1.00 -44 -28 -44 28 2 polygon 1 1.00 -44 0 -64 0 2 polygon 1.000 0.000 0.000 scb (G) {/Helvetica 1.000 cf} 2 7 0 -64 0 pinlabel (S) {/Helvetica 1.000 cf} 2 13 0 0 -64 pinlabel (D) {/Helvetica 1.000 cf} 2 9 0 0 64 pinlabel (spice:M%i %pD %pG %pS GND nmos) {/Times-Roman 1.000 cf} 2 4 0 -244 -139 infolabel (sim:n %pG %pD %pS) {/Times-Roman 1.000 cf} 2 4 0 -244 -187 infolabel sce endgate } def /gnd { % -32 -60 64 68 bbox begingate 1 1.00 0 0 0 -32 2 polygon 1 1.00 -32 -32 32 -32 2 polygon 1 1.00 -18 -46 18 -46 2 polygon 1 1.00 -4 -60 4 -60 2 polygon 1.000 0.000 0.000 scb (GND) {/Times-Roman 1.000 cf} 2 1 0 0 0 pinglobal sce endgate } def /pmos { % -64 -64 64 128 bbox begingate % fundamental 1 1.00 -44 -28 -44 28 2 polygon 1 1.00 -60 0 -64 0 2 polygon 1 1.00 0 -64 0 -28 -32 -28 -32 28 0 28 0 64 6 polygon 1 1.00 -52 0 8 0.00 360.00 xcarc 1.000 0.000 0.000 scb (S) {/Helvetica 1.000 cf} 2 9 0 0 64 pinlabel (D) {/Helvetica 1.000 cf} 2 13 0 0 -64 pinlabel (G) {/Helvetica 1.000 cf} 2 7 0 -64 0 pinlabel (spice:M%i %pD %pG %pS Vdd pmos) {/Times-Roman 1.000 cf} 2 4 0 -196 -139 infolabel (sim:p %pG %pD %pS) {/Times-Roman 1.000 cf} 2 4 0 -196 -187 infolabel sce endgate } def /vdd { % -32 0 64 66 bbox begingate 1 1.00 0 0 0 32 2 polygon 1 1.00 -32 32 32 32 2 polygon (Vdd) {/Times-Roman 0.900 cf} 2 17 0 0 38 label 1.000 0.000 0.000 scb (Vdd) {/Times-Roman 1.000 cf} 2 13 0 0 0 pinglobal sce endgate } def /dot { % -10 -10 20 20 bbox begingate 248 1.00 0 0 6 0.00 360.00 xcarc endgate } def /circle { % -6 -12 28 24 bbox begingate 1 1.00 16 0 6 0.00 360.00 xcarc 1 1.00 0 0 10 0 2 polygon 1.000 0.000 0.000 scb (out) {/Times-Roman 1.000 cf} 2 4 0 16 0 pinlabel (out) {/Times-Roman 1.000 cf} 2 7 0 0 0 pinlabel sce endgate } def %%Page: wramp 1 %%PageOrientation: Portrait /pgsave save def bop % 454 416 offsets 1.0000 inchscale 2.6000 setlinewidth 1.00 0 406 480 nmos 1.00 -1 502 480 nmos 1 1.00 406 416 502 416 2 polygon 1.00 0 454 352 nmos 1.00 0 454 288 gnd 1.00 0 406 608 pmos 1.00 -1 502 608 pmos 1.00 0 406 672 vdd 1.00 0 502 672 vdd 1.00 0 742 608 pmos 1.00 -1 166 608 pmos 1 1.00 230 608 342 608 2 polygon 1 1.00 566 608 678 608 2 polygon 1 1.00 614 608 614 544 502 544 3 polygon 1 1.00 406 544 294 544 294 608 3 polygon 1.00 0 166 672 vdd 1.00 0 742 672 vdd 1.00 0 742 192 nmos 1.00 -1 166 192 nmos 1 1.00 166 256 166 544 2 polygon 1 1.00 742 544 742 256 2 polygon 1 1.00 742 448 806 448 2 polygon 1.00 0 166 128 gnd 1.00 0 742 128 gnd 1 1.00 678 192 230 192 2 polygon 1 1.00 166 256 294 256 294 192 3 polygon 1.00 0 294 192 dot 1.00 0 166 256 dot 1.00 0 454 416 dot 1.00 0 294 608 dot 1.00 0 406 544 dot 1.00 0 502 544 dot 1.00 0 614 608 dot 1.00 0 742 448 dot 1.00 0 566 480 circle 1.00 -1 342 480 circle 1.00 -1 390 352 circle 1.00 0 806 448 circle 1.000 0.000 0.000 scb (in.p) {/Helvetica 1.000 cf} 2 20 0 582 480 pinlabel (in.m) {/Helvetica 1.000 cf} 2 23 0 326 480 pinlabel (bias) {/Helvetica 1.000 cf} 2 23 0 374 352 pinlabel (out) {/Helvetica 1.000 cf} 2 20 0 822 448 pinlabel sce pgsave restore showpage /wramp { % -80 -80 160 160 bbox begingate 0 1.00 -80 -80 -80 80 48 24 48 -24 4 polygon 1 1.00 0 -80 0 -45 2 polygon 1 1.00 48 0 80 0 2 polygon (-) {/Symbol 1.000 cf} 2 5 0 -61 50 label (+) {/Symbol 1.000 cf} 2 5 0 -61 -46 label 1.000 0.000 0.000 scb (in.m) {/Times-Roman 1.000 cf} 2 7 0 -80 48 pinlabel (in.p) {/Times-Roman 1.000 cf} 2 7 0 -80 -48 pinlabel (out) {/Times-Roman 1.000 cf} 2 4 0 80 0 pinlabel (bias) {/Times-Roman 1.000 cf} 2 13 0 0 -80 pinlabel sce endgate } def /capacitor { % -32 -64 64 128 bbox begingate % fundamental 1 1.00 0 -64 0 -6 2 polygon 1 1.00 0 64 0 6 2 polygon 1 1.00 -32 6 32 6 2 polygon 1 1.00 -32 -6 32 -6 2 polygon 1.000 0.000 0.000 scb (c.1) {/Times-Roman 1.000 cf} 2 9 0 0 64 pinlabel (c.2) {/Times-Roman 1.000 cf} 2 13 0 0 -64 pinlabel (spice:C%i %pc.1 %pc.2 1.0P) {/Times-Roman 1.000 cf} 2 0 0 -208 -160 infolabel (sim:c %pc.1 %pc.2) {/Times-Roman 1.000 cf} 2 0 0 -208 -208 infolabel sce endgate } def %%Page: 2 2 %%PageOrientation: Portrait /pgsave save def bop % 294 390 offsets 1.0000 inchscale 2.6000 setlinewidth 1.00 0 310 390 wramp 1 1.00 230 438 198 438 198 518 422 518 422 390 5 polygon 1 1.00 390 390 454 390 2 polygon 1.00 0 422 390 dot 1.00 0 454 390 circle 1.00 -1 166 342 circle 1.00 -271 310 310 circle 1.000 0.000 0.000 scb (Bias) {/Helvetica 1.000 cf} 2 29 0 310 294 pinlabel sce 1 1.00 166 342 230 342 2 polygon 1.000 0.000 0.000 scb (Input) {/Helvetica 1.000 cf} 2 23 0 150 342 pinlabel (Output) {/Helvetica 1.000 cf} 2 20 0 470 390 pinlabel sce (Integrator) {/Helvetica 1.000 cf} 2 25 0 294 582 label 1.00 0 422 326 capacitor 1.00 0 422 262 gnd pgsave restore showpage %%Trailer XCIRCsave restore %%EOF 4 390 2 polygon 1.00 0 422 390 dot 1.00 0 454 390 circle 1.00 -1 166 342 circle 1.00 -271 310 310 circle 1.000 0.000 0.000 scb (Bias) {/Helvetica 1.000 cf} 2 29 0 310 294 pinlabel sce 1 1.00 166 342 230 342 2 polygon 1.000 0.000 0.000 scb (Input) {/Helvetica 1.000 cf} 2 23 0 150 342 pinlabel (Output) {/Helvetica 1.000 cf} 2 20 0 470 390 pinlabel sce (Integrator) {/Helvetica 1.000 cf} 2 25 0 294 582 label 1.00 0 422 326 capacitor 1.00 0 422 262 gnd pgsave restore showpage %tutorial/psfiles/powersup.ps000644 000466 000017 00000034673 07325357271 016640 0ustar00timusers000000 000000 %!PS-Adobe-3.0 %%Title: powersup %%Creator: Xcircuit v2.3 %%CreationDate: Wed Jul 18 14:38:19 2001 %%Pages: 2 %%BoundingBox: 118 314 494 478 %%DocumentNeededResources: font Helvetica font Times-Roman font Times-RomanISO %%+ font HelveticaISO font Symbol %%EndComments %%BeginProlog % % PostScript prolog for output from xcircuit % Version: 2.3 % % Electrical circuit (and otherwise general) drawing program % % Written by Tim Edwards 8/5/93--5/16/01 (tim@bach.ece.jhu.edu) % The Johns Hopkins University % %%BeginResource: procset XCIRCproc 2.3 1 % supporting definitions --- these are the primary xcircuit types. /XCIRCsave save def /topmat matrix currentmatrix def /fontslant { /slant exch def [1 0 slant 1 0 0] exch findfont exch makefont dup length dict /ndict exch def { 1 index /FID ne { ndict 3 1 roll put } { pop pop } ifelse } forall ndict definefont pop} def /ul { dup type /stringtype eq showflag 1 eq and { gsave currentpoint topmat setmatrix 0 0 moveto 2 index stringwidth pop (_) false charpath flattenpath pathbbox grestore exch pop 1 index sub setlinewidth exch pop currentpoint 3 -1 roll add moveto 0 rlineto stroke moveto } if } def /ol { dup type /stringtype eq showflag 1 eq and { gsave gsave currentpoint topmat setmatrix 2 index stringwidth pop 3 index true charpath flattenpath pathbbox grestore exch pop exch pop topmat setmatrix (_) true charpath pathbbox grestore exch pop 1 index sub setlinewidth exch pop currentpoint exch 4 1 roll exch sub add moveto pop 0 rlineto stroke moveto } if } def /stW { gsave currentpoint newpath moveto true charpath flattenpath pathbbox pop exch pop sub grestore } def /Ts {mark Tabs aload pop counttomark 1 add array astore /Tabs exch def Tabs 0 currentpoint pop put} def /Tbn {mark Tabs aload pop counttomark dup 2 add 1 roll cleartomark 1 sub} def /Tb { 0 1 Tbn {Tabs exch get dup currentpoint pop lt {currentpoint exch pop moveto exit} {pop} ifelse } for } def /Tf { Tbn -1 0 {Tabs exch get dup currentpoint pop gt {currentpoint exch pop moveto exit} {pop} ifelse } for } def /qS { (aa) stW (a a) stW sub 4 div 0 Kn } def /hS { qS qS } def /pspc 0 def /cf0 { scalefont setfont } bind def /Kn { dup kY add /kY exch def rmoveto } bind def /ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul 0.33 mul neg Kn} def /Ss { /fscale fscale 0.67 mul def currentfont 0.67 cf0 0 fscale0 fscale mul 0.67 mul Kn } def /ns { 0 kY neg Kn /kY 0 def /fscale 1.0 def xfont0 1.0 cf0 } def /CR { ns 0 /Bline Bline fscale0 neg add def Bline moveto } def /cf { dup type /realtype ne {1.0} if exch findfont exch kY 0 eq { 40 mul dup /fscale0 exch def cf0 /xfont0 currentfont def} {fscale0 mul fscale mul cf0} ifelse } def /ctmk { counttomark dup 2 add -1 roll pop } bind def /label { gsave translate 0 0 moveto dup scale /rotval exch def /just exch def just 16 and 0 gt {0 1 dtransform gsave pagemat setmatrix idtransform exch grestore 1 0 dtransform gsave pagemat setmatrix idtransform exch grestore dup 0 eq {pop mul 0 gt} {3 1 roll pop pop 0 lt} ifelse {-1 /just just dup 3 and 1 ne {3 xor} if def} {1} ifelse exch 0 lt {-1 /just just dup 12 and 4 ne {12 xor} if def} {1} ifelse scale } if /showflag 0 def /fspc pspc def /Bline 0 def /Tabs 0 array def /fscale 1.0 def /kY 0 def gsave dup 1 add copy 0 exch {exch dup type /stringtype eq {true charpath flattenpath} {exec} ifelse } repeat pop pathbbox grestore 3 -1 roll pop 3 1 roll just 1 and 0 gt {just 2 and 0 gt {exch pop neg fspc sub} {exch sub 0.5 mul neg} ifelse} {pop neg fspc add} ifelse exch Bline exch just 4 and 0 gt {just 8 and 0 gt {exch pop neg fspc sub} {add 0.5 mul neg} ifelse} {pop neg fspc add} ifelse /showflag 1 def rotval rotate Kn currentpoint translate /Bline 0 def /Tabs 0 array def /fscale 1.0 def /kY 0 def {dup type /stringtype eq {show}{exec} ifelse} repeat grestore } def /pinlabel { hlevel 0 eq { /pspc 20 def label /pspc 0 def } { pop pop pop pop pop {pop} repeat } ifelse } def /pinglobal { pinlabel } def /infolabel { pinlabel } def /scb { setrgbcolor } bind def /sce { defColor aload pop scb } bind def /cRedef {/defColor currentcolor 3 array astore def} def /begingate { /hlevel hlevel 1 add def /defColor currentcolor sce 3 array astore def gsave sce translate 0 0 moveto dup 0 lt {neg 1 sub -1 1 scale} if rotate dup scale } bind def /makeparm {3 string cvs dup length 1 add string /tstr exch def tstr exch 1 exch putinterval tstr 0 (v) putinterval tstr cvn} bind def /beginparm { -1 1 {makeparm exch def} for dup type /arraytype eq { aload length -1 1 {makeparm exch def} for } if begingate } bind def /endgate { /hlevel hlevel 1 sub def grestore defColor aload pop cRedef scb} bind def /hlevel 0 def /tmpa [1 0 0 1 0 0] def /gar {8 8 true tmpa {} imagemask} bind {8 8 true tmpa {<30 70 60 02 03 07 06 20>} imagemask} bind {8 8 true tmpa {<0c 1e 1e 0c c0 e1 e1 c0>} imagemask} bind {8 8 true tmpa {<0f 0f 0f 0f f0 f0 f0 f0>} imagemask} bind {8 8 true tmpa {<3f f3 e1 e1 f3 3f 1e 1e>} imagemask} bind {8 8 true tmpa {} imagemask} bind {8 8 true tmpa {} imagemask} bind 7 array astore def /ppaint { gsave clip tmpa dup setmatrix pathbbox neg exch neg 4 2 roll neg 4 -1 roll 2 copy gt {exch} if 8 div ceiling 8 mul 4 2 roll neg 2 copy gt {exch} if 8 div ceiling 8 mul 3 -1 roll -8 5 -1 roll { 3 index exch 5 exch put dup -8 3 index { 3 index exch 4 exch put 3 index exec } for } for pop pop pop pop grestore } bind def /setstyles { currentlinewidth mul setlinewidth /style exch def style 1 and 0 gt not {closepath} if style 2 and 0 gt {currentlinewidth 4 mul dup 2 array astore 0 setdash} if style 4 and 0 gt {0.5 currentlinewidth 4 mul 2 array astore 0 setdash} if style dup 256 ge exch 480 lt and { gsave 1 setgray eofill grestore } if style 16 and 0 gt { gsave style 224 and -5 bitshift dup 7 lt {gar exch get ppaint} { pop eofill } ifelse grestore } if style 8 and 0 gt style 512 eq or { newpath } { stroke } ifelse grestore } def /polygon { gsave /num exch def moveto num 1 sub {lineto} repeat setstyles } def /xcarc { gsave newpath arc setstyles } def /elb { matrix currentmatrix 7 -1 roll 7 -1 roll translate 5 1 roll 4 -1 roll 3 index div 1 scale } def /ele { 0 4 1 roll 0 4 1 roll } bind def /ellipse { gsave elb newpath ele arc setmatrix setstyles } def /pellip { elb ele arc setmatrix } def /nellip { elb ele arcn setmatrix } def /spline { gsave moveto curveto setstyles } def /polyc { {lineto} repeat } bind def /beginpath { gsave moveto } bind def /endpath { setstyles } bind def /bop { 1 setlinecap 0 setlinejoin 6 setmiterlimit 0 0 0 scb cRedef } def /insertion {/PSobj save def /showpage {} def bop translate} def /end_insert {PSobj restore} def /setpagemat {/pagemat matrix currentmatrix def} def /inchscale {setpagemat 0.375 mul dup scale} def /cmscale {setpagemat 0.35433071 mul dup scale} def %%EndResource %%EndProlog /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def currentdict end /Times-RomanISO exch definefont pop /Helvetica findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def currentdict end /HelveticaISO exch definefont pop % XCircuit output starts here. /inductor { % -14 -64 29 112 bbox begingate 1 1.00 20 -28 20 -44 0 -48 0 -24 spline 1 1.00 -20 -20 -20 -32 0 -28 0 -24 spline 1 1.00 20 32 20 16 0 12 0 36 spline 1 1.00 20 12 20 -4 0 -8 0 16 spline 1 1.00 20 -8 20 -24 0 -28 0 -4 spline 1 1.00 -20 20 -20 8 0 12 0 16 spline 1 1.00 -20 0 -20 -12 0 -8 0 -4 spline 1 1.00 0 -48 0 -64 2 polygon 1 1.00 0 36 0 48 2 polygon 1.000 0.000 0.000 scb (l.1) {/Times-Roman cf} 2 9 0 1.00 0 48 pinlabel (l.2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel sce (spice:L%i %pl.1 %pl.2 1.0U) {/Times-Roman cf} 2 0 0 1.00 -208 -160 infolabel sce (sim:l %pl.1 %pl.2) {/Times-Roman cf} 2 0 0 1.00 -208 -208 infolabel endgate } def /Transformer { % -62 -64 108 112 bbox (?) 1 beginparm 1.00 0 -48 0 inductor 1 1.00 -16 48 -16 -64 2 polygon 1 1.00 0 48 0 -64 2 polygon 1.00 180 32 -16 inductor 1.000 0.000 0.000 scb (1) {/Helvetica cf} 2 25 0 1.00 -48 48 pinlabel (2) {/Helvetica cf} 2 29 0 1.00 -48 -64 pinlabel (3) {/Helvetica cf} 2 25 0 1.00 32 48 pinlabel (4) {/Helvetica cf} 2 29 0 1.00 32 -64 pinlabel sce mark v1 (pcb:T) {/Times-Roman cf} ctmk 20 0 1.00 -96 -160 infolabel endgate } def /circle { % -6 -12 28 24 bbox % trivial begingate 1 1.00 16 0 6 0.00 360.00 xcarc 1 1.00 0 0 10 0 2 polygon 1.000 0.000 0.000 scb (out) {/Times-Roman cf} 2 4 0 1.00 16 0 pinlabel (out) {/Times-Roman cf} 2 7 0 1.00 0 0 pinlabel endgate } def /diode { % -18 -48 36 96 bbox (?) 1 beginparm 248 1.00 -18 -16 0 16 18 -16 3 polygon 1 1.00 0 -48 0 -16 2 polygon 1 1.00 0 48 0 16 2 polygon 1 1.00 -18 16 18 16 2 polygon 1.000 0.000 0.000 scb (1) {/Times-Roman cf} 2 9 0 1.00 0 48 pinlabel (2) {/Times-Roman cf} 2 13 0 1.00 0 -48 pinlabel sce mark v1 (pcb:D) {/Helvetica cf} ctmk 20 0 1.00 -64 -144 infolabel endgate } def /rectifier { % -112 -48 192 192 bbox begingate 1.00 315 -64 96 diode 1.00 225 32 96 diode 1.00 225 -64 0 diode 1.00 315 32 0 diode 1 1.00 -30 130 -16 144 -2 130 3 polygon 1 1.00 66 62 80 48 66 34 3 polygon 1 1.00 -2 -34 -16 -48 -30 -34 3 polygon 1 1.00 -98 34 -112 48 -98 62 3 polygon endgate } def /dot { % -10 -10 20 20 bbox % trivial begingate 248 1.00 0 0 6 0.00 360.00 xcarc 1.000 0.000 0.000 scb (x) {/Times-Roman cf} 2 29 0 1.00 0 0 pinlabel endgate } def /jumper { % -4 -14 18 28 bbox % trivial begingate 1 1.00 0 0 10 -90.00 90.00 xcarc 1 1.00 0 10 0 16 2 polygon 1 1.00 0 -10 0 -16 2 polygon 1.000 0.000 0.000 scb (a) {/Times-Roman cf} 2 1 0 1.00 0 16 pinlabel (a) {/Times-Roman cf} 2 13 0 1.00 0 -16 pinlabel endgate } def /gnd { % -32 -60 64 68 bbox % trivial begingate 1 1.00 0 0 0 -32 2 polygon 1 1.00 -32 -32 32 -32 2 polygon 1 1.00 -18 -46 18 -46 2 polygon 1 1.00 -4 -60 4 -60 2 polygon 1.000 0.000 0.000 scb (GND) {/Times-Roman cf} 2 1 0 1.00 0 0 pinglobal endgate } def /Capacitor { % -32 -64 186 128 bbox (1.0) (p) (?) 3 beginparm 1 1.00 0 -64 0 -6 2 polygon 1 1.00 0 64 0 6 2 polygon 1 1.00 -32 6 32 6 2 polygon 1 1.00 -32 -6 32 -6 2 polygon 1.000 0.000 0.000 scb (1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel (2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel sce mark v2 v1 ( %p1 %p2 ) v3 (spice:C) {/Times-RomanISO cf} ctmk 4 0 1.00 -208 -160 infolabel sce (sim:c %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel mark (F) v2 {hS} v1 {/Times-RomanISO cf} ctmk 20 0 1.00 48 0 label sce mark v3 (pcb:C) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel endgate } def /Polarized { % -32 -64 176 128 bbox (1.0) (p) (?) 3 beginparm 1 1.00 0 -64 0 -6 2 polygon 1 1.00 0 64 0 6 2 polygon 1 1.00 -32 6 32 6 2 polygon 1 1.00 0 -80 74 66.00 114.00 xcarc 1.000 0.000 0.000 scb (1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel (2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel sce mark v2 v1 ( %p1 %p2 ) v3 (spice:C) {/Times-RomanISO cf} ctmk 4 0 1.00 -208 -160 infolabel sce (sim:e %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel mark (F) v2 {hS} v1 {/Times-RomanISO cf} ctmk 20 0 1.00 48 0 label sce mark v3 (pcb:C) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel endgate } def %%Page: power_supply 1 %%PageOrientation: Portrait /pgsave save def bop % power_supply is_symbol % 529 953 offsets 1.0000 inchscale 2.6000 setlinewidth 1.00 0 497 1065 Transformer 1 1.00 449 1113 449 1193 401 1193 3 polygon 1 1.00 449 1001 449 937 401 937 3 polygon 1.00 -1 401 1193 circle 1.00 -1 401 937 circle 1.000 0.000 0.000 scb (+) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 385 1193 pinlabel (-) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 385 937 pinlabel sce 1.00 0 785 1017 rectifier 1 1.00 529 1113 529 1193 769 1193 769 1161 4 polygon 1 1.00 529 1001 529 937 769 937 769 969 4 polygon 1.00 0 769 969 dot 1.00 0 769 1161 dot 1 1.00 673 1065 641 1065 641 953 3 polygon 1 1.00 641 921 641 873 1201 873 3 polygon 1 1.00 865 1065 1201 1065 2 polygon 1 1.00 961 1065 961 1033 2 polygon 1 1.00 1041 1065 1041 1033 2 polygon 1 1.00 961 905 961 873 2 polygon 1 1.00 1041 905 1041 873 2 polygon 1.00 0 1041 873 dot 1.00 0 961 873 dot 1.00 0 961 1065 dot 1.00 0 1041 1065 dot 1.00 0 865 1065 dot 1.00 0 673 1065 dot 1.00 -1 641 937 jumper 1.00 0 641 873 gnd 1.00 0 641 873 dot 1.00 0 1201 873 circle 1.00 0 1201 1065 circle 1.000 0.000 0.000 scb (Vout) {0 -80 Kn} {/Helvetica cf} 3 28 0 1.00 1217 1065 pinlabel sce (+) {/Symbol cf} 2 20 0 1.00 1249 1065 label (-) {/Symbol cf} 2 20 0 1.00 1249 873 label (Bridge Rectifier) {/Helvetica cf} 2 24 0 1.00 369 1273 label 1.00 -1 961 969 [(1.0) (\265) ] Capacitor 1.00 0 1041 969 [(10) (\265) ] Polarized (1N914) {hS} (\327) {hS} (4) {/HelveticaISO cf} 6 24 0 1.00 849 1145 label pgsave restore showpage /power_supply { % -224 -208 416 416 bbox % power_supply is_schematic begingate 0 1.00 -224 -208 -224 208 192 208 192 -208 4 polygon (+) {/Symbol cf} (V) {/Helvetica cf} 4 20 0 1.00 -192 112 label (-) {/Symbol cf} (V) {/Helvetica cf} 4 20 0 1.00 -192 -112 label 1.000 0.000 0.000 scb (+) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 -224 112 pinlabel (-) {/Symbol cf} (V) {/Helvetica cf} 4 23 0 1.00 -224 -112 pinlabel sce (power supply) {CR} (unregulated) {/Helvetica cf} 4 21 0 1.00 -16 16 label 1.000 0.000 0.000 scb (Vout) {/Helvetica cf} 2 20 0 1.00 192 112 pinlabel sce (Vout) {/Helvetica cf} 2 23 0 1.00 160 112 label endgate } def /Resistor { % -14 -64 157 128 bbox (1.0) (k) (?) 3 beginparm 1 1.00 0 64 0 36 2 polygon 1 1.00 0 -64 0 -36 2 polygon 1 1.00 0 -36 14 -30 -14 -18 14 -6 -14 6 14 18 -14 30 0 36 8 polygon 1.000 0.000 0.000 scb (1) {/Times-Roman cf} 2 9 0 1.00 0 64 pinlabel (2) {/Times-Roman cf} 2 13 0 1.00 0 -64 pinlabel sce mark v2 v1 ( %p1 %p2 ) v3 (spice:R) {/Times-Roman cf} ctmk 4 0 1.00 -208 -160 infolabel sce (sim:R %p1 %p2) {/Times-Roman cf} 2 4 0 1.00 -208 -208 infolabel mark (W) {/Symbol cf} v2 {hS} v1 {/Times-Roman cf} ctmk 20 0 1.00 32 0 label sce mark v3 (pcb:R) {/Times-Roman cf} ctmk 20 0 1.00 -208 -256 infolabel endgate } def %%Page: 2 2 %%PageOrientation: Portrait /pgsave save def bop % 1166 848 offsets 1.0000 inchscale 2.6000 setlinewidth 1.00 0 782 1056 power_supply 1 1.00 558 1168 414 1168 2 polygon 1 1.00 558 944 414 944 2 polygon 1.00 0 1166 1040 Resistor 1 1.00 974 1168 1166 1168 1166 1104 3 polygon 1.00 0 1166 976 gnd (AC input) {/Helvetica cf} 2 21 0 1.00 398 1056 label (+) {/Symbol cf} 2 21 0 1.00 398 1136 label (-) {/Symbol cf} 2 21 0 1.00 398 976 label 1.00 -1 414 1168 circle 1.00 -1 414 944 circle pgsave restore showpage %%Trailer XCIRCsave restore %%EOF ve save def bop % 1166 848 offsets 1.0000 inchscale 2.6000 setlinewidtutorial/psfiles/test1.ps000644 000466 000017 00000014422 06722266355 016004 0ustar00timusers000000 000000 %!PS-Adobe-3.0 EPSF-3.0 %%Title: test1 %%Creator: Xcircuit v2.0 %%CreationDate: Mon May 24 11:14:54 1999 %%Pages: 1 %%BoundingBox: 68 68 214 118 %%DocumentNeededResources: font Times-Italic font Times-Roman %%EndComments %%BeginProlog % % PostScript prolog for output from xcircuit % Version: 2.0 % % Electrical circuit (and otherwise general) drawing program % % Written by Tim Edwards 8/5/93--8/8/97 (tim@bach.ece.jhu.edu) % The Johns Hopkins University % %%BeginResource: procset XCIRCproc 2.0 2 % supporting definitions --- these are the primary xcircuit types. /XCIRCsave save def /topmat matrix currentmatrix def /fontslant { /slant exch def [1 0 slant 1 0 0] exch findfont exch makefont dup length dict /ndict exch def { 1 index /FID ne { ndict 3 1 roll put } { pop pop } ifelse } forall ndict definefont pop} def /cf { dup type /realtype eq {40 mul /fscale exch def} if dup /xfont exch def findfont fscale scalefont setfont } def /Ss { gsave 0.67 dup scale gsave mty neg rmoveto glevel 1 add /glevel exch def } def /ss { gsave 0.67 dup scale gsave mty 0.5 mul rmoveto glevel 1 add /glevel exch def } def /ns { currentpoint transform % preserve x position! glevel {grestore} repeat /glevel 0 def itransform pop currentpoint pop sub 0 rmoveto } def /ul { showflag 1 eq { gsave currentpoint topmat setmatrix 0 0 moveto 2 index stringwidth pop (_) false charpath flattenpath pathbbox grestore exch pop 1 index sub setlinewidth exch pop currentpoint 3 -1 roll add moveto 0 rlineto stroke moveto } if } def /ol { showflag 1 eq { gsave gsave currentpoint topmat setmatrix 2 index stringwidth pop 3 index true charpath flattenpath pathbbox grestore exch pop exch pop topmat setmatrix (_) true charpath pathbbox grestore exch pop 1 index sub setlinewidth exch pop currentpoint exch 4 1 roll exch sub add moveto pop 0 rlineto stroke moveto } if } def /stW { gsave true charpath flattenpath pathbbox pop exch pop sub grestore } def /bs { stW 0 rmoveto } def /pspc 0 def /qS { (aa) stW (a a) stW sub 4 div 0 rmoveto } def /hS { qS qS } def /textx { dup 2 mul 1 add copy 0 exch { exch exec exch stringwidth pop add } repeat neg ns } def /mty { 0 topmat setmatrix (A) true charpath flattenpath pathbbox exch pop exch sub exch pop neg grestore } def /texty { gsave 2 copy pop exec mty } def /tcenter { textx grestore 0.5 mul 0 rmoveto } def /tright { textx grestore fspc sub 0 rmoveto } def /tmiddle { texty 0.5 mul rmoveto } def /ttop { texty fspc sub rmoveto } def /tshow { { exec show } repeat ns } def /label { gsave translate 0 0 moveto rotate /just exch def just 16 and 0 gt {0 1 dtransform gsave pagemat setmatrix idtransform exch grestore 1 0 dtransform gsave pagemat setmatrix idtransform exch grestore dup 0 eq {pop mul 0 gt} {3 1 roll pop pop 0 lt} ifelse {-1 /just just dup 3 and 1 ne {3 xor} if def} {1} ifelse exch 0 lt {-1 /just just dup 12 and 4 ne {12 xor} if def} {1} ifelse scale } if /glevel 0 def /showflag 0 def /fspc pspc def just 1 and 0 gt {gsave just 2 and 0 gt {tright}{tcenter} ifelse} {fspc 0 rmoveto} ifelse just 4 and 0 gt {just 8 and 0 gt {ttop}{tmiddle} ifelse} {0 fspc rmoveto} ifelse /showflag 1 def tshow grestore } def /pinlabel { /pspc 20 def label /pspc 0 def } def /pinglobal { pinlabel } def /begingate { gsave translate 0 0 moveto dup 0 lt {neg 1 sub -1 1 scale} if rotate dup scale /pinlabel { pop pop pop pop 2 mul {pop} repeat} def } bind def /beginparm { -1 1 {1 add -1 roll def} for begingate } bind def /endgate { grestore /pinlabel { /pspc 20 def label /pspc 0 def } def } bind def /tmpa [1 0 0 1 0 0] def /gar {8 8 true tmpa {} imagemask} bind {8 8 true tmpa {<30 70 60 02 03 07 06 20>} imagemask} bind {8 8 true tmpa {<0c 1e 1e 0c c0 e1 e1 c0>} imagemask} bind {8 8 true tmpa {<0f 0f 0f 0f f0 f0 f0 f0>} imagemask} bind {8 8 true tmpa {<3f f3 e1 e1 f3 3f 1e 1e>} imagemask} bind {8 8 true tmpa {} imagemask} bind {8 8 true tmpa {} imagemask} bind 7 array astore def /ppaint { gsave clip tmpa dup setmatrix pathbbox neg exch neg 4 2 roll neg 4 -1 roll 2 copy gt {exch} if 8 div ceiling 8 mul 4 2 roll neg 2 copy gt {exch} if 8 div ceiling 8 mul 3 -1 roll -8 5 -1 roll { 3 index exch 5 exch put dup -8 3 index { 3 index exch 4 exch put 3 index exec } for } for pop pop pop pop grestore } bind def /setstyles { currentlinewidth mul setlinewidth /style exch def style 1 and 0 gt not {closepath} if style 2 and 0 gt {currentlinewidth 4 mul dup 2 array astore 0 setdash} if style 4 and 0 gt {0.5 currentlinewidth 4 mul 2 array astore 0 setdash} if style dup 256 ge exch 480 lt and { gsave 1 setgray eofill grestore } if style 16 and 0 gt { gsave style 224 and -5 bitshift dup 7 lt {gar exch get ppaint} { pop eofill } ifelse grestore } if style 8 and 0 gt { newpath } { stroke } ifelse grestore } def /scb { gsave setrgbcolor } bind def /sce { grestore } bind def /polygon { gsave /num exch def moveto num 1 sub {lineto} repeat setstyles } def /xcarc { gsave newpath arc setstyles } def /elb { matrix currentmatrix 7 -1 roll 7 -1 roll translate 5 1 roll 4 -1 roll 3 index div 1 scale } def /ele { 0 4 1 roll 0 4 1 roll } bind def /ellipse { gsave elb newpath ele arc setmatrix setstyles } def /pellip { elb ele arc setmatrix } def /nellip { elb ele arcn setmatrix } def /spline { gsave moveto curveto setstyles } def /polyc { {lineto} repeat } bind def /beginpath { gsave moveto } bind def /endpath { setstyles } bind def /bop { 1 setlinecap 0 setlinejoin 6 setmiterlimit 0 setgray } def /setpagemat {/pagemat matrix currentmatrix def} def /inchscale {setpagemat 0.375 mul dup scale} def /cmscale {setpagemat 0.35433071 mul dup scale} def %%EndResource %%EndProlog /Symbol-Oblique /Symbol .167 fontslant % XCircuit output starts here. %%Page: 1 1 %%PageOrientation: Portrait /pgsave save def bop % 448 96 offsets 1.0000 inchscale 2.6000 setlinewidth (\)) {qS} () {/Times-Roman 1.000 cf} (t) {/Times-Italic 1.000 cf} () {ns} (c) {ss} () {/Times-Italic 1.000 cf} (pw) {/Symbol-Oblique 1.000 cf} (\) = sin\(2) {/Times-Roman 1.000 cf} (x) {/Times-Italic 1.000 cf} (\() {/Times-Roman 1.000 cf} () {qS} (f) {/Times-Italic 1.000 cf} 12 4 0 224 256 label 0 1.00 192 192 192 304 560 304 560 192 4 polygon pgsave restore showpage %%Trailer XCIRCsave restore %%EOF PageOrientation: Portrait /pgsave save def bop % 448 96 offsets 1.0000 inchscale 2.6000 setlinewidth (\)) {qS} () {/Times-Roman 1.000 cf} (t) {/Times-Italic 1.000 cf} () {ns} (c) {ss} () {/Times-Italic 1.000 cf} (pw) {/Symbol-Oblique 1.tutorial/tutorial.html000644 000466 000017 00000116255 07615515021 015460 0ustar00timusers000000 000000 XCircuit Tutorial Page

    Table of Contents

    Download

    This download is the tar'd image of everything in the tutorial subdirectory, including both the standard tutorial and the schematic capture tutorial. Note that when untar'd, this will expand into a directory tree with top-level directory named "tutorial".

    File Revision Size Date
    tutorial.tar.gz 1 (432KB) January 28, 2003

    Getting started

    Welcome to xcircuit, the circuit drawing program by Tim Edwards. In order to get the most out of this page, you should have already downloaded, compiled, and installed the xcircuit program and its libraries.

    Task 1: Run the program

    First, start xcircuit without any parameters: xcircuit

    The features of the xcircuit window are as follows:

    1. Along the top of the screen are buttons for pull-down menus called "File", "Edit", "Text", "Options", and "Window".
    2. At the top, beside the menu buttons, is a welcome message in the message window telling you the version number of the program (Version 2.0).
    3. On the bottom left is a message window telling you that you are currently editing "Page 1".
    4. On the rest of the bottom is a message window telling you that xcircuit has just loaded the library "/usr/local/lib/xcircuit/builtins.lps" (this may be in a different directory if xcircuit has not been installed in the default directories). This message will disappear after about 10 seconds.
    5. At the left and along the bottom are two scrollbars which report the position of the drawing relative to the main window, and can be used to reposition the drawing by clicking on the bar with any mouse button. Note: Due to the length of time necessary to refresh the drawing window, the scrollbars cannot be "dragged".
    6. In the center is a white drawing area with lightly-colored grid and axis lines.
    There are two types of mouse button-pushing used in xcircuit. When a button is pushed and released quickly, I will call it "tapping". When a button is pushed and held down, I will call it a "pressing". Since pressing a button is usually performed in order to move objects around on the screen, I will sometimes refer to it as "dragging" the object.

    Note: Xcircuit does not use double-clicking.

    Task 2: Change an option from the menu

    Acquaint yourself with the arrangement of menu buttons and pulldown menus.
    1. Press the button labeled "Options" with mouse button 1 and hold down the button while you drag the cursor around with the mouse.
    2. Keeping the mouse button pressed down, move down to the "Elements" button. Each button will highlight as you pass through it.
    3. Put the cursor on top of the arrow icon at the right side of the "Elements" button. You should see a secondary menu titled "Elements" pop up. The title is the topmost entry of the menu. It has no function and does not highlight when the cursor is overtop it.
    4. Keep moving down to the "Color" button and again move the cursor over the arrow icon. The third and final menu of colors will pop up. Note that one item, "Inherit Color" has a check mark on it. The check mark denotes that this entry is the current default color.
    5. Move down to the purple color button and release the mouse button there. The menus will disappear. You have just changed the default drawing color to purple.
    6. Repeat the procedure up to step 4. When you enter the "color" menu you will see that the purple color button is now checked, showing that purple is the default drawing color.
    Throughout the tutorial I will refer to the menu items using the pulldown hierarchy, with an arrow ("->") wherever you need to go to a submenu. So the "Inherit Color" menu item would be referred to as "Options->Elements->Color->Inherit Color".

    Task 3: Draw a line

    Now that you understand the function of the menu buttons, it's time to learn how to draw something. The simplest and most common thing to draw in xcircuit is a polygon.
    1. Tap mouse button 1 anywhere in the drawing area and release it immediately. If you wait too long to release the button, xcircuit will interpret it as trying to "grab" an element on the screen, and nothing will happen (because there aren't any elements yet to grab).
    2. Move the cursor around the screen. A purple line (because you chose purple to be the default color in Task 2) will appear between the origin point and will track with the cursor.
    3. Tap mouse button 1 again to finish a line segment. A new line will begin at the point the first one left off. Do this several times to form a polygon. Finish the polygon by tapping mouse button 2.
    4. Repeat steps 1 through 3 but finish by tapping mouse button 3. The line you have just created will disappear. You have just cancelled the operation.
    A purple polygon

    For most operations in xcircuit, tapping mouse button 1 will begin or continue an operation, tapping mouse button 2 will finish it, and tapping mouse button 3 will cancel it. The behavior can be slightly different depending on the circumstance, and the behavior for pressing buttons 1 and 2 is very different, as demonstrated in Tasks 4 and 5.

    Task 4: Move an object

    mouse button 1 does have one very different function than that described in the last task. It can be used to "grab" hold of an object for moving.
    1. Press mouse button 1 close to a line of the polygon you just drew. Hold down the button. The line should turn gold colored, indicating that it has been "selected". If instead nothing happens, then the cursor is too far away from the line. Releasing the button releases the object.
    2. Try grabbing and releasing the polygon from different distances to get a feel for how close you must be to the object in order to grab it.
    3. Now grab the polygon, and with the mouse button held down, move the cursor across the screen. The polygon will follow the cursor. This is how you move an object in xcircuit.

    Task 5: Change the properties of a polygon

    mouse button 2 also has a selection funtion; in fact, it has two of them. In the normal drawing mode, it can be used to select objects for editing or changing properties. In this task you will use mouse button 2 to select the polygon you just created in order to make it a dashed line.
    1. Select the object by tapping mouse button 2 with the cursor near to the object. The object will turn gold, indicating that it has been selected.
    2. Tap mouse button 3, and the selection will be canceled.
    3. Investigate the other form of selection by pressing mouse button 2 starting below and to the left of the polygon, and dragging the cursor to the top and right of the polygon. A green box will follow the movement of the cursor.
    4. When the box completely surrounds at least one of the endpoints of any line segment of the polygon, release the button. The polygon should be selected.
    5. Click mouse button 3 to deselect the object.
    6. Repeat steps 3 through 5, noting that if no endpoint of the polygon is contained within the select box, then the polygon will not be selected.
    7. Select the polygon but do not deselect it.
    8. Go to the "Options->Elements->Border" submenu and select option "Dashed". When you release the button, the polygon will be drawn in dashed lines, and it will no longer be selected.
    9. Experiment with the different Colors, Fill-styles, and Border-styles available in the menus. Some of the many varieties are shown below.
    More purple polygons.
    Top left: original. Top right: dashed.
    Center left: closed. Center right: stippled (50% stipple).
    Bottom left: opaque stippled. Bottom right: filled solid.

    Task 6: Change the page

    Xcircuit has multiple pages. There are two ways to change the current drawing page, from a keyboard macro convenience function, or from the menu.
    1. Select the menu item "Window->Goto Page->Page 2". The polygon you just drew on Page 1 will disappear, and you will be on a clean page, with the bottom left-hand window saying that you are editing "Page 2".
    2. Go back to Page 1 using the keyboard macro: With the cursor in the drawing area, press the "1" key. You will be back on page one.
    3. Keys "1" through "9" and "0" will get you instantly to pages 1 through 10, respectively.
    4. End this task on Page 2, which is currently empty.

    Task 7: Select an object from the user library

    Another common task in xcircuit is to grab an object from the object library and place it on the drawing.
    1. Select the "Window->Show Library" button from the menu, or press the "l" (that's "ell" as in "library") key in the drawing window. Note that the menu button has "(l)" written after "Show Library", indicating that the keyboard macro "l" has the same function as the menu button. Generally, keyboard macros, once memorized, are more convenient to use than their menu button counterparts. Almost always, the letter or symbol used for the macro is meaningful and easy to remember (like "a" for "arc", "s" for "spline", "p" for "pan", "c" for "copy", etc.).
    2. A page will appear, showing a number of circuit objects in the built-in object library.
    3. Grab one object by moving the cursor over top it and pressing and holding mouse button 1. As soon as the button is pressed, the object library will disappear, and you will be dragging the object around Page 2, from which you called up the library. When you release the button, the object will be deselected. Place it away from the polygon you drew in the previous tasks.
    4. Select the object by tapping on it with mouse button 2. Try changing the border style to dashed. You will see that nothing happens. This is because object instances from the library are made up of basic elements like polygons, arcs, and splines, but they are composite objects which do not have properties like "Fill-style" and "Border-style". However, object instances do have the property of color, and also the property "size" which simple elements like the polygon do not have.
    5. Select the object again (if you have not already done so), and then select the menu item "Options->Elements->Object Size".
    6. A window will pop up asking you for an object size. Place the cursor somewhere inside the popup window and change the default size of "1.00" to "1.5".
    7. Press the "Okay" button. The popup window will disappear and the object will now be 1.5 times its original size (that is to say, its length and width will each be 1.5 times their previous value).

    Part of the default circuits built-in library.

    Task 8: Use a keyboard macro to create an arc

    As mentioned above, keyboard macros are generally easier to use than their menu-button counterparts. You will create an arc in both fashions to show the difference.
    1. Select the menu item "Edit->Make Arc".
    2. The information window at the bottom will say "Click button 1 and drag to create arc".
    3. Place the cursor where you want the arc center to be and press it. While holding it down, drag the cursor around the screen. An arc will follow the cursor.
    4. Release the mouse button. You will now be editing the angle of the first endpoint. If you just want a circle, tap mouse button 2 to end. If you keep pressing mouse button 1, you will be able to edit, in turn, all the properties of the arc such as endpoint positions and ellipse axis.
    5. Now, create an arc by tapping the "a" key while the cursor is in the drawing area. The main difference is that mouse button 1 is not held down while you form the radius of the arc. Otherwise, the arc can be edited as before.
    Some differenct arcs.
    Top left: linewidth of 1.5, first endpoint at 90 degrees. Top right: closed arc.
    Bottom left: red circle. Bottom right: blue ellipse.

    Task 9: Zooming and panning

    1. Pan the screen to be centered on the arc by placing the cursor close to the center of the arc and tapping the "p" key.
    2. Pan the screen by selecting menu item "Window->Center Pan" and then tapping mouse button 1 on the point of the drawing area that you want to be the new center of the screen.
    3. Tap the "Z" and "z" keys to zoom in and out, or select the menu items "Window->Zoom In" and "Window->Zoom Out". Note how the scrollbars on the side and bottom of the screen change with the scale of the drawing.
    4. Pan the screen by tapping any mouse button on either of the scrollbars. Note how this function is similar to the "Pan" function.
    5. Zoom to a selected area of the screen by making a green selection box like you did in Task 5, step 3. However, instead of releasing the button in order to make the selection, type the "Z" key while the mouse button is still pressed down. The screen area will zoom to the area of the green box.
    6. Alternately, choose "Window->Zoom Box" from the menu. Then press any mouse button and drag to generate the green selection box. When the button is released, the screen area will zoom to the area of the green box.

    Task 10: Selection of multiple objects

    1. Clear the current page by choosing the menu item "File->Clear Page". There is no keyboard macro for this command, to prevent accidental erasure of the screen (which cannot be undeleted).
    2. Grab several objects from the library (see Task 7) and place them on top of each other in the middle of the page.
    3. Decide on one object which you will move, leaving the others where they are.
    4. Now press mouse button 1 as if you were going to select the object you want to move. Because the command is ambiguous---the program doesn't know which one or ones of the objects you really want to select---the program will query you one by one for which objects you want to select.
    5. One object will turn blue, the cursor will become a question mark, and the information bar at the bottom will read, for example, "Click to accetp/reject: 1 of 3" if the program found three objects under the cursor. Release the mouse button at this point.
    6. If the object that you want to select and move is colored blue, click mouse button 2. If an object that you don't want to select and move is colored blue, click mouse button 3.
    7. When you have chosen or rejected each of the objects, the cursor will become a circle. You may now press and hold mouse button 1 and continue with the intended move.
    8. Try this several times to get used to it.

    Three objects simultaneously selected.
    The gold-colored gate has already been selected; the program is now prompting the user for confirmation to add the blue-colored object to the selection.


    Message window when selecting multiple objects.

    Task 11: Saving a file

    Since the main purpose of xcircuit is to create publishable-quality picutures, it is necessary to understand a little bit about the PostScript output which it writes. First I will show you how to save and load a file.
    1. Choose a page which you have been drawing on, or create a drawing to save.
    2. Select the menu item "File->Write Xcircuit PS". You will get a popup window that looks like the figure below.

      The file properties popup window.
    3. If you tap the button labeled "Write". You will get a message in the bottom message window saying "Warning: Enter a new name". Nothing has been written at this point.
    4. Change the filename. Move the cursor over the window containing the filename. Delete the current file name and type in a new one. When you are done, either hit the RETURN key or tap the button labeled "Okay" (both actions have the same effect).
    5. Important note: If the name has no extension, an extension ".ps" will automatically be added when the file is written. If an extension, for instance ".eps", is written in the filename, then it will be used.
    6. When you change the filename, the page label will be changed to match the filename, and the bottom left-hand message window will now say "Editing: " followed by the page label name, followed by the page number in parentheses.

      Changes to scale and filename.
    7. If the filename you chose already exists on the disk, the button which previously was labeled "Write File" will now say "Overwrite File", the computer will beep, and the bottom message window will say "Warning: File exists".
    8. Tap the button labeled "Close". The window disappears; because you did not tap the "Write File" button, nothing was written, although the filename change has been registered.
    9. Select "File->Write Xcircuit PS" again to bring the window back. This time, tap the "Write File" button. The file will be written to the disk current directory, and the button which previously said "Close" will now say "Done".
    10. The file which has just been saved is already in a PostScript format. You may view it with any PostScript previewer (ghostview is recommended).

    Task 12: Loading a file

    1. Go to a new, unused page.
    2. Select menu item "File->Read Xcircuit PS". You will get a screen that looks something like the following:
      The load-file popup window.
    3. If the file list is larger than the window, you may scroll up and down the list by clicking mouse button 1 or 2 on the scrollbar at the right side of the window and dragging it up and down.
    4. A green box will be drawn around each filename as your cursor passes over it.
    5. Find the file that you just saved in the last task. When the green box is over this filename, tap mouse button 1. The filename will turn green, and at the same time will be copied into the text edit box.
    6. Tap the "Okay" button to load the file.
    7. If you do not wish to use the scrolling menu, you may type the filename, with or without the ".ps" extension, in the text edit box, followed by the RETURN key or tapping the "Okay" button.
    8. Selecting a directory name in the file list box, including "../" for the directory one level up, will go to that directory. Entering a directory name in the text edit box followed by the RETURN key will also go to that directory.
    9. If you know where the xcircuit source is kept, then select the "File->Read Xcircuit PS", go to the source directory, go to the "examples" directory, and load one of the example files, such as "vcoblock.ps".

    Task 13: Entering Text

    Xcircuit has a very complicated interface for entering text, which allows you to change fonts and font styles within a string, make overlines and underlines, and subscripts and superscripts.

    1. Go to a new, unused page.
    2. Let's say you want to type in a fairly complicated expression, like
      "f(x) = sin(2*pi*omega_c*t)" (except with Greek letters, of course).
    3. If you've read your TeX manual thoroughly, and understand all the finer points of mathematical equation typesetting (if you haven't, you should), then you know that all the variables should be in italic type.
    4. Select menu item "Text->Style->Italic". The default text font is now italic style.
    5. Select menu item "Text->Font->Times Roman" if it is not checked already. The default text font is now Times Italic (Times font + Italic style).
    6. Select menu item "Text->Make Label" and click on mouse button 1 anywhere in the drawing area.
    7. Alternately, you can just tap the "t" key in the drawing area.
    8. The green line marks the pointer position, and the "x" marks the origin (justification) of the text.
    9. Select menu item "Text->Justification->Middle Justified". You will see the green "x" move to the center of the line, showing that the text is vertically centered on its point of origin.
    10. Alternately, you could type keypad key "6" (on some systems, Shift-keypad 6) to get center-left justified text.
    11. Type "f". In the bottom message window, the letter "f" and a vertical bar "|" appear, showing what's in the string relative to the text cursor.
    12. Select menu item "Text->Insert->1/4 Space". This is the proper thing to do for "italic correction", an extra bit of space necessary after an italic character followed by an upright character, particularly tall ones such as "f" and "t" which lean leans rather far to the right of their character bounding boxes.
    13. Select menu item "Text->Style->Normal".
    14. Type "("
    15. Select menu item "Text->Style->Italic".
    16. Type "x"
    17. Select menu item "Text->Style->Normal".
    18. Type ") = sin(2"
    19. Select menu item "Text->Style->Italic".
    20. Select menu item "Text->Font->Symbol".
    21. Type "\". A page with the 256 character encodings for the Symbol font will appear, replacing the current page, as shown in the figure below.
    22. Click on the "pi" symbol. The screen will immediately return to the original page, with the "pi" added to the text line.
    23. Type "\", then click on the "omega" symbol in the encoding vector.
    24. Select menu item "Text->Font->Times-Roman"
    25. Select menu item "Text->Style->Subscript" (or keypad-minus)
    26. Type "c"
    27. Select menu item "Text->Style->Normalscript" (or keypad-enter)
    28. Type "t"
    29. Select menu item "Text->Insert->1/4 Space" for another italic correction.
    30. Select menu item "Text->Style->Normal".
    31. Type ")"
    32. Before typing <RETURN> to complete the text, use the left- and right-arrow keys to move the cursor around inside the text string. Note how font- and style- changing commands embedded in the text string can be seen in the message window. Their position relative to the text cursor is important when anticipating the effect of deleting (<DELETE> key) a text command.
    33. Yes, this is very complicated, but it is also very powerful.

    Above: The text figure created in the task.
    Below: The PostScript output of the same text from xcircuit.


    Typographical Note: ISO-Latin1 encodings define the Greek character "mu" () to be used for the symbol "micro", which naturally is used often in circuit schematics. This differs from the Symbol font "mu" in that it matches the style and properties of the font in which it is defined. Thus, it is possible to get a Helvetica "mu", a Times-BoldItalic "mu", etc., something which is virtually impossible to do even in LaTeX(*). Due to the font size and style matching, this is always preferable to the Symbol font "mu". To get the ISO-Latin1 "mu" character, (while entering or editing text) choose Text->Encoding->ISO-Latin1 from the menu, then either choose Text->Insert->Character or type "\" at the text cursor, then select the "mu" character from the character array.

    Task 14: Making curves and paths

    Curve drawing is a useful feature of most capable drawing programs. The concept of paths is a powerful aspect of PostScript which is not usually found elsewhere. Path definitions are used to create a single entity out of a string of curves, arc segments, and lines. The resulting entity has its own color, fill styles, and border styles.
    1. Go to a new, unused page.
    2. Type "s" to start a curve (you can think of "s" as standing for "spline", although these are Bezier curves, not splines, or you can just think of the curvy "s" shape. The key "c" is reserved for copying). The first thing you will see is two dotted lines ending in little "x" marks. These are the curve control points.
    3. Move the cursor around. Right now you are positioning the end of the curve but have no control over the control points.
    4. Place the curve endpoint. If you are satisfied with the shape of this curve, you can tap mouse button 2 to finish the curve and quit. However, we'll say that you have more to do to this curve, so tap mouse button 1 instead.
    5. You get a message saying "Adjust control point", and the cursor moves overtop the nearest "x" mark. Now when you move the cursor, you change the shape of the curve.
    6. Move the control point two grid blocks to the left of where it started (make the control line horizontal with a length of 4 grid blocks).
    7. Click mouse button 2 to finish the curve.
    8. Now we will make a simple path. But it takes more than one element to form a path. Put the cursor over the curve and tap the "c" key.
    9. When you move the cursor, a copy of the curve will follow you.
    10. While you are dragging the curve copy, flip it by tapping the "f" key and then the "F" key (one horizontal plus one vertical flip).
    11. Place the curve with its endpoints overtop the original curve. The result should look like the figure below.
    12. Select both curves by tapping mouse button 2 on top of each one, or by forming a selection box (see Task 5).
    13. Tap the "j" key in order to "join" the two curves into a single path.
    14. If you now move or select the path, you will find that both curves act as a single entity.
    15. Select the path and then select menu item "Options->Elements->Fill->(black box)". The path will then become solid black. If you color it blue, it will look something like the right side of the figure below.

    Curves and paths. Left: The curve has been copied and flipped. Center: The two curves are placed together and joined into a path. Right: The path is filled and colored as a single entity.

    Task 15: Dealing with over/under arrangement of elements

    1. Clear the current page (menu option "File->Clear Page") or go to a new, unused page.
    2. Start a box with the "b" key (this is a convenience for drawing rectangles and squares).
    3. Click mouse button 2 to finish the box.
    4. Select the box and choose menu item "Options->Elements->Fill->(black box)", where the "black box" is the first menu item in the list. You will now have a black box. (note that to select the box, the cursor must be near the edge of the box, not in the middle).
    5. Select the box again and choose menu item "Options->Elements->Color->(orange box)". You will now have a solid, orange box.
    6. Go to the built-in library ("l" key) and bring back a circuit object (say, a "nand" gate).
    7. Place the gate on top of the orange box.
    8. Make a copy the box ("c" key) and place it beside the first. mouse button 2 ends the copy command.
    9. You will notice that the library object suddenly disappeared. This is because the "copy" command moved the orange box to the end of the drawing list. Because it is drawn after the library object, the library object is hidden underneath.
    10. To get the library object on top again, select everything in the area of the orange box by forming a selection box around the orange box (mouse button 2). Tap the "X" key (Shift-X) to exchange the drawing order of the two elements. The library object will now be visible on top of the orange box.

    Over- and Under- arrangements of elements.

    Task 16: Making user-defined objects

    One of the most powerful aspects of xcircuit is its ability to deal with objects on a hierarchical level. Circuits in particular are highly structured. Often it is desirable to draw a subcircuit and use it several times. It is much more efficient to draw the subcircuit and create a user object from it rather than to copy all the separate elements of the subcircuit every time you want a copy. This is also true of new circuit components.

    Say we wish to create a new circuit component, a dependent current source.

    1. Clear the current page or go to a new page.
    2. We want the dependent current source to look something like the independent current source (isource) in the builtin library file. Go to the library and bring back an "isource" object for reference.
    3. Draw a polygon, as in Task 3. Make it diamond-shaped and three grid spaces high, two wide (see the figure below).
    4. Add a line of height one-half-grid space on the top and bottom of the diamond.
    5. Now we will do something unusual. We will grab the arrow from inside the isource object. Edit the original "isource" object by placing the cursor over it and typing the ">" key (push object). The page you were on will disappear, and you will see only the object "isource".
    6. Using the multiple-selection mechanism described in Task 10, select the arrowhead and line in the middle of "isource", but not the surrounding object.
    7. Make a copy of these two elements with the "c" key.
    8. While still dragging around the copy of the arrow, return to the main page by typing the "<" key (pop object). You will be returned to the original drawing, still dragging the arrow with you.
    9. Place the arrow inside the diamond.
    10. Using a selection box, select all of the components of the "dependent current source" object you have just constructed.
    11. Type the "m" key to make the object out of the selected components.
    12. You will get a popup box asking for a name for the object. Type something obvious like "depsource" or "disource". Spaces are not allowed (if you use them, they will be converted to underscores).
    13. Tap the "Okay" button. Now, if you click on the dependent source, it will be treated just like one of the builtin objects.
    14. Type the "L" key to go to the User Library. You will see that the new object you created is now located there. You can click on it to bring back another copy, just like the builtin objects.

    Steps in creating a new user-defined object.

    Task 17: Editing objects and elements

    You briefly edited the built-in "isource" object in the last task, but did not change anything. In this task, suppose we want to change the appearance of the "dependent current source" object we made in the previous task.
    1. To edit the object, "push" into it using the ">" key, as you did for the "isource" in the last task.
    2. Make the polygon shorter. Put the cursor close to the top of the diamond and type "e" for "edit".
    3. Use the multiple-selection mechanism to select only the diamond.
    4. Now you will be editing the point position. Move the point down one-half grid space, and tap mouse button 2 to complete the edit.
    5. Do the same for the bottom point. Where the two ends of the polygon meet, you will need to adjust both of the points.
    6. Extend the lines on the top and bottom to meet the diamond by editing the endpoints just like you did for the diamond.
    7. When you are done, return to the main page by "popping" out of the object page, using the "<" key.

    Steps in editing the user-defined object.

    Task 18: Generating complex geometric shapes

    This can be an incredibly useful feature for general drawing. A wholesale use of it is necessary to create such extravaganzas as this rendition of the JHU Applied Physics Lab's logo. I have made use of something in PostScript known as a ``path,'' that is, a linked set of lines, arcs, and splines which together form the boundary of a single object which can be bordered, filled, colored, etc. In this task, I will show you how to generate a picture of a solid cylinder, by making a path consisting of both ellipses and lines.
    1. Start with a clean page.
    2. Create an ellipse as follows:
      1. Type macro a to start an arc.
      2. Drag the arc out to some desired size.
      3. Click the first mouse button three times (to bypass endpoint editing and go to ellipse axis editing). The position of the cursor will move from the side of the circle to the top.
      4. Drag the ellipse minor axis to the desired size and click the second mouse button to end.

    3. Creating a path object (solid cylinder): top ellipse.
    4. The whole ellipse becomes the top of the "cylinder". To make the bottom of the cylinder:
      1. Copy the first arc and place it well below the first.
      2. Type macro e to edit (or select edit from the menu and click on the lower ellipse).
      3. Immediately type e again or click on the first mouse button to go to endpoint editing mode.
      4. Drag the endpoint around to the other side until the result is the bottom half of an ellipse. Click the second mouse button to finish.

    5. Creating a path object (solid cylinder): bottom (half) ellipse.
    6. Draw two lines to create the sides of the cylinder.
    7. Select the bottom and sides of the cylinder, and type the j key to "join" these segments into a single "path".
    8. Select everything. If you (individually) select any component of the path (either the side lines or the bottom ellipse), the whole path will be highlighted.
    9. Copy (with the c macro) and place the copy to the side.

    10. Creating a path object (solid cylinder): Two cylinder frames.
    11. Select the path (lower part) of the rightmost cylinder.
    12. Choose menu item "Options->Elements->Fill->(black box)". Now you can see how to create arbitrary filled shapes.

    13. Creating a path object (solid cylinder): Two cylinders, the right one consisting of a filled path.
    14. Finish the cylinder in the following manner:
      1. Color the path shape dark gray.
      2. Select the ellipse located above the colored cylinder and perform the same steps to make it filled solid and colored light gray.
      3. Use the X keyboard macro to correctly arrange the elements, with the light gray ellipse on top of the dark gray path object.
      4. Place the black wire frame cylinder on the left on top of the solid cylinder on the right. Hint: Move the wire frame halfway on top of the solid cylinder, then arrange the top-to-bottom order of the elements so that the wire frame ends up on top, then move the wire frame the rest of the way.

    Creating a path object (solid cylinder): Finished cylinder.

    Task 19: Investigating other xcircuit commands

    By now you should understand the basic user interface of xcircuit and be able to get around the menus, the drawing area, be able to handle the popup prompting windows, load and save files, write text, and create polygons, arcs, curves, paths, and user objects. Of course, we have just touched the surface of xcircuit capabilities. The list of features below will help you find out all the things that can be done with the program.

    For help with remembering keyboard macros and their functions, select the menu item "Options->Help!". You will get a popup window to the right of the screen which lists all of the available keyboard functions. Tap the "Done" bottom at the bottom when you no longer need the help menu.


    Back to the xcircuit home page. . .

    email: tim@bach.ece.jhu.edu or help with remembering keyboard macros and their functions, select the menu item "Options->Help!". You will get a popup window to the right of the screen which lists all of the available keyboard functions. Tap the "Done" bottom at the bottom when you no longer need the help menu.


    XCircuit Schematic Capture Tutorial Page

    The XCircuit Schematic Capture Tutorial


    Table of Contents

    • Getting Started
    • Task1 Acquaint yourself with XCircuit
    • Task2 Run the program
    • Task3 Drawing a circuit for SPICE simulation
    • Task4 Introduction to parameters
    • Task5 Drawing a circuit with parameters
    • Task6 Making a new "fundamental" object
    • Task7 A schematic with symbol-less schematics in the hierarchy
    • Task8 Identifying electrical connections
    • Task9 A symbol on its own schematic
    • Task10 "sim" format and flattened
    • Task11 "pcb" type netlists
    • Task12 Multiple-gate chips in PCB netlists
    • Task13 Modifying netlist formats
    • Task14 Example: A bridge rectifier for a PCB

    Getting started

    This tutorial is provided to help users get up and running with the schematic capture capabilities of xcircuit. In order to get the most out of this page, you should have already downloaded, compiled, and installed the xcircuit program and its libraries, and xcircuit should be compiled with schematic capture capability (on by default; see the Imakefile for details).

    IMPORTANT NOTICE: It is necessary for you to have the new (version 2.3.3) distribution of xcircuit compiled and installed to get the correct behavior in the tutorial. In particular, the PostScript prolog has changed and if the old one is prepended to the new xcircuit files, the files will not be printable or viewable from a PostScript previewer.

    There are additional differences between versions 2.1(beta) to version 2.3.3, mainly in the way symbols and schematics are associated with each other. The new methods are incorporated into this tutorial. Version 2.3.3 also corrects some errors in netlist generation, and is generally more stable. Versions before 2.3.3 will not produce pcb-style netlists as featured in this tutorial.

    Task 1: Acquaint yourself with XCircuit

    If you are not yet familiar with the basic features of xcircuit, I recommend you to peruse the basic XCircuit tutorial for essential features of the program which will not be reiterated here.

    Task 2: Run the program

    XCircuit now starts in schematic capture mode unless explicitly compiled without the feature. So just start xcircuit as you normally would:
    xcircuit
    Xcircuit in schematic capture mode will start with a window which has a menu button for ``Netlist'' and two buttons at the bottom left-hand corner, one of which is blank and the other which is colored red and labeled ``Schematic.'' The bottom buttons can be interpreted to mean that the current page is a schematic drawing, and this schematic has no corresponding symbol (more about this later).

    There is a menu button, "Options->Disable (Enable) XSchema", which toggles the visibility of the ``Netlist'' menu button and the two status buttons at the bottom. In case you're working on a drawing which has nothing to do with schematic capture, you might prefer to have the option disabled. This does not affect the program in any way other than to make the buttons disappear so that xcircuit looks like the original version without the schematic capture features.

    Task 3: Drawing a circuit for SPICE simulation

    This task outlines some of the features of xcircuit used to make a simple circuit. In this and the following tasks, you will create an analog circuit, an operational amplifier, and make it into a symbol to be used as a subcircuit of a more general circuit (an integrator). First you will draw a circuit using simple (default) devices, and later I will show how to pass parameters to devices, such as width and length of individual MOSFETs.
    1. Drag the elements which you need from the built-in library to (a clean) Page 1. Namely, the nMOS, pMOS, Vdd, and GND symbols.

    2. Duplicate elements (copy (c), flip (f)) as necessary and connect with lines to produce the following transconductance amplifier schematic:


      A transconductance amplifier, schematic drawing.

    3. Either drag the "dot" object from the library page or use the period key (".") to place connections between the wires at junctions. This is not strictly necessary, as xcircuit will deduce connectivity from the T-connections of wires, not from the "dot" symbols; it is merely a matter of preference depending on the style with which you like to draw circuits. In the case of wires crossing at a junction, the dot is necessary since crossing wires generally do not indicate a connection in schematic diagrams. You may also use a "jumper" object to indicate that two crossing wires do not connect although this, like the use of dots at T-junctions, is a matter of style and personal preference.

    4. Add "circle" connections at the inputs and outputs. Once again, this is a matter of style; the actual inputs and outputs from the netlist's point of view will be indicated by pin labels (see next step). The resulting diagram looks like the following:


      Same transconductance amplifier, a little fancier style.

    5. Because the amplifier will be a SPICE subcircuit, it is necessary to tell the netlist generator where the input and output ports are. For this, you need pin labels. Pin labels differ from ordinary labels in several ways: By default, they are colored red (though this can be changed), and are placed with a slight offset from their marked positions, so the position marker can be used as a tag to indicate what wire the label is attached to. Additionally, the marked position is visible on the drawing, since its exact location with respect to wires is critical to the resultant netlist. Finally, pin labels only appear on the top level of the hierarchy.

      To generate the pin label, type key macro (capital) T, or choose menu item "Netlist->Make Pin". Set justification as desired and place the "x" marking the pin position over the "o" of the circle objects, or on top of a wire. The pins in this amplifier will be labeled "in.m", "in.p", "out", and "bias".


      Transconductance amplifier with I/O pins marked.

    6. Now it's time to turn this schematic into a symbol, that is, to make a symbol which will be used on the top-level drawing to designate the transconductance amplifier. What we really want to do is to use the symbol "wramp" (stands for "wide range (transconductance) amplifier", which is what this is), from library "avlsi.lps" (part of the distribution), as the symbol for the schematic you just drew. Go to the built-in library, then edit the "wramp" symbol from there by placing the cursor over the "wramp" symbol and typing key macro ">". The result looks like this:


      Transconductance amplifier symbol from the "avlsi.lps" library.

      Note that in this picture, the bottom left-hand corner of the screen says "Symbol" in the button that was, on Page 1, blank, and the button that used to say "Schematic" is now blank. This means that this object is a symbol, not a schematic, and it currently does not have a schematic attached to it.

      Also note that the pin labels marking input/output positions for in.m, in.p, out, and bias are invisible on the library page, but become visible when editing the object, that is, when the library object has been placed on the top-level page. When the library object is used in a circuit, the pin labels are again invisible. This way, the drawing doesn't get cluttered up with nested labels.

    7. The procedure to attach the schematic to this symbol is quite simple. Choose menu item Netlist->Associate With Schematic. Immediately, you will be taken to the page directory, with the message "Click on schematic page to associate." With the first mouse button, click on Page 1 (assuming that's the amplifier schematic). Instead of the usual behavior on the page directory (go immediately to the page under the cursor), you will be returned back to the amplifier symbol edit page. Now both buttons appear at the same time, one named "Symbol" and one named "Schematic". The one named "Schematic" is colored white, indicated that the current page is the symbol, and that a schematic exists which is the circuit represented by this symbol. Press either button, and you will go to the schematic drawing (back to Page 1). Press either button again, and you will return to the symbol. The library object "wramp" is now a symbol for the schematic of Page 1.

      A symbol can be disassociated from its schematic, and vice versa, by choosing menu item "Netlist->Disassociate Symbol" or "Netlist->Disassociate Schematic". This menu option will appear only for the appropriate case. Choose this action from the menu now. Note that the white button in the lower left-hand corner goes back to being blank. The library object "wramp" is no longer a symbol for the schematic of Page 1.

      Association can be initiated both ways. The alternate method is as follows: Go back to Page 1 (the amplifier schematic). Choose menu item "Netlist->Associate with Symbol" (note that this is the same button that used to be "Disassociate"). You are transported to the library directory, with the instructions in the message window to "click on the library page, then the object to associate".

      Click on the first library page (the one containing the wide-range amplifier symbol "wramp"). Now click on the symbol "wramp". Now, you will be returned to the original schematic page, and once again, the buttons in the window's lower-left-hand corner are red and white, indicating that you are on the schematic page (red) but can move to the symbol page (white). Alternately to clicking buttons to move between pages, you can choose menu item "Netlist->Go To Symbol" (or "Go To Schematic", as appropriate), or use the "/" key macro. Note that the key macro only works if an association exists (i.e., it will never create a new schematic or symbol, as described in the next paragraph, although this was formerly the behavior in xcircuit version 2.1(beta)).

      The schematic and symbol both do not need to exist before association. You can associate an existing schematic to a non-existing symbol or associate an existing symbol to a non-existing schematic by using the "Netlist->Make Matching Symbol" or "Netlist->Make Matching Schematic" selection, respectively. If you are editing a symbol, then you will be transported to the first blank top-level page. If you are editing a schematic (top-level page), a new User Library symbol will be generated and you will be transported there. In either case, the new object will take the name of its associated object, and all pin labels from the original will be copied to the new, so that's one less step you have to do yourself.

    8. Now it's time to use the symbol as a subcircuit in a top-level circuit schematic. Go to Page 2, which will be the top-level circuit. Draw an integrator as shown below:


      Simple continuous-time integrator using a transconductance amplifier.

      Note that there is a "regular" text label titling the page; this is made in the usual fashion, using key macro (lowercase) "t", and therefore is not a pin label.

      There is a one-to-one correspondence between the pin labels on the schematic and the pin labels on the corresponding symbol. This is important to make sure that the wires attaching to the symbol on the top-level schematic go to the correct destinations in the amplifier's schematic. It is not an error to have unassigned pins: A pin inside the schematic may be labeling a net for reference purposes only. A pin on the symbol which is not used in the schematic is much less likely, but may, for instance, be representing an unconnected pin on an IC.

    9. Save this page. Call it "integrator". At this point, several points should be noted:
      • Two pages were saved instead of one. XCircuit followed the path of the symbol to its schematic, and saved the schematic for the amplifier. This becomes a separate page in the PostScript output. Running "ghostview" or your favorite PostScript previewer shows the two-page output.
      • Page 1, the page containing the schematic of the amplifier, regardless of what you called it in the first place (if anything), was renamed "wramp". By convention, the schematic and symbol have the same name, although this does not have to be the case.
      • All the pages got saved as "Full Page" and not as "Encapsulated". For multi-page files, "Encapsulated" PostScript is not meaningful. Options for positioning the schematic on the page will probably appear in the future.

    10. Go to the top-level schematic page (Page 2, or "integrator"). From the menu, select "Netlist->Write Spice". The message label will read "spice netlist saved as integrator.spc". You can view the file integrator.spc here. Note in particular that xcircuit has generated a hierarchical netlist, using the amplifier "wramp" as a subcircuit. The subcircuit contains parameters which are its pin labels; the call to the subcircuit has parameters which are the pin labels given on the top level page.

    For reference, the resulting PostScript file can be found here: integrator.ps

    SPICE simulation: Xcircuit provides only the netlist. It can also provide voltage sources and so forth, which will be described in the next task. However, it has no concept of "models" and provides no commands for running analyses. In the example above, the spice file will need to be edited to insert models for devices "nmos" and "pmos", Declare a voltage source and value for Vdd, and add commands for DC operating point determination and transient analysis.

    Task 4: Introduction to parameters

    One thing you may have noticed about the previous circuit is that you did not, in fact could not specify a value for the capacitor, which defaulted in the spice netlist to 1.0pF. And there was no way to specify a width and length of each nMOS and pMOS device. You might have guessed: There does exist a way to pass values such as capacitance to the capacitor object, and width and length to the MOS device objects.

    Here's a brief description of how parameters work:
    Each object contains a list of its parameters, NULL if there are no parameters. Each item in this list declares what is the type of parameter (so far, "string" or "integer", with only string types fully supported at present), a default value for the parameter, and another list which points to all the locations where the parameter gets substituted.

    It is important to keep in mind the distinction between an object and its instantiations. If you are on Page 1 looking at an object you just dragged back from the library, you are looking at a single instance of that object. If you use the > key to edit the object, then you are editing the object itself. Normally, there is no particular need to make the distinction. However, when using parameters, the object itself will declare the default parameter, but each instance of the object may contain its own unique value for that parameter.

    Xcircuit adopts a method for editing parameters in which either the default value or the instance value may be altered, and which one is altered depends on what top-level page you came from. The most obvious way to implement this is that if you edit an object from one of the library pages, you are assumed to be altering the default (the object on the library page always displays the default value of all its parameters). If, instead, you edit the object by getting there from a top-level page or another object, you are editing the instance, and changes you make to the parameters will only affect the value of that instance only. This should be made clear by the tutorial below.

    1. Run xcircuit, which should automatically load "analoglib2.lps" onto library page 2 (since xcircuit version 2.2.0. Otherwise, load it from the subdirectory "examples" of the source distribution).
    2. Go to library page 2 (macro L, click on second page). You will see a set of replacement objects for the basic circuit structures "capacitor", "resistor", "nmos", etc. The main difference between these and the original objects is that they contain labels indicating values.


      The parameterized analog component library.

    3. Select, say, the "Resistor" object and drag it back to Page 1.
    4. Copy the resistor so you have two resistors on Page 1.
    5. Edit one of the resistors (> key). You will note that, in addition to pin labels, there are some other strings (called "info labels") which will be described in detail later.
    6. Edit the string which reads "1.0 k(Ohm)" (e key macro, or menu selection Edit->Edit). As you move the cursor around the string, look at the message window. You will note that in addition to the usual ASCII characters and string commands such as font changes, half-space, etc., there is now an additional embedded command label "Parameter(n)< text>", where n is the parameter number, and text is a substring (may be empty) which is the parameter text. For the resistor, "1.0" is a parameter describing the value, and "k" is a parameter for the metric scale prefix. Unlike all other parts of the string, you cannot delete the parameter delimiter marks (parameters must be removed from a string with the "Unparameterize" function).
    7. Replace the substring "1.0" with "20" and replace "k" by "M" or whatever your favorite resistor value is. Be sure that you are inside the parameter delimiters when you make the change, or you will get unexpected results.
    8. Pop back up to the originating page (< key). You will see that only the resistor which you edited has its values changed; the other one still has the original (default) values of "1.0" and "k".
    9. Go to the library again (L key, then click on the second page), and from there, edit the resistor (> key). From here, change the value to, say, "2.0 k". Note that now you are changing the default value, not an instance value.
    10. Return to the library page (< key). Now the library object shows the new resistance value, indicating that the default value was altered. From here, go back to the originating page (third mouse button). Now you see that the resistor you altered retained its unique value, but the resistor you didn't alter changed with the default.
      The rule here is that each instance of an object accepts the default unless is specifically declares its own unique value.
    How does this work?
    There are already traces of parameterization at work in xcircuit. Each instance of an object has its own unique value for position, rotation, color, and scale. These can be thought of as parameters. Whenever xcircuit draws an object instance, it uses the unique position, rotation, and scale to alter the 2-D transformation matrix, then recursively calls the object drawing routine on the object itself. When parameters are present, xcircuit first looks up any unique values which the object instance might declare, and substitutes these values into the object itself. If the instance does not declare a particular parameter, then xcircuit substitutes the default value. Then xcircuit recursively calls the drawing routine on the object.

    Task 5: Drawing a circuit with parameters

    1. Run xcircuit, as in the last example.
    2. Using the parameterized devices from the analoglib2 library, create the simple lowpass R-C filter shown below:


      Simple R-C filter.

    3. Now, using what you learned from Task 4, alter the individual parameter values so that they look like the following:


      Simple R-C filter, with new parameter values.

    4. Choose menu item "File->Write XCircuit PS", and rename the top page something obvious like "filter". Save it if you like.
    5. Choose menu item "Netlist->Write Spice". You can view the resulting SPICE file filter.spc here.

    For reference, the finished PostScript file can be found here: filter.ps

    Although there are no MOS devices in this file, as in the previous task, the SPICE deck will need to be completed with commands for performing transient analysis and so forth, unless the file is to be used for netlist comparison purposes only.

    Spice output is determined solely by the ``info labels'' (which are green by default, and only show up when the object they are in is on the top-level page), in particular, those that begin with the token ``spice:''. There are several ``escape sequences'' which have special meaning in this info label. They begin with the ``%'' character and are summarized below. Also, string parameters can be inserted directly into the info label, a process which is described directly after.

    Info label escape sequences:

    %%
    Inserts the character `%' into the netlist output line.
    ?
    When a single question mark is parameterized as its own parameter, it is interpreted in the following way: If the parser encounters a non-default value (i.e., a number), it uses that number as the index. Otherwise, it generates a unique sequence number for the object instance. This method is preferred over the "%i" escape, as it allows each part number to be individually assigned, if desired.
    (parameter)
    Any parameter may be inserted into the info label, and therefore takes the value of either the instance string, if defined, or else takes the value of the default string. The question mark (?) is a special case (see above).
    %n
    Insert the name of the object.
    %p"name"
    Insert the name of a pin. The pin name must be quoted exactly as is the label which defines the pin. The quotes may be omitted if the name contains no white space and is followed by white space (if in doubt, just use the quotes).
    %r
    Insert a carriage-return into the netlist output line. Carriage-returns can also be inserted directly into the output by using Alt-Enter or menu option "Text->Insert->Carriage Return".
    %t
    Insert a tab into the netlist output line.
    Obsoleted sequences (maintained for backward compatibility):
    %i
    Insert a number, in sequence, incrementing each time a new object instance is visited during netlist compilation.
    %v"name"
    Insert the name of a parameter. The parameter name must be quoted exactly as the label or label segement which defines the default parameter. Alternately, a parameter can be inserted directly into the string during text edit mode using the "Alt-p" key. This is perhaps more intuitive, because the value shown is either the default or substituted value, as appropriate, rather than always listing the default value. The library file analoglib1.lps, which is available either at this link or in the source distribution under the "examples" directory, makes use of the "%v" method. analoglib2.lps makes use of the direct-insertion method.
    Example:
    
    sim:n %pG %pS %pD
    
    or:
    
    spice:M%i %pD %pG %pS GND nmos
    
    The top example produces an nMOS transistor line in a "sim" netlist, where the actual net names inserted into the output file are those which correspond to the gate, source, and drain pins, respectively. The bottom example does the same thing for a SPICE netlist file, assuming that the SPICE model will be called "nmos" (this can be parameterized if more than one model is required; see paragraph below), and the "%i" sequence ensures that each transistor gets a different label: M1, M2, M3, and so forth.

    Inserting string parameters directly into a label:

    While editing a label, use the key sequence ``Alt-p'' to insert a parameter. If the object has only one parameter, it will be inserted automatically. If the object has two or more parameters, xcircuit will prompt for the one to use (listed by number). Once the copy of the parameter string is in the label, there is effectively no difference between the copies: making changes to one automatically changes the other (although the change may not show up immediately). In general, this method is clearer than using ``%v'', since the subsituted string appears directly in the info label rather than referring back to the default string, so ``what you see is what you get.''

    1. From the default analog library (library page 1), grab the (unparameterized) object "nmos" and drag it back to page 1 (or whatever page you're working on).
    2. Edit the "nmos" object (key ">").
    3. Use the second mouse button to draw a selection box around the word ``nmos'' in the first information (green) label.
    4. The word ``nmos'' will be highlighted; in this selection mechanism, only that substring of the label has been selected.
    5. Choose menu option Text->Parameterize.
    6. Now edit the info label. When you get to the word ``nmos'', you will notice, as printed in the message field at the bottom of the xcircuit window, that it is bounded by invisible marker characters ``Parameter(1)<'' and ``>''. At this point, the SPICE model is a parameter of the object, and its default value is ``nmos''.
    7. Because you entered the object from Page 1 rather than the Library, what you are editing is the string instance, not the string default. Change the parameter substring to read nmos1, indicating an alternate MOS model called ``nmos1'' (which must be added to the output SPICE file before simulation!). Make sure that the character "1" comes before the ">" parameter end marker; otherwise, it is not part of the parameter, and instead becomes part of the default value.
    8. Finish editing and return to the calling page (key "<").
    9. Grab another object ``nmos'' from the library and place it on Page 1. Edit it (key ">"). Note that the parameter string contains the default value ``nmos''.
    10. Pop back out to Page 1 and run ``Netlist->Write spice''. The resulting file is simple and can be included below.

      Spice circuit Page 1

      M1 net.1 net.2 net.3 GND nmos
      M2 net.4 net.5 net.6 GND nmos1
      .end
    Information labels with embedded parameters are used in the library file analoglib2.lps. Note that in most objects ("Capacitor", "Resistor"), the parameterized value is in a string and therefore shows up as part of the circuit diagram. However, others ("PNP", "NPN", where the SPICE model name is parameterized) have the parameter only in an information label, where it does not show up on the top-level page. Yet others ("nMOS", "pMOS") contain both (width and length values appear on the top-level page and are copied into the information label, but the name of the SPICE model only appears in the information label).

    As an addendum to this task, run xcircuit and load the file and generate a spice circuit which uses two nMOS devices from the "analoglib2" library page, each instance having a different SPICE model. In addition, make the widths of the two devices different. Note that when more than one string contain the same parameter, editing one of the values will not be immediately reflected on the screen as a change in the other(s). Popping back to the level above the object and returning to edit the object will show all the proper substitutions.

    Task 6: Making a new "fundamental" object

    All netlists generate output when they reach a ``fundamental'' object, which is defined as an object containing one or more informational labels.

    Fundamental objects require several features:

    • Fundamental objects are expected to be symbols. As in all symbols, lines are interpreted as part of the symbol drawing, not as nets. The only ``electrically relevant'' elements on a symbol are the pins.
    • Fundamental objects contain ``info labels'' which tell the netlist compiler what to do with the information passed to the object via the pins. Presently, there are three different "styles" of netlist, named after the primary format which uses that kind of netlist:
      • Hierarchical, or ``spice'' netlists
      • Flattened, or ``sim'' netlists
      • Network, or ``pcb'' netlists
      Information on each of these netlists is widely available and distributed with layout and simulation software packages. In a nutshell, however:
      • Hierarchical and Flattened netlists both list by element, with each line of the file consisting of an element name followed by a list of network names corresponding to each of the element's pins.
        example:
        Q1 net2 D0 gnd npn1
        indicates that NPN transistor ``Q1'' has a collector connection to "net2", base connection to "D0", and an emitter connection to "gnd" (presumably a global network).
      • A Network netlist lists by network, with each line consisting of a network name followed by a list of pins in the circuit to which the network connects. The element names are part of the pin names, with the circuit hierarchy encoded in the element name by slashes (`/'), much like a file system directory listing.
        example:
        Net3 control/74LS00_1#1-2 display/LED#2-5
        indicates that the network named "Net3" connects pin number 2 in the first 74LS00 chip in subcircuit "control" to pin number 5 of the second LED in subcircuit "display".
    • A result of being an object and having an info-label is that the "Symbol" button is green, indicating a "fundamental" element.
    There is another type of symbol called a "trivial" symbol. This cannot be designated from xcircuit. It is only a optimization which tells xcircuit that an object does not produce output and is not a sub-schematic, and therefore can be ignored except for the presence of pins. This prevents the xcircuit netlist generator from wasting time looking for subschematics or informational labels. Except for saving compute cycles, there is no other difference between "trivial" and normal symbols. "Trivial" symbols are declared in the PostScript file with a "% trivial" line.

    Task 7: A schematic with symbol-less schematics in the hierarchy

    A "subschematic" is a special kind of symbol which, unlike other symbols, contains electrically relevant objects. Really, it's just a grouping of electrical objects which bypasses the trouble of making a symbol to represent the grouping. This can be useful, for instance, in drawing one-half of a differential amplifier and repeating the schematic, flipped horizontally.

    XCircuit is extremely sophisticated in its ability to deal with subschematics. It will determine how the subschematic is used, searching for input and output "ports" that link the subschematic to the circuit on the level above.

    The file in the xcircuit source "examples" directory diffamp_test.ps is an example of such a file with subschematics. It represents an obvious situation in which a subschematic is useful: This is a differential amplifier, so a large portion of the amplifer is duplicated on the positive and negative sides.



    Differential amplifier sub-schematic: One half of an amplifier.




    Differential amplifier complete schematic


    The second of the two figures above shows how the half-amplifer subschematic connects into the differential amplifier schematic. Note that no pins (pin labels) have been explicitly called out in the subschematic. All connections are determined from context. Different contexts which xcircuit finds and interprets are marked with red circles on the differential schematic (the unannotated version of the schematic can be found here). The annotations, called out by number, are as follows:

    1. Port makes connection to a wire (polygon)
    2. Port makes connection on one side but not on the other
    3. Port makes connection to a label (pin)
    4. Port makes connection to a pin of another object
    5. Two ports in the subschematic get merged into one network
    6. (not shown) Port connects to port on another subschematic
    On any given schematic page, port connections between symbols, between subschematics, and from subschematics to symbols and vice versa, may be from any layer in the circuit hierarchy to any other layer in the circuit hierarchy.

    Task 8: Identifying electrical connections

    XCircuit has the ability to highlight all wires belonging to a single electrical network. This is a very useful feature for debugging schematics, finding shorts and open-circuits. The command for identifying network connectivity is menu selection Netlist->Highlight Connectivity and the default key binding for the same function is Alt-w. The key macro operates immediately on either selected elements or whatever element is nearest the cursor, while the menu item either operates immediately on any selected element or prompts for a mouse click on an element to show connectivity for. If multiple elements are selected prior to choosing the connectivity function, connectivity will be searched for the first item encountered in the select list which is part of a valid network.

    As an example, load the file diffamp_test used previously in Task 7 (examples/diffamp_test.ps in the XCircuit source distribution). Place the pointer over any wire and type Alt-w. The whole network will be ``highlighted'' in green. Note some features of connectivity searches:

    • Global networks such as ground have all parts of the network highlighted, even if they are physically separated on the drawing.
    • Network selection is a different from element selection: It is recursive. In the schematic drawing for "ampl_test" (Page 2), networks inside the "half_amp" sub-schematic can be selected for connectivity search, even though for purposes of normal move, copy, etc., the "half_amp" can only be selected as an entire object.
    • Pins can be selected as well as wires, and pins belonging to a network will be highlighted along with the rest of the network.
    • The name of the network is printed in the message window at the bottom of the xcircuit screen. Hierarchy is relevant: A network may have a different name depending on whether it is selected on the top-level schematic, or somewhere down in the schematic hierarchy. The network name displayed is that name belonging to the network at the highest level of the hierarchy.
    • Additional networks can be highlighted without erasing the original. To erase one network before starting another, click the right mouse button once ("Cancel" operation).
    Currently, there is no method to detect and return a network name for pin positions connecting two objects (that is, networks which do not have a polygon or label explicitly attached to them in the schematic drawing).

    Note: Network connectivity searches only work as described above in XCircuit version 2.3.5 rev. 1 and later.

    Task 9: A symbol on its own schematic

    File example "examples/logic8.ps" in the source distribution has an example of a symbol on its own schematic. Run xcircuit on this example file, and go to page 2, the schematic for the 2-input NAND gate. At the bottom of the schematic is a picture of the "NAND" symbol. Note that you can "push" (">" key) into the symbol picture, and then cross over ("/" key) to the schematic, returning to where you started in a circular manner. You can do this all day until you run out of memory, so it is not recommended. Fortunately, when xcircuit generates the circuit netlist, it is not fooled into this recursive path. Instead, it detects the presence of the recursion and will not treat the symbol picture as part of the network. You can verify this by generating a SPICE netlist for circuit "logic8" and reading the resulting file "logic.spc":
    *SPICE circuit "logic" from XCircuit v2.30
    
    .GLOBAL Vdd
    .GLOBAL GND
    
    .subckt invert Out In
    M1 Out In Vdd Vdd pmos
    M2 Out In GND GND nmos
    .ends
    
    .subckt nand Out In.1 In.2
    M1 Out In.1 Vdd Vdd pmos
    M2 Out In.1 ext13 GND nmos
    M3 ext13 In.2 GND GND nmos
    M4 Out In.2 Vdd Vdd pmos
    .ends
    
    X1 int1 Pin.1 invert
    X2 Pin.4 int1 Pin.2 nand
    X3 Pin.5 Pin.2 Pin.3 nand
    .end
    
    As you can see, the circuit has been created as intended, and the symbols marked on their own schematics do not present a problem.

    Caveat: It is possible to do more subtle forms of recursion. For instance, in the "logic8" circuit, redraw the NAND2 schematic so that the output goes through a buffer made of two inverters. This is perfectly reasonable, by itself. Now, go to the inverter schematic, and in place of the nMOS + pMOS stack, put a NAND2 gate with its two inputs tied together between the In and Out pins. This is also perfectly reasonable, by itself. However, the two changes taken together try to define the NAND2 and inverter in terms of each other, which is recursive. Versions of xcircuit before 2.3.5 rev. 1 will simply crash. Later versions will detect the error as a suspiciously deep hierarchy, and halt the netlist process before the processor hits a stack limit.

    Task 10: "sim" format and flattened netlists

    "sim" netlists are normally associated with digital VLSI circuits, but they also can be useful for netlist comparisons of digital, analog, and mixed-signal VLSI circuits. The standard "sim" format defines device types for nFET (enhancement and depletion) and pFET transistors, resistors (explicitly defined and lumped), and capacitors. However, the format has variously been extended to cover other devices such as bipolar transistors, and any variation of any component, provided it gets a unique letter assigned for the device and is meaningful to whatever software uses the format downstream.

    The main difference between "sim" and "SPICE" netlists is that SPICE allows hierarchical descriptions containing subcircuits, whereas "sim" is by definition a "flattened" version of a circuit. There is very little that is necessary to say here, other than to note the ability of XCircuit to generate flattened circuit netlists. XCircuit also has an option to generate flattened SPICE. Note the difference in output, for instance, between the output "logic.spc" for circuit "logic8" (shown in Task 9, above), and the following output "logic.fspc" for the same circuit (generated by Netlist->Write flattened SPICE:

    *SPICE (flattened) circuit "logic" from XCircuit v2.30
    
    M1 int1 Pin.1 Vdd Vdd pmos
    M2 int1 Pin.1 GND GND nmos
    M3 Pin.4 int1 Vdd Vdd pmos
    M4 Pin.4 int1 nand1/ext13 GND nmos
    M5 nand1/ext13 Pin.2 GND GND nmos
    M6 Pin.4 Pin.2 Vdd Vdd pmos
    M7 Pin.5 Pin.2 Vdd Vdd pmos
    M8 Pin.5 Pin.2 nand2/ext13 GND nmos
    M9 nand2/ext13 Pin.3 GND GND nmos
    M10 Pin.5 Pin.3 Vdd Vdd pmos
    

    Task 11: "pcb" type netlists

    XCircuit is ostensibly an ideal platform for generating schematic netlists to compare against PCB (printed circuit board) designs. However, by default (at least for now), xcircuit libraries are set up primarily for VLSI layout work, so PCB netlisting requires a little extra work (because a lot of users want to use XCircuit for PCB netlisting, I'd like some help putting together libraries of IC's).

    PCB netlists are fundamentally different from SPICE and sim netlists. Instead of listing by device, the file lists by network. The format is flattened, probably on the assumption that printed circuit boards have no hierarchy. By default, xcircuit will list device pins (network connections) by the name of the object followed by a dash and the name of the pin to which the network connects. Any hierarchy present in the xcircuit file is flattened by separating layers of the hierarchy with slashes, as is done for the "sim" format.

    For PCB symbols, the name of the object is used as the part name in the netlist unless the object's symbol has a "pcb:" info label. In addition, the sequence number of the part is assigned automatically unless declared as a parameter in the "pcb:" info label. Typically, PCB components are labeled "U" for integrated circuits, "R" for resistors, "C" for capacitors, "J" for connectors and jumpers, and so forth. The sequence number for each part, if automatically generated, will be unique with respect to the name used for the part in the netlist output.

    Consider Harry Eatons's ``LED'' design which comes as an example in the "PCB" distribution. The relevant files are also linked here:

    1. LED (a PCB-format file)
    2. LED.NET (a PCB netlist file)
    Creating the schematic is very complicated, so I've done much of the work to get you started. Here is an xcircuit file which can be used to create a (partial, because it's unfinished) netlist to compare against the LED printed circuit layout and netlist. The important thing to notice about this file is the way components are handled. Each component has an object name (a generic name, such as "Resistor" or a part description, such as "LTC490"), text which may or may not duplicate the title, and text which parameterizes the object (such as resistor and capacitor values). In addition, each object is parameterized for use in PCB. This requires a string inside the object, an "info label" which is interpreted by the pcb netlist generator in xcircuit. Also inside the object, not visible from the top level drawing, are pin numbers for each object. For integrated circuits, there is text on each pin which is a functional pin description. This is not needed for the netlist, but makes it much easier to understand the schematic.
    1. Start up xcircuit on the file FlareLED.ps.
    2. Go to the User Library (the library containing all of the ICs and connectors in the schematic).

      Integrated circuits and components library for FlareLED.

    3. Edit (">" key) the PIC controller (object named "PIC16C54".
    4. You will note several things: This is an 18-pin chip, with pin labels corresponding to the actual DIP package pin numbers. Next to each pin number is the functional name for that pin. On the top level page, only the functional names appear. On the top level page, the device can be flipped, rotated, etc., without regard to the physical PCB layout. It is only necessary that the networks of wires correctly connect the pins of all the components.
    5. The "PIC16C54" object, like all the integrated circuits in the schematic, has an "info label" which reads

      
      	pcb:U?
      	

      PIC 16C54 object, as edited from the library (default parameters)

    6. Edit this info label ("e" key). Note that the question mark is a parameter.
    7. Escape from the label edit (3rd mouse button) and return to the main page ("1" key). Now edit the same object, the PIC16C54, from this page (">" key).
    8. Now you will see that the info label reads
      
      	pcb:U5
      	
      This is an instance value. It corresponds to the location and label for an IC on the PCB layout.


      PIC 16C54 instance, as edited from the top page (instanced parameters)

    9. End the label edit and return once again to the top level page. From the menu, choose Netlist->Write pcb. The result is a file named FlareLED.pcb. Compare this file to the supplied netlist file named LED.NET. The XCircuit schematic is not complete, but the parts that are correspond in both netlist files.
    10. Challenge: Finish this schematic and show that the two netlists are the same (``Layout vs. Schematic'', or ``LVS'').
    11. Another Challenge: Create an xcircuit library containing the entire 7400 digital IC series and send it to me so I can post it on this website.

    Task 12: Multiple-gate chips in PCB netlists

    Pins can be parameterized beginning in version 2.5.2 (it is allowed in earlier versions but will cause invalid netlist output). Pins normally work differently than label strings when making substitutions during netlist generation; it is the network name which is substituted. However, PCB-type netlists write pin names directly to the output, and this is where parameterized pin names can be useful: For example, a ``quad part'' like a 7400 quad NAND chip has four NAND gates which are identical except for their pin numbers on the package. Normally, a PCB netlist would declare these as four parts, say, ``U1-1'' through ``U1-4''. By parameterizing all of the pin names, four instances can be made representing the four gates inside the 7400 chip, each having the correct pinout.

    A method for saving the pinouts of gate subunits in chips was added to version 2.5.2 along with the meaningful method for generating PCB netlists from parameterized pin names. This method allows multiple instances of a single object to appear on the same library page. These copies should represent the object with different parameter values. The most common use of this method is to parameterize pins of a logic gate that is a subunit of a multiple-gate IC, and show each of the subunits on the library page, where they can be used to generate a PCB netlist.

    Using XCircuit 2.5.2 or later, installed, start xcircuit and go to the fourth library page ``Library: quadparts''. You will see the following set of objects (partial view of the library):



    Partial view of the ``Quadparts'' library (from preliminary version).


    Note that there are four copies of each named object. Each of the copies has the same name, but three of the names are ``shaded out'' in a gray color. The part with the name written in black is the original library part. It contains parameters, but like standard library page objects, it displays all of the default values for these parameters. As in Tasks 4 and 5, editing parameter values in this library object will change the default values of those parameters. The objects with the names printed in gray are called ``virtual objects.'' They act like objects on a page rather than objects in a library. Parameters in these objects may take on individual values, and those specific values are copied along with the object when it is selected and dragged back to a page.



    Editing a library virtual copy (instance) of gate ``quadnand''.


    From the library page, grab all four ``quadnand'' objects and bring them back to Page 1. With the four objects, one can make, for instance, a delay flip-flop implementation from a single 7400 chip. This is shown below:


    Delay Flip-Flop using the ``quadparts'' library.


    After building the circuit, select Netlist->Write pcb. The result is a valid PCB netlist for the circuit:
    !Q          U2-2-5    U1-1-3
    D           U3-3-9
    CLK         U4-4-13   U3-3-10
    int5        U4-4-12   U3-3-8    U2-2-4
    int6        U4-4-11   U1-1-2
    Q           U2-2-6    U1-1-1
    

    Task 13: Modifying netlist formats

    The Python interpreter is supposed to make new netlist formats easy to implement. However, the Python interface does not yet include access to netlist information, so for the moment, netlist formats are limited.

    As it stands, netlists must be one of three formats:

    1. Flattened ("sim" or SPICE)
    2. Hierarchical (with subcircuits in SPICE "subckt" format)
    3. Netlist (flattened, in a PCB netlist format)
    Flattened netlists are the easiest to implement new formats in, since the only structure in the file is determined by the elements themselves (not counting comment lines, such as the first line that xcircuit writes to the netlist file). The other two formats contain syntax that is (currently) hard-coded into xcircuit (the "subckt" command in hierarchical SPICE, and the entire syntax of PCB). Information about how to write devices is encoded into ``informational labels'' (otherwise abbreviated as ``info labels''). The syntax of info labels is described above in Task 5.

    Modifications to netlist formats can be useful in several ways:

    1. Implement a completely different netlist type (some subset of VHDL, for instance)
    2. Modify an existing format (hspice or pspice syntax vs. ordinary Berkeley spice3).
    3. Avoid explicitly drawing circuit schematics for simple devices.
    4. Write output at the gate level instead of the transistor level.
    The last two require some explaining, so start up xcircuit and prepare for another task.

    Aggregate output per device

    Here, we will change an "inverter" into a fundamental device consisting of two transistors in the usual CMOS configuration for the inverter. By default, XCircuit neither attaches schematics to gates nor defines aggregate (multiple line) output for a gate because there are too many ways to define a gate. For instance, the inverter could be an nMOS device with a p-pullup, or it could be a bipolar-based TTL inverter, etc., ad nauseum.
    1. Go to the first library page and drag back an inverter to the first page.
    2. Add some pin labels to the input and output nodes. Call them, say, "in" and "out" (or something less boring, if you prefer).
    3. Edit the inverter device (> key)
    4. Start an "info label" (I key, or Netlist->Make Info Pin from the menu)
    5. Type
      sim:n %pIn GND %pOut<Alt-Enter>p %pIn Vdd %pOut
      where "<Alt-Enter>" is the key combination Alt + Enter (also available using the menu selection Text->Insert->Carriage Return). Note that spaces, tabs, and other characters will transfer to the netlist output, although embedded commands such as color, font, and size change will not. The embedded carriage return will end up in the netlist output, as a real carriage return/newline. The result is shown below.


      Inverter with informational label for "sim" netlist output.

    6. Return to the top level page, choose "File->Write Output" to change the name from "Page 1" to something more useful. Then, from the menu, select Netlist->Write sim. The netlist output will look something like the following:
      
      | sim circuit "aggregate" from XCircuit v2.30
      n in GND out
      p in Vdd out
      
    7. If you return to editing the symbol "invert", you will find that after writing the netlist, the "Symbol" button in the lower left-hand corner of the XCircuit window turned green, indicating that this symbol is now considered to be a "fundamental" object. That is, it has an informational label and contains no subcircuits.

    Output not on the device (transistor) level

    Suppose, in the above example, we didn't know or care what is the transistor-level implementation of the inverter, but wanted a SPICE file showing the hierarchy, for which an inverter subcircuit could be inserted at a later point.
    1. Repeat the above task through number 4.
    2. Write for the info label
      spice:X%i %pIn %pOut inverter
    3. Return to the top level page, and write a SPICE netlist. The netlist output will look something like the following:
      
      *SPICE circuit "aggregate" from XCircuit v2.30
      
      X1 in out inverter
      .end
      
    4. While this deck is not directly simulatable, it only awaits the insertion of an inverter model in the form of a subcircuit.

    Task 14: Example: A bridge rectifier for a PCB

    This task will summarize most of what has been covered above in the tutorial with a practical example, a power supply bridge rectifier for a printed circuit board layout. The example will work through detailed explanations of each step, for the benefit of the impatient.

    The bridge rectifier is a simple power supply circuit which transforms an AC supply (e.g., wall outlet) into a DC current for powering a circuit. The "bridge" is a diode bridge, a loop of four diodes which act as a full-wave rectifier. The bridge also acts as a nonlinear resistance in a simple single-pole R-C low-pass filter. The filter pole is set by a large polarized capacitor on the rectifier output. The larger the capacitor, the steadier the output voltage, including resistance to short spikes and dropouts of the AC supply.

    Usually the bridge rectifier circuit drives the input of a voltage regulator to clean up the 120Hz bumps generated by the less-than-ideal lowpass filter, and to adjust the voltage between the transformer and the circuit being powered. For simplicity, this example will not consider the voltage regulator.

    For more information about bridge rectifiers, see Horowitz and Hill, The Art of Electronics, 2nd edition, pages 45 and following (Cambridge Press, 1989).

    Step 1

    If you have xcircuit version 2.3.3 after revision 6, there will be a symbol "Diode" (with capital-D) in the analoglib2.lps file (the second library page). If not, you can update your library from this link: analoglib2.lps, and skip to Step 2. Alternatively, you can use the following instructions to generate the PCB-compatible diode from the simple diode on the first library page (named "diode", no capital letter).

    The diode symbol "diode" in the first library is not configured for use in PCBs. This can be changed easily. Go to the first library page (l key macro), and edit the diode symbol (> key macro). Change the pin names to "1" and "2" (edit, or e key) to match PCB naming conventions. Finally, add an "info label" for the PCB netlister (I key, or else create a normal label then select menu item Netlist->Convert Label To...->Info label). The label text should be

    
       pcb:D?
       
    After creating the label, use the second mouse button to drag a select box over the question mark. Only the question mark should be highlighted. Then select menu item Text->Parameterize. As described earlier in the tutorial, the PCB netlister will use this parameterized string to determine a part number for the diode, or else the part number can be explicitly declared by editing the info label from each of the four instances of symbol "diode" that we will generate.



    Return to a drawing page (< key, 1 key to go to Page 1) and continue with Step 2.

    Step 2

    Go to the library (l key, twice to get to the analoglib2 page, or once if using an edited version of the simple diode, from Step 1) and select the diode for copying (c key). This action will take you back to the main drawing page, with a diode instance in tow. While the diode is still selected, rotate it (r key, as many times as necessary). Place it four times with a click of the first (left) mouse button, and finish with a click of the third (right) mouse button. Rotate and position the diodes as shown below.



    Step 3

    Connect the diodes together in a bridge configuration. While the diode endpoints are not quite on the drawing grid when the diode is rotated 45 degrees, they are fairly close (as drawn, see figure above), and there is some "slop" in the netlist generator when considering whether two wires are connected together. No special measures are necessary to ensure the connection.



    Make a schematic out of the rectifier by selecting all the components drawn so far, typing m to "make" the object, and name the object "rectifier". This is a "subschematic", as described above in the tutorial, and pins will be determined from context.

    Step 4

    Grab the transformer symbol from the "analoglib2" library (2nd library page). Add wires to the transformer input, ending in terminals for the input AC supply. Name these terminals "V+" and "V-" (typographical suggestion: use the Symbol font for "+" and "-").



    Connect the transformer and the rectifier together as shown.



    Step 5

    Grab two capacitors (one polarized, one not) from the second library page. These are the capacitors with values listed. They are already configured for use with a PCB netlist.

    The capacitors default to a picofarad value (for use with VLSI layouts, not PCBs), so the value string needs to be edited to change this to the "micro" symbol for microFarads.

    Typographical note:
    The best way to do this is to change the font of the whole string from "Times-Roman" to "Times-RomanISO" (use menu option Text->Encoding->ISO-Latin1 or, while editing the label, use the Alt-e key combination). The "micro" symbol (Greek "mu") is available from the font symbol table (accessed with the backslash key while editing text). The change to ISO encoding will be necessary on both the value string and the "SPICE" info label.

    Netlist note:
    The SPICE netlist generator will convert the "mu" symbol to the "u" used by SPICE. This happens regardless of whether the ISO-encoded "mu" or the Symbol font "mu" is used. Of course, one may also write ASCII "u" in the value string.




    Step 6

    Connect all the parts together on the top level page as shown.



    Add finishing touches, and the completed bridge rectifier should look something like the one shown below.



    The xcircuit file can be obtained here: bridge.ps.

    Step 7

    Select menu option File->Write XCircuit PS and select a "Page label" for the file. This will be the name used by the netlist generator for the netlist file name.

    Generate the PCB netlist by selecting menu option Netlist->Write pcb. The result is shown below:

    
       V-          T1-2
       V+          T1-1
       int5        T1-3   rectifier1/D4-1   rectifier1/D3-2
       int6        T1-4   rectifier1/D2-1   rectifier1/D1-2
       Vout        rectifier1/D3-1   rectifier1/D1-1   C2-1   C1-1
       GND         rectifier1/D4-2   rectifier1/D2-2   C2-2   C1-2
       

    and can also be obtained from this link: bridge.pcb.

    Step 8

    The example is essentially done, but we can take it one step further by generating a symbol called "power_supply" to represent this circuit in a larger schematic.

    Go to an empty page (Page 2, perhaps) and generate the following figure:




    Labels in black are normal text (created with the t key), and labels in red are pins (created with the T key). After drawing, select everything and put it all into an object (m key). Name the object "power_supply".

    Step 9

    Now go back to Page 1, the bridge rectifier schematic. Choose the menu selection Netlist->Associate with Symbol. You will be taken to the library directory. Click (once) on the user library. You will be taken directly to the user library. Finally, click (once) on the symbol "power_supply". Now you should be returned to the bridge rectifier schematic, with the difference that there is a white button labeled "Symbol" in the bottom left-hand corner of the window. Clicking on the button toggles the drawing window between the schematic and its (newly associated) symbol.

    Step 10

    Return to Page 2, the top-level schematic with the "power_supply" symbol. Try out the following (trivial to the point of uselessness) circuit (also available at this link: powersup.ps):



    Go to menu selection File->Write XCircuit PS and rename the "Page label" to "powersup". Then select Netlist->Write pcb to generate a new PCB netlist.

    Now look at the result:

    
       NET1        power_supply1/T1-3   power_supply1/rectifier1/D4-1   \
                  power_supply1/rectifier1/D3-2
       NET2        power_supply1/T1-4   power_supply1/rectifier1/D2-1   \
                  power_supply1/rectifier1/D1-2
       In+         power_supply1/T1-1
       In-         power_supply1/T1-2
       Out         power_supply1/rectifier1/D3-1   power_supply1/rectifier1/D1-1   \
                  power_supply1/C2-1   power_supply1/C1-1   R1-1
       GND         power_supply1/rectifier1/D4-2   power_supply1/rectifier1/D2-2   \
                  power_supply1/C2-2   power_supply1/C1-2   R1-2
       

    which can also be obtained from this link: powersup.pcb. Note that the main difference is that the netlist is hierarchical, with components inside the power supply being referenced by the prepended name "power_supply1". The resistor, the only component on the top-level page, is not so prefixed. Throughout the netlist, net names take the name given in the highest level of the hierarchy.


    Back to the xcircuit home page. . .

    email: tim@bach.ece.jhu.edu hical, with components inside the power supply being referenced by the prepended name "power_supply1". The resistor, the only component on the top-level page, is not so prefixed. Throughout the netlist, net names take the name given in the highest

    The XCircuit Tutorial

    The XCircuit Tutorial