<?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'><id>tag:blogger.com,1999:blog-1028236585843827010</id><updated>2010-03-10T09:00:58.607-05:00</updated><title type='text'>Technical Ramblings</title><subtitle type='html'></subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.shaune.net/blog/atom.xml'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-6505547739813705753</id><published>2010-03-10T09:00:00.001-05:00</published><updated>2010-03-10T09:00:58.662-05:00</updated><title type='text'>This blog has moved</title><content type='html'>&lt;br /&gt;       This blog is now located at http://shaunedonohue.blogspot.com/.&lt;br /&gt;       You will be automatically redirected in 30 seconds, or you may click &lt;a href='http://shaunedonohue.blogspot.com/'&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;       For feed subscribers, please update your feed subscriptions to&lt;br /&gt;       http://shaunedonohue.blogspot.com/feeds/posts/default.&lt;br /&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-6505547739813705753?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/6505547739813705753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=6505547739813705753' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/6505547739813705753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/6505547739813705753'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2010/03/this-blog-has-moved.html' title='This blog has moved'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-7192536851996585946</id><published>2010-01-15T11:15:00.005-05:00</published><updated>2010-01-15T11:50:03.740-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2007 Workflow feature'/><title type='text'>SharePoint 2007 Custom workflow failed to start.</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am doing some custom SharePoint 2007 Workflow development utilizing  &lt;a href="http://www.codeplex.com/wspbuilder"&gt;WSPBuilder&lt;/a&gt; and I had this one workflow that just would not run no matter what I did.  I disabled all the activities in it except a Workflow History logging activity but still the workflow would not start.  I am a little embarrassed to say this was driving me insane for the better part of a day.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;No matter what I did when I ran the workflow I would get &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;nobr&gt;1/15/2010 11:06 AM&lt;/nobr&gt; Error  &lt;table cellspacing="0" cellpadding="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="PADDING-RIGHT: 3px"&gt;&lt;img title="" height="12" alt="No presence information" src="http://dev-sps-01.development.dpsicorp.com/_layouts/images/blank.gif" width="12" border="0" name="imnmark" valign="middle" /&gt;&lt;/td&gt; &lt;td class="ms-vb" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 1px"&gt;&lt;a onclick="GoToLink(this);return false;" href="http://dev-sps-01.development.dpsicorp.com/del/_layouts/userdisp.aspx?ID=1073741823"&gt;System  Account&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; Trans failed to start.   &lt;nobr&gt;1/15/2010 11:06 AM&lt;/nobr&gt; Workflow Canceled  &lt;table cellspacing="0" cellpadding="0"&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td style="PADDING-RIGHT: 3px"&gt;&lt;img title="" height="12" alt="No presence information" src="http://dev-sps-01.development.dpsicorp.com/_layouts/images/blank.gif" width="12" border="0" name="imnmark" valign="middle" /&gt;&lt;/td&gt; &lt;td class="ms-vb" style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 1px"&gt;&lt;a onclick="GoToLink(this);return false;" href="http://dev-sps-01.development.dpsicorp.com/del/_layouts/userdisp.aspx?ID=1073741823"&gt;System  Account&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; Workflow Trans was canceled by System Account.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I searched through the SharePoint logs over and over again and all I was seeing was unable to load workflow assembly, but I knew it would load since I had other workflows in this library and they all ran no problem.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is the error message out of the log file, I hope you spot the problem:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Load Workflow Assembly: System.IO.FileLoadException: Could not load file or assembly 'com.XXXX.Sharepoint.Workflows\, Version\=1.0.0.0\, Culture\=neutral\, PublicKeyToken\=$PublicKeyToken$' or one of its dependencies. The given assembly name or codebase was invalid. (Exception from HRESULT: 0x80131047)  File name: 'com.XXXX.Sharepoint.Workflows\, Version\=1.0.0.0\, Culture\=neutral\, PublicKeyToken\=$PublicKeyToken$'     at System.Reflection.AssemblyName.nInit(Assembly&amp;amp; assembly, Boolean forIntrospection, Boolean raiseResolveEvent)     at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark&amp;amp; stackMark, Boolean forIntrospection)     at System.Reflection.Assembly.Load(String assemblyString)     at ...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Well that part I was not seeing was &lt;span class="Apple-style-span"  style=" ;font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;PublicKeyToken\=$PublicKeyToken&lt;span class="Apple-style-span"  style="font-size:16px;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;It turns out that when I created the feature using the WSPBuilder create SyncSharePointWorkflow option it must have had an error I did not notice and this error caused it not to add the PublicKeyToken to the elements.xml file.  Or maybe it never did and I just forgot to update this line.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#FF0000;"&gt;CodeBesideAssembly&lt;/span&gt;&lt;span class="Apple-style-span"  style="color:#3366FF;"&gt;="com.XXXX.Sharepoint.Workflows, Version=1.0.0.0, Culture=neutral, PublicKeyToken=&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#FF9900;"&gt;$PublicKeyToken$&lt;/span&gt;&lt;/b&gt;"&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway once I added the correct Public Key, retracted and redeployed the workflow, it ran fine.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hope this helps someone else save a day!!!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-7192536851996585946?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/7192536851996585946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=7192536851996585946' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/7192536851996585946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/7192536851996585946'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2010/01/sharepoint-2007-custom-workflow-failed.html' title='SharePoint 2007 Custom workflow failed to start.'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-2288605031696186238</id><published>2009-03-12T10:55:00.003-05:00</published><updated>2009-03-12T10:58:26.071-05:00</updated><title type='text'>Windows Media Center</title><content type='html'>I dont know how may of you out there are using Windows Media Center for your TV viewing needs, but I have to say &lt;a href="http://www.secondrun.tv/"&gt;http://www.secondrun.tv/&lt;/a&gt; is the best add-on that I have come across yet!&lt;br /&gt;I have completely dropped my Dish Network and almost exclusively use this to watch my favorite shows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-2288605031696186238?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/2288605031696186238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=2288605031696186238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/2288605031696186238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/2288605031696186238'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2009/03/windows-media-center.html' title='Windows Media Center'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-4352136001385704859</id><published>2009-02-13T16:31:00.004-05:00</published><updated>2009-02-18T11:48:00.786-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WWF'/><category scheme='http://www.blogger.com/atom/ns#' term='.net 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='Forcibly closed'/><title type='text'>The underlying connection was closed: A connection that was expected to be kept alive was closed by the server</title><content type='html'>Well the bad news is that this worked for some time but then started to not work again.  Looks like i am back to the drawing board.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ok it took me 2 days to track this down but I think I have solved it.&lt;br /&gt;&lt;br /&gt;I have 2 different .net 2.0 libraries in the same application that both access the same third-party Java web service. Oh by the way this worked no problem in .net 1.0&lt;br /&gt;&lt;br /&gt;Well this was throwing an System.Net.WebException "The underlying connection was closed:" randomly.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;InnerException: System.IO.IOException&lt;br /&gt;      Message="Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host."&lt;br /&gt;      Source="System"&lt;br /&gt;      StackTrace:&lt;br /&gt;           at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)&lt;br /&gt;           at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size)&lt;br /&gt;           at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead)&lt;br /&gt;      InnerException: System.Net.Sockets.SocketException&lt;br /&gt;           Message="An existing connection was forcibly closed by the remote host"&lt;br /&gt;           Source="System"&lt;br /&gt;           ErrorCode=10054&lt;br /&gt;           NativeErrorCode=10054&lt;br /&gt;           StackTrace:&lt;br /&gt;                at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)&lt;br /&gt;                at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I spent forever searching the net looking for a solution to this, with little to no success.&lt;br /&gt;Well I finally came across this &lt;a href="http://support.microsoft.com/default.aspx?scid=kb;EN-US;915599"&gt;link&lt;/a&gt;. To resolve this problem you need to disable the keep-alive feature.&lt;br /&gt;&lt;br /&gt;In the     .NET Framework, you need to set the &lt;b&gt;HttpWebRequest.KeepAlive&lt;/b&gt; property to FALSE.&lt;br /&gt;To do this I created a web service reference then modified the generated Reference.cs class and added&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;protected override System.Net.WebRequest  GetWebRequest(Uri uri)&lt;br /&gt;{&lt;br /&gt;           HttpWebRequest webRequest = (HttpWebRequest)base.GetWebRequest(uri);&lt;br /&gt;           webRequest.KeepAlive = false;&lt;br /&gt;           return webRequest;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;now I know this will probably add a little over-head to my application but so what it solved my devastating error :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-4352136001385704859?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/4352136001385704859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=4352136001385704859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/4352136001385704859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/4352136001385704859'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2009/02/underlying-connection-was-closed.html' title='The underlying connection was closed: A connection that was expected to be kept alive was closed by the server'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-8456465932244438474</id><published>2008-12-10T17:03:00.002-05:00</published><updated>2008-12-10T17:06:49.677-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DVR HTPC TV'/><title type='text'>My new HTPC</title><content type='html'>Ok I just created a new HTPC (Home Theater PC) and let me just say how the hell did I live with out this before. I actually was able to drop my Dish Network service since most of what I was watching is offered online.  &lt;br /&gt;When I get a chance I hope to list everything I went thru in creating it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-8456465932244438474?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/8456465932244438474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=8456465932244438474' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/8456465932244438474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/8456465932244438474'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2008/12/my-new-htpc.html' title='My new HTPC'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-2303107198162993728</id><published>2008-09-09T14:45:00.003-05:00</published><updated>2008-09-09T14:50:11.406-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='exception'/><title type='text'>.net Exception list</title><content type='html'>&lt;a href="http://www.codinghorror.com/blog/archives/000115.html"&gt;Jeff Atwood&lt;/a&gt; wrote a great little block of code to list all the exceptions in .net.  I just needed the most common ones so I posted them here.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;System.AppDomainUnloadedException&lt;br /&gt;System.ApplicationException&lt;br /&gt;System.ArgumentException&lt;br /&gt;System.ArgumentNullException&lt;br /&gt;System.ArgumentOutOfRangeException&lt;br /&gt;System.ArithmeticException&lt;br /&gt;System.ArrayTypeMismatchException&lt;br /&gt;System.BadImageFormatException&lt;br /&gt;System.CannotUnloadAppDomainException&lt;br /&gt;System.ComponentModel.Design.CheckoutException&lt;br /&gt;System.ComponentModel.Design.Serialization.CodeDomSerializerException&lt;br /&gt;System.ComponentModel.InvalidEnumArgumentException&lt;br /&gt;System.ComponentModel.LicenseException&lt;br /&gt;System.ComponentModel.WarningException&lt;br /&gt;System.ComponentModel.Win32Exception&lt;br /&gt;System.Configuration.ConfigurationException&lt;br /&gt;System.ContextMarshalException&lt;br /&gt;System.Data.ConstraintException&lt;br /&gt;System.Data.DataException&lt;br /&gt;System.Data.DBConcurrencyException&lt;br /&gt;System.Data.DeletedRowInaccessibleException&lt;br /&gt;System.Data.DuplicateNameException&lt;br /&gt;System.Data.EvaluateException&lt;br /&gt;System.Data.ExprException&lt;br /&gt;System.Data.InRowChangingEventException&lt;br /&gt;System.Data.InvalidConstraintException&lt;br /&gt;System.Data.InvalidExpressionException&lt;br /&gt;System.Data.MissingPrimaryKeyException&lt;br /&gt;System.Data.NoNullAllowedException&lt;br /&gt;System.Data.Odbc.OdbcException&lt;br /&gt;System.Data.OleDb.OleDbException&lt;br /&gt;System.Data.ReadOnlyException&lt;br /&gt;System.Data.RowNotInTableException&lt;br /&gt;System.Data.SqlClient._ValueException&lt;br /&gt;System.Data.SqlClient.SqlException&lt;br /&gt;System.Data.SqlTypes.SqlNullValueException&lt;br /&gt;System.Data.SqlTypes.SqlTruncateException&lt;br /&gt;System.Data.SqlTypes.SqlTypeException&lt;br /&gt;System.Data.StrongTypingException&lt;br /&gt;System.Data.SyntaxErrorException&lt;br /&gt;System.Data.TypedDataSetGeneratorException&lt;br /&gt;System.Data.VersionNotFoundException&lt;br /&gt;System.DivideByZeroException&lt;br /&gt;System.DllNotFoundException&lt;br /&gt;System.Drawing.Printing.InvalidPrinterException&lt;br /&gt;System.DuplicateWaitObjectException&lt;br /&gt;System.EntryPointNotFoundException&lt;br /&gt;System.Exception&lt;br /&gt;System.ExecutionEngineException&lt;br /&gt;System.FieldAccessException&lt;br /&gt;System.FormatException&lt;br /&gt;System.IndexOutOfRangeException&lt;br /&gt;System.InvalidCastException&lt;br /&gt;System.InvalidOperationException&lt;br /&gt;System.InvalidProgramException&lt;br /&gt;System.IO.DirectoryNotFoundException&lt;br /&gt;System.IO.EndOfStreamException&lt;br /&gt;System.IO.FileLoadException&lt;br /&gt;System.IO.FileNotFoundException&lt;br /&gt;System.IO.InternalBufferOverflowException&lt;br /&gt;System.IO.IOException&lt;br /&gt;System.IO.IsolatedStorage.IsolatedStorageException&lt;br /&gt;System.IO.PathTooLongException&lt;br /&gt;System.Management.ManagementException&lt;br /&gt;System.MemberAccessException&lt;br /&gt;System.Messaging.MessageQueueException&lt;br /&gt;System.MethodAccessException&lt;br /&gt;System.MissingFieldException&lt;br /&gt;System.MissingMemberException&lt;br /&gt;System.MissingMethodException&lt;br /&gt;System.MulticastNotSupportedException&lt;br /&gt;System.Net.CookieException&lt;br /&gt;System.Net.ProtocolViolationException&lt;br /&gt;System.Net.Sockets.SocketException&lt;br /&gt;System.Net.WebException&lt;br /&gt;System.NotFiniteNumberException&lt;br /&gt;System.NotImplementedException&lt;br /&gt;System.NotSupportedException&lt;br /&gt;System.NullReferenceException&lt;br /&gt;System.ObjectDisposedException&lt;br /&gt;System.OutOfMemoryException&lt;br /&gt;System.OverflowException&lt;br /&gt;System.PlatformNotSupportedException&lt;br /&gt;System.RankException&lt;br /&gt;System.Reflection.AmbiguousMatchException&lt;br /&gt;System.Reflection.CustomAttributeFormatException&lt;br /&gt;System.Reflection.InvalidFilterCriteriaException&lt;br /&gt;System.Reflection.ReflectionTypeLoadException&lt;br /&gt;System.Reflection.TargetException&lt;br /&gt;System.Reflection.TargetInvocationException&lt;br /&gt;System.Reflection.TargetParameterCountException&lt;br /&gt;System.Resources.MissingManifestResourceException&lt;br /&gt;System.Runtime.InteropServices.COMException&lt;br /&gt;System.Runtime.InteropServices.ExternalException&lt;br /&gt;System.Runtime.InteropServices.InvalidComObjectException&lt;br /&gt;System.Runtime.InteropServices.InvalidOleVariantTypeException&lt;br /&gt;System.Runtime.InteropServices.MarshalDirectiveException&lt;br /&gt;System.Runtime.InteropServices.SafeArrayRankMismatchException&lt;br /&gt;System.Runtime.InteropServices.SafeArrayTypeMismatchException&lt;br /&gt;System.Runtime.InteropServices.SEHException&lt;br /&gt;System.Runtime.Remoting.MetadataServices.SUDSGeneratorException&lt;br /&gt;System.Runtime.Remoting.MetadataServices.SUDSParserException&lt;br /&gt;System.Runtime.Remoting.RemotingException&lt;br /&gt;System.Runtime.Remoting.RemotingTimeoutException&lt;br /&gt;System.Runtime.Remoting.ServerException&lt;br /&gt;System.Runtime.Serialization.SerializationException&lt;br /&gt;System.Security.Cryptography.CryptographicException&lt;br /&gt;System.Security.Cryptography.CryptographicUnexpectedOperationException&lt;br /&gt;System.Security.Policy.PolicyException&lt;br /&gt;System.Security.SecurityException&lt;br /&gt;System.Security.VerificationException&lt;br /&gt;System.Security.XmlSyntaxException&lt;br /&gt;System.ServiceProcess.TimeoutException&lt;br /&gt;System.StackOverflowException&lt;br /&gt;System.SystemException&lt;br /&gt;System.Threading.SynchronizationLockException&lt;br /&gt;System.Threading.ThreadAbortException&lt;br /&gt;System.Threading.ThreadInterruptedException&lt;br /&gt;System.Threading.ThreadStateException&lt;br /&gt;System.Threading.ThreadStopException&lt;br /&gt;System.TypeInitializationException&lt;br /&gt;System.TypeLoadException&lt;br /&gt;System.TypeUnloadedException&lt;br /&gt;System.UnauthorizedAccessException&lt;br /&gt;System.UriFormatException&lt;br /&gt;System.Web.HttpApplication+CancelModuleException&lt;br /&gt;System.Web.HttpCompileException&lt;br /&gt;System.Web.HttpException&lt;br /&gt;System.Web.HttpParseException&lt;br /&gt;System.Web.HttpRequestValidationException&lt;br /&gt;System.Web.HttpUnhandledException&lt;br /&gt;System.Web.Services.Discovery.InvalidContentTypeException&lt;br /&gt;System.Web.Services.Discovery.InvalidDocumentContentsException&lt;br /&gt;System.Web.Services.Protocols.SoapException&lt;br /&gt;System.Web.Services.Protocols.SoapHeaderException&lt;br /&gt;System.Windows.Forms.AxHost+InvalidActiveXStateException&lt;br /&gt;System.Xml.Schema.XmlSchemaException&lt;br /&gt;System.Xml.XmlException&lt;br /&gt;System.Xml.XPath.XPathException&lt;br /&gt;System.Xml.Xsl.XsltCompileException&lt;br /&gt;System.Xml.Xsl.XsltException&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-2303107198162993728?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/2303107198162993728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=2303107198162993728' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/2303107198162993728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/2303107198162993728'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2008/09/net-exception-list.html' title='.net Exception list'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-99529116877486382</id><published>2008-07-09T12:54:00.004-05:00</published><updated>2008-07-09T14:18:24.750-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='function'/><category scheme='http://www.blogger.com/atom/ns#' term='footnote'/><category scheme='http://www.blogger.com/atom/ns#' term='xsl'/><title type='text'>Xsl function to testing if text only contains footnote marks</title><content type='html'>&lt;span style="font-size:100%;"&gt;The situation come up were I had a table of data and in on of the columns it had just footnote marks.  Well I had to merge these footnote marks over to the previous column, but in order to do this I needed to know if the only value in the cell were marks.  So I realize there are many ways to do this but I thought this was a cool way.   It reads in an external xml file with all the footnote refs I want to search for the ref value is a regex.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);font-size:78%;" &gt;&amp;lt;footnotes&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);;font-size:78%"&gt;  &amp;lt;footnote ref="\*"/&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);font-size:78%;" &gt;  &amp;lt;footnote ref="\+"/&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:78%;" &gt;  &amp;lt;footnote ref="†"/&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:78%;" &gt;  &amp;lt;footnote ref="\([a-z]\)"/&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);font-size:78%;" &gt;  &amp;lt;footnote ref="\([1-9]\)"/&gt;&lt;br /&gt;&amp;lt;/footnotes&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;I then concat the refs together with a | and do a replace on the string value.  If nothing is left then it is a footnote ref.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;&amp;lt;!-- Reads all possible footnote ref marks from a footnotes.xml file and if pText only contains footnote marks returns true otherwise false --&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;&amp;lt;xsl:function name="txt:IsFootnoteRef" as="xs:boolean"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;  &amp;lt;xsl:param name="pText" as="xs:string"/&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;  &amp;lt;xsl:variable name="vFootnotes" select=" document('./footnotes.xml')/footnotes/footnote"/&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;  &amp;lt;xsl:choose&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;     &amp;lt;xsl:when test="not($vFootnotes)"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;       &amp;lt;xsl:value-of select="false()"/&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;     &amp;lt;/xsl:when&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;     &amp;lt;xsl:when test="not($pText)"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;        &amp;lt;xsl:value-of select="false()"/&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;     &amp;lt;/xsl:when&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;     &amp;lt;xsl:when test="normalize-space($pText) = '' "&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;        &amp;lt;xsl:value-of select="false()"/&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;     &amp;lt;/xsl:when&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;     &amp;lt;xsl:otherwise&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;        &amp;lt;xsl:variable name="vFootnoteRef"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;           &amp;lt;xsl:value-of select="$vFootnotes/@ref" separator="|"/&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;        &amp;lt;/xsl:variable&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;  &amp;lt;xsl:choose&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;           &amp;lt;xsl:when test=" normalize-space(replace($pText, $vFootnoteRef , '' , 'i')) = '' "&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;              &amp;lt;xsl:value-of select="true()"/&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;           &amp;lt;/xsl:when&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;           &amp;lt;xsl:otherwise&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;              &amp;lt;xsl:value-of select="false()"/&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;           &amp;lt;/xsl:otherwise&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;        &amp;lt;/xsl:choose&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;     &amp;lt;/xsl:otherwise&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;  &amp;lt;/xsl:choose&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;&amp;lt;/xsl:function&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/1028236585843827010-99529116877486382?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/99529116877486382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=99529116877486382' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/99529116877486382'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/99529116877486382'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2008/07/xsl-function-to-testing-if-text-only.html' title='Xsl function to testing if text only contains footnote marks'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-530186016643170842</id><published>2008-03-04T13:38:00.004-05:00</published><updated>2008-03-04T14:41:27.742-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='compare'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='xsl'/><category scheme='http://www.blogger.com/atom/ns#' term='attributes'/><title type='text'>Comparing XML attributes with parents attributes</title><content type='html'>I had a need to test if all/most of the attributes of a child node were equal to its parent and strip out the child node if true.&lt;br /&gt;&lt;p&gt;My XML structure was basically:&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;PARAGRAPH&lt;/span&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;style&lt;/span&gt;&lt;span style="font-size:78%;"&gt;='heading1' &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;emphasis&lt;/span&gt;&lt;span style="font-size:78%;"&gt;='true' &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;font&lt;/span&gt;&lt;span style="font-size:78%;"&gt;='arial' &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;number&lt;/span&gt;&lt;span style="font-size:78%;"&gt;='30' indent=’10’&lt;/span&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style="text-indent: 0.5in;"&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;SPECIALTEXT &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;style&lt;/span&gt;&lt;span style="font-size:78%;"&gt;='heading1' &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;emphasis&lt;/span&gt;&lt;span style="font-size:78%;"&gt;='true' &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;font&lt;/span&gt;&lt;span style="font-size:78%;"&gt;='arial' &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;number&lt;/span&gt;&lt;span style="font-size:78%;"&gt;='31'&lt;/span&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:78%;"&gt;Helloworld&lt;br /&gt;&lt;/span&gt;&lt;p style="text-indent: 0.5in;"&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/SPECIALTEXT&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/PARAGRAPH&amp;gt;&lt;/span&gt;&lt;p&gt; &lt;/p&gt;Output needed to be:&lt;br /&gt;&lt;p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;PARAGRAPH&lt;/span&gt;&lt;span style="font-size:78%;"&gt; &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;style&lt;/span&gt;&lt;span style="font-size:78%;"&gt;='heading1' &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;emphasis&lt;/span&gt;&lt;span style="font-size:78%;"&gt;='true' &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;font&lt;/span&gt;&lt;span style="font-size:78%;"&gt;='arial' &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;number&lt;/span&gt;&lt;span style="font-size:78%;"&gt;='30'&lt;/span&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:78%;"&gt;Helloworld&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/PARAGRAPH&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;Now this only works on the first level after the PARAGRAPH but that’s all I needed, and it could be changed to do this recursively I guess.  Basically I am matching on any paragraph that contains a child element SPECIALTEXT with the same style attribute and calling the template CompareKeyAttributes.&lt;br /&gt;PARAGRAPH has more attributes than SPECIALTEXT in most cases so I compare only the ones that exist in SPECIALTEXT.&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;CompareKeyAttributes will return a string of all the&lt;br /&gt;attributes that don’t match so then I just check if  I care that the attribute&lt;br /&gt;is different and output accordingly.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="color: rgb(0, 100, 200);"&gt; &lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:template&lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt; match&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"PARAGRAPH[SPECIALTEXT[@Style=./@Style] ] "&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style=";font-size:78%;color:black;"  &gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:copy&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:apply-templates&lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt; select&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"@*"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:for-each&lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt; select&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;" child::*"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:variable&lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt; name&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"RESULT"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:call-template&lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt; name&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"CompareKeyAttributes"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:with-param&lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt; name&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"PARA" &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;select&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;".."&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:with-param&lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt; name&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"SPEC" &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;select&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"."&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/xsl:call-template&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/xsl:variable&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:choose&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:when&lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;test&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="font-size:78%;"&gt;"$RESULT='number' &lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:apply-templates&lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt; select&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"child::node()"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/xsl:when&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:otherwise&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:copy&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:apply-templates&lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt; select&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"@*|node()"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/xsl:copy&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/xsl:otherwise&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/xsl:choose&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/xsl:for-each&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/xsl:copy&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt; &lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:template&lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt; name&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"CompareKeyAttributes"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:param &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;name&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"PARA"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:param &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;name&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"SPEC"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:for-each&lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt; select&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"$SPEC/@*"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:variable&lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt; name&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"SPEC_ATT" &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;select&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"name()"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:variable&lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt; name&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"PARA_ATT" &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;select&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"$PARA/@*[name()= $SPEC_ATT]"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;/&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:choose&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:when &lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt;test&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"$PARA_ATT != ."&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;xsl:value-of&lt;/span&gt;&lt;span style="color: rgb(245, 132, 76);font-size:78%;" &gt; select&lt;/span&gt;&lt;span style="color: rgb(255, 128, 64);font-size:78%;" &gt;=&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);font-size:78%;" &gt;"name()"&lt;/span&gt;&lt;span style="color: rgb(0, 0, 150);font-size:78%;" &gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/xsl:when&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/xsl:choose&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/xsl:for-each&amp;gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p style=""&gt;&lt;span style="color: rgb(0, 100, 200);font-size:78%;" &gt;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;Let me know if you find this useful or have anyway to make it better.  Enjoy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-530186016643170842?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/530186016643170842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=530186016643170842' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/530186016643170842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/530186016643170842'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2008/03/comparing-xml-attributes-with-parents.html' title='Comparing XML attributes with parents attributes'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-3347057624627153310</id><published>2008-02-19T12:42:00.003-05:00</published><updated>2008-02-19T12:46:24.979-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MOSS upgrade SP1'/><title type='text'>Upgrading MOSS2007 to SP1</title><content type='html'>Jason had some good references for upgrading MOSS07 to SP1.  I have tried the upgrade on my development server with out any issues, but that is a single server env.  I will try the upgrade next week on QA servers but anyway here is the link &lt;a href="http://blogs.informationhub.com/jnadrowski/archive/2008/01/11/24045.aspx"&gt;http://blogs.informationhub.com/jnadrowski/archive/2008/01/11/24045.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-3347057624627153310?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/3347057624627153310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=3347057624627153310' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/3347057624627153310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/3347057624627153310'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2008/02/upgrading-moss2007-to-sp1.html' title='Upgrading MOSS2007 to SP1'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-4783726439204761643</id><published>2008-01-02T10:26:00.000-05:00</published><updated>2008-01-02T12:55:50.968-05:00</updated><title type='text'>Changing Virtual Hard Drive from IDE to SCSI</title><content type='html'>&lt;p&gt;Well I created  virtual server with a single Virtual IDE hard drive (VHD)  that ran out of space so I decided I was going to find a way to enlarge it and also switch to SCSI, because I read it was better performing.  Well I found alot of post about expanding the hard drive and I will post the details of that in another post.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Here I want to post the steps to switching to a SCSI drive.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open the Virtual Server Web Administration site and select configure your specific Virtual Machine  &lt;/li&gt;&lt;li&gt;In the Virtual Machine  Configuration windows, select Add SCSI Adapter ID 7  &lt;/li&gt;&lt;li&gt;Make sure you leave your boot disk as IDE disk  &lt;/li&gt;&lt;li&gt;Start your virtual machine  &lt;/li&gt;&lt;li&gt;You should see the following when the adapter is registered "Adaptec AIC-7870 PCI SCSI Adapter".  The virtual machine will now be able to boot with SCSI but this SCSI driver is very slow. &lt;/li&gt;&lt;li&gt;Right-click on the Adaptec driver and select Update Driver  &lt;/li&gt;&lt;li&gt;Choose the Install from a list or specific location and Have Disk options  &lt;/li&gt;&lt;li&gt;Browse to the C:\Program Files\Virtual Machine Additions folder and click OK  &lt;/li&gt;&lt;li&gt;The Microsoft Virtual Machine PCI SCSI Controller driver should now be installed  &lt;/li&gt;&lt;li&gt;Shutdown your virtual machine&lt;/li&gt;&lt;li&gt;In the Virtual Server Virtual Machine configuration select hard disks in the configuration section  &lt;/li&gt;&lt;li&gt;Change your boot hard disk to the SCSI ID 0  &lt;/li&gt;&lt;li&gt;Click OK  &lt;/li&gt;&lt;li&gt;Start the virtual machine&lt;/li&gt;&lt;/ol&gt;good luck and remember backups..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-4783726439204761643?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/4783726439204761643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=4783726439204761643' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/4783726439204761643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/4783726439204761643'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2008/01/changing-virtual-hard-drive-from-ide-to.html' title='Changing Virtual Hard Drive from IDE to SCSI'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-2357380039407544535</id><published>2007-10-30T09:13:00.000-05:00</published><updated>2007-10-30T09:58:07.394-05:00</updated><title type='text'>The Local Security Authority cannot be contacted</title><content type='html'>Where to start... I have setup a MOSS 2007 site running on Windows Server 2003 R2 with sp2 and all current updates. The site is setup to allow anonymous access as well as integrated Windows login.  Everything seems fine, no errors on the server all is running smoothly as long as you enter the correct password.  If you miss type your password, instead of prompting you 3 time like IIS should, it immediately displays "The Local Security Authority cannot be contacted". The only thing you can do from here is close your browser and start over again.  I have been trying to track down this problem for weeks now with little to no luck, I even wiped out the server and reinstalled all components to no avail.&lt;br /&gt;&lt;br /&gt;the web server does register the error:&lt;br /&gt;&lt;br /&gt;Event Type:    Failure Audit&lt;br /&gt;Event Source:    Security&lt;br /&gt;Event Category:    Logon/Logoff&lt;br /&gt;Event ID:    537&lt;br /&gt;Date:        10/30/2007&lt;br /&gt;Time:        10:53:03 AM&lt;br /&gt;User:        NT AUTHORITY\SYSTEM&lt;br /&gt;Computer:    XXXX-XXX&lt;br /&gt;Description:&lt;br /&gt;Logon Failure:&lt;br /&gt;     Reason:        An error occurred during logon&lt;br /&gt;     User Name:    XXXX@XXXX.XXX&lt;br /&gt;     Domain:       &lt;br /&gt;     Logon Type:    3&lt;br /&gt;     Logon Process:    NtLmSsp&lt;br /&gt;     Authentication Package:    NTLM&lt;br /&gt;     Workstation Name:    TELESTO&lt;br /&gt;     Status code:    0xC0000225&lt;br /&gt;     Substatus code:    0x0&lt;br /&gt;     Caller User Name:    -&lt;br /&gt;     Caller Domain:    -&lt;br /&gt;     Caller Logon ID:    -&lt;br /&gt;     Caller Process ID:    -&lt;br /&gt;     Transited Services:    -&lt;br /&gt;     Source Network Address:    192.###.##.###&lt;br /&gt;     Source Port:    2705&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.&lt;br /&gt;&lt;br /&gt;While I am looking into this more if anyone has any ideas PLEASE let me know.&lt;br /&gt;&lt;br /&gt;One more tidbit it does not have the same problem on all computers,  some workstations seem to work as expected.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-2357380039407544535?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/2357380039407544535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=2357380039407544535' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/2357380039407544535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/2357380039407544535'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2007/10/local-security-authority-cannot-be.html' title='The Local Security Authority cannot be contacted'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-954411204466428878</id><published>2007-10-03T13:02:00.000-05:00</published><updated>2007-10-03T13:15:09.270-05:00</updated><title type='text'>Recursively adding files to Visual Source Safe</title><content type='html'>Ok first off, I have to say I hate Visual Source Safe (VSS)!&lt;br /&gt;Actually hate isn't right I &lt;span style="font-weight: bold;"&gt;despise&lt;/span&gt; it, I &lt;span style="font-weight: bold;"&gt;loath&lt;/span&gt; it, it is the &lt;span style="font-weight: bold;"&gt;worst&lt;/span&gt; source control software I have ever used! Well I feel better getting that of my chest.&lt;br /&gt;&lt;br /&gt;Anyway back to the reason for this post.  If you need to recursively add files and folders to VSS you simple drag the folder from Windows Explorer and drop in in the correct location in your VSS project.&lt;br /&gt;You might think there is a menu option to do this but there isn't.  You may also think well if I hit insert I will be asked to recursively add, and you would be wrong.  Then you may think Let me look in the doc, maybe it is a command line option, good luck.&lt;br /&gt;&lt;br /&gt;Anyway I hope I am not the only id10t to forget how to do this and had to go hunting for it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-954411204466428878?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/954411204466428878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=954411204466428878' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/954411204466428878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/954411204466428878'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2007/10/recursively-adding-files-to-visual.html' title='Recursively adding files to Visual Source Safe'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-6354347477719360883</id><published>2007-09-07T09:36:00.000-05:00</published><updated>2007-09-07T13:32:40.812-05:00</updated><title type='text'>Redirecting DOS stdout stderr</title><content type='html'>&lt;p&gt;Every time I need to redirect DOS output I have to go look it up.  There is only so much space in my brain and unless I want to forget how to speak something had to go. Well I got tired of searching thru different sites to get what I wanted, so the last time I came across this info (this happens to be from &lt;a href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true" &gt;Microsoft&lt;/a&gt;) I posted it here.&lt;/p&gt;&lt;br /&gt;&lt;h2&gt;Using command redirection operators&lt;/h2&gt;&lt;p&gt;The following table lists operators that you can use to redirect command input and output streams.&lt;/p&gt; &lt;table cellspacing="0" cellpadding="0"&gt; &lt;thead&gt; &lt;tr valign="top"&gt; &lt;td&gt; Redirection operator&lt;/td&gt; &lt;td style="border-right: solid 1px #CCCCCC"&gt; Description&lt;/td&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr valign="top" class="record"&gt; &lt;td&gt; &lt;p&gt; &lt;b&gt;&amp;gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-right: solid 1px #CCCCCC"&gt; &lt;p&gt;Writes the command output to a file or a device, such as a printer, instead of the Command Prompt window.&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr valign="top"&gt; &lt;td&gt;&lt;p&gt;&lt;b&gt;&amp;lt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-right: solid 1px #CCCCCC"&gt; &lt;p&gt;Reads the command input from a file, instead of reading input from the keyboard.&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr valign="top"&gt; &lt;td&gt; &lt;p class="lastInCell"&gt; &lt;b&gt;&amp;gt;&amp;gt;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-right: solid 1px #CCCCCC"&gt; &lt;p class="lastInCell"&gt; Appends the command output to the end of a file without deleting the information that is already in the file.&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr valign="top"&gt; &lt;td&gt; &lt;p&gt;&lt;b&gt;&amp;gt;&amp;amp;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-right: solid 1px #CCCCCC"&gt; &lt;p&gt;Writes the output from one handle to the input of another handle.&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr valign="top" class="record"&gt; &lt;td&gt; &lt;p&gt; &lt;b&gt;&amp;lt;&amp;amp;&lt;/b&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-right: solid 1px #CCCCCC"&gt; &lt;p&gt; Reads the input from one handle and writes it to the output of another handle.&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr valign="top" class="evenRecord"&gt; &lt;td&gt; &lt;p class="lastInCell"&gt; &lt;b&gt;|&lt;/b&gt;&lt;/p&gt; &lt;/td&gt; &lt;td style="border-right: solid 1px #CCCCCC"&gt; &lt;p class="lastInCell"&gt; Reads the output from one command and writes it to the input of another command. Also known as a pipe. &lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;&lt;p&gt;By default, you send the command input (that is, the STDIN handle) from your keyboard to Cmd.exe, and then Cmd.exe sends the command output (that is, the STDOUT handle) to the Command Prompt window.&lt;/p&gt; &lt;p&gt; The following table lists the available handles.&lt;/p&gt; &lt;table cellspacing="0" class="dataTable" id="EMC" cellpadding="0"&gt; &lt;thead&gt; &lt;tr valign="top" class="stdHeader"&gt; &lt;td id="colEOC"&gt; Handle&lt;/td&gt; &lt;td id="colERC"&gt; Numeric equivalent of handle&lt;/td&gt; &lt;td id="colEUC" style="border-right: solid 1px #CCCCCC"&gt; Description&lt;/td&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr valign="top" class="record"&gt; &lt;td&gt; &lt;p class="lastInCell"&gt; STDIN&lt;/p&gt; &lt;/td&gt; &lt;td&gt; &lt;p class="lastInCell"&gt; 0&lt;/p&gt; &lt;/td&gt; &lt;td style="border-right: solid 1px #CCCCCC"&gt; &lt;p class="lastInCell"&gt; Keyboard input&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr valign="top" class="evenRecord"&gt; &lt;td&gt; &lt;p class="lastInCell"&gt; STDOUT&lt;/p&gt; &lt;/td&gt; &lt;td&gt; &lt;p class="lastInCell"&gt; 1&lt;/p&gt; &lt;/td&gt; &lt;td style="border-right: solid 1px #CCCCCC"&gt; &lt;p class="lastInCell"&gt; Output to the Command Prompt window&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr valign="top" class="record"&gt; &lt;td&gt; &lt;p class="lastInCell"&gt; STDERR&lt;/p&gt; &lt;/td&gt; &lt;td&gt; &lt;p&gt; 2&lt;/p&gt; &lt;/td&gt; &lt;td style="border-right: solid 1px #CCCCCC"&gt; &lt;p&gt; Error output to the Command Prompt window&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;tr valign="top"&gt; &lt;td&gt; &lt;p class="lastInCell"&gt; UNDEFINED&lt;/p&gt; &lt;/td&gt; &lt;td&gt; &lt;p class="lastInCell"&gt; 3-9&lt;/p&gt; &lt;/td&gt; &lt;td style="border-right: solid 1px #CCCCCC"&gt; &lt;p class="lastInCell"&gt; These handles are defined individually by the application and are specific to each tool.&lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt;&lt;p&gt;The numbers zero through nine (that is, 0-9) represent the first 10 handles. You can use Cmd.exe to run a program and redirect any of the first 10 handles for the program. To specify which handle you want to use, type the number of the handle before the redirection operator. If you do not define a handle, the default &amp;lt; redirection input operator is zero (0) and the default &amp;gt; redirection output operator is one (1). After you type the &amp;lt; or &amp;gt; operator, you must specify where you want to read or write the data. You can specify a file name or another existing handle.&lt;/p&gt; &lt;p&gt; To specify redirection to existing handles, use the ampersand (&amp;amp;) character followed by the handle number that you want to redirect (that is, &lt;b&gt;&amp;amp;&lt;/b&gt;&lt;i&gt;handle#&lt;/i&gt;). For example, the following command redirects handle 2 (that is, STDERR) into handle 1 (that is, STDOUT):&lt;/p&gt; &lt;p&gt; &lt;b&gt;1&amp;lt;&amp;amp;2&lt;/b&gt;&lt;/p&gt; &lt;h2&gt; Duplicating handles &lt;/h2&gt; &lt;p&gt; The &amp;amp; redirection operator duplicates output or input from one specified handle to another specified handle. For example, to send &lt;b&gt;dir&lt;/b&gt; output to File.txt and send the error output to File.txt, type:&lt;/p&gt; &lt;p&gt; &lt;b&gt;dir&amp;gt;c:\file.txt 2&amp;gt;&amp;amp;1&lt;/b&gt;&lt;/p&gt; &lt;p&gt; When you duplicate a handle, you duplicate all characteristics of the original occurrence of the handle. For example, if a handle has write-only access, all duplicates of that handle have write-only access. You cannot duplicate a handle with read-only access into a handle with write-only access.&lt;/p&gt; &lt;h2&gt; Redirecting command input (&amp;lt;)&lt;/h2&gt; &lt;p&gt; To redirect command input from the keyboard to a file or device, use the &amp;lt; operator. For example, to get the command input for the &lt;b&gt;sort&lt;/b&gt; command from File.txt: &lt;/p&gt; &lt;p&gt; &lt;b&gt;sort&amp;lt;file.txt &lt;/b&gt; &lt;/p&gt; &lt;p&gt; The contents of File.txt appear in the Command Prompt window as an alphabetized list.&lt;/p&gt; &lt;p&gt; The &amp;lt; operator opens the specified file name with read-only access. As a result, you cannot write to the file when you use this operator. For example, if you start a program with &amp;lt;&amp;amp;2, all attempts to read handle 0 fail because handle 2 is initially opened with write-only access.&lt;/p&gt;&lt;h2&gt; Redirecting command output (&amp;gt;)&lt;/h2&gt; &lt;p&gt; Almost all commands send output to your Command Prompt window. Even commands that send output to a drive or printer display messages and prompts in the Command Prompt window. &lt;/p&gt; &lt;p&gt; To redirect command output from the Command Prompt window to a file or device, use the &amp;gt; operator. You can use this operator with most commands. For example, to redirect &lt;b&gt;dir&lt;/b&gt; output to Dirlist.txt: &lt;/p&gt; &lt;p&gt; &lt;b&gt;dir&amp;gt;dirlist.txt &lt;/b&gt; &lt;/p&gt; &lt;p&gt; If Dirlist.txt does not exist, Cmd.exe creates it. If Dirlist.txt exists, Cmd.exe replaces the information in the file with the output from the &lt;b&gt;dir&lt;/b&gt; command. &lt;/p&gt; &lt;p&gt; To run the &lt;b&gt;netsh routing dump&lt;/b&gt; command and then send the command output to Route.cfg, type:&lt;/p&gt; &lt;p&gt; &lt;b&gt;netsh routing dump&lt;/b&gt;&amp;gt;&lt;b&gt;c:\route.cfg&lt;/b&gt;&lt;/p&gt; &lt;p&gt; The &amp;gt; operator opens the specified file with write-only access. As a result, you cannot read the file when you use this operator. For example, if you start a program with redirection &amp;gt;&amp;amp;0, all attempts to write handle 1 fail because handle 0 is initially opened with read-only access.&lt;/p&gt; &lt;h3&gt; &lt;/h3&gt; &lt;p&gt; &lt;b&gt;Note&lt;/b&gt;&lt;/p&gt; &lt;table cellspacing="0" cellpadding="0" border="0"&gt; &lt;tr&gt; &lt;td class="listBullet" valign="top"&gt; &amp;#8226;&lt;/td&gt; &lt;td class="listItem"&gt; &lt;p&gt; One is the default handle for the &amp;gt; redirection output operator. &lt;/p&gt; &lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;h2&gt; Using the &amp;lt;&amp;amp; operator to redirect input and duplicate&lt;/h2&gt; &lt;p&gt; To use the redirection input operator &amp;lt;&amp;amp;, the file you specify must already exist. If the input file exists, Cmd.exe opens it as read-only and sends the characters contained in the file as input to the command as if they were input from the keyboard. If you specify a handle, Cmd.exe duplicates the handle you specify onto the existing handle in the system.&lt;/p&gt; &lt;p&gt; For example, to open File.txt as input read to handle 0 (that is, STDIN), type:&lt;/p&gt; &lt;p&gt; &lt;b&gt;&amp;lt;&lt;/b&gt;&lt;b&gt;file.txt&lt;/b&gt;&lt;/p&gt; &lt;p&gt; To open File.txt, sort the contents and then send the output to the Command Prompt window (that is, STDOUT), type:&lt;/p&gt; &lt;p&gt; &lt;b&gt;sort&amp;lt;&lt;/b&gt;&lt;b&gt;file.txt&lt;/b&gt; &lt;/p&gt; &lt;p&gt; To find File.txt, and then redirect handle 1 (that is, STDOUT) and handle 2 (that is, STDERR) to the Search.txt, type:&lt;/p&gt; &lt;p&gt; &lt;b&gt;findfile file.txt&amp;gt;search.txt 2&amp;lt;&amp;amp;1&lt;/b&gt;&lt;/p&gt; &lt;p&gt; To duplicate a user-defined handle 3 as input read to handle 0 (that is, STDIN), type:&lt;/p&gt; &lt;p&gt; &lt;b&gt;&amp;lt;&amp;amp;3&lt;/b&gt;&lt;/p&gt; &lt;h2&gt; Using the &amp;gt;&amp;amp; operator to redirect output and duplicate&lt;/h2&gt; &lt;p&gt; If you redirect output to a file and you specify an existing file name, Cmd.exe opens the file as write-only and overwrites the file's contents. If you specify a handle, Cmd.exe duplicates the file onto the existing handle.&lt;/p&gt; &lt;p&gt; To duplicate a user-defined handle 3 into handle 1, type:&lt;/p&gt; &lt;p&gt; &lt;b&gt;&amp;gt;&amp;amp;3&lt;/b&gt;&lt;/p&gt; &lt;p&gt; To redirect all of the output, including handle 2 (that is, STDERR), from the &lt;b&gt;ipconfig&lt;/b&gt; command to handle 1 (that is, STDOUT), and then redirect the ouput to Output.log, type:&lt;/p&gt; &lt;p&gt; &lt;b&gt;ipconfig.exe&amp;gt;&amp;gt;output.log 2&amp;gt;&amp;amp;1&lt;/b&gt;&lt;/p&gt; &lt;h2&gt; Using the &amp;gt;&amp;gt; redirection operator to append output&lt;/h2&gt; &lt;p&gt; To add the output from a command to the end of a file without losing any of the information already in the file, use two consecutive greater than signs (that is, &amp;gt;&amp;gt;). For example, the following command appends the directory list produced by the &lt;b&gt;dir&lt;/b&gt; command to the Dirlist.txt file: &lt;/p&gt; &lt;p&gt; &lt;b&gt;dir&amp;gt;&amp;gt;dirlist.txt &lt;/b&gt; &lt;/p&gt; &lt;p&gt; To append the output of the &lt;b&gt;netstat&lt;/b&gt; command to the end of Tcpinfo.txt, type:&lt;/p&gt; &lt;p&gt; &lt;b&gt;netstat&amp;gt;&amp;gt;tcpinfo.txt&lt;/b&gt;&lt;/p&gt; &lt;h2&gt; Using the pipe operator (|) &lt;/h2&gt; &lt;p&gt; The pipe operator (|) takes the output (by default, STDOUT) of one command and directs it into the input (by default, STDIN) of another command. For example, the following command sorts a directory:&lt;/p&gt; &lt;p&gt; &lt;b&gt;dir | sort&lt;/b&gt;&lt;/p&gt; &lt;p&gt; In this example, both commands start simultaneously, but then the &lt;b&gt;sort&lt;/b&gt; command pauses until it receives the &lt;b&gt;dir&lt;/b&gt; command's output. The &lt;b&gt;sort&lt;/b&gt; command uses the &lt;b&gt;dir&lt;/b&gt; command's output as its input, and then sends its output to handle 1 (that is, STDOUT).&lt;/p&gt; &lt;h2&gt; Combining commands with redirection operators&lt;/h2&gt; &lt;p&gt; You can create custom commands by combining filter commands with other commands and file names. For example, you can use the following command to store the names of files that contain the string "LOG": &lt;/p&gt; &lt;p&gt; &lt;b&gt;dir /b | find "LOG" &amp;gt; loglist.txt &lt;/b&gt; &lt;/p&gt; &lt;p&gt; The &lt;b&gt;dir&lt;/b&gt; command's output is sent through the &lt;b&gt;find&lt;/b&gt; filter command. File names that contain the string "LOG" are stored as a list of file names (for example, NetshConfig.log, Logdat.svd, and Mylog.bat) in the Loglist.txt file. &lt;/p&gt; &lt;p&gt; To use more than one filter in the same command, separate the filters with a pipe (|). For example, the following command searches every directory on drive C:, finds the file names that include the string "Log", and then displays them in one Command Prompt window at a time:&lt;/p&gt; &lt;p&gt; &lt;b&gt;dir c:\ /s /b | find "LOG" | more &lt;/b&gt; &lt;/p&gt; &lt;p&gt; By using a pipe (|), you direct Cmd.exe to send the &lt;b&gt;dir&lt;/b&gt; command output through the &lt;b&gt;find&lt;/b&gt; filter command. The &lt;b&gt;find &lt;/b&gt;command selects only file names that contain the string "LOG." The &lt;b&gt;more &lt;/b&gt;command displays the file names that are selected by the &lt;b&gt;find &lt;/b&gt;command, one Command Prompt window at a time. For more information about filter commands, see &lt;a href="/resources/documentation/windows/xp/all/proddocs/en-us/filters.mspx"&gt;Using filters&lt;/a&gt;&lt;/p&gt; &lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-6354347477719360883?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/6354347477719360883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=6354347477719360883' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/6354347477719360883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/6354347477719360883'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2007/09/every-time-i-need-to-redirect-dos.html' title='Redirecting DOS stdout stderr'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-8688129567081679800</id><published>2007-08-22T12:41:00.000-05:00</published><updated>2007-08-22T13:07:01.721-05:00</updated><title type='text'>Upgrading GuidanceAutomationExtensions and GuidanceAutomationToolkit</title><content type='html'>Well silly me I went and checked if there was and update to the GuidanceAutomationExtensions and GuidanceAutomationToolkit and low and behold there was. &lt;br /&gt;So I downloaded the new installs and went about the task of installing the new versions.  Well they still don't have an upgrade path in the installation program so I had to go and uninstall the old products.   I had the "Web Service Software Factory - December 2006 (refresh)" installed as well so I started there.   As I expected this uninstall did not go well. &lt;br /&gt;After trying multiple time to uninstall (with reboots and everything else I could think of) I accidentally installed the "Web Client Software Factory - January 2007".  Well to my surprise the Web Service Factory now uninstalled.  Well I assumed that was the hard part, and boy was I wrong.  Next after uninstalling the accidental install of "Web Client Factory" I tried uninstalling "Enterprise Library April 2007".  This went as good as the Web Service Factory.  So I thought maybe something in my environment got corrupted and i repaired the GuidanceAutomationExtensions, Toolkit and Enterprise Library.  Still no joy. &lt;br /&gt;After doing a lot of googling I came across &lt;a href="http://savij.com/2007/05/24/uninstalling-guidance-automation-extentions/"&gt;Savij&lt;/a&gt;  blog.  His/Her problem wasn't the same as mine but the solution worked.&lt;br /&gt;I tracked down the file RecipeFramework.xml in Documents and Settings\All Users\Application Data\Microsoft\Recipe Framework folder.  I removed&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;GuidancePackage Name="StrongNamingGuidancePackage" Version="1.0" Caption="Strong Naming Guidance Package" Description="Guidance Package that simplifies strong-naming of multiple projects" Host="VisualStudio" Guid="2d4b99e7-3126-4452-8882-edfd826ea78a" ConfigurationFile="C:\Program Files\Microsoft Enterprise Library 3.0 - April 2007\Strong Naming Guidance Package\StrongNamingGuidancePackage.xml" Timestamp="633113779240000000"&lt;br /&gt;&lt;br /&gt;GuidancePackage Name="GuidanceBlockFactory" Version="1.0" Caption="Application Block Software Factory" Description="Application Block Software Factory" Host="VisualStudio" Guid="8643B63B-A2A4-4ccc-933E-379645A3002E" ConfigurationFile="C:\Program Files\Microsoft Enterprise Library 3.0 - April 2007\Application Block Software Factory\BlockFactory.xml" Timestamp="633113779040000000"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;from the GuidancePackages elements and tried to uninstall GuidanceAutomationExtensions again. &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Hooray&lt;/span&gt;, it worked. &lt;br /&gt;The only thing left now was to try the Enterprise Library and to my surprise that uninstalled successfully also.&lt;br /&gt;&lt;br /&gt;Now I am of to try and reinstall it all again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-8688129567081679800?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/8688129567081679800/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=8688129567081679800' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/8688129567081679800'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/8688129567081679800'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2007/08/upgrading-guidanceautomationextensions.html' title='Upgrading GuidanceAutomationExtensions and GuidanceAutomationToolkit'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-1060096756163416283</id><published>2007-06-22T09:40:00.000-05:00</published><updated>2007-06-22T09:43:27.705-05:00</updated><title type='text'>Introducing XslCompiledTransform</title><content type='html'>I was look into learning more about xslt and .net and found this site  very helpful&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/xmlteam/articles/Introducing_XslCompiledTransform.aspx"&gt;http://blogs.msdn.com/xmlteam/articles/Introducing_XslCompiledTransform.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-1060096756163416283?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/1060096756163416283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=1060096756163416283' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/1060096756163416283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/1060096756163416283'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2007/06/introducing-xslcompiledtransform.html' title='Introducing XslCompiledTransform'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-4830141243602495016</id><published>2007-04-26T12:06:00.000-05:00</published><updated>2007-04-26T12:24:43.675-05:00</updated><title type='text'>Retrieving application settings from another assembly</title><content type='html'>I was writing a windows service that referenced a DLL I had previously written when I came across a problem reading the ApplicationSettings of the parent EXE.  Well after starting down the path of writing my own class to accomplish this I came across this post from &lt;a href="http://learnerps-dotnet.blogspot.com/2006/12/dotnet-use-appconfig.html"&gt;"Niall Fallon"&lt;/a&gt;.&lt;br /&gt;Well he/she had done exactly what I was working on so I had to copy their post here so I would have it later.  &lt;br /&gt;Thank you Niall&lt;br /&gt;&lt;br /&gt;dotNET - Use app.config ApplicationSettings and UserSettings &lt;br /&gt;&lt;br /&gt;When using Settings in an Assembly or .exe you can use the Settings Designer to generate a config file using Settings. The Settings Designer provides a wrapper class which allows you to provide defaults and access the config data using Properties.&lt;br /&gt;But what if you're not working inside that Assembly or .exe? this presents a problem.&lt;br /&gt;If your loading the Assembly externally and want to access that Assembly's .config file you'll probably wish to use something in the System.Configuration namespace... unfortunately it's not of much use if you've created the .config file from the Settings Designer in Visual Studio!!&lt;br /&gt;This is because the Designer creates Sections and ApplicationSettings and UserSettings, the System.Configuration namespace does not provide a method to access these (it has a method to access AppSettings which are a different thing.&lt;br /&gt;Below I've written a workaround which locates the app.config and accesses the ApplicationSettings and UserSettings using XML instead of System.Configuration.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;_server = GetAssemblySettingOrDefault(Path.Combine("C:\temp\MyAssembly.dll"), "serverLocation", "http://localhost/mydefaultserver/mydefaultserver.asmx");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Return a key/value list of ApplicationSettings and UserSettings for a given .exe's of .dll's .config file.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;public static KeyValueConfigurationCollection GetAssemblySettings(string assemblyPath)&lt;br /&gt;{&lt;br /&gt;Configuration config = ConfigurationManager.OpenExeConfiguration(assemblyPath);&lt;br /&gt;&lt;br /&gt;XmlDocument dom = new XmlDocument();&lt;br /&gt;dom.Load(config.FilePath);&lt;br /&gt;&lt;br /&gt;//UserSettings and ApplicationSettings&lt;br /&gt;KeyValueConfigurationCollection returnList = new KeyValueConfigurationCollection();&lt;br /&gt;&lt;br /&gt;string[] settingsTypes = { "applicationSettings", "userSettings" };&lt;br /&gt;foreach (string settingType in settingsTypes)&lt;br /&gt;{&lt;br /&gt;XmlNode node = dom.SelectSingleNode("//configuration//" + settingType);&lt;br /&gt;if (node != null)&lt;br /&gt;{&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;if (node.HasChildNodes)&lt;br /&gt;{&lt;br /&gt;foreach (XmlNode childNode in node.ChildNodes)&lt;br /&gt;{&lt;br /&gt;if (childNode.HasChildNodes)&lt;br /&gt;{&lt;br /&gt;foreach (XmlNode settingNode in childNode.ChildNodes)&lt;br /&gt;{&lt;br /&gt;if (settingNode != null)//the Settings node&lt;br /&gt;{&lt;br /&gt;if (settingNode.Attributes.Count &gt; 0) //there should be at least one attribute&lt;br /&gt;returnList.Add(settingNode.Attributes[0].Value, settingNode.InnerText);//the setting name and the setting/value&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;catch { throw; }&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return returnList;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;// Get the value of the Assembly ApplicationSetting or UserSetting from the key.&lt;br /&gt;// If the key does not have a value then return the default supplied by the caller.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;public static string GetAssemblySettingOrDefault(string assemblyPath, string assemblySettingKey, string assemblySettingDefaultValue)&lt;br /&gt;{&lt;br /&gt;string result = assemblySettingDefaultValue;&lt;br /&gt;KeyValueConfigurationCollection settings = GetAssemblySettings(assemblyPath);&lt;br /&gt;if(settings != null)&lt;br /&gt;{&lt;br /&gt;KeyValueConfigurationElement key = settings[assemblySettingKey];&lt;br /&gt;if(key != null)&lt;br /&gt;result = key.Value;&lt;br /&gt;}&lt;br /&gt;return result;&lt;br /&gt;}&lt;br /&gt;&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/1028236585843827010-4830141243602495016?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/4830141243602495016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=4830141243602495016' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/4830141243602495016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/4830141243602495016'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2007/04/retrieving-application-settings-from.html' title='Retrieving application settings from another assembly'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-4542303753946269262</id><published>2007-03-30T15:25:00.000-05:00</published><updated>2007-03-30T16:51:12.613-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GetFiles'/><category scheme='http://www.blogger.com/atom/ns#' term='multiple file extentions'/><title type='text'>Getting Multiple file extensions with Directory.GetFiles()</title><content type='html'>I was looking for a way to list the files in a folder with different extensions and I came across a solution that Andreas Kraus(http://www.sunlab.de) wrote.  So I took that and modified it a little&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public static string[] GetFiles(&lt;br /&gt;                                string path,&lt;br /&gt;                                string searchPattern)&lt;br /&gt;{&lt;br /&gt;    string[] m_arExt = searchPattern.Split(';');&lt;br /&gt;&lt;br /&gt;    List&amp;lt;string&amp;gt; strFiles = new List&amp;lt;string&amp;gt;();&lt;br /&gt;    foreach(string filter in m_arExt)&lt;br /&gt;    {&lt;br /&gt;        strFiles.AddRange(&lt;br /&gt;               System.IO.Directory.GetFiles(path, filter));&lt;br /&gt;    }&lt;br /&gt;    return strFiles.ToArray();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Thanks Andreas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-4542303753946269262?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/4542303753946269262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=4542303753946269262' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/4542303753946269262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/4542303753946269262'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2007/03/getting-multiple-file-extensions-with.html' title='Getting Multiple file extensions with Directory.GetFiles()'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-9077357673864988148</id><published>2007-03-26T09:30:00.000-05:00</published><updated>2007-03-26T10:03:40.220-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SelectSingleNode'/><category scheme='http://www.blogger.com/atom/ns#' term='XPath'/><category scheme='http://www.blogger.com/atom/ns#' term='.net 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='default namespace'/><title type='text'>SelectSingleNode with a default namespace</title><content type='html'>Ok, I have a simple xml file with a default namespace as shown here:&lt;br /&gt;&lt;br /&gt;&lt; test xmlns="http://www.shaune.net/test"&gt;&lt;br /&gt; &lt; config&gt;&lt;br /&gt;     &lt; data&gt;test&lt; /data&gt;&lt;br /&gt;     &lt; settings&gt;&lt;br /&gt;         &lt; moredata&gt;test&lt; /moredata&gt;&lt;br /&gt;     &lt; /settings&gt;&lt;br /&gt; &lt; /config&gt;&lt;br /&gt;&lt; /test&gt;&lt;br /&gt;&lt;br /&gt;I loaded the xml file using&lt;br /&gt;XmlTextReader reader = new XmlTextReader("C:\\xml\\My.Config.xml" );&lt;br /&gt;nsm = new XmlNamespaceManager(reader.NameTable);&lt;br /&gt;&lt;br /&gt;//I read that this is how you specify a default namespace&lt;br /&gt;nsm.AddNamespace("", "http://www.shaune.net/test");&lt;br /&gt;&lt;br /&gt;configDoc.Load(reader);&lt;br /&gt;reader.Close();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;and then I do a SelectSingleNode&lt;br /&gt;XmlNode test2 = configDoc.SelectSingleNode("//Config");&lt;br /&gt;&lt;br /&gt;This should work right?  Wrong!!!&lt;br /&gt;It turns out that  XPath 1.0 doesn't support default namespace. XPath 2.0 does but I guess that doesn't help right now with .net 2.0.&lt;br /&gt;&lt;br /&gt;What I needed to do was give the default namespace a name&lt;br /&gt;nsm.AddNamespace("cfg", "http://www.shaune.net/test");&lt;br /&gt;&lt;br /&gt;Then all my selects need  to specify this namespace&lt;br /&gt;XmlNode test2 = configDoc.SelectSingleNode("//cfg:Config");&lt;br /&gt;&lt;br /&gt;What a pain.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-9077357673864988148?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/9077357673864988148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=9077357673864988148' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/9077357673864988148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/9077357673864988148'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2007/03/selectsinglenode-with-default-namespace.html' title='SelectSingleNode with a default namespace'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-4154161106645190903</id><published>2007-02-28T11:52:00.000-05:00</published><updated>2007-03-28T20:15:08.564-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint 2007 ActiveX Control'/><title type='text'>Sharepoint 2007 OpenDocuments Class ActiveX Control</title><content type='html'>I recently started having trouble with IE 7.0 and my Sharepoint 2007 site were if I selected open Edit Document from the dropdown list on any file in a Document Library nothing would happen. I also noticed if a file was not already checked out and I clicked on the link to look at it nothing would happen. I could right click and open the link in a new window or tab but that just didn't help if I need to edit the file in Word or Excel.&lt;br /&gt;&lt;a href="http://www.shaune.net/blog/uploaded_images/IEManage-Add-ons-758379.JPG"&gt;&lt;img style="margin: 0px 10px 10px 0px; float: left;" alt="" src="http://www.shaune.net/blog/uploaded_images/IEManage-Add-ons-747263.JPG" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have tracked down the problem to an ActiveX Control Sharepoint adds to your browser "SharePoint OpenDocuments Class".&lt;br /&gt;&lt;br /&gt;If you disable this Add-on the SharePoint Site behaves like you would expect except you don't get the Edit Document option in you Dropdown. This is by no means a solution to my problem, but I have at least tracked it down. I hope to find a Real solution soon.&lt;br /&gt;Anyone have any idea? Anyone having the same problem?&lt;br /&gt;&lt;br /&gt;Anyway I will let you know if I find more info.&lt;br /&gt;&lt;br /&gt;---&lt;br /&gt;Ok I did a little more research on this and found that many other people are having the same problem.  It turns out to be a conflict with Sharepoint Designer 2007 OWSSUPP.DLL version 12 and Office 2003 OWSSUPP.DLL version 11.&lt;br /&gt;I really didn't have the option to remove Sharepoint Designer since we are using it for custom workflow creation. &lt;br /&gt;I ran Microsoft Office Diagnostics and it found 1 problem but unfortunately it didn't go into any detail as to what the problem was.&lt;br /&gt;Lets hope this solves the problem once and for all!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-4154161106645190903?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/4154161106645190903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=4154161106645190903' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/4154161106645190903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/4154161106645190903'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2007/02/sharepoint-2007-opendocuments-class.html' title='Sharepoint 2007 OpenDocuments Class ActiveX Control'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1028236585843827010.post-2618054909872642077</id><published>2007-02-23T10:56:00.000-05:00</published><updated>2007-02-23T10:58:13.460-05:00</updated><title type='text'>Hello</title><content type='html'>Ok just created my first blog.  Soon as i get a chance i will be adding what I can&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1028236585843827010-2618054909872642077?l=www.shaune.net%2Fblog' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/2618054909872642077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=1028236585843827010&amp;postID=2618054909872642077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/2618054909872642077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1028236585843827010/posts/default/2618054909872642077'/><link rel='alternate' type='text/html' href='http://www.shaune.net/blog/2007/02/hello.html' title='Hello'/><author><name>Shaune Donohue</name><uri>http://www.blogger.com/profile/14678096394667258061</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='03368443428943855899'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           