Patch to gPXE-1.0.1 UNDI code for Interrupt Vs Polling

<[email protected]> Thu, 18 Nov 2010 12:03:31 -0800
Newsgroups gmane.network.etherboot.gpxe,gmane.network.etherboot.devel
Message-ID <[email protected]>
This is a multi-part MIME message.

--=_reb-r3ECBAA1A-t4CE58698
Content-Type: multipart/related;
	boundary="=_reb-r7C86512D-t4CE58698";
	type="multipart/alternative"

This is a multi-part MIME message.

--=_reb-r7C86512D-t4CE58698
Content-Type: multipart/alternative;
	boundary="=_reb-r69B9C45D-t4CE58698"

This is a multi-part MIME message.

--=_reb-r69B9C45D-t4CE58698
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Hi,

Problem Description:
We have noticed that gPXE UNDI code is always expecting interrupt(s) to be =
generated by the underlying NIC HW to process the receive path in undinet_p=
oll() routine. This is causing problem on some of the PCI NIC controllers w=
here though the NIC device supports IRQ and able to generate interrupts,  d=
uring PXE UNDI code some devices do not enable interrupts on their device a=
nd run in polling mode. Those devices expect upper layer UNDI drivers to po=
ll for the receive packets instead of waiting for interrupt from the device=
. But in undinet_poll() routine the code checks for ISR triggered or not if=
 not it just returns. [(please check "if (undinet_isr_triggered)" statement=
 ) in undinet_poll()]

Solution Description:
I have attached a patch here to take care of this so that gPXE UNDI code wi=
ll work on both types of devices (interrupt & polling supported devices). T=
he patch is to check whether the device supports IRQ or not in "ServiceFlag=
s" returned by  the API call PXENV_UNDI_GET_IFACE_INFO in undinet_probe() r=
outine. If the underlying device supports IRQ  then enable the newly introd=
uced flag "irq_supported" in undi_nic structure.
Later in  undinet_open() & undinet_close() routines check this flag (irq_su=
pported) to decide to hook the interrupts or to unhook the interrupts. Also=
 in undinet_poll() routine check whether interrupt got generated or not, on=
ly if the device supports interrupts otherwise get the packet from underlyi=
ng UNDI NIC drivers by calling PXENV_UNDI_ISR using FuncFlag PXEENV_UNDI_IS=
R_GET_NEXT.

I am attaching here the patch for review and acceptance.

Muralidhar Appalla
Engineer Principal
2560 N.First Street
Sanjose,CA
Emulex Corporation
(408)678-3472 (work)

[cid:[email protected]]<http://www.emulex.com/>
[cid:[email protected]]<http://www.twitter.com/emulex>[cid:ima=
[email protected]]<http://www.friendfeed.com/emulex>[cid:image004=
[email protected]]<http://www.google.com/reader/shared/emulexinc>[cid:=
[email protected]]<http://www.facebook.com/pages/Emulex-Corpor=
ation/116933412473>[cid:[email protected]]<http://www.slidesha=
re.net/emulex>[cid:[email protected]]<http://www.emulex.com/rs=
s.xml>[cid:[email protected]]<http://www.youtube.com/EmulexVid=
eo>[cid:[email protected]]<http://www.emulex.com/resources/blo=
gs.html>


--=_reb-r69B9C45D-t4CE58698
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns=3D"http://www.w3.org/TR/REC-html40" xmlns:st=3D"&#1;" xmlns:Z=
=3D"urn:schemas-microsoft-com:" xmlns:spsl=3D"http://microsoft.com/webservi=
ces/SharePointPortalServer/PublishedLinksService" xmlns:pptsl=3D"http://sch=
emas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:ex12m=3D"http://sch=
emas.microsoft.com/exchange/services/2006/messages" xmlns:ex12t=3D"http://s=
chemas.microsoft.com/exchange/services/2006/types" xmlns:spwp=3D"http://mic=
rosoft.com/sharepoint/webpartpages" xmlns:mrels=3D"http://schemas.openxmlfo=
rmats.org/package/2006/relationships" xmlns:m=3D"http://schemas.microsoft.c=
om/office/2004/12/omml" xmlns:mver=3D"http://schemas.openxmlformats.org/mar=
kup-compatibility/2006" xmlns:mdssi=3D"http://schemas.openxmlformats.org/pa=
ckage/2006/digital-signature" xmlns:dssi=3D"http://schemas.microsoft.com/of=
fice/2006/digsig" xmlns:dsss=3D"http://schemas.microsoft.com/office/2006/di=
gsig-setup" xmlns:wf=3D"http://schemas.microsoft.com/sharepoint/soap/workfl=
ow/" xmlns:udcp2p=3D"http://schemas.microsoft.com/data/udc/parttopart" xmln=
s:udcxf=3D"http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcs=3D"htt=
p://schemas.microsoft.com/data/udc/soap" xmlns:xsi=3D"http://www.w3.org/200=
1/XMLSchema-instance" xmlns:sps=3D"http://schemas.microsoft.com/sharepoint/=
soap/" xmlns:sp=3D"http://schemas.microsoft.com/sharepoint/" xmlns:ec=3D"ht=
tp://www.w3.org/2001/04/xmlenc#" xmlns:sub=3D"http://schemas.microsoft.com/=
sharepoint/soap/2002/1/alerts/" xmlns:xsd=3D"http://www.w3.org/2001/XMLSche=
ma" xmlns:udc=3D"http://schemas.microsoft.com/data/udc" xmlns:dsp=3D"http:/=
/schemas.microsoft.com/sharepoint/dsp" xmlns:ds=3D"http://www.w3.org/2000/0=
9/xmldsig#" xmlns:dir=3D"http://schemas.microsoft.com/sharepoint/soap/direc=
tory/" xmlns:ois=3D"http://schemas.microsoft.com/sharepoint/soap/ois/" xmln=
s:ppda=3D"http://www.passport.com/NameSpace.xsd" xmlns:x2=3D"http://schemas=
.microsoft.com/office/excel/2003/xml" xmlns:mt=3D"http://schemas.microsoft.=
com/sharepoint/soap/meetings/" xmlns:Repl=3D"http://schemas.microsoft.com/r=
epl/" xmlns:D=3D"DAV:" xmlns:rtc=3D"http://microsoft.com/officenet/conferen=
cing" xmlns:q=3D"http://schemas.xmlsoap.org/soap/envelope/" xmlns:html=3D"h=
ttp://www.w3.org/TR/REC-html40" xmlns:oa=3D"urn:schemas-microsoft-com:offic=
e:activation" xmlns:odc=3D"urn:schemas-microsoft-com:office:odc" xmlns:c=3D=
"urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:ss=3D"urn:sc=
hemas-microsoft-com:office:spreadsheet" xmlns:b=3D"urn:schemas-microsoft-co=
m:office:publisher" xmlns:z=3D"#RowsetSchema" xmlns:rs=3D"urn:schemas-micro=
soft-com:rowset" xmlns:s=3D"uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmln=
s:dt=3D"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:a=3D"urn:schemas-m=
icrosoft-com:office:access" xmlns:p=3D"urn:schemas-microsoft-com:office:pow=
erpoint" xmlns:x=3D"urn:schemas-microsoft-com:office:excel" xmlns:w=3D"urn:=
schemas-microsoft-com:office:word" xmlns:o=3D"urn:schemas-microsoft-com:off=
ice:office" xmlns:v=3D"urn:schemas-microsoft-com:vml">

<head>


<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:purple;
	text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
	{mso-style-priority:99;
	mso-style-link:"Balloon Text Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:8.0pt;
	font-family:"Tahoma","sans-serif";}
span.BalloonTextChar
	{mso-style-name:"Balloon Text Char";
	mso-style-priority:99;
	mso-style-link:"Balloon Text";
	font-family:"Tahoma","sans-serif";}
span.EmailStyle19
	{mso-style-type:personal-compose;
	font-family:"Calibri","sans-serif";
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body vlink=3D"purple" link=3D"blue" lang=3D"EN-US">

<div class=3D"WordSection1">

<p class=3D"MsoNormal">Hi,<o:p></o:p></p>

<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>

<p class=3D"MsoNormal">Problem Description:<o:p></o:p></p>

<p class=3D"MsoNormal">We have noticed that gPXE UNDI code is always expect=
ing
interrupt(s) to be generated by the underlying NIC HW to process the receive
path in undinet_poll() routine. This is causing problem on some of the PCI =
NIC
controllers where though the NIC device supports IRQ and able to generate
interrupts,&nbsp; during PXE UNDI code some devices do not enable interrupt=
s on
their device and run in polling mode. Those devices expect upper layer UNDI
drivers to poll for the receive packets instead of waiting for interrupt fr=
om
the device. But in undinet_poll() routine the code checks for ISR triggered=
 or
not if not it just returns. [(please check &#8220;if
(undinet_isr_triggered)&#8221; statement ) in undinet_poll()]<o:p></o:p></p>

<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>

<p class=3D"MsoNormal">Solution Description:<o:p></o:p></p>

<p class=3D"MsoNormal">I have attached a patch here to take care of this so=
 that
gPXE UNDI code will work on both types of devices (interrupt &amp; polling
supported devices). The patch is to check whether the device supports IRQ or
not in &#8220;ServiceFlags&#8221; returned by&nbsp; the API call
PXENV_UNDI_GET_IFACE_INFO in undinet_probe() routine. If the underlying dev=
ice
supports IRQ&nbsp; then enable the newly introduced flag
&#8220;irq_supported&#8221; in undi_nic structure.<o:p></o:p></p>

<p class=3D"MsoNormal">Later in&nbsp; undinet_open() &amp; undinet_close() =
routines
check this flag (irq_supported) to decide to hook the interrupts or to unho=
ok
the interrupts. Also in undinet_poll() routine check whether interrupt got
generated or not, only if the device supports interrupts otherwise get the
packet from underlying UNDI NIC drivers by calling PXENV_UNDI_ISR using Fun=
cFlag
PXEENV_UNDI_ISR_GET_NEXT.<o:p></o:p></p>

<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>

<p class=3D"MsoNormal">I am attaching here the patch for review and accepta=
nce.<o:p></o:p></p>

<p class=3D"MsoNormal">&nbsp;<o:p></o:p></p>

<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Arial",=
"sans-serif"">Muralidhar
Appalla<o:p></o:p></span></p>

<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Arial",=
"sans-serif"">Engineer
Principal<o:p></o:p></span></p>

<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Arial",=
"sans-serif"">2560
N.First Street<o:p></o:p></span></p>

<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Arial",=
"sans-serif"">Sanjose,CA<br>
Emulex Corporation<br>
(408)678-3472 (work)<o:p></o:p></span></p>

<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Arial",=
"sans-serif""><br>
</span><a href=3D"http://www.emulex.com/"><span style=3D"color:blue;text-de=
coration:
none"><img alt=3D"http://www.emulex.com" src=3D"cid:[email protected]=
F6F8180" id=3D"Picture_x0020_1" height=3D"39" width=3D"175" border=3D"0"></=
span></a><br>
<a href=3D"http://www.twitter.com/emulex"><span style=3D"color:blue;text-de=
coration:
none"><img alt=3D"Twitter" src=3D"cid:[email protected]" id=3D=
"Picture_x0020_2" height=3D"42" width=3D"27" border=3D"0"></span></a><a hre=
f=3D"http://www.friendfeed.com/emulex"><span style=3D"color:blue;text-decor=
ation:
none"><img alt=3D"Friend Feed" src=3D"cid:[email protected]" i=
d=3D"Picture_x0020_3" height=3D"42" width=3D"34" border=3D"0"></span></a><a=
 href=3D"http://www.google.com/reader/shared/emulexinc"><span style=3D"colo=
r:blue;
text-decoration:none"><img alt=3D"Google Reader" src=3D"cid:image004.gif@01=
CB867A.2F6F8180" id=3D"Picture_x0020_4" height=3D"42" width=3D"31" border=
=3D"0"></span></a><a href=3D"http://www.facebook.com/pages/Emulex-Corporati=
on/116933412473"><span style=3D"color:blue;text-decoration:none"><img alt=
=3D"Facebook" src=3D"cid:[email protected]" id=3D"Picture_x002=
0_5" height=3D"42" width=3D"35" border=3D"0"></span></a><a href=3D"http://w=
ww.slideshare.net/emulex"><span style=3D"color:blue;text-decoration:
none"><img alt=3D"Slideshare" src=3D"cid:[email protected]" id=
=3D"Picture_x0020_6" height=3D"42" width=3D"28" border=3D"0"></span></a><a =
href=3D"http://www.emulex.com/rss.xml"><span style=3D"color:blue;text-decor=
ation:
none"><img alt=3D"Emulex RSS" src=3D"cid:[email protected]" id=
=3D"Picture_x0020_7" height=3D"42" width=3D"33" border=3D"0"></span></a><a =
href=3D"http://www.youtube.com/EmulexVideo"><span style=3D"color:blue;text-=
decoration:
none"><img alt=3D"You Tube" src=3D"cid:[email protected]" id=
=3D"Picture_x0020_8" height=3D"42" width=3D"29" border=3D"0"></span></a><a =
href=3D"http://www.emulex.com/resources/blogs.html"><span style=3D"color:bl=
ue;
text-decoration:none"><img alt=3D"Emulex Blog" src=3D"cid:image009.gif@01CB=
867A.2F6F8180" id=3D"Picture_x0020_9" height=3D"42" width=3D"28" border=3D"=
0"></span></a><o:p></o:p></p>

<p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>

--=_reb-r69B9C45D-t4CE58698--


--=_reb-r7C86512D-t4CE58698
Content-Type: image/gif; name="image001.gif"
Content-Description: image001.gif
Content-Disposition: inline; filename="image001.gif"; size=1720;
	creation-date="Thu, 18 Nov 2010 12:03:32 GMT";
	modification-date="Thu, 18 Nov 2010 12:03:32 GMT"
Content-ID: <[email protected]>
Content-Transfer-Encoding: base64

R0lGODlhrwAnAOYAAFNTU8HBwcnIyFxbW9TV10tLS6mpqZqZmeHi44KBgGtra6alpaKhoUNE
RIaGhTw8PPPy8WZlZXFxcayuserp6H19ffr6+Tc1N8fGxomJibCvr4mHh5ycnJORkaysrLe2
t3p6erm7vb6+vpSSknRycZaWln17esC+vs3MzMTDw42Kitra2cvKyubl5YyMi7y8vN7d3Y+P
j66uro2MjJ6fnpqXl726uaCenpSUlLKxsrq6uainp7q4uWVjYtTT07SxsXZ3dpGPj8TExGFh
Ybi4uJ2bm3l3dra1tWlnZ+7t7b+8vLCwsH9+fbKwsKShoY+MjIaDg8bIyu7v8FVWWHx+gJ+h
pEdHSIiKjHBxdP39/D9AQODf36SjpLOzs6+srLS0tZ2dnbm2toyLi7q4t5SUk19fX46NjcfH
x6Kio09PT5eVlZWTk1BRUPj4+Hd0c5iXl4ODg9PR0HNwcHNvb+Tj49jY16GgoPHw7+vq6tDP
z93b2sXFxWNkZ5OVmCMfIP///ywAAAAArwAnAAAH/4B/goOEhYaHiImKi4yNjo+QkZKTlJWW
l5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6pztWaQBTAxEmdgKQEHUiHgYH
NBxvHbvSlEEXD1q+U1M9ChVNjBYpBgwcZG8lMWYZa4gTfe/w8fIIg1LwVYxV8FKE+u8hiPz1
ATgIQTwCjqLIWxgviiB7DQ+FOPgnBJYQJB5c8wVgSAQFQCrM2ILIAh4dXNBwwAGNjAsHcEwg
8kOzps2bfhwKimITX6IJNnUKsslnZs2ig3jW7OOID86nNJn+IXDzAkJCQHsScGoloxZsBQAM
AAnCgZkZdQxR0AAm5YFnMf9iiIFZoYdRqDiFKq151RCBC0EJEb3rB+lOm1IZOcV7M3HWmlaT
3qQyFYuVKQl6RIiABEmZAlMkJIgxosSbE4RgNPOwgwuDBApIMGFSwYSJJ4QZ09R70wq/QlKm
3BT6Z/Ah44eXNtWNGGtVhH9tUhbU58qEQ228IJHg4gCYBVxECILRgcsXDR4czOEByaYVhvd+
/9l71BCVvILrH9efPOrypfC9Q49zNk2BAGA1YRGJE9yhsUQXGoiwxQEefIAeEDtIghwj9Ck3
yGOBDbJhfjQZNl9zjSxGkyQg4jSFfITEsIEKYqgQQwdrrBHHHydEAAcXH7yQwhEGfPBFDiTY
8If/BTBYuIMTdtxwgByEXcDHlVjycZ0hHdakU3T4ichfIRvSl9giKhaW5ZV9wGhIizW9iAgI
CkggAQgVwOEATErqAYIYHHSBgg4Y6PCBCT78kcQLHbyUQAVGSICEFrlBNR0hXdJ0gRTBQUXc
iGKWiCmKijEnZyJVuOgmIc+UQAMYOyzQxTIMePEHHl1g8MIRAQghghEQ/CEODjHAZAQQEigQ
wQOVeloIfffFGS1NV4Q41JgkFjaqh6Uyd+YhVjyXSABE8KCDDkIGsAcHTAR7BwonnIvBHsqg
hscGGWSQABPIKuAZs/sxdgFx/fnR6VNX0PcptqFqKxm3aDLnUyLT2hTZ/yFmQAHFBgns6UAG
NwjSBgs55HCGAGewgMEHBiyQxR9FKNDDEEMMMAAAAFAasB9TROHzzwQ/vCJVLp7oZbYmIr2t
fykGBbTPqxZScVUDPpIFHmcs80IACRyAgggfeEBDB0loyHAi9AmSqsUIKaz0ziaa+d+KkbQ4
9amMZAGBD10wgMYHIrjhQx4cCBBAFwscIEYAkbgX4Dt9pS0IFjZt6XbD7zFUJlGPy5fm4wMV
0iI+1RboJgUt0NFCC3hQAEMePNhxwAEyeEBCsH9QcMMZIsjwxgYVMFFEEz+McUQTTYTRLF6J
Sf6HFOH6cenl1zI3ZqbOCpKmbnFPNsjdMK6Acv8Ke2AQwAsaHIBDCQy84UAhbdwggjJm0OnZ
AFOkYYUvy0PVvE2E+Asf5EO9PwjHetRaGnOEsj3GGAZMoiIE+AaxApWx4AwY6AIY0BEDBsCh
Bojwwg1eQIMESKBmUwBAAazQALvszFtC88MiChgCBPrhAlUzmvUYaEOkSAFBNMHbILY3hUFs
AQWG44EHwPCSDCjACCxQhBI20IEDVCACU2DDChugBRIg4gprCmOWCPIHBGDpCoswI5ZyOJ8+
iDFLWOgDG9X4xjVVbQJ1DKNUpIAFLGGBjQ+hQpYuRQA1jEAFTCCBAgYgBxWswBEseAIJtNgA
jVzgAjKZhiY3yclOevIdk6AMpShHScpSmvKUqEylKlfJyla68pWwjOUmAwEAOw==

--=_reb-r7C86512D-t4CE58698
Content-Type: image/gif; name="image002.gif"
Content-Description: image002.gif
Content-Disposition: inline; filename="image002.gif"; size=986;
	creation-date="Thu, 18 Nov 2010 12:03:32 GMT";
	modification-date="Thu, 18 Nov 2010 12:03:32 GMT"
Content-ID: <[email protected]>
Content-Transfer-Encoding: base64

R0lGODlhGwAqAOYAAMbb4rzu/v7+//r8/aXy/rPs/6zi5+7+/57l/WT1/7TZ5tvj5qPn/H3z
//v+/6Pj54Pu/HH0/6vp/tH0/7Tg557Q4fb8/fL9/9j1/57p/rft/6/q/vn8/fT9//b+/43z
/vLz9Lrf56fp/l3z/vL+//D+/8ne5fT+/6zz/MPg6Jvy/1r4//j9//7//8Dy/8ry/8Dv/vz+
//b9/43h/v3+//n9/37e/ZXk/t32/oPf/Xnd/oXi/5ro/+f5/4rh/vn+/+L3/+r6/8Xx/qHo
/nbg/7Lr/tX0/9Hg5fz+/v3+/ovk//v9/pHR5vn9/pHj/pTj/sPx/5Tn/6Xo/qTq/7Hv/5Ln
/1L5/7nX4bPW4aDS4qbT4ZjP4fn7/Jfk/q3W45Xq/HTd/YLi/4fk/6no/I7u/f35+Pz49pbt
+4zP5p3t/Z3T5ZvR45jT5pjp+5rt/b7d5Xvb+o3l/3jg/37t+6bW5qDU5rvb5cDY4Jjk/pfl
/aTr/PX8/abr/ZLu/Pf9/////yH5BAAAAAAALAAAAAAbACoAAAf/gH+Cg4SFhoeIiYplR1kV
j5CRkkdmh0dwVC6am5ybUFRgJodrPEAYp0ZGp6usQDxMh1sZEy+1ODi1uboTPGixVUIwATiC
RgEwyMkwQlWwhhVxARoFQYI9GwXZBRrcAUrOhVliRRsSPYIXyEJQARvuRWJsh1o7EiIM54c4
UiISO2rzdogYggAIoiZShojYUeeQFyI+ntwwWChGkwldnvggQucQFjk6QmIQhOMGni43fNiw
EZKIF49hcuSwMfLPBDArV8qUGUbBoStKZszYMQEdAqEzfPhAqsSnoStRbtxwUmRQjCBYewRw
IjWK00J3MiAYm4eYoSZjEfCwc+jOFAZD/zJ8+TIhRqEePBAwmPLmEIANYxi06QNhzgcCBFAo
PvMlw5gNogyZoMInDeEGERKM2JwgAgQybvRQiVxogQYCKj5gTrDCipUVnRt8UEFAw4JDIBak
CEGBgoEHwIEbGE4hRIoFIA4JGMChuYXne55Lf958gIBDA1h48ECi+4Hv4LuT2M5iAHY/Mjp0
uECiBPjvJC5c6CDDj3lDXPygVy//xPb/6slQHweH5Kdfeh04YAgNAupHoCED6HegXYdI6MeD
hUQo4Q+EtOBhCw5YeF+GFlLYQg0WprjEIUuw4CILNAhCgx8v1ujiioYs8UMNPLYgCIgOBLkj
jzX8gGMhSAQZpDePhwAZJBKHJBEDDTHEwOQhVFIJpSFJ0PBhIh+2QEMSyoXZYZhoXqfImmy2
6eabcMYp55x0ChIIADs=

--=_reb-r7C86512D-t4CE58698
Content-Type: image/gif; name="image003.gif"
Content-Description: image003.gif
Content-Disposition: inline; filename="image003.gif"; size=1095;
	creation-date="Thu, 18 Nov 2010 12:03:32 GMT";
	modification-date="Thu, 18 Nov 2010 12:03:32 GMT"
Content-ID: <[email protected]>
Content-Transfer-Encoding: base64

R0lGODlhIgAqAOYAAEVutZq56Pb5/PL2+4Ol1fj6/Xuh2jFhtKG+6c3e+NHg+Ul0vsjb9vz9
/k15wfv8/jZktJ264qvD5v7+//3+/+zx+PL1+u7y+W6V0bDI6PD0+vT3+/Dz+ezw9/X4/I2s
3fT3/FyGy3Wb1nmd1e/z+u7v8W6W1n6g05Kw3pe35ldkd7bN7oaq4T1tvYKm3WmR0WKLymGN
zYqq11OBx0JhmVF9xbzS7uvv+DdpvJSz3uzv9b/W8Iut4rHJ7JK05dDk+I2s2KrE6G+Y1oap
3ZCu3pi231OCyqrG8aO+5Pf5/cXY84ms3TVluGaOzvr7/s3g9oen2q7G7KPB7YOl2rvR8Cxf
s+vw+HGX1pGy5JWz4Ja13jhgpYGl4evv9pKw2vr7/ajD7oWn3cDW9V2Kzpy639Tj+pe142qV
02iV1WWQzjpntcPV73ef3JKz4HSWzm+Y2NDj/Imq3d3p+oyr3LXQ8GCHx63I7PD0+fn7/ajE
7q3F62SKyWWMyoCj3GeR0f///yH5BAAAAAAALAAAAAAiACoAAAf/gH+Cg4SFhoeIiYqLihoS
H5AfS0OUYS4ufQYGZBWMgxooQU+jCQqmCaWnSikjnZ4SQXI/P2UJK3o9YgwrElFUCXA+RZ5/
H08/T2U9BiYmaCZXTWkxMUsJYiLEH6VlVFd9CHlgLiIBUggGMbpCxHGoZWYmYEdYPCwIR/Zs
YzY7Z8RhlCTogcHAkQAxQoiQ4iOEESMidth4QWzKGiUjMHxAkEKECBcIsAjxMwPBjhUxiJ2w
YaMgggAwU8iU6WJBGzp2QhAbsYLKiBAjAvCAEQKDDwMOWrQg00PCDGIiMvCCgSHFlKRGWIjA
EWJJEAkInnpyIyFDBqIshOBgMoPFGxwf/6IgmFuDGB8kSCIscMDFxNoafZkQyBuBjANiDnIU
0bLXwAs1EBw4hnCCTJHFhz0tIJIlx4IFkw9IfnFgRJEcOVAsILbgAwoUAFqEqHGgiuwaVUZk
eU1ktScAUD4Q2XOg+II6EIwHn/MBCgBiNJp4kQGEwIkT1K1jByJDhpcmNIip2AKDgPnz6NHD
2KJCvAoaAOLLnz+fhor2nkqU0NGhv////+mgHzEldEHCAAgmqKCCJHRRAjE6kLDBABNaYAGF
A1iIIYUk6EBMBQOAAIIGVtxwQwUklHhiiCIO4AojJHgg4wUXaEBCBRXUeOMAMspIAjEaeCCA
ABxoAMIANBqJJKQISQzpgQbEWJBEAUloYIEHINzBwZUgcOBBAWAmYQExG+CBRwEIJuGBhmpK
eSaYAxCTxAN0CvBlEhtscOcGBTzgxJ8eENNnAw+A+QAediZxpgeK0vlAEsQ80ACheEh6KB5f
0AnmoA3gESkFFNA56aikNvBFAxQQSkwDE0wwKqivkkpBqw0QM4EgE4DaKqiz5srrH7kSI+yw
xBZr7LHIJqvssoIEAgA7

--=_reb-r7C86512D-t4CE58698
Content-Type: image/gif; name="image004.gif"
Content-Description: image004.gif
Content-Disposition: inline; filename="image004.gif"; size=984;
	creation-date="Thu, 18 Nov 2010 12:03:32 GMT";
	modification-date="Thu, 18 Nov 2010 12:03:32 GMT"
Content-ID: <[email protected]>
Content-Transfer-Encoding: base64

R0lGODlhHwAqAOYAAEZ50vn6/SZUm16M07XJ7uzx+Zat1Onu9TKsafr7/c7c9Pb5/arB6vrz
8/z5+fHy8Ju15vL0+dJdV/n5+xVcu0yxdu7x9fH1/Pz8/vz8/PT2+f/+/f78+/v////++a0L
CTNntyBOleoDA8DdyHSTwJamvs8CAR9gvrrF1uabmixpwsjP2GWKxvv14nWPu5EEBeHh46rU
vK9VVP1waseurfuYl6REMTZwyFZ7vP3+/VyHvI6Truzr54qn3MbU7tB7efv+8lJzptbS1X3B
m7AtLG2Tz/nr6GuT33qb2lGWkFJUiOPv6ern4M+MiuXT1ZKx8NXc5tvl9OlVU/T3/GJ9qPsu
LlaF5F9UKJ7LtJvFrTFkxtZHQrO1qs3X3t/Ew/3b2vv8/O3x7q+7zf79/rp4d32g4eS7vfz7
+7KftpcxMUjBcxGsWzxhnJKt5xePS9Xl3PnBwPr3+DFoLXsQG2KP5nFIbiZfxYvOouzs64fW
pvX59y5k1zZs10VvuP7+/v///yH5BAAAAAAALAAAAAAfACoAAAf/gH+Cg4SFhoeIiYqLiWB6
AYyRgn5hb0uFG36ai5p+SyMxQxUIa25cZk0/Xn+djH5DCBWjclc2HyYiuR9Okn8jCCNGfk1b
NcYzVbkmMh2SWRV3oDYzLUDNf3BSJh80kjEVanlYNls7JDokTh5+KSZED5EPSUk6OCAqJycU
FEozX38pPpCJhAJHDwMGegy4sU8fmhlGOkj4AGPRBhJFmFTbsEEDgQH7AKSQ8oOIDCGLLLCg
YwAFBAYKmm1goIJCnQ8vXsjgsciBCysAIBAgAKEMAT9/oNwQMOdFGhrXFIkBACDKBkEaICBZ
4GHFCSU0YERVhAfHnjYEGFj9A6GHhxZF/1R06fWnhBYAPhQ8ISDoiAEWIFyg7AWlDx8f654w
QAJCgGMXTOh6IGHniA8GLBwLCBGCTQkHkpD+QQECQBDHnAVQKbECXi+kDuxtFhCkBAwPV/9k
2sQJ6QoqQXag4JGbVSfekSZYsBBhwhi6iDYUKHCgugUNGaAXmjCdenXrGiaIphuhwIUECyJ8
Bw8dzPQEghYsmOKdeQ66C8wnwLAA0p8p6RWgwRmvRXDBAgkEgIEgASyg2xQXgNFLAFNM8dwk
DQoCxgUROHAhI/IhiAEGCS74xxhTRNDAigRyMkEA++33IQYVxrFiA3GMl0gCCeh4Inr9ceDA
kB4yMsZ+I47IIzWPCnJwlZA+IpLklCTu5+SJDnAQiR853OfHGGNw2aVoG3DwIV0cGcJRcdq1
6eabcMYppySBAAA7

--=_reb-r7C86512D-t4CE58698
Content-Type: image/gif; name="image005.gif"
Content-Description: image005.gif
Content-Disposition: inline; filename="image005.gif"; size=952;
	creation-date="Thu, 18 Nov 2010 12:03:32 GMT";
	modification-date="Thu, 18 Nov 2010 12:03:32 GMT"
Content-ID: <[email protected]>
Content-Transfer-Encoding: base64

R0lGODlhIwAqAOYAAPT2+X2Rt0Feml12quzv9Z6tyoKUufz8/bvF2fX2+jpamFt1pJmqyUJf
nDFRka660j5dmSZGjGh/sDdWlUlloTtYmJSkxFJupTRUlHGHtS5NkDhWllhzqTdWlTVVlfDz
9/39/u7x9vj5+0JgnPv8/fL0+P7+/+vu9O7w9vb3+u/x9vHz+DpYl/r6/Ehjn1dwqG6Es3CF
sz1amP///vDy9/Hz9+vu9e3w9j1bmPv7/e/y9/r7/DlYl3OItejs7TtZlz5bmfb4+vf4+qGw
yydJjkdjm/3+/nuPtjJSlO/x9zpYljpZmGV9rS9QkaCvxU5ro1RuoqOwyT1bmXmPuKe3znOH
r+rt8Txbl/j5/JepyP7+/rO/1v7//q++0Udjn0Rfm/v7/MPN3P7++0tmnWF3qIiZu4qdv46d
u4yevYaau93i6k5qnzdVlkxmnD1ZmFdxoT5bmnWKtDtamHqMsHKJsvn6/FVvpvf4+/f5+6Cw
yfz9/jxamTxbmTBPkTxamP///yH5BAAAAAAALAAAAAAjACoAAAf/gH+Cg4SFhoeIiYqLjGc4
DSORkpOTDVJzjIM4PHKdnp9ySx2jSz9smYINcn6sra4eHUUURXCsqH+qrroYC2FWND5vHX63
ubqsG2s+hAsexKjGxw5mfzNqUU5jPM+Z0bpNDIIBEQ5LttCrujhsERaCdETl593prh1MZWEz
XF1paG3bitVr1WfIoWbcGHlj1SSPoBkzBImBMkzgsQ0DjiCASGVKgAY/Ei5a6AdHh3aC4hBB
omCewoGu+mQRh8TVrREVWOjcqVPDzD9HmugMWUyAi6NIj7opIMgAEC8uvsi5BeFCBhhYs8Jg
skVQAQkwMgxQQtVOjxho08ZggkDQEAkx/3qMvSWAAocXePO+uGDgwYMeF15weMLiVpUOe2Qo
XizDDxABAqRckcFnA5lbNU7YOMG5M2cbBGxs1nxCxS0CBEKgWM0axY0SQoTUuIEixI0Tt2yg
qPGht+8POkQISkHjQ40QuFGlXsG8OXMawv8QZ66DwC3VIbJrz44iiCAAtbPfuKUjiYrz6M93
/x4CfZJbK37Lp4FneHHft0ro38//Q/QUNayw3y0JAGDggQamIAIJguwggggFAnBLChRWWCEY
h9xB4S1YPOihhwccUseDt+zQwokonpjDAUYIAsIBB5jYwi0k1GjjjTmAIIgeOdx4CwhABikk
CFoIYoQeQt5iwhWSTDZpgiFM3iLllFRWaeWVWGa5SCAAOw==

--=_reb-r7C86512D-t4CE58698
Content-Type: image/gif; name="image006.gif"
Content-Description: image006.gif
Content-Disposition: inline; filename="image006.gif"; size=863;
	creation-date="Thu, 18 Nov 2010 12:03:32 GMT";
	modification-date="Thu, 18 Nov 2010 12:03:32 GMT"
Content-ID: <[email protected]>
Content-Transfer-Encoding: base64

R0lGODlhHAAqAOYAAPWbXtRoMdrr9PFjGqGjpfT5/fmkdP3+//7+/uny+QJ3w+1hIYjL7C6W
06eKcvFmIv759uz0+lOmzvr8/v78+v7y7f/+/f/6+P/9/PLy8/j7/f728/H2+vb39/z9/vX0
9Pr6+f339Pzv6fv18v39/f708P33887Q0QBrupOWme7v8AJyvZyfoTia1tpHDwBltPn39vjF
o/rr2gBZrPWRQ+Pj5GlhYejz96bR6LTb8fzy5+J/WWyv1NfZ2fJyJbq7vcfk9fD2983P0IqM
j+pSDQFrtg5rtPr69/rk0f728OlVGPGHWvWzfY+YnnC+3vvw7P3w69tRHetVEOtcHt/x+eiG
W+RdIfSQTsPf8OHw9PN7POjw+Eiazfzz8FyKpvPGsPvavqPF4u/3+yeAwCB+wGC54/Ofb4yN
kAqDxu6gb7lcMfFfDPBZEvz+/AxksMRtQ/748OZtNHSm0Pa3hpZuWe6/qGKYyPv27v7z7v30
8Rec4ffUxPPezfzYxPX19f///yH5BAAAAAAALAAAAAAcACoAAAf/gH+Cg4SFhoeIiYqIJD1C
J5CRkkI9CIsIP0MEm5ydm0M/i35nNYt/NSkgihkpGaYdLB2rKSqCByQHBxZ/E4N+sbO1EEw0
ZjoFTg0SWX+/somstXMDA0QGDAoKKFzNwIlBTbUAUlYuS2UoKy9jBzAER7uHFGkOQX9IcS5R
X0BkM25h/sDwwiOeIQsxBlyJoUNGHT4H/ggIk4MKgxYKcBg0dKCPljU+aACgYYCHHgkO0Kxo
AOTPRo5HYjygNoBNADoBbGTsZUoQEh8PHkyJ80aNjSIrBPQcBGbAgwVKqjRAoe0FlqWCZDyF
uqPFCnVGbmD90wYAkXJdURSZYeflogN3vAxYCbAnBxkjcgqMJSQDjqAbSvcKHky4sOGxGOId
8EDYwgYRTyhoSLCFg6W9SURAEdFFTALKHPZiwFOhApQ8nj9HiIiVAp7XFTaIiUA7AmOsGJKU
2L1hxIgPEcSwXkrBxIbjG0LAMNGBA09TGCCEgHCh+gUNBTSAKMB9OCIM1TG4TGzLQ0QP2G8j
okBBkAUK4Q9omE9C0AT1jARhYE8Bw4EJAN5W3yXuYWCgBQh4oCBrlx3m4IMQRiihYIEAADs=

--=_reb-r7C86512D-t4CE58698
Content-Type: image/gif; name="image007.gif"
Content-Description: image007.gif
Content-Disposition: inline; filename="image007.gif"; size=1097;
	creation-date="Thu, 18 Nov 2010 12:03:32 GMT";
	modification-date="Thu, 18 Nov 2010 12:03:32 GMT"
Content-ID: <[email protected]>
Content-Transfer-Encoding: base64

R0lGODlhIQAqAOYAAPvZx+piI/bl5PaHPP/8+/rHo/3p3P/7+fzu6fJyHPend+SSeP76+OVZ
I/707++be//+/vWBJvbFs+Wchd1dLf728NtFGvjr6v729Pzw7OBgLf308f738v749eRUGfvu
6v3y7v3w6fR1Fvvs6P749v7x6P318/7z6v/69vzy8Pzx7v7x5/zv7Pvs6vV6IfV9JPV2IfNw
ItlVLeFlLOFtO9dAJfR5HfZ+IvBoHP/9/PVyIeheJNlFJt1MJd1ySvBkE9xaLfBsI/iBJOFk
K/ecWfNmCOldHP738/GoiuJVJf7y6fmve+1nJPNqFNQ3Ht9RJPRxDf328+10OvixiOJOGO1Z
CvR6J/WKSPeWUveaUf7z7PeVS/jCn/zl19tYLtxaK+5iFvaDK/m6i9xlOv759/717+V9YvR6
K/R2J/vQrvilbf707NdELNtLLPR3KvCLWuhpNfKQXuZ2UfV4F+uAVvzw6/7x6uudi+iRgPrd
0fe0j/m2g/zt5+VfLeZnOf///yH5BAAAAAAALAAAAAAhACoAAAf/gH+Cg4SFhoeIiYqLiBcT
NF8UFBqUGkMzmEM0EwKMghc+Hg0NOwFMQTE6MC4vN0JCCT6djBMeSX1wAUZgOKmrrBERYQkL
njQNHg8gXRIKA00JLsDBLy40nl87HkiEHAUDIi/BES8wMEOeFDtGbwUAJYMOSzbUMDEx6IwU
pmBVP2dqAAwqcMMFDB1BmGjwpIEJjisKsFgpImIJB0FcEiBkEmAhIw1BfkwRZEBMGChZVghS
8IPJjh0UGMZosoSQgSxQsFx0IMXIjgYxP+rQEYaIGAOCOGwpUvMPF1FJgHgaYg6GCCgRCpBE
gyPPHwd+njyRymiGNBthttyYo/WPnioP/wQ9sNDDi6cZL2wM6JIjjQ0rSA3sgHNRggUeMu7e
ELFn0JUiI//QoSIwD48aiRkNEWKDSI4/Btz8iCPXgoQ/INpgNiYkwg0iSwbgCCAFCRI5Fszc
wcOmxhhPExKEeZGgCQ6ODajQ7WHBiXMLxRgJ8BHNHsefSZ704HG5hgVZnv4IWEBjyBBKkoAA
8SKj/ZgFszwR2FAHgf37H/LrZ7GBQHgCKpQgYAgE3mffCAgiqIJ/jJhQghJKrLACgSEgwMcI
ByY4wgaeZHDCCUqUwYEWBGaAAQYgIJCCCSZ80EIGHa5xQgWC5KCFHWUIggECDPwBAQsfwMgI
CGusgcIgZZzQgaYgG2TgHwEZsKCCJw6UUUYFnx1g5Wc5gLABBH8coIIKKXiyQQVocnAEmgcI
woADJAhCwgZ0ehLFEXhyoCaDEOD5WZ8sRuFJB4SigAIBYAqCwhFt/kHAEYQuyQgZhjIoCAQH
oNDoHwyQ4SkZnhwg6mc+5iCqpaaKKqp8BBCQw6utujoIBLHG6smruL6a6KW54uoJBMAmkiiw
xIZn7LHIJqvsssw2m0ggADs=

--=_reb-r7C86512D-t4CE58698
Content-Type: image/gif; name="image008.gif"
Content-Description: image008.gif
Content-Disposition: inline; filename="image008.gif"; size=992;
	creation-date="Thu, 18 Nov 2010 12:03:32 GMT";
	modification-date="Thu, 18 Nov 2010 12:03:32 GMT"
Content-ID: <[email protected]>
Content-Transfer-Encoding: base64

R0lGODlhHQAqAOYAAO00NMXFxf75+fz09NlhYv/+/oSEhPTNzPjp6fPGxtgqKvnW1vXR0eCn
qampqe/g4cooKpubmzU1NdlUVO1ISPPa2vzx8frt7fri4skZGvz8/Pjx8f719fnl5f729v3w
8Prp6fzu7vrr6/z5+fPz8/z29v76+v/6+v77++06Ov78/P/8/N+Pkb8fI0FBQktLTN+TlL8m
Kf79/e9CPv/7+/re3v/9/eRdXmxsbOtsbXx8fPCKiVRUVPz9/mFhYexiYvGSk84wMtHR0ZGR
kexdXemHh/Pk5Pr397S0tfn5+f/7+ul7fPOrq/bt7t7e3uJrbPR4Z/KwsfS+v/JjVO5QSPKc
nBkZGdwxMXNzc+N2du/v7785PMrKyu22tvBlZfBMRd/BwvjCwtWIieSen/3q6uYtLvaVhv74
9/jr6+Y1M+M3OPO4tu5vZP7y8ufk5O5/gOFRUudXWfXY1/v+/vDCwv3y8v7x8fjIyPaTfsFP
UvBcVvWZkctVVt9yc/vv8P///yH5BAAAAAAALAAAAAAdACoAAAf/gH+Cg4SFhoeIgm5aSU4a
iZCFOj5ILpGXglwuPkNCOEJODgFImIVJLlYBLz4vDi9DOKWSEm4uAS4RPENYsoQRLyQSt7mw
vYNDwBIOEr86scZ/uX9YVjpCEhIGvSZkdQgY4BU14xgdCHWYF14A7CnuKQAzVFNQZnsMl0AU
VUBVFO4zilCY8UUPFDw7ekDqkYMIAxNhKLCj0EHijBQzprBpAunIDwBEEADY8WMHkRpMdgAA
skYPFSOQNsQB8ANBijtvDuRAuSDHgihR0lSICafMDQRqEizRueAGgyUYpEhRMDTRhgkKjl5J
kOXAk6ZPMRR5cqUqoiNYJyBQQKeIHAIV//owyEInSxQFMBP1IJBhAgMIYxgcmJDgQJcgdDo8
CcIRkpgMECJLngw5SAY+cyK5yROjc4vPoFt0jrEFzCUSDWCoZsG6NQvVMMY8uFSgxIDbuHPn
fhRJwwUEwIMLD45mxKUB5kAgAMG8ufMOFy75ARHCBAgPJkyEEGDijAgBKiyIkAGpwAcRH2Rc
EDAAhQUVdVDUYX/mAvlEBSyEqGOjevs68KEwgAwc1BGCCuXV8QF/H6DAgYPwqcCBDNl9gCB+
A9jBQQFt0OCBhDYIsAIHK2RXx32JeMCBBwVwIIAHL9pgggAuoqBiAZGccYYNf6zggYosAvmj
jjhCQoOINKwggD2OZ6CgowACnKAECpjQcMIJUV6J5ZVKJLlCkbIUIOaYY0LzRwHkyaCBDAWs
CaYxOMZ5pphm1mnnnXjmqWcgADs=

--=_reb-r7C86512D-t4CE58698
Content-Type: image/gif; name="image009.gif"
Content-Description: image009.gif
Content-Disposition: inline; filename="image009.gif"; size=1020;
	creation-date="Thu, 18 Nov 2010 12:03:32 GMT";
	modification-date="Thu, 18 Nov 2010 12:03:32 GMT"
Content-ID: <[email protected]>
Content-Transfer-Encoding: base64

R0lGODlhHAAqAOYAAGUkq5l4ydLE6HRHtqJ8zUIBm93O7MSr36J6zPXw+ff0+1kSpGsrrvf1
+5xxyXtCt49fwvDq94hWvr2i26qJ0uHU76aAzkoCnUsSofj2+4NOu9XE6INSvOrh85Zpxuba
8X9Juezl9eje8550yufd8qiDz7qc2UYBnHE1snU6s5Fhw14Yp7ia2FISo08DnlYOo5hsx3JF
trOT1vHs+P38/uzm9f7+//Lu+Pr4/P79/vz7/fv6/T8Bmvbz+u7o9v/+/6B3y6F4y/Lt+O/q
9/v5/fr5/fHs95RmxPz6/eng81IIoPXx+fTv+W4wr5twyPz7/mEdqJpux/39/vby+nc9tN/R
7sy75Pfz+tvL635FuJNlxIxawKWI0O3m9fXy+vPt+PLs+J92y4hTvvHr997U7vPv+WcmrLGP
1NnM6+3o9opYv+7n9raX19LD50gOn/r5/Fgjp+vi9OPX8O3n9fPu+ZhrxtjI6trJ63M4s2U0
ru/o928xsO/p9uvl9T4Bmv///yH5BAAAAAAALAAAAAAcACoAAAf/gH+Cg4SFhoeGekmLHR2L
IiQfH3IVFVUGWHdYU4cTFiWgoBYEYVFHEBIaWVQoZgxYhyZBCAQECAhADh6oGg8pTQArLwsb
sUC3t0AjUVpbqr/BLy4txYYmYUBBQcpOu2JZ0MIuJ9SxIyNh5xOEU3YP4icFGAKHLE4ODk5R
BoZV0vE85h1iA6NgHQ9J/pAQk+LAHxHjCvAISM+QjCNHtKiAIOKPDCopOvwJApCHH4GGzkCA
sEWNmCt/CEio8udAST8nKxaiIIaDBhAPBMUZREGiSZwoC1kASgVPk0EHJJD4EwCn1aSEELBq
YgaKIJIFYgiCYzXnoRF7GEQTFECinxtU/8tiHQSj6wIlLqZawYAhgCAucnUSOgLl7oUTaA7l
CXwIguF4XApZiVHWrCE1Sg67rczZciEOmo92rjxXEAiAozu7aXOIwIDXsGPLhs2BzCEvM3Lr
3s1b9w0dh4SECNGnuPHjyPvUKHLoy3DiyaP3mcPcEJM1XbrU2M69u/c0RA4ticBHjw8fCgoV
uXG+/ZAdh6aAGTMmQgTghm4M2T9kDHxDCjBBxxdCgEHDHzsIIUQDgmRgxINGCIFfIRkssUQC
TDDR4A0c2vBHBhxyWMaEhOCgwIlX9CAIDhYy+EcPFlroxYGGEJHBjRm4+IcOOOTwxxs9BBmk
AjQWogMRSBaBg1kgHgqiA4444iDFITTooAMSWAryBBIeSoHDl2D2eEgONJRZ5g9/5PDEE2jS
sMObcDZZiA051FnnIDlI0aSZZspZyA+AAoqIDYQWisihiCaq6KKMNuroo48GAgA7

--=_reb-r7C86512D-t4CE58698--


--=_reb-r3ECBAA1A-t4CE58698
Content-Type: application/octet-stream; name="gpxe-1.0.1.undi_intr.patch"
Content-Description: gpxe-1.0.1.undi_intr.patch
Content-Disposition: attachment; filename="gpxe-1.0.1.undi_intr.patch";
	size=1984; creation-date="Wed, 17 Nov 2010 17:29:18 GMT";
	modification-date="Wed, 17 Nov 2010 17:58:24 GMT"
Content-Transfer-Encoding: base64

ZGlmZiAtdXJOSCBncHhlL3NyYy9hcmNoL2kzODYvZHJpdmVycy9uZXQvdW5kaW5ldC5jIGdw
eGUuMS9zcmMvYXJjaC9pMzg2L2RyaXZlcnMvbmV0L3VuZGluZXQuYwotLS0gZ3B4ZS9zcmMv
YXJjaC9pMzg2L2RyaXZlcnMvbmV0L3VuZGluZXQuYwkyMDEwLTExLTE3IDA3OjU4OjA4LjAw
MDAwMDAwMCAtMDgwMAorKysgZ3B4ZS4xL3NyYy9hcmNoL2kzODYvZHJpdmVycy9uZXQvdW5k
aW5ldC5jCTIwMTAtMDgtMzAgMDc6MzE6NTcuMDAwMDAwMDAwIC0wNzAwCkBAIC00OSw4ICs0
OSw2IEBACiAJaW50IGlzcl9wcm9jZXNzaW5nOwogCS8qKiBCdWcgd29ya2Fyb3VuZHMgKi8K
IAlpbnQgaGFja3M7Ci0JLyoqIEZsYWcgdG8gaW5kaWNhdGUgZGV2aWNlIHN1cHBvcnRzIElS
USBvciBub3QgKi8KLQlpbnQgaXJxX3N1cHBvcnRlZDsKIH07CiAKIC8qKgpAQCAtMjU0LDcg
KzI1Miw3IEBACiAKIAlpZiAoICEgdW5kaW5pYy0+aXNyX3Byb2Nlc3NpbmcgKSB7CiAJCS8q
IERvIG5vdGhpbmcgdW5sZXNzIElTUiBoYXMgYmVlbiB0cmlnZ2VyZWQgKi8KLQkJaWYgKCB1
bmRpbmljLT5pcnFfc3VwcG9ydGVkICYmICEgdW5kaW5ldF9pc3JfdHJpZ2dlcmVkKCkgKSB7
CisJCWlmICggISB1bmRpbmV0X2lzcl90cmlnZ2VyZWQoKSApIHsKIAkJCS8qIEFsbG93IGlu
dGVycnVwdCB0byBvY2N1ciAqLwogCQkJX19hc21fXyBfX3ZvbGF0aWxlX18gKCBSRUFMX0NP
REUgKCAic3RpXG5cdCIKIAkJCQkJCQkgICAibm9wXG5cdCIKQEAgLTM1OSwxMiArMzU3LDEw
IEBACiAJc3RydWN0IHNfUFhFTlZfVU5ESV9PUEVOIHVuZGlfb3BlbjsKIAlpbnQgcmM7CiAK
LQkvKiBIb29rIGludGVycnVwdCBzZXJ2aWNlIHJvdXRpbmUgYW5kIGVuYWJsZSBpbnRlcnJ1
cHQgaWYgc3VwcG9ydGVkICovCi0JaWYgKHVuZGluaWMtPmlycV9zdXBwb3J0ZWQpIHsKLQkJ
dW5kaW5ldF9ob29rX2lzciAoIHVuZGluaWMtPmlycSApOwotCQllbmFibGVfaXJxICggdW5k
aW5pYy0+aXJxICk7Ci0JCXNlbmRfZW9pICggdW5kaW5pYy0+aXJxICk7Ci0JfQorCS8qIEhv
b2sgaW50ZXJydXB0IHNlcnZpY2Ugcm91dGluZSBhbmQgZW5hYmxlIGludGVycnVwdCAqLwor
CXVuZGluZXRfaG9va19pc3IgKCB1bmRpbmljLT5pcnEgKTsKKwllbmFibGVfaXJxICggdW5k
aW5pYy0+aXJxICk7CisJc2VuZF9lb2kgKCB1bmRpbmljLT5pcnEgKTsKIAogCS8qIFNldCBz
dGF0aW9uIGFkZHJlc3MuICBSZXF1aXJlZCBmb3Igc29tZSBQWEUgc3RhY2tzOyB3aWxsCiAJ
ICogc3B1cmlvdXNseSBmYWlsIG9uIG90aGVycy4gIElnbm9yZSBmYWlsdXJlcy4gIFdlIG9u
bHkgZXZlcgpAQCAtNDI5LDExICs0MjUsOSBAQAogCXB4ZXBhcmVudF9jYWxsICggdW5kaW5l
dF9lbnRyeSwgUFhFTlZfVU5ESV9DTE9TRSwKIAkJCSAmdW5kaV9jbG9zZSwgc2l6ZW9mICgg
dW5kaV9jbG9zZSApICk7CiAKLQkvKiBEaXNhYmxlIGludGVycnVwdCBhbmQgdW5ob29rIElT
UiBpZiBzdXBwb3J0ZWQgKi8KLQlpZiAodW5kaW5pYy0+aXJxX3N1cHBvcnRlZCkgewotCQlk
aXNhYmxlX2lycSAoIHVuZGluaWMtPmlycSApOwotCQl1bmRpbmV0X3VuaG9va19pc3IgKCB1
bmRpbmljLT5pcnEgKTsKLQl9CisJLyogRGlzYWJsZSBpbnRlcnJ1cHQgYW5kIHVuaG9vayBJ
U1IgKi8KKwlkaXNhYmxlX2lycSAoIHVuZGluaWMtPmlycSApOworCXVuZGluZXRfdW5ob29r
X2lzciAoIHVuZGluaWMtPmlycSApOwogCiAJREJHQyAoIHVuZGluaWMsICJVTkRJTklDICVw
IGNsb3NlZFxuIiwgdW5kaW5pYyApOwogfQpAQCAtNTU0LDggKzU0OCw2IEBACiAJCXVuZGlu
aWMtPmhhY2tzIHw9IFVORElfSEFDS19FQjU0OwogCX0KIAotCXVuZGluaWMtPmlycV9zdXBw
b3J0ZWQgPSAodW5kaV9pZmFjZS5TZXJ2aWNlRmxhZ3MgJgotCQkJCSBTVVBQT1JURURfSVJR
KSA/IDEgOiAwOwogCS8qIE1hcmsgYXMgbGluayB1cDsgd2UgZG9uJ3QgaGFuZGxlIGxpbmsg
c3RhdGUgKi8KIAluZXRkZXZfbGlua191cCAoIG5ldGRldiApOwogCg==

--=_reb-r3ECBAA1A-t4CE58698
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
gPXE mailing list
[email protected]
http://etherboot.org/mailman/listinfo/gpxe

--=_reb-r3ECBAA1A-t4CE58698--