Author |
|
boranin Newbie
Joined: 29 September 2007 Location: New Zealand
Online Status: Offline Posts: 32
|
Posted: 08 May 2009 at 7:20pm | IP Logged
|
|
|
First, I understand that InLine is considered attachment as well.
The following has never worked for me in figuring out whether message has no InLine attachments:
If (Not part.Disposition Is Nothing AndAlso part.Disposition.ToLower() = "attachment") OrElse _
(Not part.Filename Is Nothing AndAlso part.Filename <> String.Empty) OrElse _
(Not part.ContentType Is Nothing AndAlso part.ContentType.ToLower() = "message/rfc822") Then
ATTACHMENT=True
End if
Envelope gets downloaded as: objImap.DownloadEnvelopes( _
ImapMail.Imap.AllMessages, True, _
ImapMail.EnvelopeParts.Uid Or _
ImapMail.EnvelopeParts.Flags Or _
ImapMail.EnvelopeParts.Rfc822Size Or _
ImapMail.EnvelopeParts.BodyStructure Or _
ImapMail.EnvelopeParts.Envelope Or _
ImapMail.EnvelopeParts.InternalDate, _
Nothing, Nothing, Nothing)
Note InLine is not considered attachment by standard mailers, that is why I try to ignore it in checking. I used two mail servers and both were giving me the same result (HMail and SmarterMail), so I think IMAP implementation is not an issue. What is the reliable way for checking for attachment without downloading whole message?
Second question is how to easy transform HTML to simple HTML using MailBee.Html namespace? I understand this can be done in message, but I want to keep BodyHTMLText intact and to get SimpleHTML somehow. Is this easily acheivable?
Regards,
Alex
|
Back to Top |
|
|
Andrew AfterLogic Support
Joined: 28 April 2006 Location: United States
Online Status: Offline Posts: 1189
|
Posted: 12 May 2009 at 2:56am | IP Logged
|
|
|
Quote:
The following has never worked for me in figuring out whether message has no InLine attachments |
|
|
This code checks if message has non-inline attachments that's different from "has no inline attachments".
Quote:
What is the reliable way for checking for attachment without downloading whole message? |
|
|
Downloading envelopes with body structure along with the check you implemented should work fine.
Could you post headers of attachments the code works wrong with? You can download entire message, then save it as .eml file and look into the file to copy/paste the headers.
This should look as follows:
1. Treated as INLINE, but actually is NOT INLINE:
Code:
Content-Type: image/gif;
name="image001.gif"
Content-Transfer-Encoding: base64
Content-ID: <image001.gif@01C9D23D.64C06C20> |
|
|
2. Treated as NOT INLINE, but actually is INLINE:
Code:
Content-Type: image/png;
name="add_acc.png"
Content-transfer-encoding: base64
Content-Disposition: attachment;
filename="add_acc.png" |
|
|
3. etc.
Quote:
Second question is how to easy transform HTML to simple HTML using MailBee.Html namespace? I understand this can be done in message, but I want to keep BodyHTMLText intact and to get SimpleHTML somehow. Is this easily acheivable? |
|
|
MailBee.Html processor is not linked to message object. To keep BodyHTMLText intact, you should assign BodyHtmlText as follows:
Code:
htmlProcessor.Dom.OuterHtml = message.BodyHtmlText; |
|
|
The resulting code may look like:
Code:
Imports System
Imports MailBee.Mime
Imports MailBee.Html
Module Sample
Sub Main()
' Load HTML message from file.
Dim message As New MailMessage
message.LoadMessage("C:\message.eml")
Dim htmlProcessor As New Processor
htmlProcessor.Dom.OuterHtml = message.BodyHtmlText
' Get rules for removing all uneasy things (such as scripts) from the body.
Dim rules As RuleSet = RuleSet.GetSafeHtmlRules()
htmlProcessor.Dom.Process(rules, Nothing)
' Process the rules and display the results.
Console.WriteLine(htmlProcessor.Dom.ProcessToString(rules, Nothing))
End Sub
End Module |
|
|
Best regards,
Andrew
|
Back to Top |
|
|
boranin Newbie
Joined: 29 September 2007 Location: New Zealand
Online Status: Offline Posts: 32
|
Posted: 12 May 2009 at 10:22pm | IP Logged
|
|
|
"The following has never worked for me in figuring out whether message has no[N] InLine attachments"
I tought that missing "n" will be obvious considering the issue description is repeated twice.
Relevant part from one of the messages:
Subject: InLine
Date: Sat, 9 May 2009 12:35:00 +1200
Message-ID: <000301c9d03d$fca84b40$f5f8e1c0$@co.nz>
MIME-Version: 1.0
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: AcnQPfx401AH2h7+QrOT8mBS5A6sdg==
X-OlkEid: 11C41D20F4BDD639B0C27A4DBDF254C5402250F6
Content-Type: multipart/related;
boundary="----=_NextPart_000_0 000_01C9D0AC.5DA693C0"
Content-Language: en-us
This is a multipart message in MIME format.
------=_NextPart_000_0000_01C9D0AC.5DA693C0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0 001_01C9D0AC.5DA693C0"
------=_NextPart_001_0001_01C9D0AC.5DA693C0
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
60909366.jpg
------=_NextPart_001_0001_01C9D0AC.5DA693C0
Content-Type: text/html;
boundary="----=_NextPart_000_0 004_01C9D0A2.91DD2B40";
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
I don't think you understood my second question. I am after SimpleHTML as string, not related to message at all. Let's say I have HTML "<div>Text1<br>Text2</div>" from some message in variable strHTML. Now I want to transform it to simple HTML, like "Text1[chr(13)]Text2". Not sure whether <br> gets converted to chr(13) or stays <br>, so please ignore if not correct, but div tag is expected to disapear. My understanding is this is what you do when converting HTML to simple HTML in mail message.
Thanks for your help,
Alex
|
Back to Top |
|
|
Andrew AfterLogic Support
Joined: 28 April 2006 Location: United States
Online Status: Offline Posts: 1189
|
Posted: 12 May 2009 at 11:44pm | IP Logged
|
|
|
Quote:
I tought that missing "n" will be obvious considering the issue description is repeated twice. |
|
|
The MIME example you provided doesn't contain any attachments at all. I've commented each part in bold:
main headers block start
Subject: InLine
Date: Sat, 9 May 2009 12:35:00 +1200
Message-ID: <000301c9d03d$fca84b40$f5f8e1c0$@co.nz>
MIME-Version: 1.0
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: AcnQPfx401AH2h7+QrOT8mBS5A6sdg==
X-OlkEid: 11C41D20F4BDD639B0C27A4DBDF254C5402250F6
Content-Type: multipart/related;
boundary="----=_NextPart_000_0 000_01C9D0AC.5DA693C0"
Content-Language: en-us
main headers block end
This is a multipart message in MIME format.
------=_NextPart_000_0000_01C9D0AC.5DA693C0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0 001_01C9D0AC.5DA693C0"
------=_NextPart_001_0001_01C9D0AC.5DA693C0
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
60909366.jpg
plain text version of the body here
------=_NextPart_001_0001_01C9D0AC.5DA693C0
Content-Type: text/html;
boundary="----=_NextPart_000_0 004_01C9D0A2.91DD2B40";
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
HTML version of the body here
Quote:
I don't think you understood my second question. |
|
|
Here's a simple working example of what you need (in C# syntax):
Code:
static bool ProcessDelegate(Element elem, Rule rule)
{
if (elem.TagName.ToLower() == "div")
{
elem.OuterHtml = elem.InnerHtml;
}
return true;
}
static void Main(string[] args)
{
Processor htmlProcessor = new Processor();
htmlProcessor.Dom.OuterHtml = "<div>Text1<br>Text2</div>";
ProcessElementDelegate del = new ProcessElementDelegate(ProcessDelegate);
RuleSet rules = new RuleSet();
rules.AddTagProcessingCondition("div ", null);
Console.WriteLine(htmlProcessor.Dom. ProcessToString(rules, del));
Console.ReadLine();
} |
|
|
Best regards,
Andrew
|
Back to Top |
|
|
boranin Newbie
Joined: 29 September 2007 Location: New Zealand
Online Status: Offline Posts: 32
|
Posted: 14 May 2009 at 2:43pm | IP Logged
|
|
|
2nd question was not how to get rid of DIV tag from the simple example I posted. I understand I can code ProcessDelegates for all tags I do not want. I was just wandering whether you can suggest how can I use mechanism you used in conversion from HTML to simpleHTML, so I save some time coding and thinking about all the rules apply while converting. It looks like I will have to use Reflector to collect the code as you are not answering my question for some reason.
1st question. The request was to post headers and I posted some MIME parts as well, but not the whole message. I am sure message has InLine attachment, which is recognised at attachment by the code I supplied in first post, even that code should be ignoring InLine attachments. The following is the complete message:
Return-Path: <alex@.co.nz>
Reply-To: alex@.co.nz
From: "Alex" <alex@.co.nz>
To: alex@.co.nz
Subject: InLine
Date: Sat, 9 May 2009 12:35:00 +1200
Message-ID: <000301c9d03d$fca84b40$f5f8e1c0$@co.nz>
MIME-Version: 1.0
X-Mailer: Microsoft Office Outlook 12.0
Thread-Index: AcnQPfx401AH2h7+QrOT8mBS5A6sdg==
X-OlkEid: 11C41D20F4BDD639B0C27A4DBDF254C5402250F6
Content-Type: multipart/related;
boundary="----=_NextPart_000_0 000_01C9D0AC.5DA693C0"
Content-Language: en-us
This is a multipart message in MIME format.
------=_NextPart_000_0000_01C9D0AC.5DA693C0
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0 001_01C9D0AC.5DA693C0"
------=_NextPart_001_0001_01C9D0AC.5DA693C0
Content-Type: text/plain;
charset="us-ascii"
Content-Transfer-Encoding: 7bit
60909366.jpg
------=_NextPart_001_0001_01C9D0AC.5DA693C0
Content-Type: text/html;
boundary="----=_NextPart_000_0 004_01C9D0A2.91DD2B40";
charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 12 (filtered medium)">
<!--[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:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@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-se rif";}
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-ser if";}
span.EmailStyle17
{mso-style-type:personal-compo se;
font-family:"Calibri","sans-se rif";
color:windowtext;}
span.BalloonTextChar
{mso-style-name:"Balloon Text Char";
mso-style-priority:99;
mso-style-link:"Balloon Text";
font-family:"Tahoma","sans-ser if";}
.MsoChpDefault
{mso-style-type:export-only;}
@page Section1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
{page:Section1;}
-->
</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 lang=3DEN-US link=3Dblue vlink=3Dpurple>
<div class=3DSection1>
<p class=3DMsoNormal><img width=3D499 height=3D343 id=3D"Picture_x0020_0"
src=3D"cid:image001.jpg@01C9D0A2.91A8ADC0" alt=3D60909366.jpg><o:p></o:p></=
p>
</div>
</body>
</html>
------=_NextPart_001_0001_01C9D0AC.5DA693C0--
------=_NextPart_000_0000_01C9D0AC.5DA693C0
Content-Type: image/jpeg;
name="image001.jpg"
Content-Transfer-Encoding: base64
Content-ID: <image001.jpg@01C9D0A2.91A8ADC0>
/9j/4AAQSkZJRgABAQEAZABkAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJ ChQODwwQFxQYGBcU
FhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMK ChMoGhYaKCgoKCgo
KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/ wAARCAFlAggDASIA
AhEBAxEB/8QAHAAAAQUBAQEAAAAAAAAAAAAAAwABAgQFBgcI/8QAURAAAgEC BAQEAQoDAwkFBwQD
AQIDABEEEiExBRNBUQYiYXGBBxQjMkKRobHB0TNSchVighYkQ1ODosLh8CVj krLxF1Rzo8PS4jdE
VZMnNPL/xAAZAQADAQEBAAAAAAAAAAAAAAAAAQIDBAX/xAAqEQACAgEDBAEE AgMBAAAAAAAAAQIR
IQMSMQQTQVFhBSIycRSBFSNCUv/aAAwDAQACEQMRAD8A7NFKtcbdvgKuYaUn S1h1oxhGfQdrj4Cr
WHiGbavabR5JGKxq3GoLU3JtqNadNDtWbyNBWiPam5PlvRY5Blo6Mh0qNzKo zngJofLMbXrZ5S0C
SChTCiiNd6G8dXOX0tagvEc1rVSZLAhbLtQ5Qc9G5R1puXdqdioaD+UVJ1yt eppHle9FYKwpNjM+
QGTY2obw2G+9abQXS9CMNulNSAz8GeWpUjrperm+1PlHalla+g+FDyULXJUI gSdTejKL6GgtdXGu
nWhAWuXaoOclNzb7UDESdtfal5AZ8QDQ4sWhB7jf4b/hUeUzb5tdvSqWOwvK iKrm5k5ESn+o2J+A
uaulROS5hSZcMJLeaYmUj32H3WokUbAnmddqIAFsFFhawHpTjTc0iiLBRoaX JXNm6moyyA2HfrR4
bbXoyA1rVJj5KMQMtV5ZAFOlTyADESMo8u1VoTNI5YiriSK2lSzKLDar4J5B Q543JJ+FXY5dNaCQ
pX3oZICUnkC47ArpVR1Je9vjVY4hxL5TdatRTZkuwt2pU0VdjNG/SgXIexFW 2YHrQ3tTTAZJAOlF
XMdQKoPI0RuRcdKtQTCQChx8khHiNqBy7LR3ls1rXpeXc0kUUJ4c1suhHWof NzobsTVt7HQUM6bn
QbVdkgCoC2OwqNpO+hq6mSS3eiNELX2o3BRl5pVtl6nWriMQmp+FE5KnW9Ny xlobsKLGGdQtzoat
LKt96x7Nn30oitlXdie9S4BZrZgaico161lrimDaVbSUMNT91JwoLLF1plIz X2qvYk70RB3pUGST
a7G9GSUqtqGihdqJlFGCh+f3phIG2pOqbUliHTSpwBIKoOtHS1VLEHejJIKK AM5oTMelJpBTZhSG
xe9RIGWkWFDMoy706IFpnHvSqu8nnBG1xSrRJhYkjGbUdvyFGSIXv1p8tn+7 8hRU7WqZMCKi1JhR
WTtTZSN6iwArY7URdr0soqWUmmUShkb7qNzD1oKAijjXcVmxjMAaC4s1qsAe ak1u1FgB5YK7UE4f
WrwtT5QaNwGe0WlQ5Z3FX5I6ER6VSYUAikIbWpuQfSneO403phGcovTAHbW1 Pl9KOsYGtEXLSsCn
y7Daq5U72rV8hFDZVHShSBozkjBbt3oohTcCrDKttqEdNAdKq7ATRC2lUJVM uORbeWFTIf6m0H4B
q0Ptb1WwX0qyzH/SyHL/AEjyj77X+NMALxHobGosCg11q7yhQ3h81NMRSVHz XHwp4myMQRY9Ksso
FM4FVYUCmxQRbE2PaqonEm29WnhEia7mqcWH5Lm40q1VYIYYRHe9V58o669K JNIc1hmAO1VmjPMD
MGselNIC/GSwH4U7i6m4oUBs3oKLLIAtKsjRDDKMxU61YlACWFU0xEY1Hxpv nGY2B3oabFZYzBV3
1oHNzORehuoHmvr1obXjQ2PvT2gXMqsuutTRVjWsyOa7eU2UbircbGUAk2A6 UNNBYSWUihvKcoF6
U0ihgtrk0KUFiF8wFCQNliIC3mNQLR3IvQ+X1uxtQjZTfzX7UUFhlm5Wo2oj Y5GPpVHV9QfL60ZI
0CXAUkU2l5FZbhmVgcpo9gRrVOwC3++oyz+W61O30MsS22j3oXKl3JqocVIr g20NWI8ZzNfhanta
FYaPDgjXejQxiO2ulRSVe9GW2S4qcjVB0VdxRLeaqTk9DanSYjrUOLHZbJYH SoMzd6GJr6ihSTeb
9aaiwssrIbb3qDYgqbWY1V+cJsTaiJMLb09vwKyw0pYWGlQuw61BZhTNMO1O vgLDiW29J5u1UJsQ
iaHfoKdMUCNrUtrCwxlmz26U9z1oS4gFwBrRXkGWivgVgpQ5YW6GlTpJdhm0 1pVov0Fmzy7n4D8h
UwtulOwOf4D8hU1UmuRs0HFqWUGpZSKcaVFjB8oU6xaUT4U1z1otgJVA3pZR T70qTbAZbCloae1K
1AwZFtqiGKtarDigW701QD8y+9JitNlvT8vrRgBmAIobEjSi2tUfcUJgQamY VJlBqOW1UIQY1Esd
qnpQyCTpTAZlPeoFbdKPY2pZSVp2BUxhMeGkK/xCMq/1HQfiaUcYiijjXZBl HsBTYmJ2xmHi6LeV
vhoPxN/hRljPWiwBsW71NBcUQiy7UyartaiwBtDdr9aQhHWjID2qRDGixld4 gNvvqrJFmXTetBoy
dDTcoChMVGYmHNtd+9M0DbEVqWA0pNFdqvuMKMg4e229DeA5idq2GhO9BeG+ 9NTE0ZggUAmQUOWK
+saVqtACLWpuRZbWp7yaMjLmfIfKe9KSEZa0zGC1iKTQjLoKregoxoYjnNxb 9aUsagExuwPpWi8L
e1CfC7dDVbkKihExa4B9qPCxLWzqbVLkMrW+yelMYUjOg1707QhpZVLWD/AU FmYvoVtTPC+bMu3r
ToGH1kvfqKeAyM6lr2K0xDRWI7VdUKF1+NDsk17iw6U7ApLNJnAvoaI0jjy+ XXarirGi7Xt1oOIj
jNms2m1KxUU2k1ysjX6EbU2V42DAabmrYySDQ2HaiFk2Y7VVk0Aw0pDksNaK +KddAVNRUiS5jFDd
SDms3tS5KLnzsFL3X2qniMWy3sbA9ahZj/KB0B3qHKZm1OnamkibZbhxAy/R m5607yF9Izr2oMcX
YW6XoylY7XRQaGl4BfJFIGvmkK37UV5EjAF6E8gZ9rDrUPIZDpejkP0W8yta x09KTy5RYamqUs3L
byjQVFJHOtvLRtCwrXZs50NMpc6eX1obTEeU6UMs4NhmI6k06E2WwStipvVp GKjze9ZsZS++/arD
TJGlr3pOIWWHmQW9TSrP5hJDDvSo2hZ3j/X+A/IU6GndRm+78hSyeteczpJX FJhSy09QANiRS3oj
AGocuqHRHWn1FPlNLUbigBrkUsxqdr1Hl9t6CqGzE0xvuallpMDQSDvbWpBj StQ3kSK3MdVubC/e
gAl6gwJqdjSuRvTABZr+lPaiEdai99xVAQYU6EVG99LUsvl0oAsaFdqVhuKH H9XU1HES8nDySdUF
x6np+NQURw15MRiJTsSIl/pW9/xvRGjvUYIuTDGn8oAv69fjRFa1NWAzrZbU NQKOxBoZUU0wIrYU
RSDahWtT5lFNkhmAofrlqOZakjKaXACP1ajaiWU0lt2osqhIBSMYNSt2pfGp sKAvFbUVHlX3qyB3
NJjanYUVGhFRZO1WmIqLFauyaKjRi2ovQmiA2FXGIqNhTTFRnOo2trTcq+hF 60HjTeo5BVqQUUfm
4PTWoSYRT6Vo5VNS5I3J07UbmFGQ2FBtRFw61oPEOlQMdulHcYtpmyYcZtKi 2ELKADatLlXa9LlC
q3k0Zb4Jem/ehphdSCje9a2Q0nVgmlCmwoy0gaPRdPSmaO++p7UWWSQX0ue9 DjkGbUa1qrZLoG0X
nuNP2pmg0zearAks1vLanUiXbQDSlbDBSVWzjtTyo2XbTuKtZbN+VRysPrbV W4mikkAY2vYnapth
MtiTRjlFrb1XMvntdjVW2BF4gFOq27VDNlW3lp5Fc7ChhX1LnSqIsi8h3v8A hVd5OpzGrDEnS9hS
CRgHNma9WsEvJU5wzhoxqO9WUlW2Zhc0PlRq5yi9+9NyrnzbU6TJyi2uIUEW ygEjelVdI4zsLm/W
lSpFps9GLef7vyFTUigXGe3t+Qqai9eS0dYSnWh61OkWT0p7jpQ2BplNqAC0 qa96e1AxqdaVK1qA
Gy0rU96RYVIEMtcPiYOJT+P45MPz5uFJHaaEoAmc3sSdyNLi9d1mFU8N58fj 3vpdF+5b/rTY1h2W
AyXKKVzLut9R7jpSN68c8X+IuJcN8ecQh4XxjE4HBvlTGRz4BZhYqLmMWuRb UEnU7V6/gwseDw6B
2YLEgDEWJAUakdL1MZWDj9tj2psoPpRWtvQ39KsRDKBSWwqQNOwBoAbTtVXF jmSwRDUM2dv6V1/8
1qsZTQ4VEmIlk6LaNfhqfxNAEzehm9HOm9DZb9aaYmRvbQ1NSDQjGd96dBaq JHYHpSsOtTPpQmYn
Ya01YBLA6AVFVI1tTIWy7WNEWQnpU5Aepi1Cv5qcg2pFWEvTHTWgs1qGZTmt amkFh81Q5g6mhc2o
MbtcCqSJsPmvtSy3oaXG9O0llooLJlagVG99aE0w71DnXanTFZNxQ+ZbS9Jm zelMwG9MVjrc1Nr5
aDmHSp83vVUARD5dadpBVYygNQnlJo2k2WnlAoXO83pVe5G9TDA609oWG53a otJeh5l2NJiveigs
HKoaqssKqND7VYa3e1V8QLtoa0iSyKRjvUkXK+huKGiuW30o6Kw3N6sQ723G tM0lv2qE119Krsw/
vE0krBsmbF9aayZv1oLTWXUWPrQ/nSjW1+1XtItFp1LfVNrVXmjYrv8AdREn B1tS511OlqeUGCnK
pjGlRsSNA1W3NwVAv8aaGJg3m2q7E16KbeXS2pp47h7+Wxqy/wBahPYPe9O/ ghoJGE5gDHrtSoYF
yD0uKVUB3jA5z7ftU0qDSLn37fkKItiN68lnaOCO9SUmolRStUDTCXvUWFJb inYUFDC9Pc0rWp7U
DJA041pZfKbC56dKYLIdyq/06n76kB8ooTz4dZuSZU51swiDgvlHW29vhRPm 6n6xZvc0OfBwsQ3K
iDAWElrMBvYEa/jTsdESXP8ADjb3Y2/Df8KpYAtNJjzzGFsQynKLahQN6K8X LIy4yWTpy5POm++l
iPia57hfGcbFjvmx4RLMs8kshnwwLIpD5bFTqPU3qdwUcR4qAb5QMWvQSwqC Tc/VU17G6gE3rxji
RkxHj7EuY2XNjEU6agjKNR02617I+HWN80jsSDoWNYaHMmXL8UiQtT0/L62p shroMxmApZaVj1qL
GgCMz8qN3IuFBNu9ulDw0fKw6KT5rEsf7x1J+81HEHMYo+jNmb+kb/jajrc6 mqAhTaVNr9KCT3po
TZJjbr8KhcGoNY9aje21XRFhaheza0NpDUXb1ppBYa56UmZup+6qwmAGutM8 19hT2sVhcQfoTY/y
/mKcyspOulU5pDyjr20+IqTyXorIWWDNfYrehtK3Wqv2r0je2lWok2y1zbda XzoCs979Hqu0hza1
XbRLkzWfFDvQZcRfY1nkgnegXeFr+ZhVrSQnM0Oc29qnzgy66Vm/O9NdKG2L AuSdBqb7aU9hO68L
k0/nAX1pvnY66VmQYyPEIHhlUobgNrYkG1rb0i4L5RPBftnsawXUaN1uRr25 +jTbEqW0NLnAjTWs
0KdxIhPQB1v+dHTN/I351fd0vEkJxn6D82x10oyup61VmsV2tQBK3Q6CqUov hiyuUXWYnY60I5i9
DBI181TMwVt9aoV+wqqcutEA00oXPGW9OJxl2pUx7kTYN0qvKDvb4VYQ5tRU mjvodqFgOSqhYDtU
mYjrR/INN6dlVveiyaKbleu9RUjLrtVl4lG9Q5YHxq7QminJHmbNsOlBeNep rQeENtQ/mpN6pSFR
UQqu3SiBi+w0o/zK66mijh4Cg+ahyQKLKb6Le6jvUBIDpnWr74RftBqGIEF/ JRuQOLKU0altTUeU
QuiXv2rUjw6tumtE+bgbfhpRvFsM2HByswJSw03pVswwnT3FKp7jHsRqFbv6 6a/AUVAy+vtVgxgm
2xsPyFMq20ricjoohc3ogvUSrZqIhtoajkaHqa1R4rxbAcIg53EsTFh49bFz qbdhua5vE/KR4Ygh
Ehx7OWFxGsLZtTttYGsZa0IflJF58I7O1OBXFYf5TPDLQCWTEyw3bLkaMltt 9OlWJvlB4GUc4LFx
TMrICrEx3Vja6kixt1FT39N8SRWfR2GtPVOPieAlnEEWNwrzG2WMSLmNxcWF +oq5fvV2nwUStQXg
jkfMwuexNx91GGu1PTAZI0FgAoHa1c5hJnPg3F4wlhOkeIkV0JBHmdgR8DXR ucqO3UAn7heuThik
wXgHiaTTtM3zN5gzCxAeO4A9B0qZcMSPCJYZVxaYuCWVwzKGcuc6sdfMd79m 619CeFcPI3hrh04x
EpxMsCM7yPzMzEbm9z9xr58wDPFj3aPLa1mU/VYdiK+iOB4uHB+F+HyT5YIU wqHMx8oGUHeuXp3l
m8sRNCJcTqJni6ZSiH1ve5o9q8w8d/KlBwjFJhuDjnsuYTORdbW0I66UFPlV MfhrCYv5vBLjJpHj
WMubZVUeci2lya0/kQurMq80epOFAJJUDe/pvVOTGYOPDfOTiYPm5OUSZwVz HYX7+lfP3jbx9xLx
IqRYXLFDh7s0cdwWJGt/gdK5TDcSnjwowc08/JEnNRFk3aw1tffasX10U/tR Ki2fVGExGHxGNxEc
UqPLDZGQG5FtTf4m1WmsFr5w8B+JH4L4hixjSs0ExEcyO99zqffrX0TNjMKc OZhiEaLKXzggggC5
P3V0aHULVjuE40RlkyqSXUAbkmwHuayJeO8OD5Tj8MTzOWAHFy3a1eH+LflB 4txR8XhIZ+XhXkKI
LZQVOmp7WrjsJjZzM7YvZ2LRyWJuNrWve5tvWcutUXUUC0m8n1Th8VHOnMhk V12BU3BtRGkuK8E8
GeMcXwd4MMvm4fdTJGRfyk7g9yeteweG+P4HjuESSB1Waw5sZ3RjqBbsQN66 tDqYaqM5RaNdmJ3q
DGjcpem9QK12WjLIBig9KTOMtxUpV01GlVyn8pt6VaoRCeT6J/h+YpZnJpsS LQvc9vzFOjLmtTrI
mxMzChvIwXQVY8pp+Xdadi54KJkvoRahmLNqDWgYF3J+FREaDcU93oVfJlPG wbf7qmkhta+vW9Wc
fNhsHFzZ5FijGxPX0A6mvOvGPjzCYNCsRVL6BRq7enpWWt1UNJZ5Lh08pvB1 XEuKYXBq/NOaQD6o
Nre56V5j4n8dNLMcJw5PnE3RE+ovqf8AnXM47HcT44953bBYM68sfXYdfajY ZcPgo8mHjVQdzuT7
mvD6r6hPVxdL0eno9LGHKyQw2BxmKZ5eJY+dXOojgkKBb+vU1bEGKw7Xg45x GI9Ppr/DWgTYgxwl
lHwocfMnawzBT1O9eb3JXg7Kj5NNOI8eh0h8Rz26CRFb9KtQ8c8UrrHxPAz2 /ngX96wX4FPisfHh
uY6lgWBGosKM/BcZw7IonaQNext2oerKuR9tM6eLxf4shUXiwE3sWT8jVj/L 7joFsXwSKUf3ZyR9
xFcewx8ez396K8+MgCCQSnMoa6oSNaFrS4ol6MTso/lEdf4/AMUvcoUP61ZT 5SeGk/T4DiMXvCzf
lXBniMw3zf4kYfpTDiDMuysNjatV1M48WJ6EX4PSIvlI8Pto2JlhPaSFhV7D eN/Dsp8vFcKG7M9j
+VeVfO7jzRNUHkwrL9LAp90rWP1Ca8syfSxfg9zwviXhstuVj8K49Jl/er68 Ugf6sin2N6+dWwvC
pN8PEPZLVJMHw5f4UksR6ZJmX9a1j9Rn7JfRr0fRQxEcjX5lh3o6yxm2WRD8 RXzvEJo9cPxjHxf7
ct+d6uQ8S8QQ2GH8QSnsJEVq3X1SXmjJ9EvB9BojNYgXvROUftC1eBx+KfFW H2xmBxHo0Fj+Bq7B
8o3iaD+LgMK4G+R5I/0tWsfqV+DN9Ie28q+1JIwK8ew/yv46P/8A2OESnuYp kf8AMXrTw3yyYMAH
FcPxkQO7GAMPvU1suvi+UZvppeD1VIvSicm9eeYP5YfDkthJLyj1zoyfpWxh flO8MYpssWNiZrXy
pJc29rVX8uDdE9iSOq5FQ5FQwHE4uIQDEYXD4oxMbKzIqA/eaO8sn/u6j+qT 9ga3jO1ghogqgVJl
HaglsU23IQezNTcqY/xMSw/pRVqrZIdFuwt3FKgDCxlhzJJ31GjSNb7hYUqr IHUvH5/gPyFLlDtR
pisd2kdVUAXZiABtWfx7FYTC8GxGLxuNlwWChF5p4DqoBta4BIrhbOiiy8Ys L6X0HS9cx4s8VcM8
OQ4hcViUXHLC0kMbBiHNtBcDvWVx/jXBsJ4TTHRSqIGjIwy8ViaVncE6Fbhr 9yTpXzZxfiWI4hxH
ESsUWGS5Iz+VCemupHauTqOpcPtjyG3c6RqeIPEeL49xc4zG4hZZnNhkuQP7 qg6AVjzSCQ2LykXO
Yj/r4VVhwq/OUjxEixooDhoxY+oHc9qs4qdY3MVn5EnkIQqLEdTp0vXkTtyt s6IxSQOSSWZA14o5
7DKjG502uNqJFjsXEI0kjiZrFgb6X6g62qtMEZwVMUqj6strtrre3Q6WoGEC svMYMwDEIqnS43Pp
RtVAzpMHxOWPiEGMw86DERkOt9bEb6177w75RuHYfwjhMZxTErLjzGVeNQWY sAbFgNgdNa+ahipQ
4XI0UC6MWv19tqv4PELIpj5qrnXQsSTba49qvS6iegrRElao9u4D4149xzgp xGHxOAw06S5HvAGy
63AF3sbjS9q3MPx/jmQczGYZj6YUEH7mr5qSWbD4fEJHJlZMvnjJAZdr1SwU mMmi5n9p45WJNwJm
6fGumOvNrLN46cWkfVL8f41JE6F8GQwK3+byA6+16qYviXE8Rw7EYOSPBrFP AMMxVJgQoBAI8u+t
fOMbcTFsvG8cv+0v+lWFxvGotV8QYodBcr+1D1Zf+iu1H0eqJ4ReIl1nQsRr csP+GtzxE/EeJ8J4
dgYZYsCMGqrzI51JeygC4Nh0vavFU4v4kj/hcflPuF/ajp4j8XL9TjF/dFrN TriRb07w0djjPBEs
2LE8MkSSn69pI2S/UgZrgHtVV/AmOMQEMigDW4ysRc3NrP1rn08WeL10OMie 3eP/APKijxt4sX64
wr+8bf8A3VO2PKYdpejTk8A8VFzEW5jG5YIbn4g0DEfJ/wAclVNPMLgsYGBF yNiBrVdfHviRfr4L
At38jD9KPH8o3HI183C8Ge9jb/hopeGLtL0V18FeIoS6lInA1VmR1OnQjLV2 Xh3iqLDQRDIFjzaC
YrqVsdx6VOP5TuJhvNweIgdFmA/4RVlPlWxY/icGl/wz/wD5U1a4DtRfKOcw /hDi07f57iMCl9SW
mLMCewtar+F8DzRp9JxfAhbZQAGbp7Vtp8rX+t4Rjx3tIT/xUZPlW4e2k3Du Ijv5M3706byxdpGL
/kdiJMNy24xhswsQVhYDQm3W9XOEcF4lw/FxTw8Twt0NyRmRifUEfdWonyne H5P4uExS/wBWEU//
AE6Ivyh+EZf4qKvq2EA/4aFfKQuyjvfDvHv8yCcZnX5yCbtGCVI6dK1zxbh5 +ri0+II/SvM08aeC
pd58KvvGy/8AEKsReI/Bku2Nwqk9pmX/AOpXbDrZpU0YvpU+GegNxDClvLiI iP66f53h22kjPs4/
euHj4h4Xk/g8UQe2LN/1qyn9jy/wuKuf9srf8Far6k1zEh9G/Z0fG+IRYPB8 wZHLMFCX1tfW2nSu
YPj7hwxSRnCYoKxAZ7Cwv2G5q2mEwn+i4ow/8J/MCifMc23E0b+pEP8AxUpf UZ39ov4b8lfG+POD
4dQYnlxB3YIMpXTrf8q1+CeIeH8ZiT5ji4mmMYkaEEF0B3B729KzH4M8mnNw co3s0Kn8momG4Zjs
I+fBphYjYjNHGyn78poj9Slu+7gh9G1wdGPqnVSBv0rlfEfi7BcIicxyozC9 3Y+QW7d/ypuMYLj2
OhMRxMSxnW3mH3+UXrzyf5OOMYrEvNxPFwY2S91XmKiAe196rX+pJqoYNNLo /MjD494u4px/EP8A
MiywnQ4mTt/dH7VjQ4OLDtzSGnxB3kc3N/TtXaT+CeNqtosOjAbZZFbT4Gs+ bwb4ija/9nStfrY2
H4V5U9aWo8nbHS2KkYeZze4sO9QZjby6b3Y62+FX8d4c45CmYYDElgdQUI0+ +hYPg/EOXLLjMO6e
XKqEG9zubdNKlQtZY2D4RGuMbEMoYhBlztpckX26V0vDuHjPHfKASoufcdN6 pcIwjYXE4TD2YZ1l
ncgaXNgo97V1vDoP85iC5uYWUZV8z79TsKrahWPi+E4uHEmXBjDNmXIQxKH8 rbVHhvBWiwaQSRRI
FLFVE2c3O9zXqDcJxIJJixg+KtQX4ZL9pJ/8WHB/IVG3JopOqPOn4GpB+j+K msPxZwzn8MHKzLJh
lgY5TY5WJU/jXq8/DVAOYINPtQMv41gcL4bHxHxDLwqTKGxvC5DC26h43Vwf uvVQitwm6Vnh88ON
w6OVxM4yi41v2/eun8N4McR8PRYjGDmyiUqzH8K7LivycY8wycqTBm6gC7kf y+npVvwx4PxvDPDf
E48aiXj5csZjcMDZgG6djXS9Jc0ZbscnGf2Xhb25DDbYn0qP9j4c6+cel/au hw0AZyfVdfcr+9PJ
EFRL9x/w/vWj0o2Z9xnLTcGg/wBY4HqAaqHgiMkjRHOVv5QNdBWvxed43RVR RmBIJ9h0+NT8A8zE
cRxjTakTRjba9qznowUcFLUlZwa43Ck2KYlW7FAf1qxhY/7QR2wcrlV0bQgg 2r2V+C4TGtfFYSCW
y7vGCd+9ZXC/DuFhxGL+aYOCDD9Cma7MALm21he2lRLQSjaLWrk8oEMzQyZs R50tljYE5x1F+lFT
DtHhSVkYMzeWEA2W1tzfW9ekP4cgLG4S/qCKb/J2EfVRPg9c9Pg0bOX8EwSt iMYvKgDFVa8kecBQ
dvSuthWUuYsPhosU3VMPGT99hYfGtbwnwDCrjpWxeHV15YyhzcA37da7X6KG MJCFEaC4RRlGnYV6
vR9G9aG+TPP6jqe3LakcPhvCeK4jrjMNgcFGdSHAmf7hp+NbnAvB3AuBY5Mf Dh1lxqXyzMFAW41s
gFh8b10Lq8kSSKWIYBh21rGw2NE3FMZhDhMSowxVWmmFkYkXsutzbvau/p9D RUqrJy62rqtbnwb5
4hlqLYvNrZbVSygdL+oppcuUBQ3tXoLTXg5u4y62Nt0tQ34gFAzOovsTpVRw At2LAAXIrzr5TuKY
jhzYaXCFjG/lvutyeo71Gs46cNzHBSm6PRX4/g4pZDJOgEYDMbi2t7D30pV8 647icpkktK0skl1J
U3Gp6aaWtSrxX9Ubf2o6VofJ9W+KedNi8MsSYWGCICabHYyzJhxpYKhNjIe5 0A9a4nxP4i4RNj4p
/D+Ji4hiIpEkmlluOHlhYWmOiX0DDKGYEda5n5U/FXDuPYThWC4fxPHNhZ2M jLMhjZ7XFi1tACD+
leN4+fGB40gLnDJmjSJJGCkjXQX01rLU6lXtibxhJnpPyu+Nk8Xvg4ocPyo8 PdJ2VzIJGJteNwAx
UeoFedu2BV0hjRDY3zsh1vub3vb0oEYYZMHiZWTFZlWVlOiDW4FjY71GAQ/N pAgVikhiaSxLG9ip
9ri1cGpcnbZrBU/ktf2lyZHjxCPLFFcqpjXICdidL+1Fx2HixAjAjQSS2Utn ZFOgsO331ixq/NRc
VG4QExhgTe3TTrb2q/8AOnV5E5bSwkgNGdbW2+8VnKNZRV4yU41kwrcmUSgr cBAbXIO2gp5SJsMZ
M6wyLroR3sQR3rUmw+CxDxNnlAFiBCSrrbowIOo22qjiBg1mDYN1VgSG5yXJ 9Qdj9woTT/YmsWDU
tLAeXOqstvMN2A2NjpSwoxDS8/Chp1j0a9rgjtff4VCON4oZOSIkJY+RXzEA 9ALUoMdDE1sOFVUH
2jrm65QdqbXKQOjQcCTmyrmOeLVV+qpG4I71S4cfJIo0sx/HWtTDMJ4o3j1B NmDWBsd71mwjLiJU
2tb9qrTzGjTSZaS9EweH+dcRgjKM2pNgL7Cgp9at7wLAMR4qgU65YpD/ALv/ ADqqwbeSnjX4ZgMS
cNjcSkE4AYowI0O2tqgMVwdhYcRw3sXy1jfK1GIvG+LTbLFGP92uN8nV6tdN BpMFNnqCHh5/h8Rw
3/8Acv71YSGI/wAPGRH2mU/rXk6qn89SyJ0daH0kfZfcZ66uEkP1Z1PsQadc HiehavIlXs9vUaUV
ZZx9XESrbazkfrUPo14Y+8/R6181xY3F/cVHkT9Y1Pwry1MfxBLcvH4oe0zf vRl43xeP+HxPFD/a
E0v4j8SGtX4PSuQ/WBPupcgnfDR152viTjq7cRnPvlP6UeLxdx1UsMZmP96N T+lJ9LP2V3F6O6aB
f/dvuNNyIuuHYfGuLHjPjqrrJA3vCtFTxxxcL9JFg2/2Z/ep/janhh3IeUda YIT/AKB/eonBYQrr
Gw9cg/aubXx5jh9bAYM/+IfrRY/H0p/i8Lg/wysP0p9jWXDDfD0bJ4bgG3jX 4oP2of8AYvD2a4Fv
YVnjx7Cfr8KYe0//AONTXx3gPt8LnHtIv7Uu1rhuh6L44PhRrHPIv9Lsv60V cBIv8LiOKX2ncfrW
evjfhB+tgMUv/hP60RfGPAn0MGMX/Zqf1o266D/WaKxcSjH0XGMYP9uT+dHi xHHov4fG8T6XKn9K
yx4q8PNoZMQp9YTRE8R+HG//AHjL7wsP0o/3+g/1+zYj4z4pi/h8Zc+6Kasp 4r8YxaDiCP8A1R/8
6wl414eb6vFEHurD9KIvE+CN9Xi2H+L2/Slet5iG2Hs6AeOvFsa2kGDl942H 60eP5RPEa/xeGYNv
YkfpXODF8Mf+HxjC/wD9wFEQ4Y/w+J4Y/wC3X96W+fmIbI+GdOnyn8Wj/icE Q/0TD/7asJ8q0n+n
4HiT6rIG/wCKuUEDOw5eMjPtIp/WjwLLGSJZM19hYULUzTQbF4Z1X/tS4XJp iuCYwd/oQ36mpp8o
3hSRgZuHYmI9/m40+5b1zHOjMoiVOdMfqxomZj8LVrYLg82JmjjxSQYUMygo qCaaxNj5dh8atSvw
ZtVydTwfxh4f4pM8PDHx/OAuUTmKbX6eYV6RwdZZMIjSRSgWAUGcpJp1a7G5 NA8MeFOFeGWlbhcG
KWaQZXnnwvMdlvexNtBcbCtp+X/pPmp783AsPxvVGdoDNHIqEhMethuJFcfn XDcMHI8f+H5zm1w8
2a+lwWAN/hXZ4r5ssbkf2ZoDsXiO1cfNh5z4j8OSxx/5scPPC8oIKqzK1tb3 OoqtNfekKX4s7HjE
HJSQEbafiKbgkK4jDTxkXDsYj7MpH5kVmcb8QZcHiJcXwzFTFYwWGGcZmOYD QW3671Pw94iwcmDx
Dx4TiOHMcyXXERqHvm0trqL11yeKZgvZ55gcIw9SAl//AJdQfCO2QAdVt98d b4aGbGYuTDhlgZkd
FYWIBItf7qhomT0I/NK0JfLOG4hhHkxKApa2n3iP96J4AgEeP4gzD6suHcj/ ABCujxUKyPHIdGuo
ygekVZnhYcrEcYPaKN/iFrPUWCkdniID8+liUWtmzN2Fzt72ofBMOksssfmA GYKP8N9PuramjUcQ
lCi18zE+9zes/wAPacSdW1GZgNe6mlL8AXIT+yJz9RJzf+WRWH40N+Ezfain +MKt+Rro+XD9qOD/
AB4J0/EGlbDj/wBzB9JpI/zFcnk6LObw/DzDMSEym2pMJQ/fe1X2g5aZu2pJ 0t60HxYMS3CLcLxK
wz8xSGXHqVI6jXWvOcXwLj2IcyM87k6kpjVa/v5ta9XpOrWlDbRzz6HvS3uS R2uM4jNhOUuFwkuN
w7yEgAmMKwF9Da5U9dKuYDCH5tmkyPK5LyupuCx1P7D0rgBB4zwjoY34nLkI ZVbLMLjUX1vR3494
twr58RhHJvucAwtrtcC9vc1tHq4KW6sil0E2tqkmeiphRbU7UGTCXlAXL91c TB4+4thwRjuHQS9f
twn43B/KqfiH5RopOGgLg54JAwYvHOpFuoOgNbf5CCVnLPodSPPB2XiETYPh ReAsZWYIpAB320Nf
OnjDi8/zieMu00ULcpWbewJ0t8a7jGfKCnF+B4iHE4mX5yZM0aZDkADDLcgX Fjf4V5BxGd55iZBd
WkuxB1uTfeuPq+oWtFbWVowUU8FqPFuIZGwhVVNvowCGNx1pVXxMhhcyLJmT Lpe1ja1/jSrzdl8I
1x6Oqx+KeH+z8QroY0ykKe4XQfeTVfCTLhyhUwMGlPNkJ1bL0U20B1vbes7h 0vPj5c6SLg1DBZwM
zQnLfTvte1ZE0krJaKTmrHblNYrmI12OutZx0mbvDwa+Nkw+IeRMOGgn5lkV ftG4BFtqJDGuBmOH
xUitPKuWWODNmS+ov0JB+NYnzzGytHLElhCczG1xn6sx9+lHZRiMKUwfn5F3 kkBuWG5O9wPWtHp+
GZq/JPikuN50pcuFzBhnNybba/pUnPNwaYiMSxkm2UvYe9ASfNhkhlLRrIM0 Tk3TMNrHpfrVpsdC
vL5o5mWMWFgyliNSetG3FULyXZpYp8HKVjyyxr5W2Jvub9qpo087gTlZsylR lABLdie9V8HfITy+
bEWynfLrsL9KvYVVkc4iXDciNrKY4RkS42N9qitt2NqwmHTkKFCSsdLKyWtf pcdqK2MjlWSKLDpK
6EeWw1vuLVpyQLiua7ZWSIrnBNnYA7rr33tWeuHwM2f5viHhkikABKXXXSx0 ta/rWNW9zHRDA4pU
kBjiVPNZlsR16dKFiQYsdJo1mBse+tSeeTDl5IpIhGhCqNLa7n0vatbiuClx EOAxuDkXEYeSDMyK
VujE+9a6adt+AjhmOpJNdp8kuHM3i12/lwsh/Ff3riHIiJEsUqkb3Br0n5A0 WbxVjWAuFwTWvfq6
1o8I3TPOflmIj+UPianTKIxb/AP3rheYOu/pXefLjGp+VHjnoyD/AOWtcK0S 9RXVCtqErojzAelN
m7Zqnylp+SP71O0GRXCxC+pbX4VDOO7VNogTu1LkjvRgKZDMP52pZuxvS5Pr Uljy6g608BkdiQoF
9abmN3qHKY9adY2G2W/elgMhkkysC2t+lPLMpF4xY/nVflP1p1VltYfGikGQ 93tcn2HX403MegMs
mamAk7fdRSC2WOcR/wClRaQ3saEEfqGFIs3RPjRQWw+uXZajmJ0AoXMkH81K /lu2pooLYQnzaprS
zL1Shs19RmFTQFj5stqYhMVO1Kxza6VYw2GeaTlYeJpJTsqjMTW1wzwzNisR lndocps6AFnuOwqH
NLkpJswUQdBc/jW5w7wzjsYBJLGuGg35kun3DevQOD+FkwyO+HwyQFFLGWf6 RzYX22HxNdJBwjCm
ESMPnEuhLuS4HU2FrD4Vg9VvESlSPOcBwHC4aV/m8jTlIiXkawGY7AC1en8b 4YpxHC4zmEMhIdV8
uawB1O/WsLhuHhk4Zj8ZPOkPNZuWGOpAFlA662ruvGs39nQ8OePBNicQ4blj UBSFGp663rHl2ym/
ByXhbh4g41LLHEyxgOM2oG3euxwIvJEIcxUMPLB9Gm43c/pXH/8Ab3EXCzYt cFHcfRwJ5rA7EDWu
ojNpoDPlvmXXEm/2htGNK0VeDE9rWJ83ljl/2ePzfnU+XiRtHxEf0yRv+tVb wnUnAH+rBMtM3zXq
OFf70dQMWPOJEDgvjxcW80Cv+Qrk+Jqpbw+97mPFm5tl+y426V1bJAy5VGD/ AMGOdfuG1YvEOHPP
Bwp4oGZYcUXlIOfKoDi9+upFOP5pjatNHG+JYJYOHYx4ipGW+awBF27/ABrW 8Ks03gZJJDdvnRBJ
12YVY47wfHYrguLihwzs8i2VRY31BH4CpeHeHYrB+CzhcVhpYsQMQW5bDzWL DWumbWDJJmJhW5cM
5/ljjP3MR+lT5tt98x/Aj9qI+DnjwuJb5vKPo7fUPSR7dO1LEwOJiLMPpGOx 6k1puXsimZjktiIy
P9Yv/wBGqfhjDyYrH8UhiTMzwR3HcZTf8K0+WRLF/wDET/6X7UX5OlI8T409 4Ix/ums5tbeRx+Sh
F8pDjFiGTB4V7ArnZGDaK2h19Pxq34I8VR8e41KmE4JhcLyJFEkiyOSSTa4F 7ViNwZBxqw6l7fdN
+1WvkmwXzTxDx3RcrSoF/wALkGlNfZZVU6R6ygH2Xuf7vEf0NFVZ/sfPPTLP E9RdX+0Ht/fwGYfe
KCwh+0MD658CyGuY0OT+VyLFHwbPYYkOJoyGngUjfWzDUGvBUl4th5ZXV1mU 7Rumg9jX0h4jgw+K
4VLCvzPUrfkuytv/ACnSuHn8PxFH8i7Hsa1im1aKcklR5hhvEHEos94GA6ZZ HSx++rA8XcZiN4ZJ
1A/79q6ji3CY4URslrAVjzrBheGyYoxqwEgXT1rTbKrM7VmJxrxrx6TDIzYi cZNiHuRfsdxWNxXx
hi+JeHzw3Fzs4EjSKxALZj62v1q/xji6NhXj5SRCTQNa5++uInkSQOLLmB3P lOm9jWbVSoi74HwG
KnjQygKy6qykabaHvp3rPxBkKlOYrW0NvTrU2xXLQxnS+o7WPSgCRmuC6j0A uTVoQN2cJZvs6W73
3pUSyZSJNb6g9vSlTsk1sNjlm4VBEPIyysrrsGUjQ3qnDh5pYkEmYFWIiXuR qb/lVNWEd1kTKkmr
J/Kt9Le1XeJYfER4HCYnESpynuFAPmJG5p7a4NK8kFkxBixLieVcOTdlucrE d+lKHEpEQ8EeUtEQ
wNwD6b6i1X51THcHwsUJVJYo2dkXQNrufUVQx+ISTDYeOGKzouVm2Obb8qlZ 5Js0oY5JofphFFCq
lyjABFBF7jteq+B4RPi8NJLgHV5Be8RurNbUBR30NaPBZDO0CYt8uDAVWzj6 2QXAHrcVc4Lio8Px
a8byu2KD54bZlRbGzE2vcEX9Kz3U2kBz+AjxCv8ANoXcc4Bitj9Yai3x3rpe Cz4ibH4SQx/5vM0k
RUAWLZSSbdvep8ZmefEo7S8qViXCQgFkuLEk+o1pkW/E0SGNIsxUuyEKpNvr hexGtZympLJawg0c
YxuCw84iaKUyKM6dkbt36Xq1PC/znMRFPC11Q7KLHS43ub0HDSw4V8q4i0rl iVNwt76Hb762LA5A
osDdlZNRodBb8RRBJraFIw/7OhkSR5hlLMHyEZjfSwsNtaljOG8ziRMuJZIS LqsNrk3vZu1/St1B
eaRsiiy/WtoR1P3UOOBbk5MvlHLK2G/W19dOprXY0sMe0rx4JJJoyolRfKBG wJBGUkmu8+RWJMPx
7iDTDlD5mLF7ABcwNvgBc+9cpyxzc4DuWFgL6g9Kv8NjigXGPOJ3AhygKddT +IAuT3tQ4YLXsz/H
WAwmN+UfxImJw8TsxUq7AHKCoF/fS4rLj4FwnG8Y8P4SPheGUKyRYspmtOzM ADob6gi4HWtXiMSn
iePxSyvPmbWZn8zjoabE5cPieFxxSKgEqSNIuY2U2Nz13AoSfsXwent8lngk piP+xIFJ80RE+Ijt
mYqBv7VVm+STwQYYj/Z7K3mLleIyAkKwBtcab13UHEMG2KwUGFxkTBoVfTFS jyjzA696uRSpNLxC
IYlDyw6WGNOmclh07Vlufss84f5E/BEmP5YTHJFfJ5OJKfMFvuU9a5vjfyM+ GcLwHH4+DE8VWSEg
xKZo3UqTYXIXWvaHxebhseOWe/MlMikYpDcuCBuvtWB49njwHh2dJAzcwctV 8pvkYncaaA3q4Sbk
lZMnSPn5/k1wl3HzvEiwYk+XcBrC1utqrf8As2jzxxScQlWRx9YRhk0axHfT eu5l4igxeLMxaKKO
dMxI2Qcwk39RWJPxXFcXx8eH4TJ80w7yNG2Oe4AB1OX3Av3rpbSMk5M4Lifh TD4PFDCYXGy4rGki
0McIO6htSD2J+6tTH+AcbhfDGG4mHjl5zSK0CG7xhDYte+o06V2vDsHw3guB K4WWJp5CnMkexdgV
B+Fsxtb41qc6NcBHhVLZYuYCrXFmZiDlOxH66U0m+R7q4PI+EeDZeLQGTCcQ w5ZLZ0ZGDRm4Govt
rvRn8A8SALfOcNZQGvZuouOldjxPgfMmON4PJ83xgsWQaLICF0I6G5NPwfia 4xHw2KRoMWoN420u
QG2+8UlfDC3Vo4vEeAeKwuitLhbtJylF2HmuB/LW8fkY8ThkBl4SGcFlV8Xk YgGxIuuwNdjzyZYE
lK5xKjN8ZE1+Ote2RT8vEwSczLlKxA84JowJOhBB1IrPUm48Fxk2fLb/ACP+ KwzrGnC5SujKnEYr
3IuOo6VUf5J/GFiV4ZBKATrHjYWGm/2+lq+r0xAWeefOrCVXf+NE18jWG47W rPxGWHh2IhKKSxFg
RC31wL9e5NZd6RZ8pYn5PPFUC3l4PLbQXEiNvts3rWDjeC8S4fiDBjcFLDMo BKMBcXGlfUePhWXB
pFyFJUtb6Fd0vbY9wK8j+U7I/i2c2XKYoyLaD6gP61pHUbdMmTpHl6cOxbSA CBxrudBW9wbgC4h5
M4fEGGJpmjTyqFG+p1P3Vs4OBZOG4hgPKgJO/ajeFFjz8XYhco4fLrrvpVW3 ghuqOn8L+HcNNwqP
El3ghkDMsOHjKnQkata/Si8BwccPEcW8QsqzMFFr/ZA2vV7w5GP8kOHlQ4bl u5sSLhWa4+NrUXhc
KGPEm1ladwABc7DYA+lc0l91GkW2i7zEkSRRIpbluACcx+qeg8orJ8Qtjlws Qw+L5MTKkbRixck6
HUaAWq5CzfPJ4y7EWdkRpCbAKVICjQaih4q8uI4fhiWEcaiQqwCrcjQ2Hxpi QNuBYaPDPJMF5qwn
Khe9gFNrAfrXpvjmJFwXCycmx1d8q/VXpua4zENlwcoXOsbKdFAhXY99TXb+ PM4wHCMofNlOqhb/
AFV6nalWUOzkEvkOXmleuQclPiTr91SwrKJ4xHIqnMt1w0ZkfcfaOn31Ud1L /SGLmdA5aZ/uooLl
486TsmYfxnEKb9h+1aYySe7A4gAX/tge8cT/AKUmlmH1pceP68CD+QqmkcH+ jgwB9FxZFFC9FgX0
5ePb96yKQ00rGNxz0uQReTAuNTXnb+D+MRBFw/jOVUS4RWMi5QTtvXpKxzdI scP6Mbf8zTqMTbbi
YH/xo2/OgZ5n/k74ui/geMYmtsGmb9amnDvlBiFoeOYDED+/IrfdpXpJ53X5 +feCJ/0obr/MJ/8A
HgFP5Cj+xUjz0D5SojonDJ/bJ+9RbiPyjRfxOBYWYDcrr/xV37LB9rkD+rhz ih3wgvZ+HA+sLpRk
KRwT+IvGcQ+n8GI1jrlQ0CLxfxLBy82bwPPDLaxeFCDtbXy6ivQw0Gbyy8O+ GKdP1qStf6skX+Di
TUWxUjzVvHmGDhsX4QxSMNbhNevp6mg4Hxx4cweJeeLgWMwM8rK0zql72N9r /tXqDCcrpz2H93Gq
35iovBKw80GKPvyH/MUWw2op8N4hBxDBQYuFIIlmUOqvi5IpAD/MvQ1dWSU/ w5HPonEb/wDmFIjE
dRirdmwkT/kaG4b/AEkWn9/hbH8jTBBXinxKiOX51kO+aZJF/wB0ZvwqvNwm PlHpobZr/qtCbEYL
BP8AOcZ8zghjBZpDgpYyABvc6fjXN+C/Hs/iPjEuCh4U7QiRgk8GcAKCbM3m sNvjW0JJLJlPGWct
8oWHwULRx4zE4rDI0SkNHCJFIPxFcwmBwY8BcQk4fjJcVGmLS7PDyyCRa1rm vVPGeBXFcLgYx5yF
Atnyn8q5ThHD7eB+KxGKQXmRst1J0Pe1q6dv2pjbVrB4Nx3GKZSkQuATmGpO nX0rGxcRhmzS5HWQ
Zls9xqND2re8WQTYXxXPzo0UGbyh8qqy6b20setZf+bYLF8vG4RycxZ0AAZb jQX6j0rFoiqZiqyx
vqMwB1Vtq2cJg8DjMBjXlLYXExqJMNYErIQdUHw1vWfiJ8CDLHBE5QmyvJow AIsbDTTarSKn9m86
DynD5JGeQlszE2Nhtb4U38AZE0qWBBzHvtalVrieNj4hiRIkawIf9GtyqE9j vY+t6VVwGClKzlxz
NXXTWtJp3n4KkBVs2GYsubVchOuUeh3qxxg/OADPBEMd9XNBcBj6ja/tVWTF Lh54Da7IQrRkWGUC
xB96TafARzRX5s2CxPMst1uttwQa6DhmCjlSSOQ2dgC0nQNlzWt6VjcZyrj5 4gi2zXjF9Mp1F/ga
s8K4ouDJMic0NnBB7FbfeKmatWga5ov4bieEhSSKJGfFszGziyL5bZven+dy w4KPECf6VCwKLbKF
J1F96ylDFHlyM2JlPKVBfMWHXba1ta0JOG4yfAPrGkKXaQgHN62HWxArNwSC qVC4fxD6EAZRLNNl
v1yja/31tQ+Z4MTik+mhkOHlEJBJGU2sfiNKz4OCxwQc2ExzNGodxIPNqL+W 22lGwmHbBYfiEYlV
BPGjKAMxXNYhh6WNqiW1r7RY8F3Dxxy/N8KI0M/LLGTS6MWNgT6jf4V0PD15 WGEZDLOrGN832WGx
B9tq4/hUKQwPH84Yzy2MZvYMATfXuTXT4aSMOHl5uY2ZgSCRZQBr6VELjPBe 5ItyF0AIyg6C4Jv9
9tqhNKjRmSJ8hkslwPsg/wDKhPiOZh3aJOblOQa7FjYe1V/NNhghlVBeMGwz a329ya3bJ3GtDiFK
fSZnK3YrfcDv7VaTkQl3UsbXXKxPmBFwL+9c3FL/ANqCMPYSHKyAfwwG1A72 rWlxYispka7agHpY
/uaSm1iirpBrk3vEgH1coGwOgAqKGQSQStJ5lsACbqx7AnWpYZiBeXRvMbnY m+/w2owtlz8y5Vba
20tt7elaJp4ZomjoMP8AKPJw9J8seGLKyXs7eSNDbIPQjS971c/9smFwYEeL wmGeUqGaQ4hlzAjQ
ny2F9q4bErHJhCY38y5VXOAddidtDaucl4PFyJYuISPKcVKJSVfZVG59hc2q XCKGz19Plk4LJCFb
h2GaPSyfO0tpqLAx9OlUPE/yg8N41wOXDw8OQyuzFJVmV8t9wLDT1tXiacCw 0cJnxxaDC8xnSNvr
sp2B7fCqeM4vNnSPhwXCYaM+VVtc26n9qO2v+SXxTPQoOH4jijHEzRs0YZgF GxYXYg9eu29qyePc
TxOE4GY8Hhm5KHLJiIzdEdlGhH2f2rjcZx7iEsYj+cOFuHKqSBmHW3e1bngf j+DwicVwvGcZiYsL
j4BCwiTmC9jqV2Nh8a0UWlkl54A8e48Z3jmwkWSJLqwIAsbAD46VqcS47k8P cIbzLOLiYg6AGR5A
CPVcprgpSMxCOxW+l97VYxEs013s/K0J/lBGntV0I7TG8axMHEoyvPUvDHlD DVvIDv76ilxPHIcV
eZ3GIdl5JMeQgWIt63NvauQXiE8sySSzymeI/QjexPS99Na3sdxZuJy3x3Fc xhikMcxhJeRrghVG
4ub2J2pP0CVZR1XDOINNi8JhMYmcvPGjuTqVMiA3HoATX0NgcXIPD8cgE4xD KJgikKWYNpa41vav
nPwZi1xuCx449iFaTEyqI3cEzK4t9Xobg/V/O9ehcI4pxHw/gMNDi5FxfBpl HKnXNeG+tjpfT+U/
A1zTfhmiS8Hp2Nn/AM0wyK7sQRG2sZIVhYk+Xp1rI4zi1kx8dhdGGZm5cZAK 3sNvWoYQ4nEYaORc
TBOrglZEdgGJ622rPx/DsbLjpZhiFZXC5YzIwAPU1mWVmmibHYhTksoDaxr9 r49wa8a+UKZZPFWI
XzDlRxxkm4vZQK9pxmHkilkMaRC6gBr3OlzY6eu9YeM4HgOIfS8S4ekuJk+t ITmfQWAJ9LWq4unZ
Elao8z4GBJ4e4q99FU9fSqHhl1D8TUnRsFKdT2sf0r0bGcP4ZwuLGxrg1XBJ AHmhW/mGt/vFq43g
mP4G3FsSi4OCLDyq0RJLLZSBmFydAelgTVKaVsiVKjrvAzczw9h0ke4SBzY9 mY6fhVjAC3h6SZgv
0eIZiLX+qwvoPY1QxPF+F8Iw0eD4ecKuFRcqtnL6G5ttca31NbPCjA3hPn4v IIZJ20P1blrAaab1
lJ/cXFrgy3m+b8iRhIRypLxplzG6k6KP1NV+A8Qil4jlIdMRLEJFRTkCqLA5 m6ffV/iUEeDhnngd
0lYBQtlC9RtbexNU/DzQR/OJVjb5wJDAzJCXOVdtToN6fJVUbbkGGQx5CSp1 RGkOx3c6V3nylmNc
BwfNyho2kpNvqrsBvXnmIkmkQ3icgA6zTbeyjSu0+WLiDcO4XwMrI6mTOoCW zHyp16UeQ4RygaQp
aLnlT0jjEK/edaCk+HjnHMfBxMGGbNmnfQ9q4HH8f57lGdypKkOzlmsDtbbW ugg47g8PFhlCZs5C
AIALMOhPrQRuR9INxHC3s2IXpq/DWt99qj864c31sTw7/HgXX9atcJxkXEOF 4bGYc3iljDLff2NX
L1JSeDJ53DD/APuOC/FGT9adZeHF8qYjguYbqMXlP3XrUevnT5Vikfj/AB5Y rEoyXc2sPKNaaVjf
FnvgWE/wzg2/ox7CiLBLvHG5H9zHtXy0JoDoOIYUn3WhnEMrXjxGDPqJFH61 e1E7n6Pqzk4wbJjx
/Tiw350+XHj/APlf/HE36V8ppicYPq4tB/TP/wDlRF4hxUC8WNnHbLimB/8A NS2fIb/g+pn+eHc8
RsO8ET/pQH5mX6QSn+rhyn8q+Y/7e49ELx8Q4iD/AHcW/wC9JfGHieIjLxXi wHrimNLYLd8H0o8c
Z/iJB/j4W4/I0AjDfaHDh74WZK+fV8feLolHL4vxEEb5pM34Wq9wv5SPGEuP w0EvFcUokmRGJRT5
SwB1tRtE9RHuRbCjTPw4e08qfpTrLB9iXCnvl4kwp3j4iLgcYxh7Zkjb/hoT rxL/APk1b+vCRN+l
SXZmeMpCPC3EzzJ+VyWLcnGrObafYbf237VjfI54dTC4bEcZlRzJOLRCfKHI AO4YW0NrMCNNCNK6
CZcQ0gi4iYMTg5CEljgwC8wqTr9U3t3t0rscHhVweEjgwscsUKCyoBMLD763 0Y27MtTLSOeYtLhE
gxfCsU4AAYAoR+DVSxGDwkfDMRhcLwrFIJR9Ro2KEjvY3rtWZ7al/jzP/tNQ MneT7yf1jrfYw3fB
8pfKvwfhuGxj47C4PiOAxEiqWTFRsEMymxRdLbajWvK8QzSYqNJntIfKwe62 9zbvX2R8qfhXC+Ju
Dx84MZMOWKtAEZ/MANAVAIG++nSvlvERT8B4jPLJIuIDMyvJCFIJGn2hoQew rNqsjlnJzGJwqxTG
IlWYEg211HUHYg96lDiYyUWcrLEgsFIH1Qb27g363qw2OGGgkSBMksoKuyHd Qbn2vWZLDaxJXLYZ
StrG9NEEBGqyFbqcwutiSAP3FKk5aQ/SOzkCyg9AKVO0Bp4NZpUSbFljkF1V rXKkaW7baVS4xKuK
AmCMJLlGJ6261s4CUHHSo2HWUKbLqbgBSAAOtZc0ROHlcJ5X0IGyN0I9CKiL yUo+SHFPpMcZf+6j
Y/8AhFqvR8OIhjdcglkswZtArdb9qqcS5REZObm8qLQbWy63q5NiFxcRBNoh mc9xsAP0qpN8IZo4
bGxRYaSaSVWlFo0I6fzMPc2FVnxbQS4dmdWibLE6qTYg3DW+BrPwssM7BDsw NkG1wNNKhh7sxPlC
qDa/cVGxXYm1ZqYbiDQ4zFpI+fOMrMNBYX2+FTwc0nEOJRvh0zfRcnlk3ZlC 2/HSsbLzH+hF2k1J
J6elXOBz/wBncRTEnMFVSVG2a40t8aHBcktLwbuLwPzQphogwaIJiYmJtdWt mB9dKstjo4lDh1yv
cMFOraghAPwrDm4ziMW8fNKmQ2VVA3UdL++pq/zoVjw0K4dCrkWY6uANfzqE muRL2zTwEP8A2c7S
xMA7CVsxJ3Y6n2H40Xh8eZMROUVU5w5Uf1hYHQ39DVSLFxTTcoi8ViXAJzNY i4+NaEMrYeV8NHGo
jsWUqfKBfNY6dulF5Cy0sKSySzShWmN7sBYAX1At3OtFfDw5wS99MpboDa+2 +5qticrJy4sugucx
0G1ie53FASZGmjMYaLNHdsx0sPTuaT/ZRcad4sQBEF5Cxl8zfVudDrV/C4xF woZQra+fS3c7e5rn
ZZyvCyiu0ruSFKi4sTuBv1saPFIeTkBYFApyne53/ekgTOkeNWi5kbsCTnEd tb+vxrLxZSN0kEbm
WW0dmS1j1NuxverOE5jSvI0iqUN2N82+u3qTQeNzfNYQ0yKJZDmI1LFtNAb6 WrRZWTZO1Zx/iQme
GOQ5tZXyqdLKAB+dcriZMpyke1dZ4hleaOPmHzBnBvcMSLDWuOxRbNY960gZ sFcHQ1AkB7/hToKE
57VqInm82tFOLlOFTDF2MCMXWO+gYgAm3cgAVXX21NOO1AE1JDXG50HerbCf DzHDgsJTbOqHNfqP
zqmp81/KCK0OGzvDP9CEDSDJmk1CEm2YHoR0NJjOy+SbCfPPFAlxYxLvDGzR nOVVWNlJPsDa1e8S
wQ4pMBhpBeAM+aO5AILOoB9Nzb2ryT5OeF8Zh4ted0xPD425zyJIH55B0UPe 1gfMQetempirYOSU
+Sb5xkAOh1YgG2+pbSubUyy0ZkAx3h+F8Vgpc+AeZkMT3JUX8pPqR1HxrpMD xmLGQpJG+TS5RiCf
aqU0oB5SlbRTZ/xQD9azMRAIXGJwRyvc5kGx1NyO3tWQ7NjFzZmJztVNmARP Pm630qmmMMqZiNet
u9M81raNbvpQUYHEYmwuA8SPKZZAsTSLnNyQVJFra2rxuLGtBLkCfRkqWOo1 7++pr2vjc6JgOJgl
QzQpYHS++9eDvYNIScwOobpe/atdNJ3ZjqI0saY3hvdxGTcC51v+Fex/Ol4X 8jeExSZgBIthfW2Y
/tXi+ExEfkiZGY/XB7Gx01Glex8ZPL+Qzh7FFOWdGItcfWalNVSJgVcPiMVx EYKPFyKxch2UIVtt
oeh9DR4cWcHgMbNHoGx0ig2zEAtYWF7E6W1oXg2JjGJZc3kjVFBJJF/X0rI4 rJbg5lmL/N/nUzSB
CAxu7Wt8QKiPk1fAPiniV5sdhMGyKAJgGkXrZrG4vpau4+VzxRgeP4PgUXCJ GlkhZzNGyBTlyrY2
J/un868Kw0pGMgYZheW6i+ttv+VbuAxDTCeRizzxZzHsDaw3PW/5Vco08Gbb GxA5wixkA8zSMuUX
CmzGxA/A1YlZ5XEc4aDmANEWG4AIObTelxKSMYTLhYMut218uU6Ej1GlKaZp MJh5VdiicxUB6ggX
F+hB/wCVLkjk735PPG3EODXw4x+TDRxoWScEob9tLi5NrjvrX0hgMUMXgcPi VTKs0YcLe+hHevjz
hXObGycwuypHYhxYWCi9j3Glq+tPCuLw2N8O4CbB/wAERCO2ujLoR94qHg1h jBqE+WvBfHOFjxny
rS4eYXjkkRW9sgr3kny14d4pP/8AmLQXvKmn+ChGj4Lx8IcLP+jX71oTeCuF H/R/+U119mPRfw/a
osrfyL9w/akzY4qXwFws3+i/BarN8nvDD/o/9wV3eT/uk+4VBox/ql+6gDgX +Tjhx2DD/B/zqu/y
cYHpIw+BH616E0Y/1S/9fGoMg/1f3E/vTtio83l+TmAA5cS4+LD9a5aThB4L 424dhhK7rmjJu7EX
zjoa9tkjXKbo3/jP715Z4vsPH3DiM28e5v8AbFNN5M9RLafRjnzmq8jWpp5b E3PeqGIn0qUQlhE5
8Zg8I3zjiUrQYSIF5JAbZQNQTrt3ro5eJcMiVHlxuBRXAdSXi1U6gjzV5H8q kxHgXirDdY1YdNQ6
14PgfH3GcBEYsOUAIAuSTlA/lF7D4V1aLwPYnls+0U4zwhnsvE8CT0+kUf8A HWjE3MRHhfMjC6up
YqR6ESa18Tr8qHieOFDFxF1JuCATYVe4H8r/AIt4KkiYTGYPlSSNKySYRHBY 7ttoT71rZDh6Z9fc
V4fNjo4jFiMTBNBJzY3iMgGYbXGaxHoa+WflXwmNwuPx6eI8JjIeISTPLhzz iUkUkWsmWwsN2Brd
8G/K/wAVfHpP4i43g8Phpld25+BUx5hYBVAFx99ZHyo+L+D8dQYjB8YweKxA DR/N4cCyIwO5LE6f
CpclxQJYPI8dhxh2ssiTAfaXT7x0NQw02Iiw0oh/hfbUgNp320oksyMUuFGR bXUFc5HU/C1VrqXc
nMbjQdjcbVJmEfKY848q6a31BOtKqvmClc/lbcUqqkFGpFIxljMb5XQ3DDf3 Bp4VLRSKTZlvHIL9
zdXPexNjVZJCj3BsRtb861MHMuIYYiIZcVGfpB9mVTodO/ep/RZX4rByniEw yqYUzHdrgbClDAjR
z8oZLxhlDeYlQdNPUitTH4W+BfEnzcpQQu9rbX++s3hgfmz4go1tgTsx7Ufo DNWVg6EDLKdbjoo7
0aSRsIM17SSqcw/lU7fGp5VPP5WVpd2KfVA7CqWKImMdtDbzWquRfBYgxRiY Sg2ZbMnpY1cmYSJL
Nh3XlQ5mVbX8rHUeljWYuHJiIUqSbW771bVzhcFJDGmYzLlZjsq3ufyoayDR VwbZsUHkNguqgd/S
ukScwYUvEMykZQ2TS9r+9c/E1y8yxN6kGwB7ireBxrx2XzakEAdwd6iasdGr hhZg/n84FnFrKTff
7q6PDTQyQuscjKoJa+5IAt91YCSRYUo8mHdhNdizvmGvb27mic+PCMRnZigF 9CRr67W1rF2RVmlJ
inyZUCpkvdmJ+oDqfcnQCoSz4cpicVJGyPLaKJc+hFrC3YXqhjcZicsSy8pI oz5FU+Y9fgBVLiOO
Y4mBYUViBfV82p12OgpqIUbmGnOEiklUs0MVlZgbC57e3Wi4CWTGfSL55ZJM zXf6q9b9xWbhZ3OD
SJIGYOcjEC62trfvrWokjYVjeNFjKqC6D61hc29u9Q8FI2oyY3MkwzN5QEJF z7nsapeIcZ9Lh4oU
z4mUiNXAN1zHRvz23qxhpiZnkUNlFk11zEjWqH9nX4j84mnZyTkgW+o/ma3c jQHoK0h8miOSx/EH
hw/0qIZ2aRMtr2JbU/Db3rEmiLLcfEXrrOP8Gw7F8TzWjhT6qXAVSToo7kjW sL5nhgLRzve5uSRt
0rdNEtMxm01vUNzftWm+BhNys7XG2xvSh4dGQTz7elh+9O0KmZp376VLTMPx rQbhsY05637VBOHP
K5WORL9zRaCmUFGvpRFDKuazWq0+BeOQoZEJG+tqLHCgUo0im+hFFoKZt+Hu OSwvHC+LxKRbKiSM
FJOguL16LgfFmGxSXxef6NgYxk82lrNm9xtXkcfDYcmuJ07AAEVYwGFxEbFo Jecq2uHNiNemtZSi
nmy1Z7RJxR44zLG7SHFyIyEi1rAGxHawJvVhMYZIAbsNTY/E9K8uw3EuJRwx JLKsgjIK3yixAIHT
1rci4/KuFEmI8sqfWYkNcb6Cs2hnZGazGRPdh3Hr61YEZxGHMmFGYL9ZPtD4 VyOG8RQTLHyIpcsn
XQEfC9WJ+OycKQz4cYkTAaEJcex9KzplEPFc6xwYh5RmRYhmB1FiCNq8cmcy XkutidANPuHpXsXF
eJ8P41wfF8TETcoWTFRG4uQNSD2tXkGPEfNLR5Rc7Ag2/wChXRor2ZS8FuG8 mRYXRyvRgLm47+le
4Y2FcR8jfDIpNIzOhbroGfSvIPDPBUx2JlBe0CqCJWsoUm1za+hFzb2r1ziT RQ+COBcHhN1mmkYk
/wAqsQDf1vWetyEFlhOBQ8jARX0Z/pGHvt+FcdxjFphfCmY6yvJIV7auRc/f XWS8Sw8CEs6KijTU
dK8/4viEk4Pw5WCtD5mYb3u17gb7UoJlNnN8NN8Zh7HzXCgH0ua0HkkEkptv FsLXygWHprVPgqoe
N4QLlaPnC1hbQ3sKtY4yc52w+UcuwU6WJDE2Jv8AA1q+TNmtgQG5YlChZYiE N11B336i1DRnbCPc
2jLKxAFjcKLk9LnrUZcsmD5udElwxdSu+YgXP61XwYeVEjkRRiOQoBYdWY76 9AazS5JOmjVlw+Gb
CPeSSZAyAHMFIGYWtYiwtX1jw6JIcMOULLIeaFta2YAnSvnLw8qrxXgwlgXn tKxzlMwOoABHQ3DD
Svo2OeMIAuewAABRtre1ZNmkCwda8K8T/wD6xgn/AFyev2BXtzYiO2pt8G/a vDvExVvlgBU3HOTX
/BQmaPg7y4/1f/y6ZmH8n+4afT+f86Y/10Gy8DZx/J/uNUCy9Qv3MKf/AGi0 zN/3n40ADaVR/L/v
UNpk/wCi1Edj/rPxobSEf6RfvoABNKmXf/fNeVeM5B/lvw4g6Xj63+2K9NxW Isv8RfvryjxtLm8Y
cMa67pr7OKuK5In+J7/iZyXIrPklPeq742Ek2lT7x+9VnxcRa/Mj+8VKM1wY fynZp/AvFYoxmZog
Ao3JzLXzgnDZ1WV5okHLF8hksSD2tX0H8oWMjXwhxT6VM3JNrOLk3G3vXz/h OLvhZZXUtMXHmLHX
2ro026wO47UmUHZB5o4lGYaoXJt8amk+Ua4eJvVsx/WiY2TD53MAVs5zBg5s oO4tahwzItw0SS9B
csLeuhrTJOCykb4rIGxGHhVdV58mQC51t3rQfgsCoDJ4h4ILWuFlkY/hHWUk DS25skSrspd1T9a0
V4E4iD/2nwUBhcKccmbXuN6ZNlTGYTDx83Lj4JwpyqyI9pV6sLi4A9QKzHiA J8/ToCde1a6YNJCV
lxOGTICCzubEdxYa1aXhGDteTxHwmEX+qBM5H3JUoVHMsTn2UbaHWlVvEcuO WRY3zgNZZACAwHUA
6i9KqsVFzGRPDKUmTIQBoRqL1Xw2KeOZGV/Mmx/S3WrnE2MrjMWYgAZzresx /rhrXt2qY/II9Ohw
SR8FkxMkiAYhQyxnqSL6CuRnXEyII4yxd7oqXyhV739a7MssvgONbNzI8Pq5 GwC6WPSvPsFzIpCq
nSSEgm+xBuCPjUZ8DeDNxEcuCxUkQLKPqnpp2NSMLhgRsxsasYzmY3EBpBYs Ac9tGIFiQPWpYoCN
YE2NvM3vWqeM8iXBFMMyoZS62XQD9atPDGzpHHOt7eVrWsdL3rNXEWnKt9Ui 3v6087vDL9oEjX1H
SxpNMKCYuGXCrGxTKhuikdbbmmQu6RhSti1rakkj0o0+OSfCiKVGNiSLm+XT 8aNw/BTxiOVoL6gq
GuAdRr+lqLpZHbLM2IZikUKWjUXa++trn4mj8ZkxGFhCwpbzBWUANsNLn3G1 WQZPnrxMiMQwuw3Z
hsD7UXE8NntLz8QivO300qyeYL1AG1+hrNNXkV0c7h5szl7s45bBixuM5G4F ulUVzkoAFt0vqT8K
nCJJZuThEayXJ1AJA39Nq6HhWEK4R3YKxMqSctRc6nQKTrpWjpIaaFNijw9k wpykoEOYC2a+unet
LhsWIxUMgssSkeaRwR5d8i9r9TWfhUjnaczeSVQMzzb3LBQBV7Dz4iZgIcTE sjER2J021J10HrWE
l6Q6OigBjjQZ7ljbmbG56gde1ExAEWGM0UbS4gkRxgGxudyDtYW1rEBxIhRI s8wNyzEgaabf9bVb
4xi1iWPCjESS4hhlVRYB/Vj0Ude9JXZSMni6yxzoknIngj89gTYkiw36dqxX EouOUlvcCpYud2xE
iyYnmtmJd76FttPQdKDbN/pL/GtQIQm97hRrtTxKw1jiQE9TaoxxHK5vcDrV lAuUHO49qBoZo5yL
GJB7gUrNHKc0apcbDrTvyrDO8rVCNeZikALEAHQ66UFA8zK1uUmuxNtaInN3 +brb4UphGbAl8w3/
AOWlTuBYCWUDp/1alYDAShSRAt+2n7UsA1ksZMgPUa2qRKBCTPLe1v8ArSmw cIOGLWz66DagEX82
Gtri5QfRFoOMaEYRzHjXzW2KaH0oiQMF0w19dD5T+tNjYP8AM5Hbh7g2PmAF h671CasKY/CJ8MqI
mIxkmHAsQUAPw2rXfEcOKkHjGKKnTXL+1ZnBcEqwhzgnxZO6gA29608Y0Ihc t4fcWFv4AsB73pOr
wD+R+Gzww/J/xz6TNnnCK50Otq45Fw8UIms+pIzNlYH4VbaeReBywRplgkmL 5T91Zj3KpZFNjota
xTJZsrioPmqO2GRlUhS+fKT2Btp+FdRjsYsnBcNLikvFho0hjjDmxzEude9c CxIhswuLglRXeeIp
wfCXC42juqZAqgdSCbnvUTWUCMOLHQrN5cMrA7LI5beqGIzNNIoCQXNiq6AA +lQRY+YCI2U3Frgi
lijDFjXWdLvZd77VQUWuFYJ041go10Yzx2HxrY4vhxHeLl5s0T9NL3uSe5tt QOGco+KuHtds/MGU
DratjxhG2E49FGEWyQqcp1Bvck1E73IiSVGVgI45OGuSVEseeQ6jUFR5aJ4e wsDYQHGPdbA6kLbW
4J++icOw0YwUcix3Y2Jb7WU7gfAVoeFc8EM/Jw74otJ9RI7kCwtptrUt4IR6 d4DwcTeIvD0yhmif
mTCQCwDICAAet9DXtgYd68i+TficmK4jw/BYvDNhTgY5yrOQDdiLqRtpevV0 J3BuD61g7RvFBmN1
OteE+JLj5YrLvz062+zXuV9b14b4n/8A1gBH+vTa38lEeSpLB3uaT/qSo5pP +n/5U9v7rfhUcvo3
/iFWbeBmZ+n/AJx+1DZn7f74/apsvo34UNl9G+8UADllcf8A/Y/aqeInkts3 /jFExOnRvwrNkN+j
fhTJBYmaU3uPxWvM/GBv4s4XfNe6C2n84r0Se9j5G/CvNPFZJ8ZcMFrfw/8A z1cSNT8T3RwovVWS
RAayeJeI0wuMlw7Yd2yHVwR+VZeM8UICPmsWY9RIcg++1TT5MvBR+ViWE+Cc aDkuWQLcW1zDravn
tvMTY3PUdTXtXiTiPEeMYU4f5vhhCSDYSBjcH1rkpOEYoL5uGXA1uIw2/tVL U24ozlLjBwcyhcgG
UkrdvQ9qnhgS4XIuu5ufyrpsRw2JXvNgsjdbhlqscJAlzGlj0sb2rTvL0Sp/ BnvhJJEMhK8saEkg
bDoL3pJhjF5lKeWMt/EXUff+G9HmwUcnm8xb+aqsuBVQOUdd/T7qamn5HvTB 5myb3U/p6UOWLUAZ
e9waN83Crm8+tr+/WoEIb8wtfpb0pqvDHa9kFOVLKFzb3sD8KVBGu5tSqibN rGRotwr8wfZa1hY1
kv1U6EDpsa6LjPlxBQDNk8tygF+34Vh4kEPmtbrlpQdoaPTMJBK3gh1XW2Ev l72XYV5rzNi0mQbg
239K9c4BKjeFguS3+a2YX7rp8K8cxF5YwzfVUAADX3oXJUvyLka2ZGJzLYFb VX4pMpmlUaDS3vTc
NnZZgLZrWsD2qGPOZhfKBqLfvVJZCipFqMxGgFgel610USwJBKF5sVjGT1U7 iqWGhSSVIRI2QhSw
sLgncj2rWEarjueuUkfWud2tv7GmwKOGgVcUOWLyWchZALabWv1tXTYbiTzY Mid1FwpVm6MDf77G
srG4uKWKMWXnIpAt0B1tUMDiFfDCE6jMHy20LbG9ZStoP6NaUYmBObOHyvc8 xrWAJOgH6mgPgpuI
xlIJc6uRcHQnXar8MkZeCLFnMfqtkcEWuLjtpQ5ocQTFLg+QkK3kyobHMTqW 9h+NQsBSQDB4ODCJ
GssSiQZsxOpJ7E7WossZaHESjyNIbxZNbH0Hc1PFQnFyu+FTJHzMyRjS6hQM o7Em9WcDhMVAkBKI
jJI2uv0drbjqfWh1fIllmPiohzURZFE7qMxJ0uOp7fvQ8MQFK2WwNy6j63oe taHEsRHEZYcGi3Zs
iva5O41Hdver/hvhIkxKSTBViVrMHOWwA1P6U7pGkVbpBeG8Nx+LiEwTIjWB W9iRbp6VoTeHsRKt
lCi9wXvclegv2rr+EYUnD4diGijswZZCb67Da/rWqIYlXLGimwuLAAAdq53J 3Z1x0Ynmq+FJ+y/c
Kf8AyVn65D8AK9JsNmCjtcCk0XUhPW1LfIvtRPM08KsqlbKAd9amnheZdFyr bvXpnKRmuUX4Clyo
xrZvajfIfZieZN4bxP8AOtQTwvI0uclcw616aqqW0TUd6WVNjGuu1G+QduJ5 qPDU2pEq37Wpf5NT
7mVb+1elNBER9Sx7mkcLENOvejfIOzFnm/8Ak3iCv8Rfupk8MusWQPZTuBXp i4MW0F16HvTcgAap
RvfsOyjzVfDbBdHW1TbgEhQrnuDvrXo6YWJmI5bA9iNaQwcWbLZT8KW5jWij z9eGTx2AC6CwI6j1
qUvDMS0ZQhrMNbEivQkwaf3R7iifNFXcKR6ClZXaR5JN4RWSAxXnRSb2Bvr9 1Zk3guZYgI5X8pJH
kvXt/wAyXe1vhUxg0UC+S3XyVotWS4J7ETwCbwvjFhyKGzXvmyGtfjC4ufg+ GwscDiSPKS5FwQBr
YV7Y+Ew5XNkW5/uUNuH4fflqfWxtR3pPkh9OvB89pFj4yBJGxW4voe9R4oZj jXMcTFco81rbV9Bf
MoCCAkCsOhqP9nRFbiOK/bQiq7zJ/jnifDZlh8UcLkYLlMgLNcAIAK7L5SxD D4sjmMaFJY0C9dlB
uB211rvv7NgbSSCAr1Uxg/pVbH+HeGY9w+MwaSygWVze4t0GtJ6tu6E+mdHk WGk5XB0xC6ZM1iSD
cgm9uwIOl66TwbhOKHByPhDg4tgxdyt9NhYV1v8Akpwo4b5ocOvIuTkudzrv v1NN/k7hoYzHBLPD
CbDKALC3W9DafBiunkmYsisJjFiJ5WkU+crIoQm24vXrXyfeJRxFY+GS4blN h4AVmaRWMljba2h+
NcbhOHGDDpEuIWVRcKZoQTv1N60IcKY00dB6iy/pSk7WTZaDPUJMXhInEc08 COdgzqDXiviUKflb
Lj6onSzixX6vet5g+b/Rt6kA0xVn+si36H9ahYKehao2eYn+ui+4fvT82P8A 1sX/AIV/esLkgDWJ
Tp1QUPlRFyDGg7+QftTsrts3ubEf9PF+H70N5YguuIg/3f3rHaGPoij/AAD9 qA8ClrcuIj1QH9KL
DtfJbxU8Vz/nEX+7+9Zss8A3xMH3r+9SfDxrryoCO3LX9qG+HhO2Hg1/7tf2 qrF2mVZ8RhwuuLww
+K/vXm/iSaOTxtgDHKjKnKLFSCB5vevTnwWHZbHCYa//AMNT+lAbh2EuLYKD XU2QD8LU1KiJaLap
GPxqZZ+JYlo5FIzGzAgg+1UADrrpXTPwvCsLfN0+Aqo/B8P9VYrHsCR+tNTV Ceg8UYjAMtra+1SR
UUa9a1W4OMuhYexqs/CZV0WSW3qAae9EvRkAQNrypZbdi5t91DMBZvNHE198 0an9KspgsVENHv7p
UmixYH1EJ9Q1VuiJ6MvRk4zB4YG0uCwz/wBKWNz7UGbg3DPtYR1NrnlzEfga 0Zo8SZQzRRH+axIP
w0qEglY6xWPe4NH2mb0X5RhTeHcAfqT4mInYsiuPvFqqTeFVbWHGYaU9A10P 4i3410bF0Hmicd9L
0KSVAmWQWHW4I/SjbHwyXor0cjifC2OjW5wbSr0aOzj8DSrqknhD3glZZBoS r60qK+SO0cxxbCPM
hnJsVHmY33Fcu45xKkeYAkN003rqZuICR9QpA3BOmgrJljUYgtEFVXb6u9r6 aU9G0qZMUeicEif/
ACSQKlj83Ktt0W+teWTYUskqxlcpVXU+oABAr1/HtFgvDWNKoxthz9W4+zbW vHYMUVkySDy7Adr1
oipZlgRvHgYBZrsbNl3sNbVFMI81swuDlO41X9/WrEM3LIEYuVOYEdN9aJy4 4dYpVBYm1+5q7YJv
yVJl5NpPKrILL3XsKJDOuIikU6ynXNta3Sn4xG7LhZAPosoRje4uN6pMrRPI YRpc6WoWQXBOIXGg
V2I69LVa4Jikw7kyRK+cFfX4Dv61WZZI1AbKocBhr0Ip+HzLFihcK4sRlYXG tD4Gi5Dh5sRjzHGG
Qcs8sHQ2ynT1ua1sLhZ8Hj5ExCNLHLIUUE6XAB9valBLELNHi1VzZGJFiqjq D1BrQxaxoAknnXUw
zaglbdr+tYuXigz4F88jXOT9FIbAD+Qgbk0ZJVyO+IxDgyLluLrlGmo9bVVw UGFbDOYSrTLd2mk0
U2N7Ad6qvPJjpZV5TGBLxQqv1pHJG/Qi1+tqSiCXsvouFjnzYcraSQux/vHT Qe1dTwBnHEYFVEaU
sWZmBNltt2FcVAQWBiKotgrOAACw3CG21tK73wwJ48H9BH9EJAJCt85uNQOp tWc7Rtor7jqBKI+X
JPlnxJJRCqbAm406aDerjWEQFtQN+tCw8GWC11zAW07dBfeiLDtlOoGu5rI7 yGWAMSZWudxtRG5e
hUNp1pmU3yF73F7UXltlsH+FAAmyE/aF9L0hZevxtrU0U57gMQd9e1SbTyE2 PS4B2pFURSNJADuR
12qXLC6jQe1LMbWAXNQvOBmjylTuB0oHQdso6N7io+X7I9NqikhLa79tBRnL ZfLH72t+FMeCQUBR
qp9NjSXLqPKPQ7/fUUk0zHKwv5e+tDZjn8unb1pUG4m4F8rFdNQe1MrjYnNb X1qS5TpIGB7gVNAM
txr2oCwfkYfXbTreoEDPo7Cx1vRl1Y5vv0vSePIoZypX+YDb3phTBi+wPxqS OQ1r3P3VPKMvv9Ui
n84utrn4aUgoXMYrt+NIT9VG241pm8hudNe16msQOoN77UAPzomW7RqT60+a MreMpfsLVHkno6W7
daTKobXKfUaUYCmSEmm7X/CpCR7f+ulDOULYRsfah6A6Bh701QshFJ6m1u1O b9S9j6A0AA6kZWP4
/dSvZbHMDTJDgKNAWHXXS9QzMAQM1/eh6nc6etKzEXAze1AE8xGpNj2qBmPa 596a/wDV7WpKPNqa
KAnzB2YHbe9R5ltSbA9d6m8YPVahyv8A1GtAUxmmH2XalzGuLn8qdoczC2Yd 6jyL3AzORsLUiqHz
E6A/gKc2y33PXpTMCrDyMDRFUlNct+lFjoHf+aO/ppSzINCKViL5nt6C/wCV Ly2sXU9gKLIoZ1Ut
cBqjyUzXyNp1qag/D8aXmDbPboetOwoGYR0pmicja9GGU/WLj36/hS1D+UtY /Giw2IqtBJ0Rh8NK
G+HbNs3wrRUNY6qR706x5v5bjrvRYbTKaElrMGA72vS5Ee4LfEVqP/KNfa9A ZSdbqPeqBxZmvh4z
pJyifaqsuCw7dPMeqpW08QO/m9qGcOR9UX/CgjazBk4HhpUvLEpHUlBSranU xoSUXTUm9KgaieF4
nFxYexKMJDqAACSe/tVPgpk4pxvDQSC6OwLAdhqdfhRMTgnLnmPdjuNhXU/J xwt14racKVylkvpY
kWtXUmlwebWTd8YCWTww+GiRs01o8rH1ufavHXICoDqQd69o8VQZsAMMMoZw cwGprzDFcBxvNcrh
GW5NgNrHtSUleTPLlYCOd5MK7xhSQAhFu1Z2JZY40SPz3sSTuCO1beB4FxQJ IkWHe7WtfoRuaDN4
a4sGLci7E30/KqUo3yVTKRxaS4AIovIAAVFyTbc0KKTlQlpI7lmDH+kA6X9b 1of2ZjMFGOdhJRML
r5RcZSOp6VRxWFxLIijDuirextvfeqTj4YqIvM8t4VS6nzBb7UTK8v0g1ZNW t2Gxqqo5Ru2YMRp0
OlHRvonaIsQdGBtTGHTENHEkfK81szSdQOgrRl4isUEQXzSWBXPditj2tash GQKYyLO1tT9kVIMS
+qMQNAd71DSHk6bhfMkaSVo2lkIIMINgS2pJ7VYw8c89pYyyliUDsRlUgCyA bjaq0MmJjmjEP1YV
AV/q5mIJ0++tHheEmdIhMjrExsrE2uRoAPvrJvkdOy/wfCKMRh1n1jjYjlr3 Otj91d3w3Cyx4iSe
fSSQaRhLBb/HX7qxGwK4XBpjYkyzxEK0aHWW+gAHpuTWxGEnggKiURsAxFyG LEAm+u1YybZ16Fej
XhszuPNlB3HSjLlKFo3zH7tqpRyBSBa3QX3FEOrEh1F/SoOguWY2Zcul7E+t JlkYg3062qsn95/Y
d6MoQrpmzbUUBMW0/Em9MlzcNqV1BI3Bp1+oVIYEbE6ippZhe9h60DTIKALm 2vUgUkCZjY2J30qf
LizXG/Vf1qLSALY7e1BVkWQFrZFb+9SyAfV0YdaeIqGN3uDse3pR/IfqltOu lAYAoFby5FVjuDUz
HItgR5e4O1Qst7OPMNzp99RckN9GWB/SlQ1RYYsuhNx0O9Dsmt9b9aSNddEb 1F6QZM2uott1oHY6
x+fyhTU2sF8oW/YjSnEYOoLfG1JVO0gY3+0NqCiCjynlhUub+h/apmNc/Y9t vxpcoLcjMB+dLRky
sGI7dqYCk+oABrsb0yaAaWHpTrmVddulMCuU2e/cUEpDtlI0Rh3NMuU6Xsel OoGYljbtSuAvvtpQ
DG0F9WFvxp7qdzf86mpFsv3AAVB1BX7V++1AUJmXLY9NqVwxscvvaoWbfY1N COqW9aBeR5Ih0y29
qZIoxu9r/dTOVA+vcCh+Y+o7jWgMEpowNQlvUG96FymzXIuOxqaXT+YjrRbg 6HUinkTSYJQVuQPh
pUVmytYhT8KIsSkjLJY9VIv+NRkhKndfe1GCaYXng9LDqbXp8oYE3Yj3tVVl Ia+w9KirOGsPL31o
oSkXDluQHb2JFRYmP+Y+9rUEtLscxJ7bVLMx0817UUXYbyblNT1Aa9LLCft/ cTQhnAIsx96G99mR
bnqNDVUTuZZYgaKdPU/nQ7uLjIpFCSNil1Riu2r60/MCtYGxHQuaNobgisq6 lND0GtJih0jFtOn7
VFZ4huFPTe9PzEYZlCt6a3p7Q3kHZRoem99KYEbg05lJB8jLbo2a330swK3t p94o2huES3QL+FSD
Hst+1RRmz+QKR003ozW3ZF+NKirIKY9vJrUHUgmwS3U1NyAARr66Gr/D+GiV hJiUsmjBNr+/7VKV
kamptVi4PwsTOmKxZVcOtmVG2YjqfQUqB4s41hcPg3w2Fkc4k+UiFyuUdLm2 1Krc4xxZ58puTts8
vbgmHjS4KNrrm/eicIkw8PEI1WRSVuLDYe9ak3C2ZHO+9yBrqPesp8EuCmJb MSSL6X9rVMHnkH+j
W4kFkxEbYd1eTXy72vbU1FcOYzm5Vw2pPc1Vw7yx4ksqPLa4ta1+thW3hmeS PNy8pt9U7j8Kmbe6
yo8UV0wpkyMRbtU5MIo+sFsNtaszGVVABzE38wTQWOx1pYfFLHiMk4vc21Gt QVRlSxQC2bKALltr
UE4PB4g2UKbaVvYxsDHhzJNEoJ1ykXNU8Hh453SYo8KpryyBdvU9h6VcU2J1 6MWfwzg5k+mSKEPo
GKZja+pteqUPhfhmF+dxDCLzEYBZQT5gVuCBfTWusx8vKV3BUAmwJ9ewrKXE LNzVGyWFhuL7VbbS
pMhRtnJ+LfDeAwvCoJMOmXENKFZydwV2ttXKw4eGN4EYu0pNyE1t6nppXpXi iFsRwYRDMDzFLHra
xFhXM4HhhjmjkKfRbHNVQljLLrxQbAYPkEPI/ON/LIRbT26Vu4SZ1YcqNDr9 rYN3NU5GMv0cJVI7
/WA1Pt2rQw+FIEVjrfr00qG1ZrDS9l/BiVZOZiXzuftdu9hsPhWjHIhOhXTt VKFSPrJcDe+1WCAM
hUaMQD8an9m9JcF76MMnn66j3ozw8zqpJ0GtqBFCqqCSwNh604CsuaF2BBB1 02+FA2WIo+XIhHmB
uCL3HpR1kK6ctR7mhpJ5bF6UoIhcxnMQLgH01p2RnwFRiWOVLE7jpRAep8vv tUo/pIkbbMAfvqDq
2ut7bX9PSkXQxXX+6dj2PapabeUW3BOppktkBOax6Aa37UzrvY2PT3oB8BAq /aGu97VG8ZYi9u+l
JCxQZh5ra0zwlozc2J1U+tPArZAhddb1EN5tvao6hfNqR6W1puZffN71SFYd WBv0IqXNf7Lr5ehA
saGmKT6rBjbTQX+NJ2TLcc2/qKkpP5LUUqlP73ZhaoLPJGxBC27XvVTmC22t 96IpuBlC39aQ9xc5
wbW2+lR5rRmzhSttO4qEUwKActVlH1rbe49Kmkhz6opHtQWnZLmg7FfSkwv5 769CLfiKi00ebzRs
D3GlRU3u0SN6joaVhYNpgrfS6H+b7JoisCNNKlZTa8Wh31qHKEesPk/uHY+3 amLI9rLdStv5T+9E
jYop1bXpegpKScodgw3RvzHSk3MBuuVrnYm33GgdlhZh3ueo6/Ck2Vtb3v06 0AM0i2KW3uLgfpTL
lRgSj+wOv30x2EdOYcwTbS2tDKsNFGU9hTsTmupZD3veiIx+1JegVIg30gtI NNjpUlVOklu4IqQC
6PG97a26a1N5Ablo1BG5G33UMKXkBcqxINjTc6UNcPf4URpE/ugjY2pi0R+r QGPBFZuZf6P3NtKj
ZGWx0170VywYaLahOcy6oxPegkRVtSpW3So2kVr57+9EQuBdcuvek2aRRmze m1H9joSSRBRmzL7n
SjKYTfrQHCdHsel9jUA2QleWl+pBoC/gttFHJa2UX2oT4V4zZApHTW9V7krb y+xNhRRGjW1sfej+
ycPwCkUg3kjt3tvUeTmGeMs1vrA71aaNNLurdxTxNBFfN8LD/nVJi2orWIF+ Yo+NRii8xbmt311+
41YaSPmXD5l7DTT7qMClrxhh8RamKlZXaEmxbMbdVJFO0aZNCwt32qbER3sG BPbUfEUThcB4hiyA
G5EVi5P2m6KP1pZbobajFtheG4WNR85xbpGAPo1bQf1GsDxVx55ZzBw+V0hU WLpJbNXX8VaeHCSN
FGkrAE2JIIPoK8mxbEs5kCqWJJAGx61nrycFSPM1tR1fsHNMZHDNm5nUkk0q HKwy7swG1xfalXDh
8nHb9nTYyZ48JLIBbMLBmNjm9TVWDF4ic/5qc7LozMRa5HTvVXGw4maOOQyK wO6MDbUb6Vp8Nw9g
FnF5dDckZfgK682emuLLOHlBT6TTKbLcWzUgoiYuSuUnawtc+tGvGUBEbaEi /wD10oDGMklcuUd9
Rp6U0Mz+I4yDCqXafKxNwt7tf23qEEqYtxiAkt13eRAQAeoNNyIpcSGwqIVL fSSGwsAOh/KruMxi
seXtEi+VV0HsK0UfZLZewsEZZEieBdBaQje/p0qrxHl8OV42kzy5v4n8wJ/K sn588LljlGU2yD/r
esfHTYrieNKYSS42aQeYA+nrarb8ISofimOxWOxJw/Do1ecbk/VjHqe9ZnhG HE4XiHGIOIPnncxz
Fxe3Xb0ruOA8Bj4dwuMRurTSEmRt2J9e1Z3GIZhj0fBQK8wUI6iwuL6fdepb +1oa/IsYgpLg3jYZ
iCDYC59qqYfhsmKt86yrGv1UHT37mtvBcMk5P0uZWNrk/jWguFCqAPjpasU6 R0xhbtmEeHwR2Chb
gUSGH7Nteg2rWbDsZyVLEADQC9TEJBC9fWwoRq/gz+U0cWYi4uNNxvR1jQ2J jXym49xWi0AjUocp
6760ogoatBFJVMj5jIwFrBbaX7+9WIoCwBLqCdSLD9qMMmYnzA+tqDFoXBK6 HTUXoBtEgqBbeYno
dP2qIibObSNf4ftRQU1AdT6Ag01iZUaPQsLG/wCtArIxRvGts7EfD9qmmYSH M7csgEG43vqKg8gj
axnUH1pK97EOrMO1OgbDvY7Fh8aA+dWBEjWH1gbWt32oyn+YqD61FpFuQTcb WHWikTZJmYi21JlG
7O1tiL1HDRFUyfy6KSdxU2BDAfnVYB2wDwLJZwWsdiP/AEobwZQcsjX0tVtB lWw2uSRfvQ5YjHe8
ug1vQSCiII2sw0YURUBvbmVBYfNm5l79aXLOa5kv2oAThRYEMb9elQawtlS/ sR+9EaJyuh1GxGlT
RY8o5iebrbagKbK4IaXJktIB1oqxkfy6+tKWGKQ5CG12vpr6GmEfLFiL9iN7 etDKVoPEwVgsgX0b
WisqSAgZdextVNgMu2n60uU2e/mA7VNF7kH5xjusxVlGz9fjQyCWBEnlOoIo hmYILDagJcN5cqgm
+Uai9FMVhL8u3NGeEDzHqp723qxaGQfxFePuBc+hquFH90tuARY/fTQ8vmDl nlN9qMjeqpBbRcQB
dUdZYz9X/lQ3Aa10uD1vqKRhu14jlbt0PvQ4pkduXKjQy9FbY+qnrSpFKT4H XmbeWVe32h+9OsJN
2U7fWUjUfCmu0Z8oUffTPM6jPK9gNcxsAPjakVZG0quW8pF9tm/Y0eOXMpG5 9Ab0PmS3tdgT7fnT
82VdZRnt9vZqMgmhMzZgMisPXemKRlrgNfuDVjnRNocxH2u4+NDMa3uuVgeh NjRY6GWOQoFCXA1v
uaWQ5jr5j8DT3VlsNR1BvcfjQ2gF8w+FxRYUEsAcrDNpuNDSYXsANeo7ULl6 2Ova9GUPytBttekw
SEI32spG4qLREsTZAfvqRGYZSlv+ulRyLG26/wCM/rRkbSJFYylpQp9BUUjy gcs+XsdRbtRUgjkT
RLH/AK2ppYDG+aPy+9FiogFQtYx/Bdqg6qTtbpbeiZR9aUN9/wCtTeMW8ub0 vr91CYNYKygK1ic3
90jSiWiW2Xy9+1Py2Ld7dCKFib5CVOvY7VdkbR5pHk5cEBRppDlUf9dhXQ4W CHhmCRWkYov1mA3Y
7k1heEoOZiMTjGF8n0MR/vW1Na/iAN/ZskcTsrW1YTCM1Swmzi1p7pV4OX8X +JIpkOGwMt1H1nII
Pw1riXKl8zZjfc31H70dlBz8zUE6sddvWhzZWuoRmH2SN68/Uk5u2efOTbK3 PXMB5mP8xGh+FKpP
GrEKBcm1rWv8aVRRFM6eyRsVGo66kdulQaNoLk5mB3N7BV73vVtoVhOhbXvv sNBUEw8mKlKR+XWx
Z9hfcW2JrtSvg9J4KUXEWidEgl+dxk2CLZj94NW8TDzIQcQ+UE6oPKq+53Jq 9heEYTh2HvhcA8EY
JZnta7Hrp1rL47i4o4yA/wBJbVQdjWiik8kNtjNJFh9c6gILqo7dqwuIzZXe SQqFIvY6AD1rPmxR
gXPIWZjsBqfhWlw/hL4rD/PuIozZbPFhrFgwt9Zj6etOb9FI5XjPEMRiHKRZ oYit850Z79AO1bnh
6HGciIWU/aVBdQRbv3rV/sGOXBjEYjzTSHOx00v0HoBRcJE0qJh8KFyobcwi wt6aVF4yKMZN0jSw
2LmZxDB5X2cq+cW9rVtYSKGGL6KK0m7GxufUmg8OhGFw4Wy/Dr71ZYvItgfL vasnK+Dv09Has8jE
tqVy23t+9Ewi3jDMemzUWOIcvLZRprREi5m6KFG2tJGmVwAk18yj0v6VEANi Ir5To1gdDWjkA8vT
raq8sYE8Z3IDbjvaqRLsFJk/urbvQNRr93vV+SHMvmRR70N4ellNWiGiotpE DqdDt61NY10ORdd6
SRFfKDYDYj3p7NlNn+PamSgTLlxMZGW1itrWqwh/q7VAi++ut6fTNc5gR60F E3jVk1C29aFqrWKX
Xv8AvRRdtfNbrSt5yBswuKXA3XgB5s1hkt7GpBisyKwUAj62u/ajBVJuRYjT tTYmEkErlJGoI6EU
WCiPlK2vl96jKM1jddDcNtY1B1zKCTqel9qguVWJV7fza00NoNy9L+UHe1By 9Tr0N6mrEn67H1pS
hmW4OtUmZNFcAREJbyk+Ujv60RBbW331CzsMhdR6360QK4Qcw69bbUArFzP5 hp1HpR8sMgBuwHpV
fKpsoOtLlcs6OwHY0nRomTnwsLC0ZbuPQ96rpfMQx1G5voasNrqBegadr2Nj 700JtEwQdLrbax9a
gC0WgKtEOl9R/wAqchW3TXuNqZcgba3SxNMn9FjKsi5k6iq80MsfmhKk7Mjb Eeh6GpxfRnNEFsd9
b1YSUtYeUGlY0rAQyq3ltqBqp6e9Taz2AjYEbHtTtHmkDeQOuzdbHenYgtZp PgAKmyqBwPIARIGB
7jS49e1EYidSsgv3BNDeRI3+nOh0V+nse1SKqG8r2PbSgdCfnRWLZnj663Ye vrT3Eq/XUqe9JJFD
eaRSaTxgNmgdb3uwOoI9aoAaYURaw7DaM6qPbtTpKzXUFQR9YEWI+HWpxTAl 0VGV7ag9fUd6IrFW
+opI6negEV+X9KG2YdR1FTBYDKNOg96K95L3F/SqztLHov0q/wAp0IHpUlYR YiGc2kFzsGvqPapM
7xeUx5x0Zdx7/wDKq0JadbxuvYgnUH2omYxMBK9+ulzpSGmTeS182btQYpwy +V2I2swsQe1S5xYh
ZEysep1B7a05ic/WN7bXF6LJd+CDTW6teqeIJzjL5fQ/vViSN4FOY5huL2Hw pJLHIvly/wB4N+1X
ZNFjCYuQRhWN/ejsSd5FHXQaWqsIktePKoH2dbfCpZSBcpmHW/aoZquCwxWx IDWtqQBQ7BWzRlfY
G34VEBdGjzRMBoR69LbUTmk3WRFY9Cg3+FAWSupW4Ov2hfWs3isiwYSRiHew 3Asf2rRRSRmBuD0v
WB4p5nzYIH0dguUEm9yLUJOxN1FyOv8ADkQwfBsJG2UOy52v/M2tYXyg4xBg xGJEBUgtb6w+INdK
sItGv0ZKAA3A2Arj/HLRZCjYeDONVYEXt7VvqYgeS3hs5LOzIFuxQ2uB19zQ VjPnkbSMaZbdB61O
WaKNQsW+l83Q+lDXFMUs5ZV1BQgX9ya8vBx4vI6NEroC7lTrcgXt2HSlVWMM 2rZQqk6HUD19aVaL
JVndDDhrNOWUECwvY/H0q1nMa5AY0VRc5SNB0JrEbjHMj5pwbI0qg2kkLn3O lr0+JxZi4e6SFMqk
Equl7+u5rutR4Otp+TSx3F5RDyMPJ5D5cx6muH4pjoOG4iX59mllYkpEpuSf WiTcQYzGHChpMU3b
7I6XNAw/CXOOixHI50sZLSzvsxNvKDtpe9qhvNsODM4dxKBpC8ifTTA5QR5V B6j1Fej8J4jh8VF8
3izyiOMtK6ocqqN76aDvXL43hCQ3llC36gDe/arPBMCZHJEjYZCCCVv5gNbE X1vUtpOyoqTwbxkT
iDZAUEGypfVgOtu1XMDg0gUqCxHbrVPB4ctK7bi4UaWFhW1Dh3K+YMOl7Wv7 VDts79KKir8kUQFy
AmlEjuHdYxlC2FrdxRlWOMZF30uDv99DRQXL2W5OnqKNppYYKCL3YDue9R5L ZLc2x/SlYL0t7VK5
KnTpa/WmkG4CqujWD3K63N9KIzFrG15Lb3qMWYxgk3IGtEFi+Vig9L0yLbI2 JGmp73OlNlBGU7g6
/wDrTyKMj5TbQ7bbU0OYwoCW1FyTQACa4bylRQm05ZY2ubaaVfMYAtv71XxK GRMq7oc2npTJaIeQ
bvbsKhzI81gVv0vejKpKg3t6UvtWJsaYEYZF+rdQe1ESw/lJ9Ki8bc0Ne/Qj 0NGQBdit6QxJc/WS
/Sh81mWzIqsNCKlJIxYWOg/Ogozbnf2vSSByBymRmAstClaRfpAmqb37dasa Zvr6+gp9tSfbStDP
IMSOy5l696SSN1S1NCpDlW26e1FYWWw/KpHQ0pQNHfTMbKLbnemMtmB8pHWp SRCaEpL1Hsb9DQUj
bXMmoGptv61WBZIsdCb29b603MJurH+kb6UzlhY+Unra1RljDNGxzZlNxpTw K2SWUR31vfcU6lbh
l0voetx3pm0NrNYbG1QU3081htragMh+XdQVfT0FRlW99GvtepoftjQW1BpW ulxlK9LGkUDbMr7W
U9elEtKbX373obOv1SVselMGsQpNz0PX40FFhM3UW9b0hrfNlFtwarubG929 6eKa5+0e59qB2Hsk
qHzqR2oCxrDc2zR7EqNR7+lFyg3Ya26CprI2ujel6AINr/D/AOVMo5n8wIOh qDLKrXiyjMdQTb7j
RLuBazD3oEJiTZZNSNj1+BojSvDbm/w9hIOnv+9BkZxkGRbn3tRcO7Ml8669 xtQNCsSTc6HXf8qd
iFW1rk9TR1htcxOoJGqAWBPcdjSVlINywZdGVgL+/tUbvg02/JSbDrI4e7Kw 6ga/86fMVULLv0cb
fEdKshVLalj+VNIthqEI6A0WG0E58pHlIP3H3FBaR1UAeZb2IvajMkYNrIp9 LClNGkigEsP5TbWi
xNPwAZlmIuNezb6UVY0UXKLbvQlikF7fVGxooGlwemoptk7X5DpLCqD656nL Rf7RJjyLh2AvsSKy
zELEx6G+oOovR8IcuhSzdA1J0Xua8F2RZGyMojUMfq3OvtUY7riQwygDshN6 hK0rJ5SoA7ihxmcM
GurDqF009KP7AtzFyC17qNbqLH7q5jijtiOJ8Phzu1508v8AiHSujcrItldv VTow+Fcy8ccnjDhw
CXPOW2p6Xq9Pkz13UGz0R+dkfkhBJ/e2/KvL/EmCxY4hJNMcMwudna469q9O kIV7nNZt7X3rm/G0
UjcNEkRSyXJDg5iPQ1esrieb/wAnmkzSBA8g0Ybk3F6GjZnEaSKG3zbXt0FF 5fNUiNNtx60J4rMg
kjVWvYFjudxpXmeWcT5HXR/MdQST8KVKYIyg+bubW0NKngpX4OixHlWMDYm1 vhQ8eofhWJZfKyjQ
nW3rSpV1+T0XwUsFhoMFhMsayeZSWIexPxouElIlA1KI63QklSe9u9KlTMny a3Mj4qRiOUIEUC0S
sSBpWxhMPEAMsaqbXuKVKokdmii1FGsWVIxlUdqI2bQZ3t70qVCNyKi4YnWw vY1NZbRxgINBvSpV
Qg0ZLAE7ntUpSViexO1KlSDwQEa8sE6kjrTRgHcD7qVKgpcE2OtrC1SAYPYN p7UqVMkXVr6+9VpW
IzW6UqVMlklQGFCSb2p+WoOa1z60qVMCM5Lwvbym2/xoRJRxlJFxSpUAyAnv YFdPeo4iTJYAb9Sa
VKggUbEo19x1py7aEMQbdKVKqAmZGCaHXvUiSwYkm9KlUmiI52Rnuc2UUVhz FFyRftSpVXggryQq
DYXA9KDAWIcMzMVYi5OtKlQIk2qZjvQt2Unr0pUqYyytwAt7j1FFhUXAIBDd 6VKkykPiYE5L6arq
COlqrwSGSKN8qhm360qVQUHyZtDa1+1UsUvJfmxmzA29/elSpoGFXEWRWy3J F96PhpTMi2Crc9r0
qVJlorS4vlyhTHcejEVZhJkUm5Fum9KlTRD5IPEuoubXqUcKxroWNu5pUqAL Q8trfjUJYxKLNe9r
gjce1KlSLQGEB5CDfMDa4P6UZlGoOoI60qVAFCdFWzKqq19wKnh8TnhuU1Gm hpUqBotBtNQD70Fn
bMGvqRSpUDZBnswIAuahG5mbIQAt/f40qVAmHjHLkcBmZezG9HUAR3GhtfSl SpAiU0azYViwsyi4
I3++uLw0rjxnw/zEkYgC59jSpVrpcmPU/gz1IuwkNjp2rnvGiCXhbEkgN03G 1KlWkuGecuDzhJmM
hTKgVbAWW1tL1VdBKw3XKelKlXlvlnJLyCuQhcaMDlv3F+tKlSqGQf/Z
------=_NextPart_000_0000_01C9D0AC.5DA693C0--
Regards,
Alex
|
Back to Top |
|
|
Andrew AfterLogic Support
Joined: 28 April 2006 Location: United States
Online Status: Offline Posts: 1189
|
Posted: 15 May 2009 at 1:41am | IP Logged
|
|
|
Quote:
1st question. The request was to post headers and I posted some MIME parts as well, but not the whole message. I am sure message has InLine attachment, which is recognised at attachment by the code I supplied in first post, even that code should be ignoring InLine attachments. |
|
|
We requested to "post headers of attachments the code works wrong with". Anyway, we've copy/pasted the MIME source to an .eml file and implemented the following code (full sample in C#):
Code:
MailMessage msg = new MailMessage();
msg.LoadMessage(@"D:\eml_test.eml");
foreach (MimePart part in msg.MimePartTree.GetAllParts())
{
if ((part.Disposition != null && part.Disposition.ToLower() == "attachment")
|| (part.Filename != null && part.Filename != String.Empty)
|| (part.ContentType != null && part.ContentType.ToLower() == "message/rfc822"))
{
Console.WriteLine("here's a non-inline attachment (i.e. file attachment)");
}
}
Console.ReadLine(); |
|
|
It doesn't find any non-inline attachments in the message you provided. The conditions in the "if" clause correspond to the conditions you provided in the first post.
Let's take a look at the relevant headers block:
Code:
Content-Type: image/jpeg;
name="image001.jpg"
Content-Transfer-Encoding: base64
Content-ID: <image001.jpg@01C9D0A2.91A8ADC0> |
|
|
And now, take a look why the conditions work fine:
Code:
(part.Disposition != null && part.Disposition.ToLower() == "attachment") |
|
|
There's no Content-Disposition header at all, the result is FALSE.
Code:
(part.Filename != null && part.Filename != String.Empty) |
|
|
The result is FALSE too as there's no Content-Disposition header which contains filename.
Code:
(part.ContentType != null && part.ContentType.ToLower() == "message/rfc822") |
|
|
The result is FALSE because Content-Type is "image/jpeg", not "message/rfc822".
FALSE OR FALSE OR FALSE = FALSE
Could you please run the code we provided and let us know the result?
Code:
2nd question was not how to get rid of DIV tag from the simple example I posted. I understand I can code ProcessDelegates for all tags I do not want. I was just wandering whether you can suggest how can I use mechanism you used in conversion from HTML to simpleHTML, so I save some time coding and thinking about all the rules apply while converting. It looks like I will have to use Reflector to collect the code as you are not answering my question for some reason. |
|
|
Yes, you can use the Reflector to collect the necessary code. Alternatively, you may engage our developers in obtaining necessary part of code for you in terms of a custom project. This is beyond free support scope as requires involving developers.
Moreover, if you'd like to get support from AfterLogic Support Team, we recommend you to post your questions to our HelpDesk. This forum is a community resource and cannot guarantee providing support here.
Best regards,
Andrew
|
Back to Top |
|
|