From ccc90dd3a6392fc8df8ad243002b905685212251 Mon Sep 17 00:00:00 2001 From: bancika Date: Thu, 16 Aug 2012 15:50:59 +0000 Subject: [PATCH] Remove junk from BOM (eyelets, wires, traces) --- .../diylc-library/lib/diylc-core.jar | Bin 196217 -> 197996 bytes .../diylc/components/boards/BlankBoard.java | 3 +- .../diylc/components/boards/EyeletBoard.java | 3 +- .../components/boards/MarshallPerfBoard.java | 3 +- .../diylc/components/boards/PerfBoard.java | 3 +- .../diylc/components/boards/VeroBoard.java | 3 +- .../components/connectivity/CopperTrace.java | 3 +- .../components/connectivity/CurvedTrace.java | 3 +- .../diylc/components/connectivity/Eyelet.java | 3 +- .../components/connectivity/HookupWire.java | 15 ++++++---- .../diylc/components/connectivity/Jumper.java | 3 +- .../diylc/components/connectivity/Line.java | 3 +- .../components/connectivity/SolderPad.java | 3 +- .../components/connectivity/TraceCut.java | 3 +- .../src/org/diylc/components/misc/BOM.java | 28 ++++++++++++++---- .../diylc/components/misc/GroundSymbol.java | 3 +- .../src/org/diylc/components/misc/Image.java | 3 +- .../src/org/diylc/components/misc/Label.java | 3 +- 18 files changed, 62 insertions(+), 26 deletions(-) diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/diylc-core.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-library/lib/diylc-core.jar index 24ab80a4b050d55cc18aeb41314747740fedd8c2..2e27961acf9a43cb4b6b0b1aaec05cb4624edd07 100644 GIT binary patch delta 41538 zcmZ6x1yo#36R^n)?(XjH?g^Hl!6CT2Tks*l-GWj<=uu_(0YR zBp=hM(9MP>ah7;%6<_=FHj#o{Ee8(1#|Lx8ZQ6u*G0Ng4Q(g&jp4VQgWEFCw zGpJCc40YdvlG7GLX-ZW2Rxzv8q;EsUJkSbz11ggyO$3djA9U`f2ZE z&ia3=#0LPVp#C?C@udL9H&_O+z5xo5{tX0y+;89lL+I?FOL-+s6%4O9 z{KbBd$J&ESa!stIwXvS$X^f1FH(}dT?=_xK`>qn*j+GsKod?G}yfUvcuhOT5mZSCc z+X0QCd-O;K?4d|uD?;n}J)`1wB#t#bqa3`Zb_^>*ySvgvU$)%)&?a~ChuCVXDM9TC z;GoiZu

7^@yXw~8$q^W~5wecCV1i23iz|kuoaZOhR$0Qpy%@70t@_;746%mT1dG-3 zv+DIbWiSaQX){K{7UlTJ^4aA1zY&L;?G{c)5^In5E>b1s=Z`VE@4U~9ASq~Bt1B=% zW1})|nJTLn*FFRyd#ah{N-;h>h@#HS6aGue-g2GwJwPy_(ua#1fS^`gQUk?-KQzhG z#k<_uD@$K_G1r;2w6z(;UAJso200fuS6}eE!kfp?x>%Vv`nOhO2L7?gO5O105nc?q z3PjK-sr$o192VyeHKZ*v_oeL{I!IZuizh0P$pAqOP{2kGb<7mWy{aZu`@Vqw>@um{cC5H!!E?#yuZojqMgYX zpxK{!8m<3DKl7NmGR~ysDW?@P;5*73pG<0OGSAubH2N$e&acuaH?Fa7iEJ1Kfqj9P z%(q2GH6{QT?uq6K}H`%OPtp;Sqt*7O~xdG%jyvQ z^juIhthPOP$@29w!dvwzVj?@OPZ2JlTZGAo1|sVI+-Cix5Oo~7i=DI$2d>{ov+D+e zZ=;)ce~oPhk`{G&w_S2$IoVzfzHUmHw3XpoCE5hlbEp5=rXB>-J<(}atLP z($SXzZ@%S)Ifec|-`bOu5?y`uYmHY;n)qxItR(&sAU4Q$to1eQVL`7O6U4m$%EHhn zjRn6NnTlbHQx&U=84Z{bG3HUV#Tox_=Y}Ei3l_WgMAnNk0qyDid-C;xZ0zOemJAB) zXaV1i*`#T;rzo#`KD(>7#vOJKL(a~v?MNzZr!(~F1~Lbrh$RJ^7%)Icl7O?DZx?DhnRCQAb0eJ*^nVX( zyd(Dgew$w(wR4O~CguN!btvE3gRJ}@< z)@-O|eA|E^m&8?)vuFI20jyD@)Ueac&wCR7J3bquHdYk6iHe{zl!n)$#A!V%)t0lv zw92*FP3m=-TCB}}M4NfkY^W~N1Tqr$nlt`a+A%U0l#fm5I?dGEqL0OAJ6D=xXTiRu z0i9opT=uhLjqN5ZaUQ88mRHtvdSc4O_Y-Szw$XK3nNpLI2k2(8>;0Cj+VZr zJ#eL^JJPaHj;gxwJExoYm|~{cKK=}t`4wE$rx`@b^jV$cvGjStk$z5?Qz%WxlZ6bH zE4E&f$;&aI^qe2`6FrIRGa(2(ZmupB`J9ePWhPsCa4b+u4=goi3_YqAw<9wT*8G#F zT)JvVqE+8a9M+nAloBb{KbrU%)>c6+Bk@z$z^4Xn|2^w&rO!Y~TDbYY2upUHtjl|@ zH!4pm1}z7eI?B3MPMx$F!u=?xMb)DW$Qr@&heh(4IjqGkcMSDX0R>qWLqGnoeXtJ+I}7 z=p$2Fohj;nw^`GPS1_ON-{3QO@#Q(>a#X1CLD;|535Ft<$LxT><$!#~co4$dE=Mj8 zEI(W>%BT};3Dt3|lGX(gOfkGPh%fyV*6ltv5|PTA(#2@g1)Z*;(XdESob8?pDtecflKK}9Vod-Mo${!a*KRs3e1?}jkt-}LTj zfnvKvl^PG}f+tbzc+OZMx@K65@wnN9VysJ%zR9gfdxL_Ri{WXQypEugw0-gY^)(4R zS4ynjcO27`d)p4-{za6+dAS6pdWB;jok3y|4Gh9FYt*ZZ^Mmp){=zLg+O5)HdF$xQ zM>ofNcy!u*Qyx4}oF0Lvq>*9fn5m9QRa90F3WOT0KDN`#J72#4KN+g0ulfVAiKNPQbZOr6qvy`o?4`{Cp$ zGULvGwB1@ZZ8vw^SR zZo}uJs2}VPkpNWaXE+fY7wkExXDAWuYfg763zqDom`|w1=fB8(kpi*o$>uhk$?u@T zek69F%>-2c`jQ}$v_>E1QuDPy#D4|ivnUa3GHI;d zwUFrPpx;t29}Crc5;kDRe1H0l)AOBfxMN}7^umOY-(_hcx9^nju^0aBsh(^y>Kpyl zI)1lzs7L+Q5)X-Gx4GAJ%@2srF2+tGoCe~?OB=4g=`$PAzgyEX0lbsG8PYr1TZq3= ze7#lEf8!8-kI5YUYOEb1E*U!sY8HqWUu>Q7X6us;`+GTWJHvO{a2R;+LD{$2cUh1p z)cf#8dEo;8+fr25t0nHdZYQE4As`syzLS8&>}?h8Z7hvFSd489ot-0%Hfyf{)(yV9+5d05BWq+0J z?=#SPPNZZt~m#mjM}TZvf`1e`nugHnP^qtxg*0+53$T z_=)L=F&^-7I8FaZ|BoYLzU^I8W)^c2UYEtrt0Qr}E{pgXAAC@x@~{FSJC-m_0J%_C z?nI)9pPk}@3srsT6cvLKExgR%m<5R_XLu=0LJuOnxxnsSQQ_UIx`UCC$gO0Q$M&K26cc*#lJtBi72R@p7EaQO9Daq zN=UI^T$NkKgx0+g38Dot(W&w0)8f>_OOI<^PG^Nzx%!~U9N*tdR@YGV&6ry^$!$jx zHOVVKB@FIDZ}<%tsK3yxvg=Z z!)-+q$ya_tTIXeaXpSgRRx*7ve^t+c|`N6$={=Xmi zP;aqUScF`n2-4$DCJ zn$<|J_xPq0d;e}#^JnV2>^2GfF3Up&NJtzG=}7Q@-ne8H0T%tx3dp zvYf$%LiwMK2jX1}l2;q}z@*9}0B#L3W|Uc)X8pyAy}HUr@Cz2q-ufb_fc zgbh&lj`>^wx;G=_g1&>FUX6&o8M)#Ge0|qZ6a>V-%{?K@4_gl|F^e# zGJwK&DS`sv>b+`!5V956FElALs@?o(DBy!J&F{Wudkg~P5KB4#7k;E1|l|8r2~xLi{t$Qw7%nFE&%-6eT1rIWvH9AU)z@Fjc)$Qw((EY^qoJ-AaQxl{a07rA z@K$W15y1Rz0nh?~c}K){fWte2x&WWwakv*y@{XQ^fT?#>90lONqwNI1?;S6u0p9QE zIRF1H5vFCp>ARF<4Z#17+M9r~_vRpN1N7b-X}1e-dUFHlUL3r@*9;T@c$=KDD6eUij|RsoK_qIpZ?a14#eI6HR86Fnr{6j zJ8=VV zQnK!hAad4gdjA7gzb6UHd(ppQy#&~{E6Le*+RflC-pShvx2cWLcGA0ZAN2!t=IIFC zwk65jMqBNx@ACNl2PwmSEH0tMp5D_!c-A_lozQOYmkUm4(WDnk==PYzx+a1xjw@L} zd)#S7uTHztxi)M4h90jk?a3MR)5lIy)7h+mvn=c<$$@`|lAPS<{@be7B!C>%mv!TBC!q|0Cl(mXQ7siuCst`mwmPSH7G9&D? z?NLd@iQW(JlgHtX>ZRz+D=N5d1gCY5^;mGAo42gVNnEQkke3w4nNbvh(&nlZHlzy= z_f?$t)*~cbYXg^e3AqZXUE(l{Z!j zm+_C#Ui)dxh=s>kgQ^b_l zSwFBON_Dbe-81{?@1@8_L)+~MIIa^KrnzXXe4MKM!G>PB2#j(#Ec!Y8Y2~8&{44rC z$slL(Y?weCdYA8F;r!D4qWmy2jdcw_8-Fnh@%2`;e%0~*Lky4T1Y+2JGT*1~>fJHP zA~CjACLO4l2-HF3Glrl48Me?;WwP306z_oURnBV*u3PXUnWjvP4Z%fhdP4H%+~{kSz$Ha0V3tF5OGH~WOTs{SWHE29WC04h%BDcd&_;)rpb5>8Y@5(p zq-7(Orkp7^kfQ~=E>k|LbyZY|d&`IZCr{Nwutp^I&I}Fy0)7lkJIY-CAw1@HG+kx2+7K zWX|Z6QACSWmE{5>%knV~mOqxG5)K~F5QEZHHVwAJamgNu^nC>Lzhg$%zX|` zM(0o55=tOLM|U4|mF%6J3En=3H(PYF)e%|-5oMR7Z5z7j&CwzByJhhVQCk`QD!R_; z#x_~f4Y6lp3IJCX)gLkGi#vkHQ*+BKS(CP%w!q@YSd_EuU{6rJXE+mh57oKM$PjTR zz_sQN@HqB|ynmpYlXKWI!edU8r}b5F)X4cn*oQ$&uGLT{jGZt>?Hm@+IF5BSg?JxG zsV&0NGT(&rchnhMO%ajB;bxgiVv#e0X@!kY-;l>G?g|Or>TesrT2osNg9sX9&$-CM z4~_QLU+&t*G9C8Z6i%-W6@@Ep`!jurg@qsg3V8l*>L^P+n`>+I&2#X`AQ4qTaf9yK zs9cdKDL{ewJz;*<_P{AdLEq4Fzi%-N(vZY&QID>H=VxfZcMR8P4Nd?bni7T=^xp8jX1>57gndhqLVxcEYR44=EZ$AdfW( z&L4()OheIF^M&Kx?a3Ic4DpschY6+#146Q4w8cl#j|%;`)=l8$A!#hA)ZNky zJrvVvnG^QXSo{R$f}*@4S<#+vzOSz|!FL5tvu)&PEZRaP1yShBD4S#X7+arH*8Ta% zxXoRgJ*^$&%}-DpuIbHA+N1#IZK5F)u0ns=fp9LWrr%FsVR0w?W#@Z zPuhuV-bMvfEJHf?C%-0gO8cQ}p3?l+BMu*@yKB-vwdk=cujWc0X@-{M=k$%<4)G86 zrn&YQJvp)ZhPu)iHGRt@hP5+3MAF5g^Yz&oSKlp)uqYDoZ5@g==CvDZ09oALoP55B zTq%F{M!h|^>@Y8GEfNHEgw5#4N1fuON>(_iTh*&-5sf8SYOL^4HBwe;)V8_Q2gjPp zHU^T;-Y(8^_5UNzkF8dC$-&J{=Yu9_^Oob3FwAHEHl1ZT@H3g*P>Z5-WZuz3DknjO zSAMa~;}oOHxkrvD*5Ngefdsbw!LIf5wh#Y)F{k7<8$&ZV!1*EK4soZjR|v^8mBpA- z!hN!R!UOe({~g~s+s%2oy5G8^-9iv*#BR74Ia#sZbbR>gj&My^Orylk7d7Aq6w+To?JWUPp;H8C{n#x#jHJ zrP}CD7X?f`L&zlko}e{)9SmjqZL==faRarGQMW|{TVvZ?XQJc09IC3#p(hAjZgr1Y>__m<{5!FqE#(mg{J?27TMSQy)vP44^GL-`v@hD7-uLtM#-Pi6^t; z?y1~UC!;eT6Ay%0>pv;zsA1=Fg|9OjrA9L`s8M2y?~>60^x_At8kuwR;ydvo)(5gh zm63lLrmC+(+i14tSP-f6yFl_JLe2hGsSNW7!?A#VsgMJjIID-XQEu0OaQ5QSU>WBt zM}E+HZi7csH5kWZL8LFJWE=;5%M@*J^{OT`IZqc%=K{HvGuUU$m1^`Fl<`wmg?@{V zUs*_TJ`!kz+*3r=_@i5)aSpTT;*H>s@TYKH-h9KXLKxsv^MhA3G@LY;bFZ?2EgG{i zep-XbEm@njp+t*@jSf?R;Xcm^=tX^@epAO&F}B`}RG!s=T#7gBo||D11%Di`77qP8 zG`T*jW)w8ov$W8p&o?JXKs4emxv;SsF#oK}&8Wob^0lL9c0jk!zDfd$6VhnF#tYBCHTct!H7- z1`u`=wXxZj^Euqv0bZA;j2c6!N#G(EhrZm|Eg9ow1J;FG~qRpL2(_cO%QgpS0BVT96=2gZ>B%Q%h|;=YfL z2?)xDv}${0&5``LR$i`6sL!cHD@xQ;w6)e=UQ+j3yR$^C`n;AVTs_Frc^kcZwYc_h zdiUJAW`DVGg(?g*fVaIcBt&^Vf1#T4X?`zrZ|5Qf#q9b|d4Ep*%~(l%ckjR|a@_ri zt#mzCr0_mD`c6bI^r7)felSDhLjYIS^@d8L{u~P8Bcz_tem6Q%LV~|oR^o25Tr?xz zMK%d+tNZ7_m^nMsB0>?LO#b3;2+~iFGu)@|Kekl*e$;HIn^qA??@MZNSM4+w;oAB& z(q6jG2ugt4D47x}U$+)v>LgF`)=jnld=-G^I~{Dlu}l$LCmebfa(Nc^=WOtro;0)X zj#^AKW)d~<dQML}&W~DSuUU>A-R@?v&ZS zCFa|f{EA7+@0*ZT9Wmab$efVXA4)jB$@5I_hM^VVu!PWU( z+))kQ6vW&`61AUuW+>1R8#q}w@>Y>HlmFmwQh341hS4=d&-47UmhRKzn6X_ct|0@J zI}x!`I$QKSd4GU=#*LasysZ6XR-20cu>EBQs0q!#P82~@=%alE`SCSH((zMR;Ro7;t zP+FE?<>l)jWt5Fr)igGR;M9PAU62%G#f9j}Bn?_r$;evJi%Wxt4-f*iRGZ_XPe}!D?Kx;MrO!aNSHFo3bTwT}iE83o;f!D7+`TEHUx(XT{b@B#A{9 z^w#g?O7u({%{UF1I1#dWu}J%n@Lq-dXp@_93d0`@Wai;zVMhsY4L^bQq=pRusaT3# zH@O&*?j5J|oIi5&GhNOnD^6x1wa8-YIFnXBe2<~n$;fF5Cs1AboaXe^aWk!AB_POc zn4=6Li~eJ@tyvQ>=B1|cf#;H(1gxK zMC?fi{B~*@776d8pXCyulLLg2d4Zx%PMYleJej#ED3r= zIjqqAK@))VG+ik8u5SV9*17`UG5v6osjUpLkd=Y$OLShN05bNmo>23$sapZXb4K&3 zy%ZuH0bw&NavE=~1SD*BC%l+HRCcz!Of%Hf2KmpE^>2oCLRx(w+Yx%-xCrWvn9DgxC6<&(vz#lXo*J+d9@1trLhqu~AG!GHsSrc*;JTHZM7SMo&2U6^o2yk2Is{IU%Rs(jh@&Fy^uF z1rgetNF3I?yIFIZn=pII7HKK$?U|A8tonrsjy`M!wnExG&P=>1@!Hx$__w!VlTcM_ ztvHydsdJeVez6e)$3GpAqS*)mj^N^Zth&84_McHO~9jTOwC`A&gmF9hA~+JKY+JXPp9>Q0DBA zFIzw2V1@S3K}l}(jZSF(#vCH(Wxq7K;y!xTwMClsgy)1&iL#I~~>_62Z% zi-i00SZ9K3?Z7}j&-`sAMODI8c%y}Pv0ItC980yu+pQWxk%;U1yy!~eMz^SK{#Ff;A4(}uf(WDP6H16uCxY2&a>+Fi>P($^^{zr5x!Q`L-Z39#Kl8-20T6d_-$C_p71t#|= zHxDyGW6;O2q&uU^04!=+Q~g0(dpj?<2D60Y9limOg&hJ9abUp#7lXeG)=swt2m)K) z@_wpN$2+S#h>`fjp=Z{-ANlKLvq9wn)Qm05JiDBgf-y(MP$EU-U1j$ThTZT+x!$jt zb+C}zl@{thy`UuXvait5#-qwrQt&X;Y@6x|>mc;Kf<`H}-oTZSlM#*$W~@hq77jvx zHyj2de|d}mu3{9ndA61E63J){sEjU?gH(>LL)0DQazE=KtG~SYvUvJ|8s?HBqlunP zq6`>coU5W-Lm(g;^B8F+!a|9xy1@TA~im4H6NBu;?) zFpL;*pMiXP#1j}aE__IGV@EJlkRcgTSpCApfZY<5*~{@~3soixPjG0>+%5?2oGHx_ zcvI@DK6=c>VrBz1mE4`nwVTh*%4yFR`T#1kYZqLorHh27Y|KL%EvTI974dvJEv=I6 zMHWrl!}CIlEVD7>gbfFA+f=WO!gz7OcrC0?e{2_w4D3fQHH_e{foJl*kPgri{>rEc zF|9AN5G~Liyy5s2U%@D}T__R^TRC-h;rxq*wOjqq&kbxA6a3=hQ`5lA;}K%wkBFdn z{^BR1Hpb`E$E(g%l<}{n%I5+C{ySs)Hwb?mEF}Sl9I)4sLc8O$OsWbOnICpg=4HNx zr)7JqSu3n{YsQU&nFM9O8Q13xpQR++7`?zHqBm#E2=B0pM$Kv6`7*VRN-nxMASF5z zn1QQ)s7w|&YVrB{?(mhjA!3(0CXa*mn)+oiqW|*1W;*M@wIckMZ2EU^#AJ zt_CB>ebf|tY&QTA%2$Pvp^`jCCID=p+DPT<^5x~!74$y+GpVeMJpXluPrVIv#edA# zoi9zHDw6VTUDsyQ>s*hfl~X?@Yg@v-v7OerQk7qG9z5xooDn0lWnk$F>&g>(lULM% zSydNrn-#{=?+<=d+W7WOfZaETpV1{3&K8H+(q?l+4}_ts8?iX5ofe&|4Re|y(uww9sRLH3jsxyt?_i|QFBk# zyn|Ow(R<6kaCB9WHBRlc;p#b<;S2=v|2vo<=mG2A4<_9PK)~Cp?}hz;WpkRafj8; zK___DT^&>_B+M~RK}$>ovfP(m!{gc{vN%Z-=7nEv& z9_DWPQRr^!JOM*MI&7boj&+`t??BPz51;tfb)K5_UjLsv6dYIfbuV|mST-B<+U+*n z+OT1J#AAh4E6O@0&*456^Pa9?MquK$$>i!plPoSsQ=Y&m(t z-q~cYEa$U`uJ8H}@&htq;+#p}&o{n#pU0c?NM%LI=bpJpm-6;>rmm(CdrGp3rp9%r z!lzhO52zD#rMZ1Azi*jZJu|BPtwW5GsX*J(1INu5KCYpOfztZRV?e&2sM=2B{>1ox z(f{{B1vE|FO8p$G_b*SzUL{a;dfQ>;TV8wNl>WgBui9V1S@)#o$6$tMm4p{bs^>I1 z?=J~|Xh}dHa(zGRlH}P3s~u1tp73w(p~sa+hc4y1@Jl6ax!`vq!XBq_>R_=9;)7dR9k>TM$ERnmf<3Mt@)qFGq1qJ?a?9$Y3J*!28_b^<-vGI5Jq@ZdMMVsP}t zoTOAQly&6w@-LkdqBS0%6wV9m7#-jn3FpJVs6J3J6sbO#q~m1eTo%$55f-;X?w7;|XR#9-#EC4$tb^ zo0=|?xUzKN&uC5$MjRejyiZ|K@7UY=aV6y)hf?ef7$VRwysS}e3&E>QF3u{uq)A{^ z^58^Y&AC)hU{!nINXW{)h!;(tCI6xYVQt^&$^&)wu4v_p(4U|E zULK^bn7;&)=)5_VNb+Pw55nn;VuN*BH2w;!QOkG3_Bc(O2Cyg<&r2|~sCfjOD&a<7 zd~CLH%p{&jP$yX%YG^vI&d6j@xi8SMVQ&9n<^&!REjup(g?!0UdYG+s5>%9V;AZ$& zI#fZesQW4DNbQ9`0i?IXJ26jKv`>?;cD&heu6=L`ov@aFxoo+sulkUr+NQGeO|e3p zVGVpK7`l+l;)~m!rhZNm2ucZR*4VgfS}=X`-5iEQ04Z+h8$uw})+-K>TB3O7DuI3i z?DeZ6zW){m5gpi`qquwheM0VZII~RRstxw?dX9xg3QN_f(3)LZY&DcWDlV_b&Okbp zwADB8s)SuevI%p4eAe!c9Yyws6tN#!tL!5Uh3U#3>wJmK37$%v1Iw2z|NhOBzT9lr zJ)~A9yF6yDIOQAqExdtzANhvIrI+HnBC9&H1xj!Zh~1v9zK@XTdTYImnDO_#?Y@<* zz3nNEKkm^ejPZ8^aW680ZYdAl?|))=dGI=63i5sQEOP5;i7t3+>uSraQSML!#9tI` z3`cXI!wZA!cd;`Fo0sMqI1FrwaOb*zRhqM5bjmPNZpc0fv%_E?_~7f~DC*V>pPoSW z%u^5&gNXkCN~;CxObmCgKT)@~ixOE`)JIo;DA2`+L%FRFbQo!_6132!X9y3XRsx|F z-947-g`Q?Q(BZ(tY6L-MDZ@pE?;{); zvVY2|U>H8=!9Hus|G_x7H)Rv?x3sP#YL7m;`;@z2DoZA?9+`do>9d~`+&8WXQMBtj z{Uy*u>>oHUfiqG21n7)1?YN0KT)3(*xnoIRGJyq8D*V^1hDH*x*?f%gh?NOa(LMY4Lh3#Eh%?pf;?k5NNXhM&MHolY`%1&C#Z@*!rm8M%uM zq;4gf!IJ&fUyQpaixEGjPge1+8K1~?qV+(aQp<2&w7j^R4F}L~P`GFaCR0UmTL%pb z^G0W+5iz%o!7L_mgMlFzSh3tHd*iao>dJtMAc||F)La!@lP~b~mxlJQbG~8=t6gN< z3n^{j^9x#$eV)14tf#im5hD2~QW{BNh0@}&GO{aw!;0}@t(4AhHM^dv5{_SbqJuzr z)9tf#QuaiawXRiM7^k#V6q%+BQ-|CZ(38ZUVDXHpT_%-k)-i$_lrb@(1|+*wW`6hD zyDSmU{U*u+%YM|5cA8VI!TcCit)Z4N8W)Ku5ossb)z*>kw`T6ZJgOMMnWmi&%@Ev??a_RNy?Cbdc#hloBe04^B_%f%BT}$SyYS#XB7Y$+`B^PMSgeRK{Fwz*G{mty z&57`3f_Z9GP6h2|IDqO_h6fYhGLFwN|edFd#3d|xH zP_qRBzAJulnAkfDL%y|9*!h?$q4cc=ue9XvzpWuOb}h0cY%yw5JsfzlP=?r6BgCo# zE=;Q<>=*8cikME-GVbl%uck$y;Ab3U_gwaNA2;x8@|U~W1t(<=AgFXBkd`}+WFgCD z7K(kpJ zqn`>NOmKKm}_+7*JQyjYr|W6S|mp0h(f-^$>gGVs{xnh zW1l<=BVjmAVNXPYI!`VTVZ3a+yjc7sCtj`df|FB-AkSXGeDwDKG}&5nx>G%UCk3R$ z2zGGQNVT8&(L#+-wl4#EIkA7$NBfD?1ad2Y6W?y6A(BKxzD>C#r3l#!5d}7>|8l&p zYjD{M_KWLNQYU_{bvBVM=A>zBqGu(hb}W1Tj(FThF;w=xcfVuYngMZ1I*>fV5f$K@vY zJF}DipJQRj)@NuCfmgDRnz4QkOCPnDXg}eJxVn{1$cb1MnU`jERoWtR<1T+SfZ%ud zYGgdA;L9f&zOgHkTT>X?49$UxDz8N!q+$iGmidL}V?d;CuZXy;J*r5FnPkaiTV9$* z2#YY zzD9zQNI&DtL`!nNApOhiYwOOOI7!C_VOSD)#R-Ei&SagrEn{mnjRhBRCp2d7Q5V7y zL<=v(pMnYgp?l$~%~*8IZp)l))q7cjf7GA)p2GfVZBYg-o z0R8}FA+Gbo#HY-?xImw(mvsuO?Zv}LPsPxnr#6A{zD~SI(oW@OiSB3LFJuJ7*Pn#7 zA*)2bkj*tZ7@MF!#|HePf`jlLtw)4{NV?FLa7;&toMGVh4ES~J2&ImwB|0qpqX2_gr)QdhD zw@XNyG*q*OL{!ZOm!4}L7=DT9df~@sKR^nUL#+1Vs8h z)ujFNiuDuZOLiBk^%JG9#0IHKO)i0GUo_*BVPy3BJ;$%}VY$Q!QU&h8)DhFK@%hrz z+>4!}GbRP47S%FILRMRGSKPN`k6|PQpb70y;XrCo)cWjN>r>C~X@Wf5AP0x)Vinrv0u@k2*lzJRn zK+iGe4KtQb{7If}{HHnnrF5#0cKK9Zd>&}Aa3K)OGvE}vnco!9oz_FZb)XgF7mShuC1mS25`7BrKKvQyMh@CU)Iy3Roz}b)b5{C7(&j%a)v$O;t)R_i6^OsyWDs zz|p-S07)PNer1GmHT;YDfVtJBcgyG5V_kW>pSTvvW!okbd7Shs)BcycS2ib<$0|Jj zji%s&Pa5CsT2VK)lxhHJdwcl9jx*bVPnPmS@j9vAiBPF6pY=)y%`tP*wy9HB?MalP)y>d$+l#%h3&X$hl6`G9KdG~OeSd=xo}22vF+BD^zmbuVDTXFQwR;{+th0c zPl-z@8z?(5$+~`QjF1SSspy!E(YQoaDyR?bkqcYk$_dIcPH|@<%_~vx$bc0DFWn2IyPVFP4vO<-&BCJd8e!kq6Jo^jKVa^z^E^98mC|&27&f!^`VY zj#IP@r?#kz=*Q1bw#*OXlIepud6g@3yt8RQVr_8vX4EzTDKWeQxVcD^3XmMVB$!e+ zXL=sFGcMHc$nJ%j?W#-=85aOqawJb_lf z%@NgprAPS*0>QDDs-9*1smJj;g@2{Sr>K5^yCp0l_!cFE)T~mS6|)UOqlZAMch0x5 zI30RDB{!cJ9S{zW#;%f zvfQPIYC_Xe6%V5G7Z0*u^7?k5EKM?AV((*k6qS6G|3hIv zyKQR%XfVdKj8hH0_}+pI-O4HV@^gM2N6cT-CFMz4@&yYa5)J1zfI`1~P-8&D>aw6{ zo8dvG%2qXnTa-fu6$h@tbH62@%=A}8lDlMb&uhRqE&{!%)6`Qf2 zEBGk7=@ryzPQ;dDV%66q+5~p_k#vXD{bT^fJU@R6(;RAnQzDd%B_ zOvdFpZ$aqq4#Y^}Y`*uBa5(7qhG>=7+gHIT$9CmC_z+29j1cgNxzFC9ZCkl&#q!qX z?hWlLnp#>>e^ickR0o&RXNanSMRX(W648q8OICrS(=w}CS2neEb|dfFo7T0i+R)YA z)ZMzF`JATCWi)?sk(FE*E+Oq%Z3+Z~YtiRV^-qNj(nPpry13?t@^@X=u^Q#(t+tVl!yVU6MNBxn2HyF6gzcT&s%EFxe*miewAF3(e6o~k# zCyYO1gHdaP+(`j)2p{UR9gfK;G7^RavshR!!YC>bwH<$4q1iWwLpWZ43(h5s6{=5+ z2W{1D`j#xwY1l&sC+E~`S&s~e?f!H&n#XnKoQQnckMZO(+WmoO5Ai+Pu-qHz>hXqz zuA>uGdY-<=Kk8wJY|R(w`zxWPVLc^#`shs4ZCRER9CQNASPl{bUPWA;m~4pA2>Fc- zW*xD9O&fosv51%K51p7;pJT_uQVz(q9t5~9G4@%GRu^fjK=VPvq^NtsI0o=lStd8; z)|@!Qh9Kw-Q?4Q3)W_%g@r~oRH2sprep}Xy4-8`UGe=hdqjexh5pcRWTN;Q&agxd7 zv9{ATc1Nj#>{u8rWenk(THoov6r+!HbETU`Pv(D-f>e8Drs0#DYEcsPC_#k5tg75T zjU7pJ_GYWKiTXy416!jC)PHa^EZe!%behsT&H1X=9+gMyv&>kbjbh;vmS;QB5T!*H zUiWx1KC8PnbhLJLH7&DQp_9gx_|SXgW8#8uYb1guY={Y0* z{_uYmacr^8-n)513GJZIzi|+$sfb0kcZXMn(OCG?z?bLq`v=5kC>pn!U0VZW&AkIN zk&KywjG08nOf!+)A=1eVqzl@NQ;lgKre%UTwaS8&04qxcT(@w<7YKQSXg+WRO6PT9 zoFVv{MOOO#UfTJIHguuDF31tSHG6|S#!`P3QI=3J+dQ*%%9yK=I)-rCZN|ZfPEH>a zEW(iX4n|TBfX_b>%aW}r2{om)ZQfuu!?#|Xm@~FC^!@%N+YP-`d*T43vu<7OE4pny zTGXGW7VF1Q&*^SQvFUJjtY~Rl+D4rgV*nr6w4Jnw?$#iTg)d7XM_X1^ou>7bEBX&>_})EJg3)zB$X(-gb5MglRvdGu50_we9AlrjV%pMRU4TF9bB+VtA%S44zA zEl0P~GL&ZsuD)&}Y}U_Us!@OIu`)GUPKV=+TtDV9p7bE1dNf@@Eb{7^7OFeW`u$o` zIMOkia%hu&)7I3{x}kgBN))~+qaX0plOe=bBym$bfRB|Bnm~B?Bz)uIX&d%*50J&qtl&ZAg`sq%wkw`#I*3pkr zXO$e(gp}W)GiKIY%c6f-(~1lJdo{JjJmMl4)Zr!j;fN5F_1{!2*HL6qG-0G*OA;b=U&B6&->$`HiA}}#>)7@9{yFjf zd3?Wt-DrKk3IA?pw}|Ik*%z#Ox8dLIwsv2{zb~cqBhleJ>-~QY{2OAstoJ+d?=E(? zc)o{yS={es_lf)c>;Z9qkbMR3C3MargkqlY7T&N-7qM7LB+?sb@DK{_CkKL zSi{Exd@S4xMfiVMjF02?LJ2;W;$zufD96X~>uMf{{9%}|7b@`8ZM;t03zP7*5-U#L z3sZKBA9geLIF7E9cQ!Z$d8h4xsU;ry37EEy*Ct?k0%mmWgP94Kg&nE2`{5)B*4EbS zhuIQP*I1{@>@C5Djoy}GU-S#(YHG9}s?o?|(;5atP=S9BwG5tyx(;ezmw@{C$XmNb z2mA1v57JR^DQy1{n2bf=W(SNuec%9w_w$SMo`5;)co{V8gHyWJ$z?ECJUGhWH1Xgp zgL&dXDT6b`gIXkR#rUOBf5J}-^(VCq7SYqA#w@b%Bdx0016>K|CJ^m`)kX`mdIHwyAJ%gGV7;BMFOkl*byUm5?vE_& zZZv;p)l9RosAIF2*uPiMM1U-w!=9?8f=3 zFbk^SB7><4NPP->b^^ZsnEgZ_kI|AV`0*L)#%D;LF<(RWY5gbF;(GZzYwDAOZ>rl5 zy#$8y4?y3#lE5%r(kRynEYKnwXqZk<0uFzh8=Y?1?My&$ty?bXr+a+l6?_cQBN0yk z36~5w1pRS1rGsd?w9c3sjWP_8k||(;c%cTi375hxaGN#ZlfW?oo#0g1PZjo@ z!k$;y3kv%g0t(;=R2_zjCCHC@to?KLqQU=Wlyl<$N%|xQhhVbc>z0xMj)ZM>z`}n? zyFiiSAoEA$M{J6NABE}cY<5Hx{erz@ba**3SjPK>G?{Iw3??M(f$a&nj7Fok+R6lc z5~totwLev#HucL#oq7$_+t<3^nAudLap)fjxlsPSv|3K|xw z@hg-QQW6hgjVlkq-9+c7X(|WcDx`n$Gkf96eQeCjyOy0o_3kBz-ls#9v|Jp;xzlkUxM~vcwYc=5VV4g|=T|!K71DvPUr)6( zyNybXB*Nu7Hy(K!iW`6P_P{sXY68BQfN#zDI?^kgN+O(`V&i!~g6YvAC~_-$%ia56 zkBL23joal`(Vjn+I--fGe0RRvrQ@Z>osYIL4zn9wIB^pmj}ttQg1rey=-_a>P{Hkk z;gWqk0sDtQp^4J_xAk|ehUy=Pv+*@d+zWHlcL+@*KAB&>gNlCwNha0(gsCQJ5uOxd z>N9vsH`{L2l9$^uO?MoIEDj(86jU%zbFg?}%^pjHt5cB9hScs(V791z#caW2W8QZS z=Hc=^gPcpi_uP5%R!@;LrLM(HT@6ca0g9=6v{CC z2+`wK5ZkB;@`QiL55c&}yTD62;#m|MRJD1?(;rJhUAQI>!6|N)ru`Gr+huN5a06A} zPf2?~b+X_&QBYxYlv*z4pT@7|} z0u`=I7D}k3DtZzs=_N8C3Haqf7*|6NFN?PX{3<^33o`9B&;WC-c~2v+W-iFWtHFu9 zjwYLCdlY{Z)LXTOg{%A*_E&u}QX_hSg(&5(83r0{h)^v~Q=7n*rcgPPLdEAPs4t8v zNu`1REVikQYU6p5kUVtlemzf#>xv0G!(NRJ6Y$DBrCdP}rO6h{v+U@r^dHTjT6e;G zMq#;PK}x-l2prz)&P%{=hu{tb zmSu?V#g3dLn7`WtuU~t|U9j4;>6%f!)UB1fP(d5E8fNi%1?2_SaO3fFf%SPu0gI2k ziH?Wr)^sN%4s)|xZfU**{Cti7cBrPybxI2GC`8W!5SV8#_D8bOSh#iO7 zLMC2g$6zylMF1T|yLAMn9DzdehmXLt!{9gq4$2_>oxN+AK6?bE*)85bu-ZQ@*;#_t zm>@BakpCwmh%nX@6-#?9xhuL}sHx2&?Ye)z`7icwqrYNfSQ-6f(_ej$y>Ec~Qnat+ zpWRQRz3oV~uZAHtVLq4Y{8^Y*xe{TZ`|y<|?^urx^9kkkFS~1G%92#>g}>IMno^N6 zK@q}eh*Bu^q$g!ta9mYm%oz**#sFuXG0!;si=9L|}hY zI4wq?^}i)s_f%Q;@0{f533aoYo(%s^F(I##M~A4s2TtYl^2+m!R|2_Oo|go99)X-@ zgpQ$Vz{`xbc zhYu9?AseBbgjpyXg;<)GwbWMEVU~Ylv6{WuR@-S6Gx-=?BqZSZX-8o`N`;>KIS#c# zLS84K_y`J)P)=wPhIZ^Dbmka4jCUQJCmUd&X_NJTpn#)6{b$L)OiBN0%_Ibo4sD5k zTck^rbPk#s(#-Fmb@?}gvk0H>CE)#RSrvAlEvrJhP&Ra-Lok}aMC-=3*3y5Yh@K{i zM-exDQ0^3K`5}Ubbs9+-*6Nna5fg{8GMkSIAIbQLJpNy##09rnalw(sJksILI9yI% z!N*kgfnME3wqI1=Ku@CjQS=DK0Hl~TYH>`^PrCQGJ}k`1D5lBCkyAyG@bi_x1XzyR$1q!6@2$uX#80&O!4eLUwF%%qZ| zFj-+ok3um%e+(NjHWdh5oYd5wkH95#G!|Df)lkI8@b9=4$}cdm=|O)fEoG$A_AewU zC4E<5r7#vwN~SRKD1}jpIH!UU35*!#TJ(jAvH$044}pU}l1vHe>Q3sZdz_K_<9PEe z!WW1B;_%HwEkO7bfM(7FQ*N54yXQ<5FRDB*Pw&YBo`ob9u#j|wVha-|2qjId9tOOP z1$77qD^YH<6H%r&WD~JatEoj)m|R2?emg=#1?@3@unb z0tKeM!hcbOmn)Lw1}1SyHqy2W(eY96ULbVKxRkUaxjcW8$oZS1YO?RTx`R+;=a3P- zcBW*rk|D~uR)|6#2)P@}_1sSdsn>JKyEus6DYE$>REqFnXM&XsL2LcU*S~G~H*Btq}Iqln|CaWdyOMtkf2;rg=QHrIl2#lR>RK3e%8#$DmwK=zI*F zM@W-u%2|KNNr&V#QhW^tCmn*5Wf=)to8#9}o4V6+qs=CxrYme3Y~K%>U4~{ z5tzGE`PnXzFw7=e{;HKIt}qkDZG_DVlwvJD@|FQpy}Ae??9;BzGVMwBX=n4ZlQS*? zKJ^%Q^eKz&KlI=bqVH)kL*m_xSTF1-;9*!Ta<4zwzh(T@@birr&Cl4#d?@J z7FF3R5@kjhCuvfFLB&MF8z~gt$n;73;5=KsLJLSkv~z*?D+RSPGDOf08I*{bkU4u)GXG0*s&bRFNhhaR z8fTF6d1H+S1v%CF8cz~AX8ZnS<&fAgrOn4lHlMi6UdC#OiPMIHS)Bx=Ywt=$E>;ZIi!BQ)!4iLm z^U59fK)abua>za_o_3N7bsC*3ZY9Cypp3FP7;ZTA43^%68tr2ZI~*hNk-hPePb61x z(U>cEa!zZNWZ7xpJVs*sf^Y=7t;~#`w|s2`$_-E81=DHx7+R6Vr51~O3>HroEI#E# zSp3cZA&WPZJ5p14_uCnM@t6$Xc~5@^!!H&LM>`mgkF5Al7(Vy^!0^^F7+z+{{!BVK zK^9Ul{8XLcnK>+}TpFKcSG6L+PBZdY(gdl(s8NpEg!BnTLlw0NcDmV#+ti?J7Opc{ zpu_ehnJ1DB?2KfxVOC9oooN_eInCa7h^!HQN7LU~e}K(jS2JmtHSS{z>eGKcze#q_ z&+RC=U$`FekvB4GHl)@x9T!KY;}ReF>6mWH!V_4+N#LkE4h>?7^sT{ZdhYuOoQ^D; zXu5XrjB&Q%b~?DB8Ts#yOiR7YW~t2tLTX+G#=9N1JOYLNBX8EB-{vrrVF@c4HiYY3 zhk?H!pPl6}^`%BOS7ZcJwPt@M?MzP)saizj)MV=EFccKqysb%6r2&QCAObbKUvJy7 z=`aZItlh&FJp>DN7^E)MZ2MBx+g2&T7MmN>FJZ&8vxEZgq=W*=2%yePN{+njc5pqd zGx8I+^AII$zRyLxuchxbx7zobMQ3@`8OENX*((QF(>k|vm@Uya6%&7~*`1$YExVGb zpkc}bb?srTC@f3od`(CToMUWDaKTmmuSyUoHnCww#+*eaKucB`Dbe|cnrxm-ySv?W z;-y@E5Q>nq%f5n(i$k813!6)z;5eM5@5=~8)*poe;X*GG;o{_DP{71{mHz$_Ohp}2 zm48^=kHSd|mwSpd)qsEST4Td`f#L7$XKgk`KHF5}A9U8&?q|z!3aGu$rB8Wv#s>E< zlf=0w!9&zk8>by45B^P)rW=EWa4-knO)PcP)ml!K7@VSfOKPf2sri6lQfn}?2&KZz zl;JwPWZPax2m2VMwumt`N6Zr!(hS7*Olg+wJQA8Sc-|I3IM{!qy4xs{SOkt?)}BR< zm)lRCr5-q=HBPV&#DHCWc8cU-nn@dZ3|-h23AS>%em`%%qq>Z(3NNp4&~3hB(h$t5 z-ov^RZ1oT|~j)P;+!qHKt z|45n+AL1=~(S|*#*0xAIB?Y7bH{9wT6c5t~Ha%&`d_a?Wi@9 zzdCv@BsQ2u+}K1{P-jp83&o9!FsGj&&)_1VU*oj(`3Qf!2EVg*wI+gk6gXQjz2F$k zBD?(|oTIR3wT}=YI+&^uLDklt)tN@rQK2(QORx=(wu^BtrUP^AQK2qe7(AIHIDwsu zJsQ2$;9sqkDR|%Tv~(}qn~`&|TiO!>C(~-v&ks$r&JVprDT4&tI0P=YlPdSbM_wgx z=7=G(SyO*sPHP&6-JN0@e)Ei3DcfXjTK}(x=xkK}H(j}vr*@+noB@}^L0l@lGunDS z2(QzfRkK?0t}kIH56#Krv>&ReNSbt5pJP8sQ&=;Hsfr%3gb z@GCYvK)u+2!W;xvg9WT@#+jpYNg6N=X1(br-K>8E#!H>`x&ZXWN8Uo9cL=rz>ID93 z_pwV7Y%_XbwS+}i%0_=FrC`RHKF(y?o7F5}GU;Rsm^*aWkkyN>gQEg7Erm6)-h!L# z)>Q-n?GOLSy7i~78+y2*I6R=kE1ZPaz<&d;tbH$Qbo?Lta61e@Er%Nfpq2yu?-Or; zhs1yVZFooA^>vs9s+9^m0#nau(=pVB7&?v^BG?>;JR43+Oc{3&m3dj6+Mrx`VV zV}$NI1iLOZ)=p1sE2yLnCG$&D^jL^RY7c^Ilo0(X%jKjYQ_nWVVX_XuXq~k%G5ayn zsjvwG76cbl2D=O-ArG&CLy=Bbqb_$GXFB;SVF)+CYGR^3Rsd{sKz3M6ZUvjs4vlx^F`wm*iB3A=2avpA0r zvrj$-+xM|gJqBIok%&*@bvnrG3bqZPScM}}grDThWAk<2m#yWW?LZx zs<4+8_BDll-2rE@Z#ZB%`=$eyv2Qtl*tgk#WwGzD?`E;@vHzy#6@`7@!G6GgNR$4E zB>Az*exk6Ss_az}Q1ca~l5zHNRBZuSmFG6Y_6V_8I|ytFqtG`|lO@2M08; z$5i%5dj5%;KRei8*#Bg*zp}p(&flpy>0tk0|8%g|*}ojHitta-^9_}qrstb~q>i_! zcShx)a^~Qi3zgd(@FdT0a64CUkgN2XNj-+rCUM}_Kt2|HP z`3~^nRJ=gpP6zZ+cY(?a386^gE(c%87dgPs7ZaqI*p_7RQtn0t@FiKij4!2TSr%W; z&%%biLcJ9#FVEr?ypmq3R9>xr@|7xIg^T1hDqoEY;cHMud~FtA$In*yIV!JJ`FdK= zxzwDea*xXE6u!X$w~>R~#*3&qpPG%-Y@()E<@E}0aKK%Ja~I*a7#bK27Lh7A=PYoirDtx;G z9w+L@ahUJmJE_;E@QYNwOX2PIdRMRfA(M1u^4)w7nPe|v?X%ajd+Fysdh4VHSzfI0 zOC0bVv3!nLUdk_{-sSfCB9K4yhNO^q>!b!ryA;0P0WTBj%e0o4`Q<9tRo-o{*J9W& z^L;AsvDX)v0F`^~^^47azP&y-1~do}Irb{N&jGIz$5)BttGu6@ebjVPgE&5gA8^2H zg!3BVyvF;@YOg_l3pk9c2 zVQM1O45|E(!iOCUkc0sb**8s?DkRk&CeVn=uf$Eo-{Ig_@v8}c@=j`ssJVukYsrJJ zqvl=oT1-v9%CA@W4Gxyi9<$e1TY|EDexrTUi?Ivo9sJU6?x2XKqOnw``o!;+I z`Mc@mPL;ohp6?}Kh?;Atxt1DS@B3)G+@g$gT2SW$LHHX7;tY)8ygXj(meW%}x^7IUaLPj96#pgG6=mRK2 z-qcAMr~^T-uh(ZF1-qER`~f2z*87YmUwBZDprS$~dqNZX;9zeExseDpVc)=@-x#=} zX8U9!WPH)vr`nLB@_~V1pr-i{E}>&&(2)ADZ}0_we36X|YRmr(nJV@$ur&s~sEUq% zgMJq2h`Sb!=%L6CW0;hVZdXpg1z{uP)BWf)ZK2=+qbJf4G>2D}Pj)d2p>C?7E+$Ud z?Ge4_Ai7V7-t9NAd{FpvX!Yj9J;q?f7Yu|I{yc+)USsl%TSCDBbIuLr(|MkB%~oGH zQdcp5omja26#hAde;$hxg?~ZeUsU*)u*6XK3kv@-gSOe3r*Zs^(@)4CHxP{YdPhk3 z#(pFsH|{ecjgx)5pu8fTcRPIH?Q#D`bD)Pidwn5;2vM1lp|HsnN3#a?P}tbB#?;d$ z(>BBFdTPA5@tV;kaK5*rD%8-6SavAMh=aC z`B*?>-K z3fv$GRqX7hLENDl{|^7I!oR2S|K_iMFes8JC@fL!9EuDMMPh4P7#m6k?+y7#7L@<{ z49Yib!Zo^4zA#3Z^UKz(T3zNg0zJ5^0)6L~$@P}GH*IuaEYkQ7aNYce{6`x9F$*v# z^apkCq!?t1ttHEZu|(rP;Xl>*tNdq3MT#QDhV{cWEdi1%I27tZYq?@nCR9p)yUWnM zr24{Sj!EORj-ONW3u=CeK}+Mm;=jhorSaeJ*Knh1{I{rP{yTOf2J7^0r10Ns{15C# zjsKDVNn?+&M==@s^^xEZZk@7(30nMqqfhrYg!+car{j^C!Fi3rA-~s+;mjQzGy?9X zmQHssO1jFuD~PZFrX{y8EXM8 z1PG=Gt_dM*Sk+ic)kFrz&8ako46iQ|)`XpQO((lp6N*qVS5s!iJ+;^8jr3y#)kLPi zde^?q@Zna}M3&GLk*$e&B1aRsV!kHwsFyG1dQ$K_k>F(HShCiB}uqZ8q^77#w_qb0I=| z1}!4j?m)=s3HAjrXM5dp+#SKyd)&xyyY35^FijMZ#^$AlWkt9&u}~~R{}ziiQ7lR{ zQ7YV+r!}#JpVUN|Sc+*#6U)SMO`IiGU_#PFxv0=YrKmzZQwmjoM71VXidCAZp?#3C zNB0k*^7+0s*mSPZ*vHrd2$m6DW0$Z?HL)7aF4kybtyq^Vla(6yzO_WTmW+S4Ce9Jd zai)lI7&lDTuEbgyl&00ufG^xr)2eqHeofS(Rm6I94sk98QZcBb%Bs?mVU`P^YxxfO zA|o~JL2}|Y!p?|)gmj7^D`%%_3=X2%I|yGB=aC!O4-5?q(rzf9o%#X`)i&&-y1#mM zifzH*!J)yuh^`5bsMEv-Y}kYB2<9!!6PW8so#{PkP!ESO^VICJ@Dy>rCN_#qny42I z4Du8EIw=$tCPGozz}-xib_aXW6pLp%@{l1nE22>oO`@59d~J&+whC1f+i0_9_Rzt~ zCuLndv#h!oi&Ko!1C22fMYL$*0&yXU-HQHU_)$BdpnoJn<-#1eHOC2jJ*ayU7i}IM z(EWZiABI!k5N5j!zaF9razUyB!ia6IKf~*j$Ak0>2pa=Fw48US2SpCoG!br_Uk~G) zC^&6Q;ipP}a>ZPzTbr9S{xn6J?d07%#7^Al=%j&|!Pm}(OGlibW9NBm715@Ni^MKX zw2KZ+?55rxYW9j+Saj_yUAuqUG6J27zCUlA? z-J*w_0b`RP7SrYoMrN~FTQGv}zTg0+Bix<=+T*={efV%vSRuz+Rz=Q zkP&I6^1|B~8&JfcCaw@6O@sxmbIpvj(mGhW8dT!N84QsM4{2gp99G1LCax6k(8N{Z zYRsR1;+?p*?hxi%Qt36CxK>=Jh9>QZUH6%g{1qnz&xvKsB32u^ zk-!*sTlWvu?nr0^s|X3l80^N`G;s@-B*^1`)|9lIR0&&UBGwt(^#Go{QOCE5+p%g% z9DKIv;eI^+qL<<7G;xP`H!h(Y!PBR#I)bGbvW)POgk%l<|WYW(5KqmKCcs4(*^|k1PPKI%oIEsy86`x!cw>Rud5^~j4u5I#(2a8@`-%v;=yd;ABH0Lio=*(2C#C+N+ zSW<-CfevG;B6l)4WFMO@N4`LtG-_S&Lwnu|&l*B9swPSQ|}6V6^`!6%*Q(p)GJcE)hX+%A#e zzU`QIm#5*{nz~O+x*mTpjC5JJ=UW2dh#u&X$8vKmbJ+>F#yljR;`__z!UKta=O@-l z0Ygevlz=52|Kw19V#qu$n#+*q0nBJIrv#@qmT zgSx8D-!wl3p35_>mErA}X(6}7SHLe)a{o$5Aq&6CLk~QttxERmVNYoI)_wFIG z=vmX>%cOdm4Lg`n6<@e{U@$U&LM4#VJ%mxtZq7Z8tKp1x9n0hZhJuxInk!*DH4==4 zQfDHR;;DgZIBQdegP};mY)SWRXtssZU&A8FmX_A$uJ(?Gj@|8DjoTV_Y;A7Bcr(-0 zZAysR91Qvm9Ydrd%i^8ASS@0NXq|#lmy-PFc!iAS_F6C2*d$Xm2ZjcJ(nbkfw~DoD zhc7}mV42u$7{b7W9Oq$wYslwqr&^knx@5|=a_W~0$xFI^%e29^1yRtWtV3Yxi7{E3$S3+kA%&a==Wa-)7Y=xl`{J zvvK`0DOu;v{PM{-wBUJv5-a4T058#$aBPjO9b$`!pbUU0sD@0XLN05}vpsc)Q z7WJa;GRj+8Xx1E@1k(eZOss3xf~nW6@@AjzwBtD!!%Ix#3D-w;>Rzvf+K-!wVn~?6 zUTV;ZCF43%bFD_8k5rGgXrc5GF$T!yEmMi=5~0c5OGwgg&KHk=EI8ld$@9@|6%m;q zy^5wAGh>v5v`8V+$EY+?X_i!$S7k+lt-)b5qzs7JDc{vlXhfdGJ58pwK(x7AlHpc` zLQx8BV@;?^E5^O1L*8M~7HpKhLZ5vMc}}p9*kSxdWwVi#OW#yqF;DDf=FE}1F&T31 zT&}p&@TxPVwFF;(F?}RRB9YZmc~jag?w-ljcL#i^2tFV`PtJyj%+{Aronm%65-&5H zaAaDa6;75;M{Hdzn7YiB+D!qatIeiYZxSi4qI`O#CL@}k11acuM=Zavd-c#k@|XDT zPL5-Xr=+NzAs;%JZkFt}t~KYbp8QpMGFqJ(=u!wLrGqJdBqXTP)V!r(cWVbtvvxgB zBf8F8O*aMsGrsN$4#(5W;?x~8IlHf$`vt?YHeUcwlN1)!L|1DG1aNaxEkxm_WmZ$o zaS{q|xRk_1=a&ClY)D@PeW`KX;+WGnIo#)$r~8POKP3rBCzrQBex2&K9LsZ>e7d|O zp=)I$61RbWv`JF9C`-GL*ma9_l_FYOb}(3$e$gqoRur-5R!pO(R1)b%yPEfO$v?GF zQGpTNN3~qh6z`*Y$ghvk#dE{W2iFACzWaP?l8Z6b4u-o zKx=Ug{=t4dVT!~s@mZd>B*3NXc$5w%j`Nf+69=Gwij?YR2145H$qE1Bon~PYLo<_l za%~(NsiRpYR|e@Z6)Coc8!AAszjp;4uB+f)uSX{b?=zK~?Du1qb92b=lODT)MPw8`eXCgsvtZ3Dc3t zV#zvxWv6^$mZ8XsIqCm+NDK}|Cgtp@%b&gqfhDX3=ug^ISV$jxvA2*ugURP5>{4Lt zGVF79IsSIB{j#rH&u-QupI&CjXD{oE>osk7wo|Cxvz2@SS5QJc%^t6 zMCA#vb)JBX&OG}#DC3|$4VjfsL8dJV4tkz{fUM4O(4vqX#~g=w5-$hGb0l8X(~x_N z{_xD2+mAC3umH9+^CFy=;WH;`)+o%E1i1Vl8?;0mLJ{rw+*^DfEEt2lynNfUP|zu= z+mC}Y3JXp^VQ2L?6nShXz}4xpk;n@@8Lo`HMNwEx(pI@LqEPHYp-Pa){L1Rd6Eb#x z1-2US!Z%@~!a@oQvj{?LI5LF4huAO(5(b4*Arqg4BuJ?#NL5@AcW2c&Eb-WmLm3GW zg{2<5%YFiup@x>@?^!6`III|l@^Pq$LZwG>DHBk|U;?Tc#QQ5T2*Ii-)I?$Ry`WVh z(=|Ir;X}y?d24a-KFB@+>pJt!9*1*(p0h^tYA0Yl2aoDfUx0ZoH45iO;k=x<4}(Xr8LC}Xg~{Z&TEW96Y*?{LNiTTeH^xs zp-p|RJQ`Q#RtgsP*wqSqCqVIOD8+$7_Zjqr1eU^ou1Up{ zc2H6K*RmmYo#jdI!bz@=d(r~SlN^<{6enWz!P&x@j~IlLf&RdcTEjQ7o6`)7$F1R8 z;xkmE1JbY?hjYhZYlgHt&a|z)(}s_h<8VQH6fQL9<@A-^bl%**fC5VavbUdrRj9z$ z9V@Hywo3y=f%-eGe%s11xF`yLyQ=cqP4n5R@;YSiIPA9Vug$2++mrNacV^6ouk_z6 ziS|Ze-@!X;6{md)OkEj;&L~`bXKg0-E|EQlGt;SfGyJt#PKQ&aj)t4&Qt4}G>&sBg z%RSky>@nzy!hU+{QRp6p3lXbFV&$9wFJc*<>`^!ep}jF^A42;Hn&LBmKJpn`!e?CB zc?Y6!@C5ifomnXDaTsuF=5rhZo_Vfp*E|u0pex%%aVq;`SWb0+91%GNaZ!V=>npAtXYK?0-I19(& zot`4*aWT(A=2^r%i(~lLNcY1HP5sv#*7ni z8-j25l(OZNdv><>Ao$)G+xwE(ei$D`$nGQfBq#oe z$#yNW{itNyG!xr@`w{%H7~2OdRu5XN9+a%q-yo|alGWWav3dx>4|_^zOSp=jf=65~ zZ1!jP>E%&+c@$r0|CE}uji&P?Hz~+I5;3-Wa93#T~IH3#I^JHfMJars@qGK>V4#%S~5d%Jx1pJI8 z?X#Bdo|V!mpG4_CJG*qxA^7>2be}V&`+O9>Fh}XWm?X#xG2oYzfG=9oy<|!Ek||v_ zO7~Tgj;)zVx|b3BwU~5Yk4yKB*`%}V`^_Z#mbyywz9sdsC?@B(ljQu)C-ncB{5dxBUy^42t2OiAteO8NXSO|$Gyh$G&ivd=GoM88KVmcg)13MBS(PFu z{8u8BJdBkiN_i>@Z;ZmW1pJ5zKP};_6LH9bzbWBG3HZa1Mew%}E>|H=;VRC^Epf*T zt65!w2x>xs>N9vWmt4KA7`0S=8(2!S)z7{bBU`Y%CsY}My7=l=aMMP z9%u7BWv(*Q2xPe^%R!Pd8qB?62^&50Rp}OgY`!!J?{nqlvplj1ub9au`Dl{@@+?zk zXToJ!VGLN5w1|bKoQq<~fGwU|K+9*v$q_A|VP2Bw6LK+znsARobv|2?3@ww;1^H~L z1tqs*%MhAdp5#BRmUk?V>+Y;0aCSm>E0T5RbbBYOuUx9{E2HqQxRbP6E-*)y`=@1p z`DolpTPH!74f2 z2O4!{aqcR90oJ>UKgX)bV#Uw1sxej_Wh)7^>R!kt(5hVTaaI#$t7TPRY!cp(%SQjc zmLSL3nkZX)oUOxCregb}?Vq+&a4h40_KXi^+ylq#74~)ZT72%Z|J?p7IHu@Izj6?c zsfX07)obCH<5ZR{OMzqN=~Q&WwlnYr$d>2M+hga>5oY}WIGv|qk;3kH3v`9OTVZ#y zGq4Yw)8Hebg{83f$b&5Ydk?@C?3{t?p!jXkNdyVUfA5w5-Usjo_}+xg3cE{xVedZ$ z%TL25g?-=@ERdZKV&@IG;0^fb8K|d&_5X1?In9Rv!FMk@1@-?yruY1RFum7gdKzjG zWyz9LP=JcMdo?QM44nU;n&iH?yUj04*sWR`)Ev6RfyuudlQO(7*68hr=cL-^L4PVEi5<#SulUr`2kKrhIK=8KmLA< zJz(9R)Po%|@F^os6~!8x%eHv(ZAI~900ki1QR`0SL3YIAHjKOkKKJCav#an_ECW6! zmFqj_!|l1vx%uPloTK@0y&Pk;+pAfWt;bXI(d~)clh4k@u!R^+`RqJ@Gk{?@@{ECg z6c{Xq8dx0*7N7uM+>S~^As%86TSA;f5ghn@+Pc`;UX{=4}`l$;^edQ&29#E zH=13$byJ~;TGgr2T^rq0fZwG!Rr97I)0Ju6R6rYb4^dX!B#S>cMcGU%QPw9CCC1%R zSem@R1`5t5aXiJ|pkf$*zq2}VO}7ecXJ8{_#*BMS%!AB-WYp8J10CuVl%jP}1&^>t zt&7>az$UG_lP)&Vs+)JvE$7NS`#5X#*y!RF%U9O)JgnM23M)J|6fU1NN7*#!AGrs+d}i!R%IWL-`~9# zVf1rDK5IG7E_jl(Bp>KGW=5E~5x8M>R&|Sfcyr5gyo%S5knCtLIi6j%>(sA0HP3b>XyX;9 z;!R2z%N%{}|5QrZMcO`HTcNFb+4dIr8B>{T&?#BNEI+93iYOhhn7uPhy^B5@w-rXI z`lQ7zeP~UaUDWOD>dyo;iGLNdO&!<@5w2S9YLk$h$(AJa&U@DK%Nc89!CI=?^hroI zn*^@9U8kR0TCJ0-~m=faM+xQ`gOX3Jc5}DtIxqlZ-f>N+j@ow#j zf5mADPXbL>EtiNU4@u37MGVuG?WMb|BE-m26k>e2PxzkLa-ZV40n!ZpWRFvprMgOf z(EJF=%@i~Wr}zs{O9KQ7000080Bej8LAUj|0xSX!Ym5*W_*uDYY|>Kf#PYIOB|egMS1g)N^fJ2{={T7r! zq!i6_lFASj>ZKIXXo%`!mj)RcG(CDnPpbE?q?9SMGDKA7TcM=hf9O|y#ZBK@Mj93Kq- z%(?4 zOdt5nI;YX#zsffJ@QVnSqJRg7MrWI9Z=5;9Z&^s#$VB_F*C*U3ynZvrZnkxleTCSW zhTCF;RK*87L>laKH21PIJI;N0`Gm*$2d=&Tma6#{yQ*Y5OiV?agT(Wi*AGpeFnX6l z=1g%zvF=ZCuKO=*`j)&26*05As$pMT@$&qL%;G$!EBl8@eNR505;^k^sSz<1K3&Pp znG!kMUcQ&gi?8z!d#Gb(;U#nEk#?7bZ+q6X_Jg0I6D%#lby7Z7Z;vUQ8y7n~vU`Tz zt~`gb2@@W^_iSlzy?(f2v0+el;KQ`X;s#0T>QaUo3v4b-y0I@I;hk@kr{+k*!)Xyb z|2W@cJ`xQkXaDE1V4HTJT0w3_*xU8iQKlwq{s~VGj=-HJIr=7RvX`s=`TBH3xzCEn zBPQC#J@HrA^3;Ds$0E1)qjVZppWd+S{SAjJGsjxLS(bUMDyF#DRVVbLe^kPSpgngZ zdicQ+vOd8LBULpU6jbBuP2qQ^C66^@lY0-!rS!wTbT5mw9Jei+FMUtxT!(v9_3S^( z+N9PVO*)vc{H{l7y4lK#-39!85t=^7T$UeetUK1Q;<)D;XDPcECI&{4Ns${IXw04_&L7mM4@3ef2qOdEf-uJ#AkSG`%<5X;6`&rHJdS`I5$HcL#!vf4C zs*@KjnYSoC)+=<*ty0hPYjkc$bw65{#6KJST{}~})N6_9V-?Hj*`6_8Zc#~3a?d`y zoD#PoaqIk!f|P?vR-4iJn#7x17F>@%7-rwI*m(5NwxHTEgRJys?z78|jat&9kUA&H zOn>pzkVVN7mD$gyAMo-1-ELjSRh@2~#-7Zbg`w_xR)62!XgQZtWwBp;Z0S<5;9I%Z zoc~yNHzn@310M^I={6;V?O3_|lEV_iRayyRzZb@b8pTv#W?kJS6Dvijq{3vvoNha?|^M{yieq_-Z)?bS-VW+Tg=x6m>1VtuUoufKJc z;d&qC_y3b*vj@nDo+pe$A0u<-@Xk|LB&T)4$?0x5?=dpdBnPL$C*cf zi?wr*g7vQ;2?2&fKwID_m@U3;M(aIxdbt`o%@IM0q7<qayr3 ze4Pk0*fFTR3o4o8^^{qjHfklV5Y+sFt??+6%W?Ef&ZI*W@B2 z%3A&zjBcYWZ=S3+p7%^pi8VxfSRRgmG{A)gNQw#QR~`87I0SkIGKv*20T(?(X3T)z z&X_r+8jMS!0ob4&iack#=tp(x+ah^T6vX&d5WiRM8F! z6sgVIJ4z923icf`QZ#t)Cw5%SRI!CS_%6 zn&hbAOc=-*7L$1FSb)rFu&@Gf%NftxJbo-wWU8$r+8R?b6SS~ep@5HdA*fgVE>sW2 zdkfJpCY!?4?CATX+|UgZSlReEtq@IP>iX=mUsOC$IuDd4u|Q}F2|A8fK3RT1qur7l zpS}}LBIhb{IPgEzg&IN$1zZk;{Kn#>z6qZz>0b@PKPwnUf%QJf zXcnq!6EAp^9y3PTCI+R@#@Df3DbizDq|2E{aDl}YplZl+ZNO2b$eMZ;fESwOgO8TN z3EQG&Xc$8-Dl6*m1n{+m-r%x)75#a4cBo;MTtUHI${=kU-d%>w8P|?2(aIH2p*4_} zJ+7_*-synRxVNl-V&6z#9NP%UC_s*7C6Nn+C0kw8c8fP|FGDI!+><4hi7|j~1X}E# zp0t;sc_n*P@v3qGEw6GImu?7S2@e{M?+7i=h$UkmSge@pG0{JjT=?e&@Mwf)WEbn< z0eVw#uRz+gWJf9>KwT)K<~4^&@*EEhW(vYYYIfS3bqP4Ghtjbl9XvuKaVrIproi0> z?L11N-+4TRba}D6PO0! zfGRYcVfXx|i@^z~VhF@%*WC3CPOCx_Y3w!Dr3SsUJ2Ir zV?_Ogs(A+2rGHfX+r)ksN;Xr~@Gy;B2WD?xtj6Uh3MoWmeRYLEhhlwFXp`~#rcKy+CIZs!stZ)^Tw zJhuj^(rlhJkgYXOXo(kEvWP{YsNbT9|E+P^EmfQ>2<7Nc1&0jY>fYLNo{ z@#Z=Kv%os==ktj_&#`0hPg}L2973frHG~WL z%vfG^i4O>8oo=!-3|JiiVQ-Ii_c2bDU!?KT*8+CuNH|*#wrNBPxZpKXWQJ$^^=sua z;Ij~fJ-j8N6gs?KP#?p3i120*Rj&dy6QOwR4krv0j)RO~71%(WLKEwubD3+GMI!V` zQFTjwe~Hr#k3C!g-itxlbxDzAVqyvw8zI8TFrReq0gx0i~|5Y7|!*%;DSsVUICYlln@li%8(-Zv@4DMdE({ zO=ufpv~{!F&pTC84uue|&3PE}IS_VhhUyW|(R6HHjSy>tA<-z~c=$locZqtvF;Oex zwnn7QTn!JUx8CI5z8i#H%QRC8l^riK6whuFFkR6EVLZ*LEv%`(EwrrypV~nPTM#z2 zSW60h(IjY#J)aZtG1FZXw}Q(i5cYi0nM>V*W{XH; zr+0$VtbGRq%Xgx-sCR-z>nc%aFBGc9@tb!@kzSNOVv}7;ZC;B+2F}{Hk9Irwz@Qa` zy%Bd^j`{E5T5fwUm@bj;AzI{WqESgDus@L2Asp09gj^GeCQ+dJ9X7=53&#n;{8kvdRx1+28g*-64oJubBMxBlc- zP#-uYREuHXR)I@6vDwEH8yD-=Avq?qxn#EfKHwb)qQz>NSBV5VjzK+fuu7?hg|K44 z0)6HJO}4O2Fv3l3kmp7U9ii++5qW&2P0%=Zh)wF6&?bqy+K@c0yF@$KTvDm+-Zc@4 z0e!kXspG>);Hd$^-Zs|#McpQ)i6{Ob=?fb(F24)Pxp6dnw!y=u?h(Q@-jW$#Sge(ZV)uv@rg6AHHh-0r#LB)4> zLRF)lP}`Nx{)Hth&S+0OgdopW>{V>?a|-2m_P6HGm!8dDv5-P1@{u}2ZjWr?$T<*k zCJ6gxFus^VBMblIvL49LQJDoU(?Hl`x>ZKqiui&iZsx;q%&Mqb^@E`2#(w~HXEjx? z{UF%)1Q2!oYy293cxvr`Z2U3Y%!4ac^MFo%Io( zP{_S1I>t|I3NW_>VVBb6J;fhw0(=zUX{>k>>ryM_nhzhSx|OIs+o^iQr~c|om*jW& zLu5Y?_M)itfkM}P5{#C)-Q;vp_0>xnKGpzZO5(Bq1Tq;aEenuphs))G2;17s~zPbz0aLps;PM&?b(Lj7IXf z7hdWyRdIhz!?uCGBZK!SQWF&_Jg|>%ck>kj1gpQ|LB?oDoQ0j&Y*hohJW!8rd19~BHv delta 40093 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 { private static final long serialVersionUID = 1L; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java index 7d580ba8..282ad685 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/CurvedTrace.java @@ -8,12 +8,13 @@ import org.diylc.common.ObjectCache; import org.diylc.components.AbstractCurvedComponent; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; +import org.diylc.core.annotations.BomPolicy; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; -@ComponentDescriptor(name = "Curved Trace", author = "Branislav Stojkovic", category = "Connectivity", instanceNamePrefix = "Trace", description = "Curved copper trace with two control points", zOrder = IDIYComponent.TRACE) +@ComponentDescriptor(name = "Curved Trace", author = "Branislav Stojkovic", category = "Connectivity", instanceNamePrefix = "Trace", description = "Curved copper trace with two control points", zOrder = IDIYComponent.TRACE, bomPolicy = BomPolicy.NEVER_SHOW) public class CurvedTrace extends AbstractCurvedComponent { private static final long serialVersionUID = 1L; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Eyelet.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Eyelet.java index 71103a93..4ef45eca 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Eyelet.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Eyelet.java @@ -10,13 +10,14 @@ import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.VisibilityPolicy; +import org.diylc.core.annotations.BomPolicy; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; import org.diylc.utils.Constants; -@ComponentDescriptor(name = "Eyelet", category = "Connectivity", author = "Branislav Stojkovic", description = "Eyelet or turret terminal", instanceNamePrefix = "Eyelet", stretchable = false, zOrder = IDIYComponent.TRACE + 0.1) +@ComponentDescriptor(name = "Eyelet", category = "Connectivity", author = "Branislav Stojkovic", description = "Eyelet or turret terminal", instanceNamePrefix = "Eyelet", stretchable = false, zOrder = IDIYComponent.TRACE + 0.1, bomPolicy = BomPolicy.SHOW_ONLY_TYPE_NAME) public class Eyelet extends AbstractComponent { private static final long serialVersionUID = 1L; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/HookupWire.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/HookupWire.java index aa9832e1..1bd235af 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/HookupWire.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/HookupWire.java @@ -8,11 +8,12 @@ import org.diylc.common.ObjectCache; import org.diylc.components.AbstractCurvedComponent; import org.diylc.core.ComponentState; import org.diylc.core.IDIYComponent; +import org.diylc.core.annotations.BomPolicy; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.utils.Constants; -@ComponentDescriptor(name = "Hookup Wire", author = "Branislav Stojkovic", category = "Connectivity", instanceNamePrefix = "W", description = "Flexible wire with two control points", zOrder = IDIYComponent.COMPONENT) +@ComponentDescriptor(name = "Hookup Wire", author = "Branislav Stojkovic", category = "Connectivity", instanceNamePrefix = "W", description = "Flexible wire with two control points", zOrder = IDIYComponent.COMPONENT, bomPolicy = BomPolicy.NEVER_SHOW) public class HookupWire extends AbstractCurvedComponent { private static final long serialVersionUID = 1L; @@ -28,17 +29,21 @@ public class HookupWire extends AbstractCurvedComponent { } @Override - protected void drawCurve(CubicCurve2D curve, Graphics2D g2d, ComponentState componentState) { - int thickness = (int) (Math.pow(Math.E, -1.12436 - 0.11594 * gauge.getValue()) + protected void drawCurve(CubicCurve2D curve, Graphics2D g2d, + ComponentState componentState) { + int thickness = (int) (Math.pow(Math.E, -1.12436 - 0.11594 + * gauge.getValue()) * Constants.PIXELS_PER_INCH * (1 + 2 * INSULATION_THICKNESS_PCT)); Color curveColor = componentState == ComponentState.SELECTED - || componentState == ComponentState.DRAGGING ? SELECTION_COLOR : color.darker(); + || componentState == ComponentState.DRAGGING ? SELECTION_COLOR + : color.darker(); g2d.setColor(curveColor); g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(thickness)); g2d.draw(curve); if (componentState == ComponentState.NORMAL) { g2d.setColor(color); - g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(thickness - 2)); + g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke( + thickness - 2)); g2d.draw(curve); } } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Jumper.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Jumper.java index b39fa2cb..7350179e 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Jumper.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Jumper.java @@ -9,11 +9,12 @@ import org.diylc.components.AbstractLeadedComponent; import org.diylc.core.ComponentState; import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; +import org.diylc.core.annotations.BomPolicy; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Size; -@ComponentDescriptor(name = "Jumper", author = "Branislav Stojkovic", category = "Connectivity", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "J", description = "", zOrder = IDIYComponent.COMPONENT) +@ComponentDescriptor(name = "Jumper", author = "Branislav Stojkovic", category = "Connectivity", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "J", description = "", zOrder = IDIYComponent.COMPONENT, bomPolicy = BomPolicy.NEVER_SHOW) public class Jumper extends AbstractLeadedComponent { private static final long serialVersionUID = 1L; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Line.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Line.java index ffea9126..001efcd4 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Line.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/Line.java @@ -11,11 +11,12 @@ import org.diylc.core.CreationMethod; import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; +import org.diylc.core.annotations.BomPolicy; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Size; -@ComponentDescriptor(name = "Line", author = "Branislav Stojkovic", category = "Connectivity", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "LN", description = "", zOrder = IDIYComponent.COMPONENT) +@ComponentDescriptor(name = "Line", author = "Branislav Stojkovic", category = "Connectivity", creationMethod = CreationMethod.POINT_BY_POINT, instanceNamePrefix = "LN", description = "", zOrder = IDIYComponent.COMPONENT, bomPolicy = BomPolicy.NEVER_SHOW) public class Line extends AbstractLeadedComponent { private static final long serialVersionUID = 1L; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/SolderPad.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/SolderPad.java index 284504f7..a4cbd0f4 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/SolderPad.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/SolderPad.java @@ -10,13 +10,14 @@ import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.VisibilityPolicy; +import org.diylc.core.annotations.BomPolicy; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; import org.diylc.utils.Constants; -@ComponentDescriptor(name = "Solder Pad", category = "Connectivity", author = "Branislav Stojkovic", description = "test", instanceNamePrefix = "Pad", stretchable = false, zOrder = IDIYComponent.TRACE + 0.1) +@ComponentDescriptor(name = "Solder Pad", category = "Connectivity", author = "Branislav Stojkovic", description = "test", instanceNamePrefix = "Pad", stretchable = false, zOrder = IDIYComponent.TRACE + 0.1, bomPolicy = BomPolicy.NEVER_SHOW) public class SolderPad extends AbstractComponent { private static final long serialVersionUID = 1L; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/TraceCut.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/TraceCut.java index 69b17433..16ab1694 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/TraceCut.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/connectivity/TraceCut.java @@ -11,12 +11,13 @@ import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.VisibilityPolicy; +import org.diylc.core.annotations.BomPolicy; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; -@ComponentDescriptor(name = "Trace Cut", category = "Connectivity", author = "Branislav Stojkovic", description = "Designates the place where a trace on the vero board needs to be cut", instanceNamePrefix = "Cut", stretchable = false, zOrder = IDIYComponent.BOARD + 1) +@ComponentDescriptor(name = "Trace Cut", category = "Connectivity", author = "Branislav Stojkovic", description = "Designates the place where a trace on the vero board needs to be cut", instanceNamePrefix = "Cut", stretchable = false, zOrder = IDIYComponent.BOARD + 1, bomPolicy = BomPolicy.NEVER_SHOW) public class TraceCut extends AbstractComponent { private static final long serialVersionUID = 1L; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/BOM.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/BOM.java index 854744a8..d84f0153 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/BOM.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/BOM.java @@ -15,6 +15,7 @@ import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.VisibilityPolicy; +import org.diylc.core.annotations.BomPolicy; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Size; @@ -22,7 +23,7 @@ import org.diylc.core.measures.SizeUnit; import org.diylc.utils.BomEntry; import org.diylc.utils.BomMaker; -@ComponentDescriptor(name = "Bill of Materials", author = "Branislav Stojkovic", category = "Misc", description = "", instanceNamePrefix = "BOM", zOrder = IDIYComponent.TEXT, stretchable = false) +@ComponentDescriptor(name = "Bill of Materials", author = "Branislav Stojkovic", category = "Misc", description = "", instanceNamePrefix = "BOM", zOrder = IDIYComponent.TEXT, stretchable = false, bomPolicy = BomPolicy.NEVER_SHOW) public class BOM extends AbstractComponent { public static Size DEFAULT_SIZE = new Size(10d, SizeUnit.cm); @@ -49,14 +50,20 @@ public class BOM extends AbstractComponent { } g2d.setFont(LABEL_FONT); g2d.setColor(componentState == ComponentState.DRAGGING - || componentState == ComponentState.SELECTED ? SELECTION_COLOR : COLOR); + || componentState == ComponentState.SELECTED ? SELECTION_COLOR : COLOR); // Determine maximum name length and maximum value length to calculate - // number of columns. + // number of columns. FontMetrics fontMetrics = g2d.getFontMetrics(); int maxNameWidth = 0; int maxValueWidth = 0; int maxHeight = 0; for (BomEntry entry : bom) { + String valueStr; + if (entry.getValue() == null || entry.getValue().trim().isEmpty()) { + valueStr = "qty " + entry.getQuantity().toString(); + } else { + valueStr = entry.getValue().toString(); + } Rectangle2D stringBounds = fontMetrics.getStringBounds(entry.getName(), g2d); if (stringBounds.getWidth() > maxNameWidth) { maxNameWidth = (int) stringBounds.getWidth(); @@ -64,7 +71,7 @@ public class BOM extends AbstractComponent { if (stringBounds.getHeight() > maxHeight) { maxHeight = (int) stringBounds.getHeight(); } - stringBounds = fontMetrics.getStringBounds(entry.getValue().toString(), g2d); + stringBounds = fontMetrics.getStringBounds(valueStr, g2d); if (stringBounds.getWidth() > maxValueWidth) { maxValueWidth = (int) stringBounds.getWidth(); } @@ -75,6 +82,8 @@ public class BOM extends AbstractComponent { // Calculate maximum entry size. int maxEntrySize = maxNameWidth + maxValueWidth + 2 * (int) SPACING.convertToPixels(); int columnCount = (int) size.convertToPixels() / maxEntrySize; + if (columnCount == 0) + columnCount = 1; int columnWidth = (int) size.convertToPixels() / columnCount; int entriesPerColumn = (int) Math.ceil(1.d * bom.size() / columnCount); if (entriesPerColumn == 0) { @@ -82,13 +91,20 @@ public class BOM extends AbstractComponent { return; } for (int i = 0; i < bom.size(); i++) { + String valueStr; + BomEntry entry = bom.get(i); + if (entry.getValue() == null || entry.getValue().trim().isEmpty()) { + valueStr = "qty " + entry.getQuantity().toString(); + } else { + valueStr = entry.getValue().toString(); + } int columnIndex = i / entriesPerColumn; int rowIndex = i % entriesPerColumn; int x = point.x + columnIndex * columnWidth; int y = point.y + rowIndex * maxHeight; - g2d.drawString(bom.get(i).getName(), x, y); + g2d.drawString(entry.getName(), x, y); x += maxNameWidth + SPACING.convertToPixels(); - g2d.drawString(bom.get(i).getValue().toString(), x, y); + g2d.drawString(valueStr, x, y); } } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/GroundSymbol.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/GroundSymbol.java index 428a6c84..b889d7f3 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/GroundSymbol.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/GroundSymbol.java @@ -12,12 +12,13 @@ import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.VisibilityPolicy; +import org.diylc.core.annotations.BomPolicy; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import org.diylc.core.measures.Size; import org.diylc.core.measures.SizeUnit; -@ComponentDescriptor(name = "Ground Symbol", author = "Branislav Stojkovic", category = "Misc", instanceNamePrefix = "GND", description = "Ground schematic symbol", stretchable = false, zOrder = IDIYComponent.COMPONENT) +@ComponentDescriptor(name = "Ground Symbol", author = "Branislav Stojkovic", category = "Misc", instanceNamePrefix = "GND", description = "Ground schematic symbol", stretchable = false, zOrder = IDIYComponent.COMPONENT, bomPolicy = BomPolicy.NEVER_SHOW) public class GroundSymbol extends AbstractComponent { private static final long serialVersionUID = 1L; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Image.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Image.java index 0bdd32e6..7ea90c1d 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Image.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Image.java @@ -14,12 +14,13 @@ import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.VisibilityPolicy; +import org.diylc.core.annotations.BomPolicy; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; import com.thoughtworks.xstream.annotations.XStreamConverter; -@ComponentDescriptor(name = "Image", author = "Branislav Stojkovic", category = "Misc", description = "User defined image", instanceNamePrefix = "Img", zOrder = IDIYComponent.TEXT, stretchable = false) +@ComponentDescriptor(name = "Image", author = "Branislav Stojkovic", category = "Misc", description = "User defined image", instanceNamePrefix = "Img", zOrder = IDIYComponent.TEXT, stretchable = false, bomPolicy = BomPolicy.NEVER_SHOW) public class Image extends AbstractTransparentComponent { private static final long serialVersionUID = 1L; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Label.java b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Label.java index 7e7bb802..0406aa8c 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Label.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-library/src/org/diylc/components/misc/Label.java @@ -13,10 +13,11 @@ import org.diylc.core.IDIYComponent; import org.diylc.core.IDrawingObserver; import org.diylc.core.Project; import org.diylc.core.VisibilityPolicy; +import org.diylc.core.annotations.BomPolicy; import org.diylc.core.annotations.ComponentDescriptor; import org.diylc.core.annotations.EditableProperty; -@ComponentDescriptor(name = "Label", author = "Branislav Stojkovic", category = "Misc", description = "User defined label", instanceNamePrefix = "L", zOrder = IDIYComponent.TEXT, stretchable = false) +@ComponentDescriptor(name = "Label", author = "Branislav Stojkovic", category = "Misc", description = "User defined label", instanceNamePrefix = "L", zOrder = IDIYComponent.TEXT, stretchable = false, bomPolicy = BomPolicy.NEVER_SHOW) public class Label extends AbstractComponent { public static String DEFAULT_TEXT = "Double click to edit text";