alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

JFIF``C		

 $.' ",#(7),01444'9=82<.342C			

2!!222222222222222222222222222222222222222222222222223"	
}!1AQa"q2#BR$3br	
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz	
w!1AQaq"2B	#3Rbr
$4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz??O
KjiqSnCNs[?n_Ukϛ*ڡbTA98\688VW~&lS*t^ݻ__7G.)!ymi$ڕA1qF/PC:fΛk.ygiQ5̉n83]|&Wr3
_zO.!/.!r~!Ӵ
"L{VX`ی;r4AgVL 9ez?.p{ij_7*pK@pK@ꖗ?V]"H.nLwtwUJ}w%jsr(6M/^e=://?ng$I7Km-A7tI#5n
uME6eƛn[<gzZ
]/~Aes?n[ B֝\4۪ZH"DBJ/J_Du;Qw36`1@F3)Xƞn݄{v/ޗݗ'+֟oG&]NWvRpYpP_x_DU:k-Ʌ+*p=H z)GK˵-v__7Kr__7\^Pͥ.X< Za
'L4c92880Jln9Z,Z4'fk{__u_%Qk@|-
U4߰tyʢE+{vv㎹<KC˦sa̤R㎿Z]9(ݿ7aZNM?k@Z_nFuO6y.ݷ=*V𦶈,ƱTeesAxdJ?/;֗g?qu]8俴1#@	Rp}fU*MsF7^ɖ;i;|V_n?qz^k);[RoLwgxCO{>g1yn]KO>_B3zv;Z,t%Y듳𦵨Xykf$P3 .R8 zq6}_qQI#?i@N_nP*_'C߂#?iK@J_n|~/C߂#h@F_n|~/C߂#hK@З/>R'?1/=|
?i#07Y4tΗ/?#07Y4t͗/F?ao͗//_7\#07fK@˗/~/C߂#/_7K*_n*Z_?_#Gy*_nYR<uҊ?0G~L?/,-8?_#Gw"_nD?pd,y?c@WR'?1/;XρQ_?-8?_#Gs_??b>\=-/~/C߂#/E/,I+d,9)a>'\E-8?_#Gm
_??aK>'\PQOhb?_veWR'?1/;OX2ωR|O_"KGV?ao|O_"++	07?|_"O#6R'?1/;?z;Cg*o d\?\ׁ?/u^w5
5kur3so#[_3(OA,?5/ۼC@apfPI5+uFA58 #ֲԗU>/HRwu=R}0,' x䎵s!0¹H	umG¢wkm<!C9F dZ?m#Csƪa2($eFAF5N2T˧gQz[cM77zZ!s$!/dfr@{}xw{U˯\xUJN["R$k/ſtOk:΢o6ˇ4jr][H+/y
ơK=,tynafݞ4I
HE䃍5?4fեa{ijܳ
XmS\"
AW

*,͞}UGIscsBz13P(
PьsJ}6-PR?JA;??oO"ps˰5o~=unhl/o;\6kG{u C"N\K8hޛèح鉕)65)>d(DwG'unm{O7:z4X.G[m,t#xOV!h.o8ݏXO"Dt'X\|zӓ߁	j%m`ls#=FoSiג[_<uP$,sn$cO?NyDt'G"gGUrgήZiE|KzmW+5P2ȒL]=8W%V]9ȣd9=ODt'G"?E7[-qsVݾzSŦ.-ִ-M;7ASy#)5[vHPݛo6.TI3t*)Q#QG4'N8/ҮfnV;ا{IZS9HɚƚLR1HڙԠ-yrdܪAßJ[GoiO"弼ОL]oZx-KA;
Ns劑y=+McJ|=^%}
	6ٓϾ@?E/"O|.{j?֟:t/t6I|ٷv@Q>Cɬx+ZkOʤD,^TjrHvݑ9_|
?i?O"A'IP9zw߫N)ᱳZCjpCm<"X'6wg
xȻWoYi?O"A'ITzyn~.Ӿj%i7BSYpGN:έj/=%-!`L,7oFG4'KsIF\ѩIYٓSxy-wi`>T02Hc1OZ|gCiC~˧3#ҿExOuԵҿE/ҿExOuzWzW>_YEl`A/IQ'G~ fE-kaGA/?KEXOuE/_+2-kbEA/?KEXOu4E/,_ia?VeR֧,?kLRSʥEkLQtSEkLQtS̥?5(ȃZg"}N6VL?dA3?G}N4R֗T?eAA3"/fu-heA3".
ip΃u3ooA7&/f}-hf[gM6:oM8_A:ZٶhηΛ}KG>_YBg[gM::oM8_CeKW3oggMG_SKWmA7&[gNtSJ*m3oo4h+7<	!{o
*	K~*/[ywu\;Zxu̎+qq7/m_?b+Ӛ_F,tΛ_C6ٽs9EKOkED\Y6iżAvz}?:_\m7Yc3n8qdև
onmfikh4h5H'
plu`yi<Ig$JQޥe
+iNb5	?q
*]VmF:؉{o<??RD%$"ۛ<`l뚋i.m&n#m2҅^d李pnU9ұ4#.E,r6tZm%{%I$av9--gxJ_m?PkHј)|K:b--|FRԵ+l9K6oj~d_g}5;if`t#vxA'ڽ٤,TI[\kvT~$kxIwW3[i
z?asݜ{cް1n%ϕojnj9<s|em$QDֲ4-bQ	e\(#	hփZYK)̈́E"oP1w%\on->yo<{@ټn@S(((((((((((((((((((((((YD
?BKVaY&‚p>p5X-hnTK%}/KwͭwoPW'dz
{ 1W'CQVvif 6fvbNAq!o*PNNh>5^r[H*Fr385|mЎ-9X8kPpǞ"gQ]4xFO35=Peg+*A`:a:^KbYM$l
vvy!Q\;R@#UJ+dlC=gjV$7[#Y2U{W7ʁ#:yR#،ezIJHIt0,CwFoőZi6AaXީl"dVn@G׼giVs"m,CkKtz-,.\C1U)38+{ie'4,e	x"[
H;,zWUek~'𽆣.#G4#g
QB#c<ފ;CUBLMQoݥ-	X!P.qЖI|?C/`YD%pUQ^{.(
2|DmR80
*gcƛ1CN]xih8.TFIHrA 5o5լ/Y,2ڬg
T;<0cyh6;[JdTm63vt#sWix+U}?L}V顼hUeXU.J8=Fx9eЗ:b\_-X*G`EWl8l`øQ^{.(
2|DmR80
*gc/A-_S(muGRSf6ʜ ږB(4<X@VO\01OQxSӭ5/Ej[ǰB_"yPrX33+DQitoI9C]T\#r0H+ceȒEZFGmq8hNԴ7SܺA.ưf:rz|LF{7OʐIUBT\
y-(֗|:NXIkzyAvNGikr[ʬ\D$L+Fr384ZMSIuoPxjM>NBm!XYY61P27)9]-G&MQD"(dQTry>FvE,rE4k" :9}7OSuR[sv"ܱ 9 gZVr MoNּ&3@`|#7rWaIc]+JCo)]BQCdlUWq@1펏Eg
	,U2r2J+٤Ə6WVk.a8R9eA%C(-2@znw)=5(v+ːnQ/F:<:^7&ijIV aH,pzc&y`GUac8Tf
AccqU XH*W%Og# pk%m#L[vr(p֡0	=0TWGYʏOU\NۖLa"@cY^90[uk<:VvK£0U,3h<&]$QKDȬH*:k!gŶ-x^a H(pH6
WxWIn?_y}jFU=+KN.@ŨiY[;A+MxgOYAY"ۨxJrK#n|H+ceȒEZFGmq8hNԴ7SܺA.ưf:rz|LF{7OʐIUBT\
y-w	t*-CO]D팏2%jׂWgnVU\sgJ+-"8,T{Xe-6ck|ksɢ~#ޭ6Ѭq@m#ASb@q4Wk&f;MCJѬ+$I}#'W=;MIKvS<\Lu=pQ]{M{zv|g2*6Q;pq:ֺ}.;=jCצ4nOM-Q`ѐA#qPqh2A
Մ+(էlVm`DEq<RxM]B[_0(r1`]Ag4eF
o * b+-\,>5O+eךM^%p(	H0`dy./#O.WУZ")	U@0<) 㯞g_Amn25I!In99*+ӵ-M7.%Pi˴y6 8`c+HƱdž_ZHVhyr`5MXaր8j+ɂkX%_)bXeX`wxaY5mvȨKFlg8GZ稯BTÿO$#~ݡ'X3 Ohceuki*K]Ʋ鰈V#*QT1
H^7Ϥk7NjOdAl]%O=zÙE=\S: ’zvy?*Ӯ}Bj:nWʶ
B"/Uc+rs6KM!35+-TP*޽((A
hKsY@+5ټ7>:?J7_4hn!hܒ(e?
}U&?ϷhF
n7wI_)i1:d!ܬ
q?O>!o*FV+AA*,:RGyR#،v'c׍
R5ڷo$m+pHr~1)neU AЊmCƚ_6<}.6˜}:\0E\Ḑoӭ$$ә7Pl>`HU7:Z䗘ۈH7rG*MCQ/>p	ve>zv"Cƚ_6<}.6˜}:\0EPKYՒ;Pla((zv"Cƚ_6<}.6˜}:\0Ebiޕ
-9?85.⿲"]mV+x8v#
'qO45	po\qתb(<ij?ecٮ?n,ߘUP;?6ٿe<߲~}q?zk
,0}4xQͷhO t<45	po\qתb(zv"(j^#Եhd0SQ432(,~v{j.Cm
Mlj45	po\qתb(p	ve>zv"Cƚ_6<}.6˜}:\0EfZj]vxX+NPGz
3궺կ䕆5T2gyn[qO*mCƚ_6<}.6˜}:\0E5
Glx5\'m8ua؊ս~+hYn=8qU9P!d`:RA*A{]MCQ/>p	ve>zv"Cƚ_6<}.6˜}:\0EfZj]vxX+NPGz
5}Sd7ݱV5Tc@$d-Cƚ_6<}.6˜}:\0E5
Glx5\'m8ua؊4ozv"![]LJ3-'[O&ZmczE
#.ݙ2A^
<xP~Ǐ\%ݾYs1^P񦡨͏fKM|~cW;@%\I%V42ۏ„jkjZZX1J###bMCQ/>p	ve>zv"Cƚ_6<}.6˜}:\0ECm?Yc?u(V#9TYNTNgkh$eB#dvZ5
Glx5\'m8ua؊5j|kO۷.q8pñNֽ<>6m:pHHf=KVHܬ	1ZEI 3"n5
Glx5\'m8ua؊5j|kO۷.q8pñC+A4rBtT#ܞ!^7h5Hj-` .	#$z
xP~Ǐ\%ݾYs1^P񦡨͏fKM|~cW;@ lbGptw
0*rspGRC$WonVY"AcSCƚ_6<}.6˜}:\0E5
Glx5\'m8ua؊4ozv"+'bHW[U4 ݈„rqǠpZ
mмE@,v>`@]Cƚ_6<}.6˜}:\0E5
Glx5\'m8ua؊_R:%$G.:zv"Cƚ_6<}.6˜}:\0E1o񱺷;.(30'pzT&<2DJ*1}5
Glx5\'m8ua؊5j|kO۷.q8pñZ:ͣ3"ƨŜP$(ω^?eEbI+]8@=.j45	po\qתb(_>Z?ϧ,qCOۏ/!o+COۏ/!o*S"sTuE}Kk>+V[2
xğ.7i7Z]DǙv(Q^ gi3hַ!4]zUR̞\[j[ˆ`xMg%'c[}_p=ՇU|zeK;S,"T9Vcr22FyҺwŶm).[KHd*8Pp(##k8ᨮwK]Qǭ-YmCp(rW9hn=@}ZJ˧;u;˒-ߔ2>nOi-	n
A$Uw'$t$hjv\%SL)`z\h>?[ڴG+BYv?!KPtdtmf6c.-YZ'.tsGii%ڬ/4z#~YGAG@b|0q4p,f':]m.5K6q6nU 'v9*hM36ZNn-Oo$Aelrx;zG}-uG9e$mr0p0wwU[(4ˋP@Sǜd0 YW:6, ,b*d	XƟjrY!V{+R+*fڠd9kkH)]%?}ߗq=1}kH渷[THm1;~YӮbtm3"FܐK	W95+{m6+H%,NA@☾-+qi{oo3N̼dk|=85;ȴ9OF;F1ϥ3[Q\}^GQ2\`Hu8#01q]_	ui,d4]0n8&xRS՚x5R)&TAй€8U[ʗ0\@9UB;A9U;v8KpۺCF^M%M4$1wwbYIM2>鍩k0x_0`qӌ~KO,C-+›	ڣX9<
kk3D
ZX[)"J@&=Y,2WYtIB\^#"mó*IֳaKy9c`29ЊkI.d//!?{>b$A6{oMgqQm&
Ng_.|;iWo	%N0H?ċDe\ 2w+FPz&KiIdbij19$Ԛ!EhyR%f@OSN'ڮk=މ~m.TIF%=U8Qd8TY28%P	k6nNҖEUoGʽ@rp9+K[,oR-+VӀ3C~]j5-2"ҵo8ao4;['ܞ9+K[,oR-+VӀ3C~]j~oiZ'GSTUd2C?)G<sqisi}X|ıWz3^
t>%\#O8	H쀍s+((((((((((((((((+~~_J։mDO}?Nf[zz~yğ
E1^zz~yğ
E1P2ЌTrE˨ȬѩXПQxޡxz5Ԯ~ǧ*KfF !`ۈ=Fc1潇ݽX\^5KE0qw=kHaã;JĖ:"𽶅liws䖳ڮ'k1*?'i^y+g쨶,PI%c
BT푮&m2F('Ze[%5RQ8`9c]->J	+
tO̞I95O6vzj[ܬBi,Y\@=	ぜVOյ;+,fB#Q`z1Eikz+Իn~:F"W0(4kz+Իn~:F"W0(4Nխ)egrC(a㱯HG8oͶN`?Nss-uxŶ添ԙ|j3Wi=	-uOesy~5møf4f
є87;[m[`Vhw@E`jV+Ϋ|/g{%ƈL~O.=
@lmaTQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE%}oOӶ>_>Z?ϧ,qCOۏ/!o+COۏ/!o*Y=uwpM$*4lxPNN08{k|QE[]V[
BhTqѰ!
:3ē^V‚TY't,G5^"<;k}:ܪfe
Av䓞I>
Ŷ5	/n.5M>iN f1yln3H8\oQGknVӖy<.٫#c1Ͱ$zTKpc[`F
#wsæxMQ<2bDmm	s qT#V[Mo]KfB7v\Ɍ!id0T exGXNYMG}%եQ8VBK._f>PMhiׄfK;V]ڨl,7VB]pCps]o#$-]*?~yjrO6Dž;5r=$|pF7^uEz(Ẅ́ncߓBɐ`~2A8񗊎5ΝNKKq"\	b1|@䨠,uαmxv:!vU9lx4c[o
qʱY#i	#1\i7ic}?.ϿݖcziZ07ٚnOVmН/qxw\^~o! nq]=t7"}:ΈX["[vmފ<W[	&S8h"+ktFT߁w3袀
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(;߂VOo$vG+Z'W?;cn4!{q5z{q5@^Pҭm )"k-cmlp9s[N<U&euymt|V1̨AVVCn3s=uwpM$*4lxPNN08{kʡ-.fMRX]q"Vۃj&yZi֦-963$09xVnl|$|%}oOӶ>YB_'CQW_'CQTD_]Siq
(AEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP{_J։mDO}?N~H/%kD"Jߧ>l|-Ƅ==?On<OuP==?OnP~24ki:Ǜa1=ܓ#
W<	z,; e+&̇PKh&
el%<MuieqvEy,R[ܪ0&L<)
h}2O
푁Ӱ$zTKpc[`F
#wsqW[xMQ<2bDmm	s qY ttU[bȏS8pAbQWM>=W\ӥ[*F1#<]R;}bK
o}-$2@(c\RspWgaH;c֖,dݸF9f_oFcmXn|7g>-|{ֺםqD`x7'i	Ƅ̷J P:dOS4QVth5;KY)HwؔHg=GJot+Xmd{tH,M#`,(@Myw:^ŦƉ0#{}_ii%ڬ/4z#~YGAG@b(އ'k
l[ݪm;F(e yos[iWw	oooHFDžzN&\G[!&93	9&?ēkFqZK[{8DpƬP	#'+}S_P%1mxsܝwö*&oymep\y:UX;U;:oxlٍΞ4epBzP'Oᾴd[[|ln8֬oc^K+Q<:(2sx'9ɮ]o[R[6D\F!ǝ)$e$
1U[(4ˋP@Sǜd0 YW:6, ,b*d	XƟjrY!V{+R+*fڠd9kkH)]%?}ߗq=1}kH渷[THm1;~YӮbtm3"FܐK	W95+{m6+H%,NA@☾-+qi{oo3N̼dk|=85;ȴ9OF;F1ϥ3[Q\}^GQ2\`Hu8#01q]_	ui,d4]0n8&xRS՚x5R)&TAй€8U[ʗ0\@9^2>ku4nf\@̌l P	+N8| 7{byOշwp;\[ymqp7H>a#kIQ5%KXBYv@
ꣂ~lgZCmʉЕS6
~8j)GVgZKmFa@€$tpۏ~8| 7{by<N''
CXz`ko-ϱDzư,'vUPyz
?NQ}AљhcTfbv
Kwd|@k:5ZSGI䱈E$hީ+.T80zݥWZjG t$Soj{cuįaDBI$.rsg 5RkFfpO=hRUD_T‚N0ѭRUD_T‚N0\6~,\XNO3C1\~b;SIi{<dwk!Hʶhz7~/ׯmj}AΣl"PN0>fG T-fVKxCH@zd@((((((((((((((((((((((((((((((((~Z?ϧ/hDI_[?폖eЇ?ǗI_?ǗI_+|sE‚7"V0dpJ>_'`OyD_j([ZeLx*W9#Ot)cQ5YYR
#?Ng–ܶmqq]CݕDI0W2|PA\D{?YYRIu
FI3dͱ؄|Vbqی<M/\𥏜^ӳ5P),Fr@CA p3wm>Smv_gb֤6>q;;@&&z<:rYh†!RD`+#y_^f|].tɚ[IVvM̾c-׮Qg4(EI1e,pq (A%mAa
bp!#\ҴC$RmᬭI#0-aA'8v8jtT5O[K.dzjkCHڽ	v6&/Kdp	KV:^Zh)a
rob=xDŽFF&wH#'#(|9g-7K|+pTySsT~QǥrZݖcziZ07ٚnOWC薍xnɯl/4w_<aP͙9ld3X%u,|eMlbe,Uzw[,oR-+VӀ3C~]j5-2"ҵo8ao4;['ܞ9m/CVUd<\S0rA+l\{L?נi묘mU)gLWN8z+%vmiݬ W*\0d:s\QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEwhDI_[?폗䏂VOo$v2hC$j/[$j/[qu/g\+|8`FGQ^/נrj	DPLfЂA_A^D抸
dݥ%~ʶ$II-@P)M^y2XgoDdDyEcT#Vz0A;۴6yHF
ptH'~_S) >$6BЬ<5Eij7>obkf,j2I8T!9P!d`:RA*A{L75͕ɺ'-(5P@@UAقFϺsҨjZʆ+e+1DG''($8ҨQ@xZ Նq%
R)o9H <|mӥKv± 9y5E_ԵY-㻕VVb"0NNPIqǥP(((((((((((((((((((((((((((((((((((~Z?ϧ/hDI_[?폖eЇ?ǗI_?ǗI_)y9:\IJxyZbBr@'=湼?{oIL86wӮsڮ"fUQT ((tKk}Id1yE)BN8d*+KV.tOGz%j	2aI@EfOIH#U=N8jhz%IQ$Rۣ3]?@(>鍩k0x_0`qӌEPE>d8aFK3Ic{=l	) e8##Ƞh\'F?#Ìr;fEPEPEPE3>=żbnRG qUV\fKe$’9ۜ͢
,Gʑ+0Gzp=>sXKivHG4g7)"(QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE%}m?v+7t/
\CMhx88eR28FGGM$ƛT yğ
E1]-kq}n4ekpzApk!o*FlxUd5	Xe;[(z^=|Go4Y_[[.>h2-A)$E{ּSiN}B;[XUy.@RjVWƖ+եؼԸ;$%ybI1lmg9]thoiy6s`ɀ~\9w`B3ْVY\
|c
^ǧxKpK7/	;W<f5&yƅkKwoq#?c{a/E}C??ȣG:/YxJ<#q{>q_jŖB1v''~=K)>.%\:C)&RNӐ{}=??ȣG:,i,>^.Z_,m$K0p%pp3exYTƉj:O#y$*Πw`p澼Q??ȣ44NFdT#8vFH7۞+k{%etpW*u,)9G"t>=u{]sk7Tώ;2+J{sjMbMtRȱ\ʻ^᝷;WNN~s|<gsKO,C-+›	ڣX9<
Zi[hmgKe yfCF{_\(Q΂wlWg[ڎf!o'qm;$X|ÓZZo]{S'ڗ+\z{G"t>Lo۬~$4:q您].9 5Ozj#JRMcV)!BF0__(Q΂]<kj}~+˙r40,Þ=:Ly-&dgUcp3x<gy(Ac+ӿ+Ѯ.Vd|ߙ%M2\x5-n-^--ݥ$)ecw`g^s|<gs_/cӼWyH`Y%+`3]keBԥ̑wQ??ȣ_XP/Gb!a;
?AVF.!)et@'i=澞Q??ȣ4ij]pv-r/6E%|s`8ⲼUxcDmcCP'eeugPHm;r8s_^y(Q΂Úufi
Km2L*YXv-g3Iquk,EfuC)_ g?9Es|9X^: jrIr/22r.pɣĚťͦӴbv;nw+P:gy(Ac]nLH[Nfv'}ԋJտ1ilkrxھQ??ȣ𽮩{MZ#,.&Xb޴߇tKVOx ۹a`o9Es|9XNG"t>Q??ȣ读<gy(Ac:+9Es|9XNYzl'18a98Xӧ>l|O}?N_0X.ӧ>l|O}?NN`]O}?NN~c+N~?;c9tWޝ?;c:vs诽:vt?폔_zt?폔ϧ)>ϧ)OӶ>S,|E}OӶ>S>l|0X.ӧ>l|O}?NN`]O}?NN~c+N~?;c9tWޝ?;c:vs诽:vt?폔_zt?폔ϧ)>ϧ)OӶ>S,|E}OӶ>S>l|0X.񓎀?aj>)kKүXgj̀#:m	xǮ1ԀW0X_[R(c;+Z:ZY^@˸Sz~A"Y]K|l`7^*%+#3Pm>Kȥ6
... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.