<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8998437849651081166</id><updated>2011-11-27T18:38:41.204-06:00</updated><category term='destructor'/><category term='Custom attributes'/><category term='Predicate in C#'/><category term='Dynamic Webservice Invoke'/><category term='memory management'/><category term='Unmanaged'/><category term='Application Security'/><category term='Action delegate in C#. net 2.0'/><category term='C# Best practices'/><category term='Channel Sinks'/><category term='Generics in C#'/><category term='Generics in .Net'/><category term='Remoting Channels'/><category term='list find'/><category term='WOW64'/><category term='Dispose'/><category term='MSWORD to HTML'/><category term='unsafe'/><category term='List.FindAll .Net C#'/><category term='Export to Word'/><category term='application performance monitoring'/><category term='.NET 3.5'/><category term='Object'/><category term='Appdomains'/><category term='LINQ'/><category term='VS 2008'/><category term='CLI'/><category term='Visual Studio 9.0'/><category term='.Net 3.0'/><category term='X-copy deployment'/><category term='Clean HTML'/><category term='Sink providers'/><category term='boxing unboxing in .Net'/><category term='Managed'/><category term='Orcas'/><category term='garbage collector'/><category term='Reflection'/><category term='application performance management'/><category term='. net 2.0'/><category term='object destructor'/><category term='Attributes'/><category term='Type safe'/><category term='Anonymous functions in . Net framework 2.0'/><category term='Finalizers'/><category term='c# predicate'/><category term='Dot Net 3.0'/><category term='CTS'/><category term='GC'/><category term='value types'/><category term='Dynamic compilation'/><category term='reference types'/><category term='Formatters'/><category term='WPF'/><category term='Serialization'/><title type='text'>. Net Framework Cornucopia ....</title><subtitle type='html'>The one shot answer for your programming queries &amp;amp; concepts about Microsoft . Net Framework technology</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-5089853869037158682</id><published>2010-09-08T13:07:00.001-05:00</published><updated>2010-10-01T14:00:22.768-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Export to Word'/><title type='text'>Export to MS word document from ASP .net</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt; line-height: 13px;"&gt;The below C# .Net code will export the data in the data table Dt_Export to an MS word format document. This will be needed in many of the Asp.net application.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt; line-height: 13px;"&gt;Before using this code. Make a template in word, Then save it as Word XML document (File Version 2003 ). Now open it with Notepad or an HTML / XML editor Insert a {0} symbol at the place where you would like the data to be appeared, Now when you do the String.Format {0} will be replace with the required data in the tabular format. This&amp;nbsp;uses XML word format&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt; line-height: 13px;"&gt;System.Text.&lt;span style="color: teal;"&gt;StringBuilder&lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Row_Template =&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;System.Text.&lt;span style="color: teal;"&gt;StringBuilder&lt;/span&gt;();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;Row_Template.Append(&lt;span style="color: maroon;"&gt;"&lt;w:tr&gt;&lt;w:tc&gt;&lt;w:tcpr&gt;&lt;w:tcw w:type="dxa" w:w="2323"&gt;&lt;/w:tcw&gt;&lt;w:p&gt;&lt;w:ppr&gt;&lt;w:jc w:val="center"&gt;"&lt;/w:jc&gt;&lt;/w:ppr&gt;&lt;/w:p&gt;&lt;/w:tcpr&gt;&lt;/w:tc&gt;&lt;/w:tr&gt;&lt;/span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;Row_Template.Append(&lt;span style="color: maroon;"&gt;"&lt;w:r&gt;&lt;w:t&gt;{0}&lt;/w:t&gt;&lt;/w:r&gt;"&lt;/span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;Row_Template.Append(&lt;span style="color: maroon;"&gt;"&lt;w:tc&gt;&lt;w:tcpr&gt;&lt;w:tcw w:type="dxa" w:w="5387"&gt;&lt;/w:tcw&gt;&lt;w:p&gt;&lt;w:ppr&gt;&lt;w:jc w:val="center"&gt;&lt;/w:jc&gt;&lt;w:r&gt;&lt;w:t&gt;{1}&lt;/w:t&gt;&lt;/w:r&gt;&lt;/w:ppr&gt;&lt;/w:p&gt;"&lt;/w:tcpr&gt;&lt;/w:tc&gt;&lt;/span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;Row_Template.Append(&lt;span style="color: maroon;"&gt;"&lt;w:tc&gt;&lt;w:tcpr&gt;&lt;w:tcw w:type="dxa" w:w="2346"&gt;&lt;/w:tcw&gt;&lt;w:p&gt;&lt;w:ppr&gt;&lt;w:jc w:val="center"&gt;&lt;/w:jc&gt;&lt;w:r&gt;&lt;w:t&gt;{2}&lt;/w:t&gt;&lt;/w:r&gt;&lt;/w:ppr&gt;&lt;/w:p&gt;&lt;/w:tcpr&gt;"&lt;/w:tc&gt;&lt;/span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;foreach&lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;(&lt;span style="color: teal;"&gt;DataRow&lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;dr&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;in&lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Dt_Exprt.Rows)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;{&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Acct_NO = dr[0].ToString();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Vnd_Name = dr[1].ToString().Replace(&lt;span style="color: maroon;"&gt;"&amp;amp;"&lt;/span&gt;,&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon;"&gt;"&amp;amp;"&lt;/span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;LST_TRNSDT =&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal;"&gt;Convert&lt;/span&gt;.ToDateTime(dr[2]).ToString(&lt;span style="color: maroon;"&gt;"MM/dd/yyyy"&lt;/span&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;WordDoc_RowCollection +=&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;string&lt;/span&gt;.Format(Row_Template.ToString(), Acct_NO, Vnd_Name, LST_TRNSDT);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Response.Clear();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Response.ClearHeaders();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Response.Charset =&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon;"&gt;""&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;string&lt;/span&gt;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;attachment =&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon;"&gt;"attachment; filename=My Word doc.Doc"&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Response.ClearContent();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Response.AppendHeader(&lt;span style="color: maroon;"&gt;"content-disposition"&lt;/span&gt;, attachment);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Response.ContentType =&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon;"&gt;"application/vnd.ms-word"&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Response.BufferOutput =&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;false&lt;/span&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;//System.IO.StringWriter tw = new System.IO.StringWriter();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;//System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green;"&gt;//DG.RenderControl(hw);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Word_Doc =&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;string&lt;/span&gt;.Format(Word_Doc, WordDoc_RowCollection);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0in 0in 0pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Response.Write(Word_Doc);&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0in 0in 10pt;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;span style="font-family: 'Times New Roman',serif; font-size: 9pt; line-height: 13px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span class="Apple-converted-space"&gt;&amp;nbsp;&lt;/span&gt;Response.End();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="color: #888888; font-family: 'trebuchet ms',verdana,arial,tahoma; font-size: 14px; line-height: 17px; text-align: left;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-5089853869037158682?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/5089853869037158682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=5089853869037158682' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/5089853869037158682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/5089853869037158682'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2010/09/export-to-ms-word-document-from-asp-net.html' title='Export to MS word document from ASP .net'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-8325597651037701953</id><published>2010-09-08T12:44:00.003-05:00</published><updated>2010-09-08T13:05:29.002-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MSWORD to HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='Clean HTML'/><title type='text'>Converting from MS Word to HTML / XHML</title><content type='html'>&lt;style&gt;&lt;!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;}@font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;}.MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;}.MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;}@page Section1 {size:595.3pt 841.9pt; margin:72.0pt 28.3pt 72.0pt 42.55pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;}div.Section1 {page:Section1;}--&gt;&lt;/style&gt;  &lt;br /&gt;The below C# .net code helps you to clean your HTML which you may have copied from Microsoft word. This .Net code will remove the unwanted XML and other word specific symbols and gives you a clean and tidy HTML which you can then easily convert to XHTML. In short this C# code will help you to convert MS Word specific HTML document to HTML and there by XHTML&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: blue; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;static&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;string&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;CleanHtml(&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;string&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;html)&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;{&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="line-height: normal; margin: 0cm 0cm 0.0001pt 36pt; text-indent: -36pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;StringCollection&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;sc =&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;new&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;StringCollection&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;();&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;html =&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;Regex&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Replace(html,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;@"&amp;lt;(o:p|\/o:p)&amp;gt;"&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;""&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.IgnoreCase|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;html =&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;Regex&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Replace(html,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;@"\s*mso-[^:]+:[^;\x22]+;?"&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;""&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.IgnoreCase|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;html =&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;Regex&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Replace(html,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;@"\s*MARGIN-\w{3,6}:\s*0\w{2}\s*;?"&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;""&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.IgnoreCase|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;html =&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;Regex&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Replace(html,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;@"\s*MARGIN\s*:(\s*0\w{2}){3}\s*;?"&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;""&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.IgnoreCase|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;html =&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;Regex&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Replace(html,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;@"\s*TEXT-INDENT: 0.{2}\s*;"&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;""&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.IgnoreCase|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;html = html.Replace(&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;"&lt;br /&gt;"&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;"&lt;br /&gt;"&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;html = html.Replace(&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;"&amp;nbsp;"&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;"\t"&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;html = html.Replace(&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;"align=\"middle\""&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;"align=\"center\""&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;Application&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.DoEvents();&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;html =&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;Regex&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Replace(html,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;@"&amp;lt;\\?\?xml[^&amp;gt;]*&amp;gt;"&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;""&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.IgnoreCase|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;html =&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;Regex&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Replace(html,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;@"&amp;lt;\/?\w+:[^&amp;gt;]*&amp;gt;"&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;""&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.IgnoreCase|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: green; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;//html = Regex.Replace(html, @"&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;"$1"&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.IgnoreCase|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: green; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;html =&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;Regex&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Replace(html,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;@"--&amp;gt;\s*\r*( )"&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;"$1"&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.IgnoreCase|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: green; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"(&amp;lt;\w[^&amp;gt;]*style=)(')([^ |&amp;gt;]*)'"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"$1$3$5$7"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"(font-family:)\s*(\x22)([\w\s-]*)\s*(\x22)(,)\s*(\x22)([\w\s-]*)\s*(\x22)(,)\s*(\x22)([\w\s-]*)\s*(\x22)(,)\s*(\x22)([\w\s-]*)\s*(\x22)"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"$1$3$5$7$9$11$13$15"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"(font-family:)\s*(\x22)([\w\s-]*)\s*(\x22)(,)\s*(\x22)([\w\s-]*)\s*(\x22)(,)\s*(\x22)([\w\s-]*)\s*(\x22)"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"$1$3$5$7$9$11"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"(font-family:)\s*\x22([\w\s-]*)\s*\x22(,)\s*\x22([\w\s-]*)\s*\x22"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"$1$2$3$4"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"(font-family:)\s*(\x22)([\w\s-]*)\s*(\x22)"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"$1$3"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Application&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.DoEvents();&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html = html.Replace(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"·"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"\xB7"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;(Quotes)&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"(&lt;img\s*[^&gt;]*)([^/]&amp;gt;)\s*()?"&lt;/img\s*[^&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"$1\"/&amp;gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;else&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;{&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"(&lt;img\s*[^&gt;]*)([^/]&amp;gt;)\s*()?"&lt;/img\s*[^&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"$1/&amp;gt;"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"(&lt;meta\s*[^&gt;]*)([^/]&amp;gt;)\s*()?"&lt;/meta\s*[^&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"Style\s*=\x22?\s*mso-?\w*\s*\x22?"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"&lt;font\s*[^&gt;]*&amp;gt;\s*&lt;/font\s*[^&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;"&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;""&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.IgnoreCase|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"&lt;span\s*[^&gt;]*&amp;gt;\s*&lt;/span\s*[^&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;"&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;""&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.IgnoreCase|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"&lt;span\s*[^&gt;]*&amp;gt;\s*&lt;/span\s*[^&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;"&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;""&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.IgnoreCase|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"&lt;span\s*[^&gt;]*&amp;gt;\s*&lt;/span\s*[^&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;"&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;""&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.IgnoreCase|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"&lt;span\s*[^&gt;]*&amp;gt;\s*&lt;/span\s*[^&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;"&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;""&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.IgnoreCase|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"&lt;td\s*[^&gt;]*&amp;gt;\s*"&lt;/td\s*[^&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"&lt;i\s*[^&gt;]*&amp;gt;\s*"&lt;/i\s*[^&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"&lt;b\s*[^&gt;]*&amp;gt;\s*"&lt;/b\s*[^&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"&lt;span\s*[^&gt;]*/&amp;gt;"&lt;/span\s*[^&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"&lt;font\s*[^&gt;]*/&amp;gt;"&lt;/font\s*[^&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"(style\s*=\s*\x22[^\x22]*)(\s*\x22\s*Style\s*=\s*\x22)"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"$1;"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"Class\s*=\x22?\s*\d*-\d*\s*\x22?"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;""&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.IgnoreCase|&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;RegexOptions&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Compiled);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html =&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;.Replace(html,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;@"(&lt;span\s*&gt;)([\s\w]*)(&lt;/span\s*&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;)"&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;"$2"&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;,&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.IgnoreCase|&lt;/span&gt;&lt;span style="color: teal; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;RegexOptions&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;.Compiled);&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html = html.Replace(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"®"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"®"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html = html.Replace(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"©"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"©"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html = html.Replace(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"™"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;"™"&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: normal; margin-bottom: 0.0001pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;html;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="line-height: 12.75pt;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;span style="font-size: small;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #888888; font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-8325597651037701953?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/8325597651037701953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=8325597651037701953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/8325597651037701953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/8325597651037701953'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2010/09/below-c.html' title='Converting from MS Word to HTML / XHML'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-5679450658731703309</id><published>2010-06-30T11:47:00.001-05:00</published><updated>2010-06-30T11:47:54.882-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Serialization'/><title type='text'>.Net Serialization Bug or design ?</title><content type='html'>Here in this post i am depicting the most common pattern in our software life, the singleton pattern. But there is another catch on how .Net is designed to handle this pattern. Below is the code for a typical single ton pattern.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;class Singleton&lt;br /&gt;{&lt;br /&gt;// Static members are lazily initialized.&lt;br /&gt;// .NET guarantees thread safety for static initialization&lt;br /&gt;private static readonly Singleton instance;&lt;br /&gt;// Note: Constructor is 'protected' but of course child objects can access&lt;br /&gt;protected Singleton()&lt;br /&gt;{ }&lt;br /&gt;public static Singleton Instance()&lt;br /&gt;{&lt;br /&gt;return instance;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;when we say singleton it should not create more than one instance at any point of time at any cost and thereby it should ensure a class has only one instance and provide a global point of access to it.&lt;br /&gt;&lt;br /&gt;From the above code it is obvious that no one can create an instance of this class because it is having a private/Protected constructor&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But any idea what will happen if you try to de-serialise an instance of this anywhere outside the class?&lt;br /&gt;&lt;br /&gt;..........&lt;br /&gt;&lt;br /&gt;...........&lt;br /&gt;&lt;br /&gt;Yes. In this scenario a new instance of the class would be created and the values from the incoming stream will be assigned to it.&lt;br /&gt;&lt;br /&gt;Seems disgusting? Confused? You think that the whole pattern and .Net has broken its rules. These are some of the scenarios which .Net considers as special situations. So .Net CLR is designed in such a way that it allows only the serialising engine to create an instance of this class. And you should take care of this condition separately. Say, the serialised singleton object should always get saved to the same particular location. Or you’ll end up in n number of instance for a singleton object. J&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-5679450658731703309?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/5679450658731703309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=5679450658731703309' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/5679450658731703309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/5679450658731703309'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2010/06/net-serialisation-bug-or-design.html' title='.Net Serialization Bug or design ?'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-2327077688511354001</id><published>2010-06-03T22:44:00.000-05:00</published><updated>2010-06-03T22:44:33.225-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dynamic Webservice Invoke'/><category scheme='http://www.blogger.com/atom/ns#' term='Dynamic compilation'/><category scheme='http://www.blogger.com/atom/ns#' term='Reflection'/><title type='text'>Dynamic Webservice Invoke</title><content type='html'>Recently in one of the projects which i am working i came into such a situation in which i need to read a number of web service URL’s, then dynamically call a particular method in it. First i thought of going with reflection alone but further analysis led me to more in depths of reflection which includes a bit of dynamic compilation thereby to create a “webproxy” like stuff at runtime. Thus we can get the actual metadata of the target type using which we can invoke the required method. Here we might need the type definition of the method and return parameter too (if any).&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Luckily i just had a common return type which i don’t have to worry too much about. Now that we decided to go with dynamic compilation in .Net Clr and reflection we need to start with a ServiceDescription class to which we can assign a stream which will in turn read the required data from a WSDL URL, a ServiceDescriptionImporter class to import it. Now we need to add the necessary references and do the compilation as required.&lt;br /&gt;&lt;br /&gt;Below is just the main part of the code for dynamic compilation in C#&lt;br /&gt;&lt;br /&gt;         &lt;br /&gt;ServiceDescription description = ServiceDescription.Read(stream);&lt;br /&gt;ServiceDescriptionImporter imp = new ServiceDescriptionImporter();&lt;br /&gt;imp.ProtocolName = "Soap"; // Use SOAP&lt;br /&gt;imp.AddServiceDescription(description, null, null);&lt;br /&gt;&lt;br /&gt;CodeNamespace namspace = new CodeNamespace();&lt;br /&gt;CodeCompileUnit unt = new CodeCompileUnit();&lt;br /&gt;unt.Namespaces.Add(namspace);&lt;br /&gt;ServiceDescriptionImportWarnings warning = imp.Import(namspace, unt);&lt;br /&gt;if (warning == 0)&lt;br /&gt;{&lt;br /&gt;CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");&lt;br /&gt;string[] assemblyReferences = new string[2] { "System.Web.Services.dll", "System.Xml.dll" };&lt;br /&gt;CompilerParameters parms = new CompilerParameters(assemblyReferences);&lt;br /&gt;CompilerResults results = provider.CompileAssemblyFromDom(parms, unt);&lt;br /&gt;object o = results.CompiledAssembly.CreateInstance("MyService");&lt;br /&gt;Type t = o.GetType();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And now we can dynamically invoke webservice method with the following code&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;t.InvokeMember("MyParam", System.Reflection.BindingFlags.InvokeMethod, null, o, null);&lt;br /&gt;&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-2327077688511354001?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/2327077688511354001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=2327077688511354001' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/2327077688511354001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/2327077688511354001'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2010/06/dynamic-webservice-invoke.html' title='Dynamic Webservice Invoke'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-5260594283138486906</id><published>2007-12-13T22:32:00.000-06:00</published><updated>2007-12-14T01:03:43.603-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Application Security'/><title type='text'>Code access security in .Net (CAS)</title><content type='html'>&lt;div align="justify"&gt;Code access security in .net (CAS) is a better way of implementing application security by controlling authorization to a particular code part of an assembly there by preventing the execution of unauthorized code from unknown origins. You can do authorization for most of the resource like which you do in RBS (Role based security). But more than a role based security; it is based up on controlling what rights a particular code chunk is having. Like whether it can make an HTTP request, whether it should allow or deny IO access etc. in short CAS assigns permission to a code or code group rather than a role or a name. And mostly it will not consider any ACL (Access control list) parameter during its decision.&lt;br /&gt;&lt;br /&gt;CAS uses assembly’s evidence to do or make its decision. Evidence tell us the exact identity of the assembly, it’s originating zone, which code group it belongs to etc. each default code group will be having some permission set. We can change these setting either through configuration wizard present in the control panel or through declarative programming which uses &lt;a href="http://dotnetscoups.blogspot.com/2007/12/attributes-in-net.html"&gt;attributes in .net&lt;/a&gt; to specify the security permissions it requires. So each time when a .net type is loaded, CLR performs a Code Access Security (CAS) check&lt;br /&gt;&lt;br /&gt;CAS is applied to a code mainly by configuring security policy. By default there are 3 security policy levels &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;These are :&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;strong&gt;Enterprise Level&lt;/strong&gt; – This is used for setting policy for an entire enterprise&lt;br /&gt;&lt;strong&gt;Machine Level&lt;/strong&gt; – For setting machine level policies&lt;br /&gt;&lt;strong&gt;User Level&lt;/strong&gt; – For setting policy at user level in a machine&lt;br /&gt;&lt;br /&gt;Under each policy level there will be code groups which are then configured to grant some permission sets. For a Default configuration Both enterprise and user will be given full trust and Machine level will be having various code groups which will be configured for Local, intranet, internet, restricted and trusted zones. Later you can configure this according to your need. &lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;So a user can control and decide to trust all assemblies published by a particular publisher like Microsoft or not to trust any assemblies downloaded from the Internet etc…&lt;br /&gt;&lt;br /&gt;Console commands like Caspol.exe can also be used to control these permissions. Use a command line argument (- ?) to get help on this tool&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-5260594283138486906?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/5260594283138486906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=5260594283138486906' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/5260594283138486906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/5260594283138486906'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/12/code-access-security-in-net-cas.html' title='Code access security in .Net (CAS)'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-3139083107706161217</id><published>2007-12-13T02:41:00.000-06:00</published><updated>2007-12-13T02:45:59.196-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C# Best practices'/><title type='text'>The myth in Exception Handling</title><content type='html'>&lt;div align="justify"&gt; Here I would like to explain a bit about one of the best practices in application error handling or exception handling in C#. Normally an exception is raised when a runtime error or an unexpected condition is incurred. So, how to deal with this kind of situations? Whether to trap it in each and every situation (method) you handle? What is the need and use of different exception types?&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;The answer is, you should trap an exception (By writing the try… catch block) only if you are expecting some particular type of exception for which you know the reason. So that you can rectify and come out of the situation which causing the exception&lt;br /&gt; The other situation is like you have to add some more information to the exception object or you want to wrap the exception caused with some another type and re-throw a different kind of exception.&lt;br /&gt;&lt;br /&gt;Don’t ever try to simply catch the exceptions about which you don’t know anything or want to do nothing, but just a re-throw.&lt;br /&gt;&lt;br /&gt;Always try to use a much similar or exact exception type which you are expecting and try to stop using the base “&lt;em&gt;Exception&lt;/em&gt;” class in each and every situation. For instance if you use &lt;em&gt;SQLexception&lt;/em&gt; to catch errors while interacting with the database, it can provide you more properties like SQL error code etc which will help you to get more idea about the situation which has caused the exception&lt;br /&gt;&lt;br /&gt;In many place we see code like this.&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;Catch&lt;/span&gt;(&lt;span style="color:#33cc00;"&gt;Exception&lt;/span&gt; ex)&lt;br /&gt;{&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;    throw&lt;/span&gt; ex;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Here the developer’s intention is just to re-throw the exception. But in most of the situations CLR think that the developer is doing a manual exception throw and it will start building the stack trace from this point, As a result when we see the error page’s stack trace we will not be able to find the exact place or line which caused the actual error, since stack trace will be pointing to the line containing “&lt;em&gt;throw ex&lt;/em&gt;” statement.&lt;br /&gt; So better is to avoid this type of coding in future or use just “&lt;em&gt;throw&lt;/em&gt;” instead of “&lt;em&gt;throw ex&lt;/em&gt;” which will re-throws the exception already available in the context and thus the original stack trace information will be maintained &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-3139083107706161217?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/3139083107706161217/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=3139083107706161217' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/3139083107706161217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/3139083107706161217'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/12/myth-in-exception-handling.html' title='The myth in Exception Handling'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-2995975717598620751</id><published>2007-12-11T23:53:00.000-06:00</published><updated>2007-12-12T00:10:35.015-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Custom attributes'/><category scheme='http://www.blogger.com/atom/ns#' term='Attributes'/><title type='text'>Attributes in .Net</title><content type='html'>&lt;div align="justify"&gt;    So what is a c# attribute or what is an attribute in .Net?   Yes, this is one of the main facilities available in .Net which paves the way to declarative programming. When we say declarative, it is when you use data rather than write source code to instruct your application or component to do something like how to behave in a situation or what characteristic these object (.&lt;em&gt;net data type&lt;/em&gt;) posses etc&lt;br /&gt;&lt;br /&gt;Attributes defines or demands some particular characteristics of a .Net class. If you declare an attribute on a class, it is like either notifying or demanding the CLR that this class needs to be treated in some particular manner or that class is having some particular characteristic&lt;br /&gt;&lt;br /&gt;For e.g.:-&lt;br /&gt;Applying the &lt;strong&gt;[Serializable]&lt;/strong&gt; attribute to a class informs the execution runtime that an instance's fields can be serialized and desterilized&lt;br /&gt;&lt;br /&gt;Applying the &lt;strong&gt;[DllImport] &lt;/strong&gt;attribute to a method notifies the CLR that the implementation of the method is actually in unmanaged code contained in the specified DLL.&lt;br /&gt;Conversely&lt;br /&gt;&lt;br /&gt;Applying the &lt;strong&gt;[AssemblyVersion]&lt;/strong&gt; attribute to an assembly sets the version number of the assembly which is just a characteristic property used for identification&lt;br /&gt;&lt;br /&gt;These attributes are recorded in that particula .net type’s metadata table. This extensible metadata information can be queried at run time to dynamically alter the way code executes&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;There are so many such in-built attributes available in .Net. All of them derives or inherits from &lt;em&gt;System.attribute&lt;/em&gt;. This helps us in building custom attributes. We can make a class inherit from &lt;em&gt;System.attribute&lt;/em&gt; and define our own attribute rules or behaviors&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-2995975717598620751?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/2995975717598620751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=2995975717598620751' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/2995975717598620751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/2995975717598620751'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/12/attributes-in-net.html' title='Attributes in .Net'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-1776107802862430940</id><published>2007-11-06T06:51:00.002-06:00</published><updated>2010-02-09T11:16:08.351-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='List.FindAll .Net C#'/><category scheme='http://www.blogger.com/atom/ns#' term='list find'/><title type='text'>Code for List.Find in . Net Framework 2.0</title><content type='html'>&lt;p align="justify"&gt;In one of my project I was in need of the List.FindAll method in . Net 2.0. I was unable to find any useful enough details about this, even though I did a good amount of searching in &lt;a href="http://www.google.com/"&gt;google&lt;/a&gt;. After a while, I ended up in the following code . My need was to find the exact object of my custom class in the collection given, matching my criteria. The List.FindAll accepts a &lt;a href="http://dotnetscoups.blogspot.com/2007/09/pedicate-and-anounymous-functions-in.html"&gt;predicate&lt;/a&gt; as parameter in which we can specify our own criteria. &lt;a href="http://dotnetscoups.blogspot.com/2007/09/pedicate-and-anounymous-functions-in.html"&gt;Predicate&lt;/a&gt; (&lt;a href="http://dotnetscoups.blogspot.com/2007/09/pedicate-and-anounymous-functions-in.html"&gt;System.predicate&lt;/a&gt;) is a new facility introduced in .Net 2.0 which enables us to mention our custom criteria.&lt;br /&gt;&lt;br /&gt;Here is the code:&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;public class&lt;/span&gt; MYList:&lt;span style="color:#009900;"&gt;List&lt;/span&gt;&lt;&lt;span style="color:#009900;"&gt;MyCustomCLASS&lt;/span&gt;&gt;&lt;br /&gt;{&lt;br /&gt;private int currentindex;&lt;br /&gt;&lt;span style="color:#009900;"&gt;/// &lt;summary&gt;&lt;br /&gt;/// Constructor&lt;br /&gt;/// &lt;/summary&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;public&lt;/span&gt; MYList ()&lt;br /&gt;{}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;public&lt;/span&gt; List&lt;&gt; GetItemsContaining(double text)&lt;br /&gt;{&lt;br /&gt;&lt;span style="color:#3333ff;"&gt;return this&lt;/span&gt;.FindAll(delegate(&lt;span style="color:#009900;"&gt;MyCustomCLASS &lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;myobj) {&lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; myobj.ItemId == text; });&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="color:#009900;"&gt;&lt;/span&gt;}&lt;br /&gt;&lt;br /&gt;Here the &lt;em&gt;GetItemsContaining&lt;/em&gt; uses the base class‘s &lt;em&gt;FindAll&lt;/em&gt; method to check and return a list of objects matching the criteria. We can also use List.Find (if you want a single object to be returned from the colllection) and List.ConvertAll (Which converts all objects in the collection to specified objects) in the same logic. &lt;/p&gt;&lt;p align="justify"&gt;And the &lt;em&gt;&lt;span style="color:#009900;"&gt;MyCustomCLASS&lt;/span&gt;&lt;/em&gt; is nothing but a normal class which contains an ItemId as one of it's property and ofcourse... ya it contaims some other properties too which holds the buisness specific data records&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-1776107802862430940?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/1776107802862430940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=1776107802862430940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/1776107802862430940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/1776107802862430940'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/11/code-for-listfind-in-net-framework-20.html' title='Code for List.Find in . Net Framework 2.0'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-2543165799383103070</id><published>2007-10-22T02:06:00.000-05:00</published><updated>2007-11-06T07:37:05.173-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application performance monitoring'/><category scheme='http://www.blogger.com/atom/ns#' term='. net 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='application performance management'/><category scheme='http://www.blogger.com/atom/ns#' term='memory management'/><category scheme='http://www.blogger.com/atom/ns#' term='Anonymous functions in . Net framework 2.0'/><title type='text'>WeakReference in .Net</title><content type='html'>&lt;div align="justify"&gt;There will be scenarios like you have to use a variable or object in .Net, which uses a good part of your computer memory. And then, if the user starts accessing a different part of your application, this object may no longer be necessary and is wasting valuable memory. At this time you can you can end the scope of this variable or delete it, but if the user happens to switch back to this part of the application again, then you'll need to reconstruct this object.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;This is the situation in which the &lt;em&gt;&lt;strong&gt;WeakReference&lt;/strong&gt;&lt;/em&gt; (&lt;em&gt;System.WeakReference&lt;/em&gt;) object in .Net helps us a lot. Also it helps in performance optimization of the application with good memory management.&lt;br /&gt;&lt;br /&gt;When the user switches away from the first part of the application, you can create a weak reference to this massive object and destroy all strong references. So that, if memory pressure is high &lt;a href="http://dotnetscoups.blogspot.com/2007/05/garbage-colector-gc.html"&gt;GC&lt;/a&gt; will reclaim the memory or else it won’t. You can create a week reference to an &lt;a href="http://dotnetscoups.blogspot.com/2007/06/sneak-look-into-object.html"&gt;object&lt;/a&gt; by passing that object as a parameter to the WeakReference’s constructor&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;em&gt;Eg:-&lt;br /&gt;WeakReference eg = New WeakReference (obj)&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;Where obj is your massive object&lt;br /&gt;&lt;br /&gt;When the user switches back to the first part of the application, the application can attempt to obtain a strong reference for the massive object (Obj) by accessing the eg’s Target property (WeakReference.Target). If successful, the application doesn't have to do the heavy job of recreating that heavy object again. Target is not a static property so you need to call that object Target property&lt;br /&gt;&lt;br /&gt;Eg:-&lt;br /&gt;Obj = eg.Target;&lt;br /&gt;&lt;br /&gt;The WeakReference type offers two constructors, this first one receives an object and the second done receives an extra parameter called TrackResurrection which is Boolean value. When this is true, reference is retained after the object's Finalize method has been called. This allows the object to be recreated, but the state of the object remains unpredictable. Use this with heavy objects only and remember that the object WeakReference is also a manage object and will having its own overheads&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-2543165799383103070?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/2543165799383103070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=2543165799383103070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/2543165799383103070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/2543165799383103070'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/10/weakreference-in-net.html' title='WeakReference in .Net'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-2032772640963744535</id><published>2007-09-26T02:31:00.000-05:00</published><updated>2008-01-30T00:56:43.895-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c# predicate'/><category scheme='http://www.blogger.com/atom/ns#' term='Anonymous functions in . Net framework 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Action delegate in C#. net 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Predicate in C#'/><title type='text'>Predicate and Anonymous functions in . Net</title><content type='html'>&lt;div align="justify"&gt;During the development of one of my project I realized that using predicates are much faster that manual iterations in collections and array list. Just I was wondering why... because any way libraries too have to iterate by each object. But the truth is that when we use predicate or the Action delegate, the is a huge amount of gain both in execution time and performance&lt;br /&gt;&lt;br /&gt;Basically a &lt;strong&gt;predicate in .Net&lt;/strong&gt; (System.Predicate) is just a delegate to a user defined method which return true of false base upon some criteria, thus helps in decision making to the call of certain functions like List.FindAll, List.Find etc.&lt;br /&gt;&lt;br /&gt;Where as &lt;strong&gt;Action delegate&lt;/strong&gt; (&lt;em&gt;System.Action&lt;/em&gt;) specifies a particular action or procedure which has to be applied on each element of the array List and obviously will not be just a Boolean condition determining function&lt;br /&gt;E.g.:- List.ConvertAll for converting each element in an array or List to some another type.&lt;br /&gt;List.Foreach etc….&lt;br /&gt;&lt;br /&gt;While Explaining about this there is one more concept or in other words .Net compatible language compiler magic mainly called as &lt;strong&gt;anonymous functions&lt;/strong&gt; in .Net&lt;br /&gt;&lt;br /&gt;This makes searching much easier and much cleaner and also some extensibility to the developer, so that he can implement his own decision while searching. &lt;/div&gt;&lt;div align="justify"&gt;This function may look like &lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="color:#3333ff;"&gt;delegate&lt;/span&gt; (&lt;span style="color:#3333ff;"&gt;string&lt;/span&gt; msg) { &lt;span style="color:#3333ff;"&gt;return&lt;/span&gt; “ &lt;span style="color:#663333;"&gt;I am anonymous&lt;/span&gt;” }&lt;br /&gt;&lt;br /&gt;As the function denotes the method is almost passed like inline and there is no name specified for this function. That means we will not be able to recall this method in another place unless if we don’t have the delegate reference. We used to directly assign this type functions to the required delegate reference&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-2032772640963744535?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/2032772640963744535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=2032772640963744535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/2032772640963744535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/2032772640963744535'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/09/pedicate-and-anounymous-functions-in.html' title='Predicate and Anonymous functions in . Net'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-4382608505739218018</id><published>2007-09-20T06:19:00.000-05:00</published><updated>2007-11-06T07:33:02.604-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application performance monitoring'/><category scheme='http://www.blogger.com/atom/ns#' term='boxing unboxing in .Net'/><category scheme='http://www.blogger.com/atom/ns#' term='application performance management'/><title type='text'>Boxing / Unboxing in .Net</title><content type='html'>&lt;div align="justify"&gt;Normally Reference &lt;a href="http://dotnetscoups.blogspot.com/2007/07/type-in-net-environment.html"&gt;types &lt;/a&gt;as the name indicates, are allocated into &lt;a href="http://dotnetscoups.blogspot.com/2007/05/since-this-is-first-post-to-my-blog-i.html"&gt;managed&lt;/a&gt; heap were as value types remain in stack and will not be neither &lt;a href="http://dotnetscoups.blogspot.com/2007/05/garbage-colector-gc.html"&gt;garbage collected&lt;/a&gt; nor referred to by pointers. But, in many cases, you must get a reference to an instance of a value type mainly because the calling method might be expecting a reference type, in many cases an “object” data type&lt;br /&gt;&lt;br /&gt;So in all these scenarios a value type should be converted to a reference type by using a process called boxing. The process goes like this.&lt;br /&gt;&lt;br /&gt;1. The amount of Memory needed by the value type is allocated from the managed heap, along with two more additional members which is needed for a reference type . That is &lt;a href="http://dotnetscoups.blogspot.com/2007/06/sneak-look-into-object.html"&gt;type object pointer and the sync block index&lt;/a&gt;.&lt;br /&gt;2. The value type's fields are copied to the newly allocated memory in heap.&lt;br /&gt;3. The address of the object is returned. This address is now a reference to an object&lt;br /&gt;&lt;br /&gt;And this returned address is passed to the calling function.&lt;br /&gt;&lt;br /&gt;Whole of the above process of boxing is automatically taken care and necessary code is generated by the compilers like CSC, (the C# compiler) when value types need to be boxed. But this will definitely degrade and hurt the performance of your code application and memory management, also a &lt;a href="http://dotnetscoups.blogspot.com/2007/05/garbage-colector-gc.html"&gt;garbage collection&lt;/a&gt; is needed to free the memory allocated while boxing. Better choice is to avoid writing code which will lead to boxing and use the &lt;a href="http://dotnetscoups.blogspot.com/2007/07/generics.html"&gt;Generic &lt;/a&gt;equivalents of objects and methods whenever it is possible, so that we can avoid boxing and get a compile time &lt;a href="http://dotnetscoups.blogspot.com/2007/07/type-safety-and-unsafe-code.html"&gt;type safe code&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Converting a boxed reference type to a value type is called unboxing. For this the values in the reference type need to be copied to the stack. First, CLR check whether the reference type which is going to be boxed is null or a different undesired &lt;a href="http://dotnetscoups.blogspot.com/2007/07/type-in-net-environment.html"&gt;type&lt;/a&gt; when compared to the destination value type. If yes then appropriate exceptions are thrown. Else the address of raw value type (&lt;em&gt;fields&lt;/em&gt;) contained within an object is obtained and the values of these fields are copied from the heap to the stack-based value type instance. &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;In .Net 2.0, CLR allows you to unbox a value type into a nullable version of the same value type.&lt;br /&gt;&lt;br /&gt;Unboxing is not the exact opposite of boxing. The unboxing operation is much less costly than boxing.&lt;br /&gt;&lt;br /&gt;so you should be aware of when the compiler generates code to perform the boxing /unboxing operations automatically and try to write code that minimizes this code generation, so that you can optimize your application performance . &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-4382608505739218018?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/4382608505739218018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=4382608505739218018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/4382608505739218018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/4382608505739218018'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/09/boxing-unboxing-in-net.html' title='Boxing / Unboxing in .Net'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-6726237016442034621</id><published>2007-09-17T03:41:00.000-05:00</published><updated>2007-11-06T07:35:46.949-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GC'/><category scheme='http://www.blogger.com/atom/ns#' term='garbage collector'/><category scheme='http://www.blogger.com/atom/ns#' term='memory management'/><title type='text'>Finalization / Freachable queue in .Net</title><content type='html'>&lt;div align="justify"&gt;When an application instantiates a new&lt;a href="http://dotnetscoups.blogspot.com/2007/06/sneak-look-into-object.html"&gt; object&lt;/a&gt;, if the object's &lt;a href="http://dotnetscoups.blogspot.com/2007/07/type-in-net-environment.html"&gt;type&lt;/a&gt; defines a Finalize method, a pointer to the object is placed on the finalization queue just before the type's instance constructor is called. The finalization queue is an internal data structure controlled by the garbage collector. Each entry in the list points to an object that should have its Finalize method called before the object's memory can be reclaimed.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://dotnetscoups.blogspot.com/2007/05/garbage-colector-gc.html"&gt;garbage collector &lt;/a&gt;scans the finalization queue looking for pointers to the objects which are identified as garbage. And when found, it is moved to freachable queue which is another data structure maintained by garbage collector's internal. A special high-priority CLR thread is dedicated to calling Finalize methods and CLR uses a high priority thread to finalize these objects which appear in this freachable queue. The object in Freachable queue is reachable only to this finalization thread. So When writing the finalization method it should concentrate on disposing the local and native objects and shouldn't execute any that makes any assumptions about the thread that's executing the code. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-6726237016442034621?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/6726237016442034621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=6726237016442034621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/6726237016442034621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/6726237016442034621'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/09/finalization-freachable-queue.html' title='Finalization / Freachable queue in .Net'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-4599705723596028539</id><published>2007-07-13T07:34:00.000-05:00</published><updated>2007-09-20T00:33:11.903-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Generics in .Net'/><category scheme='http://www.blogger.com/atom/ns#' term='Generics in C#'/><title type='text'>Generics in .Net</title><content type='html'>&lt;div align="justify"&gt;&lt;strong&gt;Generics&lt;/strong&gt; is another mechanism offered by the common language runtime (&lt;strong&gt;CLR&lt;/strong&gt;) and programming languages that provides one more form of &lt;strong&gt;code re-use&lt;/strong&gt;: algorithm re-use.&lt;br /&gt;Basically it is a &lt;strong&gt;template like algorithm&lt;/strong&gt;, procedure or object which doesn't specify what data type it operates on. And later on while instantiating or using this object or procedure we can pass in the actual type we need as type parameter in to this already defined chunk. This can be generically applied to objects of any type.This functionslity is almost similar to template classes in C++ and Generics in Java.&lt;br /&gt;&lt;br /&gt;We can use generics for both reference types as well as value types, but it does not allow the creation of generic enumerated types. Also the CLR allows the creation of generic interfaces and generic delegates.&lt;br /&gt;We can make a class generic by placing the &lt;t&gt;immediately after the class name and at this time the data type of &lt;t&gt;is unspecified. And here &lt;t&gt;is called as the &lt;strong&gt;type parameters&lt;/strong&gt;. It is possible to send more than one type parameter to a generic class.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;Generics provide the following big benefits to developers:&lt;br /&gt;&lt;br /&gt;• &lt;em&gt;Source code protection&lt;/em&gt; : &lt;/div&gt;&lt;div align="justify"&gt;The developer using a generic algorithm doesn't need to have&lt;br /&gt;access to the algorithm's source code. &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;• &lt;a href="http://dotnetscoups.blogspot.com/2007/07/type-safety-and-unsafe-code.html"&gt;&lt;em&gt;Type Safety&lt;/em&gt; &lt;/a&gt;:&lt;/div&gt;&lt;div align="justify"&gt;When a generic algorithm is used with a specific type, the compiler and the CLR understand this and ensure that only objects compatible with the specified data type are used with the algorithm. Attempting to use an object of an incompatible type will result in either a compiler error or a run-time exception being thrown. So for this we use generic constraints ,which says that if you want to use me, you have to be this type, inherit this type or implement this interface to call or instantiate this generic algorithm. We implement this using the where clause.&lt;br /&gt;&lt;br /&gt;• &lt;em&gt;Cleaner Code:&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;Since the compiler enforces type safety, fewer casts are required in your source code, meaning that your code is easier to write and maintain.&lt;br /&gt;&lt;br /&gt;• Better Performance:&lt;/div&gt;&lt;div align="justify"&gt;Before generics, the way to define a generalized algorithm was to define all of its members to work with the Object data type. If you wanted to use the algorithm with value type instances, the CLR had to box the value type instance prior to calling the members of the algorithm and this ignites frequent garbage collections.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-4599705723596028539?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/4599705723596028539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=4599705723596028539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/4599705723596028539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/4599705723596028539'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/07/generics.html' title='Generics in .Net'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-5206003759884545436</id><published>2007-07-12T04:09:00.000-05:00</published><updated>2007-07-12T04:16:49.647-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Type safe'/><category scheme='http://www.blogger.com/atom/ns#' term='unsafe'/><title type='text'>Type Safety and unsafe Code</title><content type='html'>Safe code is code that is verifiably safe. That is, runtime can verify and make sure that it is not referring to inappropriate memory or memory of the wrong type. If we want to work directly with memory addresses and can manipulate bytes at these addresses then we have to declare that code chunk as &lt;strong&gt;unsafe&lt;/strong&gt; using the &lt;strong&gt;unsafe&lt;/strong&gt; Keyword in C#. So that &lt;em&gt;CLR&lt;/em&gt; will not do any do any &lt;em&gt;extra verification&lt;/em&gt; on this code and it is really possible to verify this code by CLR even if it is required.&lt;br /&gt;&lt;br /&gt;Thus the unsafe just means that it is unverifiable by the runtime. And the normal managed code which is verifiable in every means is &lt;em&gt;called&lt;/em&gt; the &lt;strong&gt;Type Safe&lt;/strong&gt; code.&lt;br /&gt;&lt;br /&gt;All methods that contain unsafe code should be marked with the &lt;strong&gt;unsafe&lt;/strong&gt; keyword. In&lt;br /&gt;addition, the C# compiler requires you to compile the source code by using the &lt;strong&gt;/unsafe&lt;/strong&gt;&lt;br /&gt;compiler switch.&lt;br /&gt;&lt;br /&gt;When the JIT compiler attempts to compile an unsafe method, it checks to see if the assembly containing the method has been granted the &lt;strong&gt;System.Security.Permissions.Security-Permission&lt;/strong&gt; with the &lt;em&gt;System.Security.Permissions.SecurityPermission Flag's&lt;/em&gt;&lt;br /&gt;&lt;strong&gt;SkipVerification&lt;/strong&gt; flag set. If this flag is set, the JIT compiler will compile the unsafe code and allow it to execute. The CLR is trusting this code and is hoping the direct address and byte manipulations do not cause any harm. If the flag is not set, the JIT compiler throws either a &lt;em&gt;System.InvalidProgramException&lt;/em&gt; or a &lt;em&gt;System.Security.VerificationException&lt;/em&gt;, preventing the method from executing&lt;br /&gt;&lt;br /&gt;All Normal managed code are labeled as type safe by default because it will be using the .Net provided libraries and classes for accomplishing the task&lt;br /&gt;&lt;br /&gt;Microsoft supplies a utility called PEVerify.exe, which examines all of an assembly's methods&lt;br /&gt;and notifies you of any methods that contain unsafe code. This will let you know if there may be&lt;br /&gt;Problems running your application via the intranet or Internet&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-5206003759884545436?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/5206003759884545436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=5206003759884545436' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/5206003759884545436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/5206003759884545436'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/07/type-safety-and-unsafe-code.html' title='Type Safety and unsafe Code'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-6237886702405849497</id><published>2007-07-11T06:03:00.000-05:00</published><updated>2007-07-11T06:41:29.437-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CLI'/><category scheme='http://www.blogger.com/atom/ns#' term='CTS'/><title type='text'>Type in .NET environment</title><content type='html'>Type defines a particular structure in which contains some well known phrases like fields, Method, Property, Event. Etc. anything and everything in .Net world should be in the form of this type, so that any other .Net compliant language can understand, query and use these types very easily. And this is what the &lt;strong&gt;common type system&lt;/strong&gt; (&lt;strong&gt;CTS&lt;/strong&gt;) mean. &lt;strong&gt;CTS&lt;/strong&gt; is one of the standard among &lt;strong&gt;CLI,&lt;/strong&gt; &lt;strong&gt;common language infrastructure&lt;/strong&gt; which specify lots of other standards like file formats, metadata which are the trunk parts of the language specification&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-6237886702405849497?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/6237886702405849497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=6237886702405849497' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/6237886702405849497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/6237886702405849497'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/07/type-in-net-environment.html' title='Type in .NET environment'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-4863117076940453127</id><published>2007-06-20T02:25:00.000-05:00</published><updated>2007-06-20T07:13:04.571-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Object'/><title type='text'>A sneak look into Object</title><content type='html'>&lt;div align="justify"&gt;In .NET, each heap-allocated object consists of a 4 byte &lt;strong&gt;objectheader&lt;/strong&gt; and 4 byte pointer to a method table, may be called as &lt;strong&gt;MethodTablePointer&lt;/strong&gt; and contains the memory address to the type's method table. Basically, this pointer makes it possible to obtain the type information about any object in the heap as and when you call &lt;em&gt;System.Object’s GetType ()&lt;/em&gt; method. &lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;The 4 byte &lt;em&gt;objectheader&lt;/em&gt; provides five bit flags, one of which is reserved for the garbage collector to mark an object as &lt;strong&gt;reachable/unreachable&lt;/strong&gt; and whether to free or not free the space allocated by that object. The remaining bits refer to a 27 bit index called a &lt;strong&gt;syncindex &lt;/strong&gt;or &lt;strong&gt;SyncBlockIndex&lt;/strong&gt;, which may refer to another table. This index has multiple purposes: As implied by its name it is used for synchronization, whenever the "&lt;strong&gt;lock&lt;/strong&gt;" keyword is used. It is also used as the &lt;em&gt;default hash code&lt;/em&gt; for &lt;em&gt;Object.GetHashCode ().&lt;/em&gt; It does not provide the best distribution properties for a hash code, but it meets the minimum requirements for a hash code for reference equality. &lt;/div&gt;&lt;div align="justify"&gt; &lt;/div&gt;&lt;div align="justify"&gt;The &lt;em&gt;syncindex&lt;/em&gt; remains constant throughout the life of the object. But we cannot assure that the integer values from &lt;em&gt;Object.GetHashCode ()&lt;/em&gt; will be unique. The &lt;em&gt;string&lt;/em&gt; class overrides this method to take care of the object equality, that’s why the identical string objects are returning the same hash code. And also we are able to use the &lt;em&gt;EQUALS&lt;/em&gt; method to compare between two string objects. So whenever you are overriding the &lt;em&gt;EQUALS&lt;/em&gt; method you have to override the &lt;em&gt;GetHashCode ()&lt;/em&gt; also and vise versa in order to bring out a proper meaning while using the &lt;em&gt;EQUALS&lt;/em&gt; method.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;In future i think that i can find more about these things. so this is only an initial post&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-4863117076940453127?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/4863117076940453127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=4863117076940453127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/4863117076940453127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/4863117076940453127'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/06/sneak-look-into-object.html' title='A sneak look into Object'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-1424309569591060503</id><published>2007-06-07T01:15:00.000-05:00</published><updated>2008-01-18T06:51:09.136-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VS 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 9.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Orcas'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>LINQ</title><content type='html'>So what is LINQ ??. &lt;strong&gt;LINQ&lt;/strong&gt; stands for &lt;strong&gt;&lt;em&gt;L&lt;/em&gt;anguage &lt;em&gt;IN&lt;/em&gt;tegrated &lt;em&gt;Q&lt;/em&gt;ueries&lt;/strong&gt;. This is one of the important new feature which is going to get released with the next version of &lt;strong&gt;Visual Studio (9.0)&lt;/strong&gt; code-named '&lt;strong&gt;Orcas&lt;/strong&gt;'. To read more about LINQ visit the following links to read the article written by &lt;em&gt;Marius Bancila&lt;/em&gt; who is an MVP .&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeguru.com/csharp/csharp/net30/article.php/c13699/"&gt;Article 1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeguru.com/csharp/csharp/net30/article.php/c13715/"&gt;Article 2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeguru.com/csharp/csharp/net30/article.php/c13799/"&gt;Article 3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It’s seems interesting. Let’s wait and see what is going to be the actual chunk&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-1424309569591060503?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/1424309569591060503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=1424309569591060503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/1424309569591060503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/1424309569591060503'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/06/linq.html' title='LINQ'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-401871175576517338</id><published>2007-06-06T22:53:00.000-05:00</published><updated>2007-06-06T22:56:44.179-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WOW64'/><title type='text'>WOW 64 ???</title><content type='html'>This is a layer of code in 64-bit versions of Windows that allows a file with a PE32 (32bit) header along with x86 instructions to run under a 64-bit address space, there by providing backward compatibility. This technology even allows 32-bit applications with x 86 native codes in them to run on an Itanium machine, because theWoW64 technology can emulate the x86 instruction set; albeit with a significant performance cost.&lt;br /&gt;&lt;br /&gt;Basically&lt;br /&gt;WOW64 = Windows On Windows64&lt;br /&gt;&lt;br /&gt;In fact you can find a good indicator of this by looking in your WINDOWS directory where now you will not only find the misnamed SYSTEM32 directory (which holds the 64bit dll’s for the 64bit OS) but also the SYSWOW64 directory which holds 32bit versions of dll’s for the virtual 32bit OS. You can read more about this on the below URL&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/joshwil/archive/2004/03/11/88280.aspx"&gt;http://blogs.msdn.com/joshwil/archive/2004/03/11/88280.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-401871175576517338?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/401871175576517338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=401871175576517338' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/401871175576517338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/401871175576517338'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/06/wow-64.html' title='WOW 64 ???'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-6031573316449819103</id><published>2007-06-04T01:47:00.000-05:00</published><updated>2007-06-04T01:53:18.214-05:00</updated><title type='text'>A referencing problem</title><content type='html'>It’s possible that you can place any data type even though it is not advisable because “&lt;em&gt;struct&lt;/em&gt;” belongs to a value type. But the actual problem arises when we place a type like array or some thing as a buffer and call some unmanaged external API to fill it. In this case when a garbage collection occurs there is a chance that the memory of the buffer can get reallocated as a result of GC’s memory compaction process and thus a page fault will result when the API function try to access this buffer. A kind of work around can be done using the “Fixed” keyword which will pin that data type to memory. But this is not the exact one. For a long time I was searching for a solution and I came across a code snippet in one web site which is as follows&lt;br /&gt;&lt;br /&gt;&lt;em&gt;using System.Runtime.InteropServices;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;[StructLayout(LayoutKind.Explicit)]&lt;/em&gt;&lt;br /&gt;&lt;em&gt;struct tstruct&lt;/em&gt;&lt;br /&gt;&lt;em&gt;{&lt;/em&gt;&lt;br /&gt;&lt;em&gt;[FieldOffset(0)]&lt;/em&gt;&lt;br /&gt;&lt;em&gt;public byte service1;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;[FieldOffset(1)]&lt;/em&gt;&lt;br /&gt;&lt;em&gt;public byte service2;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;[FieldOffset(2)]&lt;/em&gt;&lt;br /&gt;&lt;em&gt;public byte data1;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;[FieldOffset(12)]&lt;/em&gt;&lt;br /&gt;&lt;em&gt;public byte data2;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;[FieldOffset(22)]&lt;/em&gt;&lt;br /&gt;&lt;em&gt;public byte max_data1;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;[FieldOffset(23)]&lt;/em&gt;&lt;br /&gt;&lt;em&gt;public byte max_data2;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;To access the data1/2 arrays,use:&lt;br /&gt;&lt;em&gt;tstruct t&lt;/em&gt;;&lt;br /&gt;...&lt;br /&gt;byte* b1=&amp;t.data1;&lt;br /&gt;byte* b2=&amp;t.data2;&lt;br /&gt;&lt;br /&gt;Then just access b1/2 like a normal array. The thing is that there is will be no index-checking or other thing done by CLR because it directly considers it as a perfect value type and will  get completely allocated into stack there by avoiding all operations of GC&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-6031573316449819103?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/6031573316449819103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=6031573316449819103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/6031573316449819103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/6031573316449819103'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/06/referencing-problem.html' title='A referencing problem'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-7240502762498593311</id><published>2007-06-01T01:24:00.001-05:00</published><updated>2010-05-28T09:08:51.187-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Serialization'/><category scheme='http://www.blogger.com/atom/ns#' term='Remoting Channels'/><category scheme='http://www.blogger.com/atom/ns#' term='Sink providers'/><category scheme='http://www.blogger.com/atom/ns#' term='Channel Sinks'/><category scheme='http://www.blogger.com/atom/ns#' term='Formatters'/><category scheme='http://www.blogger.com/atom/ns#' term='Appdomains'/><title type='text'>Remoting Architecture</title><content type='html'>Recently i happened to write a detailed Document on &lt;strong&gt;.Net Remoting&lt;/strong&gt;. I've tried to include almost all the the concepts about remoting and have posted in code project. It also contains a short description about Appdomains,Serialization,Remoting Channels,Channel Sinks ,Sink providers,Formatters etc. To read this article visit &lt;a href="http://www.codeproject.com/KB/IP/Remoting_Architecture.aspx"&gt;http://www.codeproject.com/KB/IP/Remoting_Architecture.aspx&lt;/a&gt; and don't forget to cast your vote there if you enjoy it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-7240502762498593311?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/7240502762498593311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=7240502762498593311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/7240502762498593311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/7240502762498593311'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/06/remoting-architecture.html' title='Remoting Architecture'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-7805823822524512298</id><published>2007-05-21T05:28:00.000-05:00</published><updated>2008-12-09T19:40:05.335-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Dot Net 3.0'/><category scheme='http://www.blogger.com/atom/ns#' term='.Net 3.0'/><title type='text'>WPF (Avalon)</title><content type='html'>So at last the Long awaited &lt;strong&gt;&lt;em&gt;WPF&lt;/em&gt;&lt;/strong&gt; is going to be launched along with &lt;strong&gt;&lt;em&gt;.Net 3.0.&lt;/em&gt;&lt;/strong&gt; The Microsoft &lt;strong&gt;&lt;em&gt;Windows Presentation Foundation&lt;/em&gt;&lt;/strong&gt; (formerly code named "&lt;strong&gt;&lt;em&gt;Avalon&lt;/em&gt;&lt;/strong&gt;") is built on the .NET Framework, provides new techniques for developing applications, and makes better use of current hardware and technologies&lt;br /&gt;&lt;br /&gt;The current Win32-based Windows UI graphics subsystem is aging and limited, and as a result, user interface development has been somewhat, well, constrained at best. While GDI+ allows arbitrary clip regions to be applied when drawing, WPF takes this feature even further: the opacity mask feature not only lets you clip output to any shape, but also &lt;em&gt;lets you modify the opacity of any arbitrary content&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;With Win32, and the associated GDI and GDI+ drawing APIs, each control in the UI owns its part of the window exclusively. Windows are carved up by the controls into a set of disjointed regions that are usually, but not necessarily, rectangular. If you pick any single pixel on a window, there will be exactly one control responsible for drawing that pixel.&lt;br /&gt;&lt;br /&gt;The problem with this approach is that it makes certain UI effects impossible. WPF breaks free from this limitation. The WPF graphics system offers a completely new programming style. With Win32-based UI technologies, if you want to draw customized graphics, you must write code that responds to repaint requests, drawing the details on demand. This code effectively paints directly to the screen. If that part of the screen becomes obscured by another window and then uncovered, Windows sends a message requesting that this be redrawn. If you want to change the appearance of your graphics, you need to instruct Windows to invalidate the relevant areas of the screen in order to initiate a repaint. Below images depicts this.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="left"&gt;&lt;span style="font-family:lucida grande;color:#000000;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5066962987435176706" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_NjwEE0a8KE4/RlF3_bwgMwI/AAAAAAAAAAs/wNOlgSWTekw/s320/Win32.GIF" border="0" /&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style="font-family:lucida grande;color:#000000;"&gt;&lt;p align="center"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;div align="center"&gt;Painting in Normal win32&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p align="left"&gt;&lt;span style="font-family:lucida grande;color:#000000;"&gt;&lt;img id="BLOGGER_PHOTO_ID_5066964082651837202" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_NjwEE0a8KE4/RlF4_LwgMxI/AAAAAAAAAA0/QzaxDIoXGPU/s320/WPF.GIF" border="0" /&gt;&lt;/p&gt;&lt;/span&gt;&lt;span style="font-family:lucida grande;color:#000000;"&gt;&lt;p align="left"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div align="center"&gt;Painting in WPF &lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;While WPF still supports this model, it offers a simpler alternative. In WPF, you can create objects that represent the drawing primitives you wish to use and add these to your UI and thus create a user interface element tree. You can use either &lt;strong&gt;&lt;em&gt;XAML mar&lt;/em&gt;&lt;/strong&gt;kup (&lt;em&gt;XAML is an XML-based language for building trees of .NET objects. It provides a compact and convenient way of creating WPF objects&lt;/em&gt;) or traditional application code to do this. &lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt;And they are rendered by WPF—&lt;strong&gt;&lt;em&gt;you do not need to write any code to handle repaint requests&lt;/em&gt;&lt;/strong&gt; as shown in the above figure. Moreover, when you change a property of such an object, such as the Width property of a Rectangle, the display is updated automatically. &lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;Thus &lt;strong&gt;&lt;em&gt;no single control or UI element has exclusive ownership&lt;/em&gt;&lt;/strong&gt; of any part of the window in a WPF application. You can create partially transparent UI elements, or controls that are not visually constrained to their logical rectangle. For example, it's possible for a control to cast a shadow that falls outside of its logical region.&lt;br /&gt;&lt;br /&gt;Because WPF composes all of the controls in the window as a single drawing, rather than segregating each control to its own region, it is easy to apply scaling or rotation transformations to the UI as a whole. Thus, since we can scale any WPF UI up or down, WPF applications are effectively resolution-independent.&lt;br /&gt;&lt;br /&gt;WPF provides built-in support for animation and video, allowing you to build dynamic UIs more easily.&lt;br /&gt;You can put a Media Element anywhere you might put a button or an ellipse. You can apply all the usual visual operations, such as scaling, rotation, or clipping. It's just a UI element that happens to show video clips. Also you can apply Rich text formatting to any of your control&lt;br /&gt;&lt;br /&gt;WPF also provides triggers which is a declarative mechanism that specifies how a control should respond to certain stimuli. Triggers can be declared inside either styles or templates. For example, you could use a trigger to indicate that buttons should always turn green when the mouse is over them&lt;br /&gt;&lt;br /&gt;WPF content model allows any content to be used liberally in a content placeholder. For example, the Button control doesn't require you to supply text—you can put anything you want in there. You could put a bitmap, a drawing, or even a layout panel containing several drawings, as shown in this code:&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;It's even technically possible to use a menu or a textbox as the content of a Button, although that is not a recommended design&lt;br /&gt;&lt;br /&gt;Most WPF controls are &lt;em&gt;lookless&lt;/em&gt; , meaning they just &lt;em&gt;provide behavior&lt;/em&gt;. &lt;strong&gt;&lt;em&gt;The appearance is supplied separately in the form of a template&lt;/em&gt;&lt;/strong&gt;. A control typically provides a built-in template so it has a default appearance. Better yet, it can supply several templates—perhaps one to match the XP Luna theme, another to blend in with Aero, and a third to match the classic Windows 2000 theme. However, the template that defines a control's default appearance can be replaced in order to change the look of the control.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;For more information click on this link&lt;/em&gt;:&lt;br /&gt;&lt;em&gt;&lt;a href="http://msdn2.microsoft.com/en-us/netframework/aa663321.aspx"&gt;http://msdn2.microsoft.com/en-us/netframework/aa663321.aspx&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-7805823822524512298?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/7805823822524512298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=7805823822524512298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/7805823822524512298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/7805823822524512298'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/05/windows-presentation-foundation-avalon.html' title='WPF (Avalon)'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_NjwEE0a8KE4/RlF3_bwgMwI/AAAAAAAAAAs/wNOlgSWTekw/s72-c/Win32.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-8441111057397551889</id><published>2007-05-21T03:12:00.000-05:00</published><updated>2007-11-06T07:36:14.750-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GC'/><category scheme='http://www.blogger.com/atom/ns#' term='object destructor'/><category scheme='http://www.blogger.com/atom/ns#' term='garbage collector'/><category scheme='http://www.blogger.com/atom/ns#' term='Dispose'/><category scheme='http://www.blogger.com/atom/ns#' term='memory management'/><category scheme='http://www.blogger.com/atom/ns#' term='Finalizers'/><category scheme='http://www.blogger.com/atom/ns#' term='destructor'/><title type='text'>The garbage collector (GC)</title><content type='html'>A &lt;strong&gt;&lt;em&gt;garbage collector&lt;/em&gt;&lt;/strong&gt; will finalize the objects in the memory heap which is marked as un reachable and their by freeing the allocated memory by that object. GC also performs memory compaction soon after its execution in order to prevent memory fragmentation. Frequent garbage collection could be detrimental to performance&lt;br /&gt;&lt;br /&gt;.NET uses a &lt;em&gt;&lt;strong&gt;three-generation approach&lt;/strong&gt;&lt;/em&gt; to collecting memory, based on the heuristic that newly allocated memory tends to be freed more frequently than older allocations, which tend to be more permanent. Gen 0 (Zero) is the youngest generation and, after a garbage collection, any survivors go on to Gen 1. Likewise, any survivors of a Gen 1 collection go on to Gen 2. Usually garbage collection will occur only on Gen 0, and only if after it has reached some limit. The cost of allocating memory on the heap under garbage collection is less than that under the C runtime heap allocator. Until memory is exhausted, the cost of allocating each new object is that of incrementing a pointer--which is close to the performance of advancing the stack pointer.&lt;br /&gt;&lt;br /&gt;One book by Jeffrey Richter that I have read &lt;strong&gt;&lt;em&gt;suggested theoretical limits&lt;/em&gt;&lt;/strong&gt; of 250Kb for Gen 0, 2Mb for Gen 1 and 10Mb for Gen 2. The thresholds are automatically adjusted dynamically according to actual program allocations. If very little memory is being freed in Gen 0 and survives to Gen 1, the threshold is expanded and like wise it is maintained.&lt;br /&gt;&lt;br /&gt;The Runtime calls GC when there is a high memory pressure and runtime is not able to find any exact place to allocate a new object or the applied threshold is reached. Normally the Gc is executed as a very low priority thread which will obviously get executed in the absence of other prior threads which can take over the priority.&lt;br /&gt;&lt;br /&gt;We can Explicitly call GC by a call to Gc.Collect() and optionally we can pass the generation number on which a garbage collection should occur.&lt;br /&gt;By the method GC.SuppressFinalize(object obj) we can requests that the system not call the finalizer for the specified object.&lt;br /&gt;GC.ReRegisterForFinalize(object obj) will requests that the system call the finalizer for the specified object, for which System.GC. SuppressFinalize(System.Object) has previously been called. Gc. WaitForPendingFinalizers() Suspends the current thread until the thread processing the queue of finalizers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-8441111057397551889?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/8441111057397551889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=8441111057397551889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/8441111057397551889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/8441111057397551889'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/05/garbage-colector-gc.html' title='The garbage collector (GC)'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-6033874090027037954</id><published>2007-05-17T05:31:00.000-05:00</published><updated>2007-07-16T01:37:03.690-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reference types'/><category scheme='http://www.blogger.com/atom/ns#' term='X-copy deployment'/><category scheme='http://www.blogger.com/atom/ns#' term='value types'/><category scheme='http://www.blogger.com/atom/ns#' term='Managed'/><category scheme='http://www.blogger.com/atom/ns#' term='Unmanaged'/><category scheme='http://www.blogger.com/atom/ns#' term='Appdomains'/><title type='text'></title><content type='html'>&lt;span style="font-family:times new roman;"&gt;Since this is the first post to my blog, I would like to go with a very basic concept of .NET. That is &lt;em&gt;&lt;strong&gt;managed and unmanaged&lt;/strong&gt;&lt;/em&gt;.&lt;br /&gt;Managed Code is the code generated by .NET compilers which will be in MSIL form. In other words &lt;strong&gt;&lt;em&gt;managed code&lt;/em&gt;&lt;/strong&gt; for which the &lt;em&gt;&lt;strong&gt;execution and management is done only by CLR&lt;/strong&gt;&lt;/em&gt; which can understand MSIL. And &lt;em&gt;&lt;strong&gt;unmanaged&lt;/strong&gt;&lt;/em&gt; is the code which is not under the control of CLR and will be mostly in the form of &lt;strong&gt;&lt;em&gt;normal machine code&lt;/em&gt;&lt;/strong&gt;.&lt;br /&gt;The IL is kept in a file called an &lt;strong&gt;&lt;em&gt;assembly&lt;/em&gt;&lt;/strong&gt;, along with metadata that describes the classes, methods, and attributes of the code you've created. This assembly is the single unit of deployment which we need to consider in the .NET world which helps us a lot with &lt;strong&gt;&lt;em&gt;X-copy deployment&lt;/em&gt;&lt;/strong&gt; and also it will have a have a strong name as identity which helps to get rid of that worst &lt;em&gt;&lt;strong&gt;DLL hell&lt;/strong&gt;&lt;/em&gt; mess. The CLR also JIT compiles the code to machine code at the same machine in which it’s going to execute their by producing suitable code for the machine the assembly is running on. In this way it utilizes the whole power and facility of instruction set provided in that machine.&lt;br /&gt;And the concept of &lt;strong&gt;&lt;em&gt;“Appdomains”&lt;/em&gt;&lt;/strong&gt; really makes it easy to manage the execution of assemblies and get rid of the whole over head of &lt;em&gt;&lt;strong&gt;Win32 process isolation and management&lt;/strong&gt;&lt;/em&gt;.&lt;br /&gt;The phrase native code is to describe the output of the JIT compiler, the machine code that actually runs in the runtime. It's managed, but it's not IL, it's machine code.&lt;br /&gt;The managed types will get allocated in to a memory heap which is internally managed by garbage collector. (&lt;em&gt;Normally reference types go to heap and value types uses stack and there so emerges the need of boxing and unboxing&lt;/em&gt;)&lt;br /&gt;There are restrictions on managed types: They can't use multiple inheritance or inherit from unmanaged types, they can't allow private access with the friend keyword and so on.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-6033874090027037954?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/6033874090027037954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=6033874090027037954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/6033874090027037954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/6033874090027037954'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/05/since-this-is-first-post-to-my-blog-i.html' title=''/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8998437849651081166.post-8301188324741008213</id><published>2007-04-26T23:26:00.000-05:00</published><updated>2007-04-26T23:27:13.787-05:00</updated><title type='text'>First Note</title><content type='html'>You Can  Expect some good Chunks here  sooon&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8998437849651081166-8301188324741008213?l=dotnetscoups.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetscoups.blogspot.com/feeds/8301188324741008213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8998437849651081166&amp;postID=8301188324741008213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/8301188324741008213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8998437849651081166/posts/default/8301188324741008213'/><link rel='alternate' type='text/html' href='http://dotnetscoups.blogspot.com/2007/04/first-note.html' title='First Note'/><author><name>Skpananghat</name><uri>http://www.blogger.com/profile/07346590863690977509</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
