As part of the next drop of nRoute, I've been doing some work around events and listeners in .NET - the main issues have been around memory-leaks, selectively multi-casting events, performance and loose-coupling. Certainly, this is not something new and there are a number of solutions out there, but usability and performance have been the compromises which was something I wanted to avoid.

The Idea : Wrap'em

From my work on it, I take that we don't want the semantics of exposing and using events to change - so basically the the producer and consumer syntax should remains the same, however if the producers and consumers are dumb about it, I suppose we should make the messenger smarter. So here is what I'm mean:

   1: source.SomethingHappened += new WeakHandler((s, e)=>{ . });  
   2: //or 
   3: source.SomethingHappened += new WeakHandler(Handle_Something);  // delegates to a method

On the left the source exposes a "SomethingHappened" event using the EventHandler delegate, and on the right we have a custom class that handles the event - the use API is actually not far off from where we are today. We just changed the normal handlers with the "WeakHandler" class that wraps (not inherits) the actual handler and introduces the logic for weak delegation. In my solution I make use of closures and lifting .NET features to create "self-referencing" event-handler that are aware of their wrappers. It's not that hard, however the benefit is that we can make it do smart things such as respond to say a specific property change on a PropertyChanged event, consider:

   1: source.PropertyChanged += new WeakPropertyChangedHandler( 
   2:    ()=> SelectedItem,  
   3:    SelectedItem_PropertyChanged);

In this case the 'SelectedItem_PropertyChanged' method will only be called when the 'SelectedItem' property changes. And the best part is the listener or consumer is weakly referenced, so it can be available for garbage collection when it has no outstanding references (without having to remove the event handler itself). And if the listener has been disposed off, the handler will de-register itself and dispose off.

The Implementation

Like I said the event handling classes above, like WeakPropertyChangedHandler, are basically wrappers around the actual event handlers - however note, we don't need to create specific event handlers for each and every event type. We have a generic definition that can that can handle every type of event; its constructor signature is a follows:

   1: public class Handler<E, H> 
   2:        where E : EventArgs 
   3: { 
   4:     public Handler(Func<Action<Object, E>, H> createAction, Action<Object, E> action, 
   5:                 Action<H> removeAction) { .. } 
   6: }

The H type is supposed to be your handler type which unfortunately cannot be constrained. All the same, just like every event handler we need to be able to do four things, namely create the handler, attach the handler, handle the event and remove the handler. Now, if you look at the constructor we don't do the attaching part, that's up to the user but for the rest we take in delegates - so a full blown handler can be written as:

   1: Application.Current.MainWindow.SizeChanged += 
   2:     new Handler<SizeChangedEventArgs, SizeChangedEventHandler>( 
   3:     (a) => new SizeChangedEventHandler(a),    // How to create 
   4:     (s, e) => Console.WriteLine("Main Window Size Changed."),  // How to handle 
   5:     (h) => Application.Current.MainWindow.SizeChanged -= h);  // How to remove

I know that is somewhat verbose, however that's the full monty, whereas you have more specific implementations and additional constructors that can do the creation and removing part for you. The other important thing to realize is that the Handle<E,H> type can be paraded around as a named variable, consider:

   1: var _handler = new RoutedHandler((s, e) => MessageBox.Show("GotFocus"));
   2: this.GotFocus += _handler;
   3: // when done
   4: _handler.UnregisterHandler();

Here we create the handler variable, which when done can be specifically called to unregister. I specifically designed this  to call an unregister method rather than have to -= the handler.

The Variants

As you can probably tell we have many different types of handlers, which can generally be qualified into three separate categories (see below). First, we have types deriving from Handler<E,H>, which are basically like normal events wrappers that hold a direct reference to the event listener and have to be manually unregistered. The second category is based on the SingleHandler<E,H> type that only handle the first call and then recuses itself - which might seem strange, but actually they are very useful in handling things like Loaded, Initialized, Errors related events. They save memory, plus ensure you don't end up holding unnecessary references. Lastly, we have the WeakHandler<E,H>based types, which as the name suggests holds a weak reference to the listener and allow for its disposing independent of the event source. Also note, WeakHandler types also allow you to manually call the UnregisterHandler method to discontinue the event handling.

EventHandlers

As shown above, based on the three categories of handler wrappers we have specific types that handle EventHandler<E>, EventHandler, RoutedEventHandler and PropertyChangedEventHandler types of event delegates. They just allow for an easier to use API, however you could resort to the generic types if you wanted too.

Performance

Given the use syntax is very similar to the normal event handlers, the other important use tenant for me is the performance. Lets see how it fares (time in seconds):

Handler Type Action Type 1 Event 10 Events 1,000 Events 10,000 Events
System EventHandler Attach Event 0.0000059 0.0000272 0.0006216 0.0310925
  Raise Event 0.0000041 0.0000102 0.0248883 1.1368489
  Detach Event 0.0000065 0.0000254 0.0148008 0.8415036
Handler<E,H> Attach Event 0.0000852 0.0002054 0.0096227 0.0665443
  Raise Event 0.0000041 0.0000148 0.0522444 3.1837825
  Detach Event 0.0000071 0.0000272 0.0560088 2.7236017
SingleHandler<E,H> Attach Event 0.0000840 0.0001782 0.0098619 0.0592904
  Raise Event 0.0000059 0.0000201 0.0375098 2.2381572
  Detach Event 0.0000065 0.0000236 0.0530667 2.5753320
WeakHandler<E,H> Attach Event 0.00001415 0.0003268 0.0171803 0.1007618
  Raise Event 0.0000840 0.00003208 0.1420596 12.9617411
  Detach Event 0.0000065 0.0000272 0.0558754 2.7769959

Based on the table, the performance of the wrapped handlers have a disadvantage ranging from 1.5x-15x, primarily on the event raising front. Attaching is notably slower, however unless you are doing very processer intensive stuff, I think for most part these are within the range of "acceptable costs", especially for client-side apps like with Silverlight. Also, there are further optimizations to be had, as this is quite early stuff.

Listeners

Now if you like what you have seen, it gets better. Given some of the problems with eventing as it stands, the WPF team rolled out their own implementation based on the Weak Event Pattern. They essentially provided an event manager, a custom event definition wrapper, and a relative simple consumption interface - which all somewhat works like normal events. The consumption interface called IWeakEventListner has the following signature:

   1: public interface IWeakEventListener
   2: {
   3:     bool ReceiveWeakEvent(Type managerType, object sender, EventArgs e);
   4: }

The weak event pattern is performant, but the provider side requirements of obscure per-event setup, registration and the middle men solution are all a bit clumsy. So how about if we could attach IWeakEventListner implementation to normal event handler defined events, something like this:

   1: source.SomethingHappened += new WeakListener(weakEventListnerObj);
   2: // or 
   3: source.PropertyChanged += new WeakPropertyChangedListnerHandler(
   4:     () => Items,
   5:     weakEventListnerObj);
 
Here the "SomethingHappened" is a normal event defined by the EventHandler signature, and we attach a handler that directs the handling to the a class instance implementing IWeakEventListner. The use semantics are just about the same as with normal events, and you can also detach the same by using the UnregisterMethod. You need no special registration, event-definition class, or manager, just do as you always did but with the given handlers types and it works with every event out there.
 
The Variants
 
And just like the event wrappers above, we have three categories of listeners shown below:

Listeners
 
The use semantics are basically similar to what I showed earlier, the only difference being we need to pass in an instance of IWeakEventListener rather than a delegate to handle the event. Further, because Silverlight doesn't have an build-in IWeakEventListener interface, I've provided one to compile with Silverlight whereas in the full-blown .NET version you would/can use the WPF defined interface. Also since we don't have a "managerType" as specified by the RecieveWeakEvent method, we pass in the type of EventHandler - so for a property changed event you will get the PropertyChangedHandler type passed in as the managerType. Further, by returning false you can unregister from the event and the wrapper will dispose itself.
 
Performance
 
Listeners with event handlers numbers (in seconds):

Handler Type Action Type 1 Event 10 Events 1000 Events 10,000 Events
System EventHandler Attach Event 0.0000059 0.0000272 0.0006216 0.0310925
  Raise Event 0.0000041 0.0000082 0.0248883 1.1368489
  Detach Event 0.0000065 0.0000254 0.0148008 0.8415036
ListenerHandler<E,H> Attach Event 0.0000976 0.0001598 0.0101366 0.0606196
  Raise Event 0.0000059 0.0000142 0.0493853 3.6426401
  Detach Event 0.0000071 0.0000219 0.0460088 2.6254094
SingleListenerHandler<E,H> Attach Event 0.0000828 0.0001557 0.0102970 0.0610187
  Raise Event 0.0000102 0.0000159 0.0337023 2.4158356
  Detach Event 0.0000082 0.0000165 0.0435121 2.5886397
WeakListenerHandler<E,H> Attach Event 0.0001053 0.00001409 0.0115611 0.0699055
  Raise Event 0.0000106 0.0000224 0.099667 7.3137979
  Detach Event 0.0000082 0.0000266 0.0446755 2.7211488

Based on the figures above the build in handlers still have a distinct advantage, however it is less pronounced. And again from my perspective, the costs of using listeners with events are nominal. And, with respect to handlers performance listed earlier, listeners fare much better considering the conversions between delegate to interface based handling.

There is More

As I mentioned this is early work, so I have a couple of things in mind for improvements:
  • Possibly, implement IDisposable on all the handlers, not for reclaiming unmanaged resources use but more for user's remember-to-dispose considerations. I'm still thinking about this
  • Introducing -= operator, I personally prefer the use of the UnregisterHandler method
  • Introducing a common base class, with overridable methods
  • Because I'ved used a lot of lambda statements, I want to see if there is a way to increase performance. Also if I understand correctly in .NET 4 lambda statements can be compiled (as opposed to only expressions right now), which should help with performance
  • I also want to further squeeze performance out of the Weak handlers, I've used a number of techniques to ensure through-and-through performance, but I still think there might be better ways. I am looking at late-bound expression trees to see if they can help, if you know of any better way please let me know
  • I'm also looking for alternative and strongly-typed ways to create and remove handlers. What I have currently, it's quite performant but there might be a better way
  • Also I think with .NET 4.0's dynamic types we might be able to hopefully get some improvement in performance, especially since we will be able to rigorously match event defined signature with delegates
  • For Silverlight, there is an access limitation to only being able to call public methods and not private ones - I want to if there is an alternative to that (note this only effects the Weak Handlers types). If you know of any alternatives, do let me know

The code is attached below, it references the "WindowsBase" dll for the IWeakEventListener interface - but if you want to use this in non-WPF environments then just expose the interface and remove the RoutedHandlers related classes. Similarly, for use in Silverlight, just link/add the code to a Silverlight project and it should compile as is. 

Download Code (updated for Silverlight use)

Update: I re-did all the performance tests because they were highly skewed in favour of listeners - because earlier the handlers did not do any work. The new figures, better represent real-usage and reflect the expected costs of wrapping event handlers.

Comments (10) -

Kiener
Kiener Switzerland
on 03-Jan-10 8:53 PM
Hi,

Does the WeakHandler really work in Silverlight? I'm able to register the event, but when I raise the event I get a MethodAccessException.

myObj.SomeEvent += new WeakHandler(myObj_SomeEvent);
...
SomeEvent(this, EventArgs.Empty);

Exception at DelegateInvoker line 138:
Attempt by method 'Orktane.Components.EventDelegateInvoker`1+DelegateInvoker`2<System.__Canon,System.__Canon,System.__Canon>..ctor(System.Reflection.MethodInfo)' to access method 'WeakEventPattern.Listener.myObj_SomeEvent(System.Object, System.EventArgs)' failed.

I think it because Silverlight does not allow you to access private members at runtime via reflection.

Rishi
Rishi
on 04-Jan-10 5:30 AM
@Kiener Correct, as I wrote in the post "for Silverlight, there is an access limitation to only being able to call public methods and not private ones" - so you are running against the platform set limitation. But for public methods the weak event handling does work.

However, the code in this post is old, use the newer and much optimized version of the same handlers from nRoute Toolkit. Download it from http://nroute.codeplex.com/ and the source-code is also available there, plus I blogged about it earlier, see  www.orktane.com/.../...-Silverlight-(Part-II).aspx (.) The newer version implements IDisposable, and I've added so-called "eventing extensions" to the handlers. Check it out.

Kiener
Kiener Switzerland
on 04-Jan-10 10:20 PM
Thanks! I will check it out.

FK
FK United States
on 16-Dec-11 6:19 PM
The HTML code is not available on Codeplex or elsewhere. Also, So mostly users are suffering to create link, please sort out it soon.

Christian Louboutin
Christian Louboutin People's Republic of China
on 01-May-12 1:22 AM

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.w3.org/.../xhtml1-transitional.dtd">;
<html xmlns="http://www.w3.org/1999/xhtml"; dir="ltr" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes</title>
    <meta name="keywords" content="christian louboutin, christian louboutin platforms outlet lady peep 150mm shoes" />
    <meta name="description" content="Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes" />
    <link rel="canonical" href="www.christianlouboutinhotselling.com/.../christian-louboutin-christian-louboutin-platforms-outlet-lady-peep-150mm-shoes_w158"; />
    
    <meta name="google-site-verification" content="Op2eMGF91A1tCqqB_8qAEWm7Wqj6PQF6BMnRs5kIZMk" />
<meta name="msvalidate.01" content="650D5445D175AD758615039F750F55B7" />
    <link href="/css/style.css" rel="stylesheet" type="text/css" />
    <link href="/css/flash.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="/js/jquery.js"></script>
    <script type="text/javascript" src="/js/imgjquery.js"></script>
    <script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script>

    <!--[if lte IE 6]>
    <link rel="stylesheet" type="text/css" href="/css/ie6.min.css" />
    <![endif]-->
    <!--[if (IE 7)|(IE 8)]>
    <link rel=stylesheet type=text/css href="/css/ie.min.css"><![endif]-->

</head>
<body oncopy="return false;" oncut="return false;" onpaste="return false;" oncontextmenu="return false;" ondragstart="return false;" >
<div class="wrap"><form name="aspnetForm" method="post" action="/blogs/christian-louboutin-christian-louboutin-platforms-outlet-lady-peep-150mm-shoes_w158" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm">
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" />

</div>

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['aspnetForm'];
if (!theForm) {
    theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>


<script src="/WebResource.axd?d=ONMVO8SlJiemBXkAiXvehzUyFjc15a-u8U7ppKrEiZOvFpIy1cnlnjXwXvooaJ6rKJPLoKKJEv2vPRtuxTYEenlbEmI1&amp;t=634700788786093750" type="text/javascript"></script>


<script src="/WebResource.axd?d=Rc_ilhds1YPjwQSS2Bw1jeapCkwrS3E3cDQwTRxRztTxLMMrbuDLzqFLcrP7vMBfyofiK6qBvmUU3PefAGUfBFQWjGs1&amp;t=634700788786093750" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function WebForm_OnSubmit() {
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
return true;
}
//]]>
</script>
<div class="main">
<div class="header">

    <script type="text/javascript" src="/js/img.js"></script>

    <div class="Member">
        <h1 class="Member_left">
            Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes</h1>
        <ul>
            <li>
                <select name="ctl00$mhead$mrlist$ddlCurrenty" onchange="javascript:setTimeout('__doPostBack(\'ctl00$mhead$mrlist$ddlCurrenty\',\'\')', 0)" id="ctl00_mhead_mrlist_ddlCurrenty">
  <option value="3">EURO</option>
  <option value="5">GBP</option>
  <option value="6">CAD</option>
  <option value="7">AUD</option>
  <option value="8">RMB</option>
  <option selected="selected" value="10">USD</option>

</select>
            </li>
            <li class="cart">

            <script type="text/javascript" src="/shopcount.aspx"
                rel="nofollow"></script>

            </li>
            <li>|</li>
             <li><a href="/account" rel="nofollow">My Account</a></li><li>|</li><li><a href="/login" rel="nofollow">Sign In</a></li><li>|</li><li><a href="/reg" rel="nofollow">Register</a></li>
        </ul>
        
    </div>
    <div class="search">
        <input name="ctl00$mhead$Textpname" type="text" id="ctl00_mhead_Textpname" onfocus="this.value='';this.focus()" onblur="if (this.value == '') { this.value = 'keywords or style#'; }" class="keyword" value="keywords or style#" size="6" maxlength="40" onkeydown="if(event.keyCode==13) {document.all.ctl00_mhead_SSearch.focus();document.all.ctl00_mhead_SSearch.click();}" />
        <input name="ctl00$mhead$SSearch" type="submit" id="ctl00_mhead_SSearch" value=" " class="searchgo" />
    </div>
    <div class="logo">
        <a href="www.christianlouboutinhotselling.com/">;
<img src="/images/logo.gif" alt="The only OFFICIAL Christian Louboutin site." /></a>
    </div>
    <div class="nav">
        <ul>
            <li><a href="/">HOME</a> </li>
          <li><a href="/products">PRODUCTS</a> </li>
          <li><a href="/faqs">FAQs</a> </li>
          <li><a href="/about-us">ABOUT</a> </li>
          <li><a href="/shipping">SHIPPING</a> </li>
          <li><a href="/contact">CONTACT</a> </li>
          <li><a href="/blogs">BLOGs</a> </li>
          <li><a href="/our-story/">Our History</a> </li>
          <li><a href="#">live chat</a></li>
        </ul>
    </div>
</div>
<div class="container">
    <div id="breadcrumb">
        <ul class="w-breadcrumb clear">
            <li class="home"><a href="http://www.christianlouboutinhotselling.com/"; title="Christian Louboutin Outlet"><span>Home</span><i></i></a>
            </li>
            <li class="crumb1"><a href="/blogs/" title="Christian Louboutin Blogs" > Blogs<i></i></a> </li><li class="crumb2"><a href="/blogs/christian-louboutin-shoes_l6" title="christian louboutin shoes">christian louboutin shoes<i></i></a> </li><li class="crumb3"><a href="/blogs/christian-louboutin-christian-louboutin-platforms-outlet-lady-peep-150mm-shoes_w158" title="Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes">Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes<i></i></a> </li>
        </ul>
    </div>
    
<div class="leftcolumn">
    <div class="leftsideBar">
        <div class="cat_results">
            christian louboutin shoes</div>
        <div class="Categories">
            blogs Categories</div>
        <div class="information">
            <ul>
                
                        <li><span><a href="/blogs/christian-louboutin-news_l1"
                            title="Christian Louboutin News">
                            Christian Louboutin News
                        </a></span>
                            
                        </li>
                    
                        <li><span><a href="/blogs/christian-louboutin-fashion_l2"
                            title="Christian Louboutin Fashion">
                            Christian Louboutin Fashion
                        </a></span>
                            
                        </li>
                    
                        <li><span><a href="/blogs/christian-louboutin-discount_l3"
                            title="christian louboutin discount">
                            christian louboutin discount
                        </a></span>
                            
                        </li>
                    
                        <li><span><a href="/blogs/christian-louboutin-sales_l4"
                            title="christian louboutin sales">
                            christian louboutin sales
                        </a></span>
                            
                        </li>
                    
                        <li><span><a href="/blogs/christian-louboutin-red-bottom-shoes_l5"
                            title="christian louboutin red bottom shoes">
                            christian louboutin red bottom shoes
                        </a></span>
                            
                        </li>
                    
                        <li><span><a href="/blogs/christian-louboutin-shoes_l6"
                            title="christian louboutin shoes">
                            christian louboutin shoes
                        </a></span>
                            
                        </li>
                    
                        <li><span><a href="/blogs/christian-louboutin-fashion_l7"
                            title="christian louboutin fashion">
                            christian louboutin fashion
                        </a></span>
                            
                        </li>
                    
                        <li><span><a href="/blogs/christian-louboutin-2012_l8"
                            title="christian louboutin 2012">
                            christian louboutin 2012
                        </a></span>
                            
                        </li>
                    
            </ul>
        </div>
        <div class="info_b">
        </div>
    </div>
    <div class="leftsideBar">
        <div class="info_t">
        </div>
        <div class="Categories">
            Categories</div>
        <div class="Cat_sideBar">
            <ul>
                
                        <li><span><a href="www.christianlouboutinhotselling.com/.../";
                            title="Christian Louboutin Shoes">
                            Christian Louboutin Shoes
                        </a></span>
                        </li>
                    
                        <li><span><a href="www.christianlouboutinhotselling.com/.../";
                            title="Christian Louboutin Pumps">
                            Christian Louboutin Pumps
                        </a></span>
                        </li>
                    
                        <li><span><a href="www.christianlouboutinhotselling.com/.../";
                            title="Christian Louboutin Boots">
                            Christian Louboutin Boots
                        </a></span>
                        </li>
                    
                        <li><span><a href="www.christianlouboutinhotselling.com/.../";
                            title="Christian Louboutin 2012 Hot Sale">
                            Christian Louboutin 2012 Hot Sale
                        </a></span>
                        </li>
                    
                        <li><span><a href="www.christianlouboutinhotselling.com/.../";
                            title="Christian Louboutin Platforms">
                            Christian Louboutin Platforms
                        </a></span>
                        </li>
                    
                        <li><span><a href="www.christianlouboutinhotselling.com/.../";
                            title="
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.w3.org/.../xhtml1-transitional.dtd">;
<html xmlns="http://www.w3.org/1999/xhtml"; dir="ltr" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes</title>
    <meta name="keywords" content="christian louboutin, christian louboutin platforms outlet lady peep 150mm shoes" />
    <meta name="description" content="Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes" />
    <link rel="canonical" href="www.christianlouboutinhotselling.com/.../christian-louboutin-christian-louboutin-platforms-outlet-lady-peep-150mm-shoes_w158"; />
    
    <meta name="google-site-verification" content="Op2eMGF91A1tCqqB_8qAEWm7Wqj6PQF6BMnRs5kIZMk" />
<meta name="msvalidate.01" content="650D5445D175AD758615039F750F55B7" />
    <link href="/css/style.css" rel="stylesheet" type="text/css" />
    <link href="/css/flash.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="/js/jquery.js"></script>
    <script type="text/javascript" src="/js/imgjquery.js"></script>
    <script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script>

    <!--[if lte IE 6]>
    <link rel="stylesheet" type="text/css" href="/css/ie6.min.css" />
    <![endif]-->
    <!--[if (IE 7)|(IE 8)]>
    <link rel=stylesheet type=text/css href="/css/ie.min.css"><![endif]-->

</head>
<body oncopy="return false;" oncut="return false;" onpaste="return false;" oncontextmenu="return false;" ondragstart="return false;" >
<div class="wrap"><form name="aspnetForm" method="post" action="/blogs/christian-louboutin-christian-louboutin-platforms-outlet-lady-peep-150mm-shoes_w158" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm">
<div>
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" />

</div>

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['aspnetForm'];
if (!theForm) {
    theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>


<script src="/WebResource.axd?d=ONMVO8SlJiemBXkAiXvehzUyFjc15a-u8U7ppKrEiZOvFpIy1cnlnjXwXvooaJ6rKJPLoKKJEv2vPRtuxTYEenlbEmI1&amp;t=634700788786093750" type="text/javascript"></script>


<script src="/WebResource.axd?d=Rc_ilhds1YPjwQSS2Bw1jeapCkwrS3E3cDQwTRxRztTxLMMrbuDLzqFLcrP7vMBfyofiK6qBvmUU3PefAGUfBFQWjGs1&amp;t=634700788786093750" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function WebForm_OnSubmit() {
if (typeof(ValidatorOnSubmit) == "function" && ValidatorOnSubmit() == false) return false;
return true;
}
//]]>
</script>
<div class="main">
<div class="header">

    <script type="text/javascript" src="/js/img.js"></script>

    <div class="Member">
        <h1 class="Member_left">
            Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes</h1>
        <ul>
            <li>
                <select name="ctl00$mhead$mrlist$ddlCurrenty" onchange="javascript:setTimeout('__doPostBack(\'ctl00$mhead$mrlist$ddlCurrenty\',\'\')', 0)" id="ctl00_mhead_mrlist_ddlCurrenty">
  <option value="3">EURO</option>
  <option value="5">GBP</option>
  <option value="6">CAD</option>
  <option value="7">AUD</option>
  <option value="8">RMB</option>
  <option selected="selected" value="10">USD</option>

</select>
            </li>
            <li class="cart">

            <script type="text/javascript" src="/shopcount.aspx"
                rel="nofollow"></script>

            </li>
            <li>|</li>
             <li><a href="/account" rel="nofollow">My Account</a></li><li>|</li><li><a href="/login" rel="nofollow">Sign In</a></li><li>|</li><li><a href="/reg" rel="nofollow">Register</a></li>
        </ul>
        
    </div>
    <div class="search">
        <input name="ctl00$mhead$Textpname" type="text" id="ctl00_mhead_Textpname" onfocus="this.value='';this.focus()" onblur="if (this.value == '') { this.value = 'keywords or style#'; }" class="keyword" value="keywords or style#" size="6" maxlength="40" onkeydown="if(event.keyCode==13) {document.all.ctl00_mhead_SSearch.focus();document.all.ctl00_mhead_SSearch.click();}" />
        <input name="ctl00$mhead$SSearch" type="submit" id="ctl00_mhead_SSearch" value=" " class="searchgo" />
    </div>
    <div class="logo">
        <a href="www.christianlouboutinhotselling.com/">;
<img src="/images/logo.gif" alt="The only OFFICIAL Christian Louboutin site." /></a>
    </div>
    <div class="nav">
        <ul>
            <li><a href="/">HOME</a> </li>
          <li><a href="/products">PRODUCTS</a> </li>
          <li><a href="/faqs">FAQs</a> </li>
          <li><a href="/about-us">ABOUT</a> </li>
          <li><a href="/shipping">SHIPPING</a> </li>
          <li><a href="/contact">CONTACT</a> </li>
          <li><a href="/blogs">BLOGs</a> </li>
          <li><a href="/our-story/">Our History</a> </li>
          <li><a href="#">live chat</a></li>
        </ul>
    </div>
</div>
<div class="container">
    <div id="breadcrumb">
        <ul class="w-breadcrumb clear">
            <li class="home"><a href="http://www.christianlouboutinhotselling.com/"; title="Christian Louboutin Outlet"><span>Home</span><i></i></a>
            </li>
            <li class="crumb1"><a href="/blogs/" title="Christian Louboutin Blogs" > Blogs<i></i></a> </li><li class="crumb2"><a href="/blogs/christian-louboutin-shoes_l6" title="christian louboutin shoes">christian louboutin shoes<i></i></a> </li><li class="crumb3"><a href="/blogs/christian-louboutin-christian-louboutin-platforms-outlet-lady-peep-150mm-shoes_w158" title="Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes">Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes<i></i></a> </li>
        </ul>
    </div>
    
<div class="leftcolumn">
    <div class="leftsideBar">
        <div class="cat_results">
            christian louboutin shoes</div>
        <div class="Categories">
            blogs Categories</div>
        <div class="information">
            <ul>
                
                        <li><span><a href="/blogs/christian-louboutin-news_l1"
                            title="Christian Louboutin News">
                            Christian Louboutin News
                        </a></span>
                            
                        </li>
                    
                        <li><span><a href="/blogs/christian-louboutin-fashion_l2"
                            title="Christian Louboutin Fashion">
                            Christian Louboutin Fashion
                        </a></span>
                            
                        </li>
                    
                        <li><span><a href="/blogs/christian-louboutin-discount_l3"
                            title="christian louboutin discount">
                            christian louboutin discount
                        </a></span>
                            
                        </li>
                    
                        <li><span><a href="/blogs/christian-louboutin-sales_l4"
                            title="christian louboutin sales">
                            christian louboutin sales
                        </a></span>
                            
                        </li>
                    
                        <li><span><a href="/blogs/christian-louboutin-red-bottom-shoes_l5"
                            title="christian louboutin red bottom shoes">
                            christian louboutin red bottom shoes
                        </a></span>
                            
                        </li>
                    
                        <li><span><a href="/blogs/christian-louboutin-shoes_l6"
                            title="christian louboutin shoes">
                            christian louboutin shoes
                        </a></span>
                            
                        </li>
                    
                        <li><span><a href="/blogs/christian-louboutin-fashion_l7"
                            title="christian louboutin fashion">
                            christian louboutin fashion
                        </a></span>
                            
                        </li>
                    
                        <li><span><a href="/blogs/christian-louboutin-2012_l8"
                            title="christian louboutin 2012">
                            christian louboutin 2012
                        </a></span>
                            
                        </li>
                    
            </ul>
        </div>
        <div class="info_b">
        </div>
    </div>
    <div class="leftsideBar">
        <div class="info_t">
        </div>
        <div class="Categories">
            Categories</div>
        <div class="Cat_sideBar">
            <ul>
                
                        <li><span><a href="www.christianlouboutinhotselling.com/.../";
                            title="Christian Louboutin Shoes">
                            Christian Louboutin Shoes
                        </a></span>
                        </li>
                    
                        <li><span><a href="www.christianlouboutinhotselling.com/.../";
                            title="Christian Louboutin Pumps">
                            Christian Louboutin Pumps
                        </a></span>
                        </li>
                    
                        <li><span><a href="www.christianlouboutinhotselling.com/.../";
                            title="Christian Louboutin Boots">
                            Christian Louboutin Boots
                        </a></span>
                        </li>
                    
                        <li><span><a href="www.christianlouboutinhotselling.com/.../";
                            title="Christian Louboutin 2012 Hot Sale">
                            Christian Louboutin 2012 Hot Sale
                        </a></span>
                        </li>
                    
                        <li><span><a href="www.christianlouboutinhotselling.com/.../";
                            title="Christian Louboutin Platforms">
                            Christian Louboutin Platforms
                        </a></span>
                        </li>
                    
                        <li><span><a href="www.christianlouboutinhotselling.com/.../";
                            title="Christian Louboutin Sandals">
                            Christian Louboutin Sandals
                        </a></span>
                        </li>
                    
                        <li><span><a href="www.christianlouboutinhotselling.com/.../";
                            title="Christian Louboutin Evenings">
                            Christian Louboutin Evenings
                        </a></span>
                        </li>
                    
                        <li><span><a href="www.christianlouboutinhotselling.com/.../";
                            title="Christian Louboutin Slingbacks">
                            Christian Louboutin Slingbacks
                        </a></span>
                        </li>
                    
                        <li><span><a href="www.christianlouboutinhotselling.com/.../";
                            title="Christian Louboutin Leopard">
                            Christian Louboutin Leopard
                        </a></span>
                        </li>
                    
            </ul>
        </div>
        <div class="Cat_b">
        </div>
    </div>
</div>

    <div class="rightcolumn">
        <div class="bloglist">
            
            <div class="blog">
                <div class="post">
                    <h2 class="bloglast">
                        Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes
                    </h2>
                    <div class="timeinfo">
                        Sun, 29 Apr 2012 00:15:00 GMT
                        by
                        Editor
                        | Filed under
                        <a href="/blogs/christian-louboutin-shoes_l6" title="christian louboutin shoes">christian louboutin shoes</a>
                        | Browse(8)
                    </div>
                    <div class="blogtext">
                        <DIV class=section><FONT color=#ff0000><STRONG><SPAN itemprop="description">Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes </SPAN><BR></STRONG></FONT>
<P>If your summer wardrobe needs a pick-me-up, look no further than <A HREF="/"><FONT color=#ff0000>Christian Louboutin</FONT> </A>lady peep 150mm Platform shoes camel to make your style statement via shoes. We're reloading our shoe closets for Fall. But with so many great <A HREF="/christian-louboutin-2012-hot-sale_c1/"><FONT color=#ff0000>Christian Louboutin 2012</FONT> </A>available this season, we're having trouble choosing what to buy without breaking the bank. Camel leather and high platform detailing make this pump a real winner. We also love the pretty peep toe detail. Christian once said that a "Christian Louboutin Platforms has so much more to offer than just to walk." Our beautiful "Lady Peep" gives you just that. Slip her on and you'll find that wherever you wear her, you'll be the most confident girl in the room. To be a sexy woman! </P>
<P>&nbsp;</P>
<P><A HREF="/christian-louboutin-platforms-outlet-lady-peep-shoes_p72"><IMG alt="" src="/upimage/original/christian-louboutin-platforms-outlet-lady-peep-shoes_201202171144257031_s.jpg" width=276 onload=AutoResizeImage(380,368,this); height=368 itemprop="image" jqimg="www.christianlouboutinhotselling.com/.../christian-louboutin-platforms-outlet-lady-peep-shoes_201202171144257031_s.jpg"; jQuery1335680006937="5"></A></P>
<P><SPAN itemprop="description"><STRONG><A HREF="/christian-louboutin-platforms-outlet-lady-peep-shoes_p72"><FONT color=#ff0000>Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes</FONT></A></STRONG></SPAN></P>
<P>&nbsp;</P>
<P>OUR FIT SUGGESTIONS:<BR>This style runs true to size.</P>
<P>MATERIAL:Leather</P>
<P>TECHNICAL INFORMATION:<BR>Heel Height: 6 inches approx. - 150 mm approx.<BR>Arch: 4 inches approx. - 100 mm approx.<BR>Platform Height: 50 inches approx. - 50 mm approx.<BR>COLLECTION:CLASSIQUE</P>
<P><BR>&nbsp;</P>
<P>Go back to: <A title="Christian Louboutin Platforms" HREF="/christian-louboutin-platforms_c6/"><STRONG><FONT color=#ff0000>Christian Louboutin Platforms </FONT></STRONG></A></P>
<P>You might like: </P>
<P><A title="Christian Louboutin Evening" HREF="/christian-louboutin-evening_c5/"><STRONG><FONT color=#ff0000>Christian Louboutin Evening </FONT></STRONG></A></P>
<P><A title="Christian Louboutin Slingbacks" HREF="/christian-louboutin-slingbacks_c7/"><STRONG><FONT color=#ff0000>Christian Louboutin Slingbacks </FONT></STRONG></A></P></DIV>
                    </div>
                    <div class="timeinfo">
                            Tags:<a href="/tags/blogs/Christian-Louboutin" title="Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes" >Christian Louboutin</a> | <a href="/tags/blogs/Christian-Louboutin-Blogs" title="Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes" >Christian Louboutin Blogs</a> | <a href="/tags/blogs/Christian-Louboutin,-Christian-Louboutin-Platforms-Outlet-Lady-Peep-150mm-Shoes" title="Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes" >Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes</a>
                    </div>
                    <div class="blogdiv">
                        <span>Previous:<a id="ctl00_cp1_HyperLinkPre" href="/blogs/christian-louboutin-shoes,-christian-louboutin-aranea-100-spiderweb-d-orsay-peep-toe-sandals-cl283_w150">Christian Louboutin Shoes, Christian Louboutin Aranea 100 Spiderweb D Orsay Peep Toe Sandals CL283</a></span>
                        <span>Next:<a id="ctl00_cp1_HyperLinkNext">Nothing</a></span>
                    </div>
                </div>
                <div class="Comment_hearder">
                    I want to:<a href="/blogs/christian-louboutin-christian-louboutin-platforms-outlet-lady-peep-150mm-shoes_w158">Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes</a>
                    Comments</div>
                <div class=" Comment">
                    <div class="Comment_list">
                        <ul>
                            
                        </ul>
                    </div>
                    <div class="Comment_page">
                        <span>
                            
<!-- AspNetPager V7.0.2 for VS2005 & VS2008  Copyright:2003-2007 Webdiyer (www.webdiyer.com) -->
<div id="ctl00_cp1_AspNetPager1" style="text-align:right;">
<span class="cur" style="margin-right:5px;">1</span>
</div>
<!-- AspNetPager V7.0.2 for VS2005 & VS2008 End -->


                        </span>
                    </div>
                    <div class="Commentfrom">
                        <dl>
                            <dt>User<a name="write" id="write"></a></dt><dd><input name="ctl00$cp1$WName" type="text" id="ctl00_cp1_WName" class="Commentinput" />
                                <span class="red">*</span><span>2 to 16 characters</span>
                                <span id="ctl00_cp1_rfvName" style="color:Red;display:none;">Please enter your user name!</span>
                            </dd>
                        </dl>
                        <dl>
                            <dt>Content</dt><dd><textarea name="ctl00$cp1$WContent" id="ctl00_cp1_WContent" cols="45" rows="4" class="textinfo1"></textarea>
                                <span id="ctl00_cp1_rfvContent" style="color:Red;display:none;">Please fill in the content!</span>
                            </dd>
                        </dl>
                        <dl>
                            <dt>&nbsp;</dt><dd><span class="btnsubmit"><input type="submit" name="ctl00$cp1$btnAddMsg" value="submit" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$cp1$btnAddMsg&quot;, &quot;&quot;, true, &quot;AddMess&quot;, &quot;&quot;, false, false))" id="ctl00_cp1_btnAddMsg" />
                            </span>
                                <div id="ctl00_cp1_vSMessage" style="color:Red;display:none;">

</div>
                            </dd>
                        </dl>
                    </div>
                </div>
            </div>
        </div>
        
<div class="blogtopor">
    <div class="por_box">
        <ul>
            
                    <li><span class="pic"><a href="www.christianlouboutinhotselling.com/christian-louboutin-outlet-lady-peep-150mm-shoes_p194";
                        title="Christian Louboutin Outlet Lady Peep 150mm Shoes CL194">
                        <img src="www.christianlouboutinhotselling.com/.../christian-louboutin-outlet-lady-peep-150mm-shoes_20120222053341953.jpg"; alt="Christian Louboutin Outlet Lady Peep 150mm Shoes CL194" onload="AutoResizeImage(132,128,this);"/>
                    </a></span>
                        <ul>
                            <li class="name"><a href="www.christianlouboutinhotselling.com/christian-louboutin-outlet-lady-peep-150mm-shoes_p194";
                                title="Christian Louboutin Outlet Lady Peep 150mm Shoes CL194">
                                Christian Louboutin Outlet Lady Peep 150mm Shoes CL194
                            </a></li>
                            <li class="price"><span>
                                $3,395.00
                            </span>
                                $289.00
                            </li>
                            <li class="save">Save:
                                91%
                                off</li>
                        </ul>
                    </li>
                
                    <li><span class="pic"><a href="www.christianlouboutinhotselling.com/christian-louboutin-sale-n-prive-120mm-shoes-white_p162";
                        title="Christian Louboutin Sale N°Prive 120mm Shoes White CL162">
                        <img src="www.christianlouboutinhotselling.com/.../christian-louboutin-sale-n-prive-120mm-shoes-nude_20120222115615406.jpg"; alt="Christian Louboutin Sale N°Prive 120mm Shoes White CL162" onload="AutoResizeImage(132,128,this);"/>
                    </a></span>
                        <ul>
                            <li class="name"><a href="www.christianlouboutinhotselling.com/christian-louboutin-sale-n-prive-120mm-shoes-white_p162";
                                title="Christian Louboutin Sale N°Prive 120mm Shoes White CL162">
                                Christian Louboutin Sale N°Prive 120mm Shoes White CL162
                            </a></li>
                            <li class="price"><span>
                                $795.00
                            </span>
                                $138.00
                            </li>
                            <li class="save">Save:
                                83%
                                off</li>
                        </ul>
                    </li>
                
                    <li><span class="pic"><a href="www.christianlouboutinhotselling.com/christian-louboutin-pumps-fifi-patent-shoes_p8";
                        title="Christian Louboutin Pumps Fifi 85mm Patent Shoes CL008">
                        <img src="www.christianlouboutinhotselling.com/.../christian-louboutin-pumps-fifi-patent-shoes_20120215110245656.jpg"; alt="Christian Louboutin Pumps Fifi 85mm Patent Shoes CL008" onload="AutoResizeImage(132,128,this);"/>
                    </a></span>
                        <ul>
                            <li class="name"><a href="www.christianlouboutinhotselling.com/christian-louboutin-pumps-fifi-patent-shoes_p8";
                                title="Christian Louboutin Pumps Fifi 85mm Patent Shoes CL008">
                                Christian Louboutin Pumps Fifi 85mm Patent Shoes CL008
                            </a></li>
                            <li class="price"><span>
                                $689.00
                            </span>
                                $139.00
                            </li>
                            <li class="save">Save:
                                80%
                                off</li>
                        </ul>
                    </li>
                
                    <li><span class="pic"><a href="www.christianlouboutinhotselling.com/christian-louboutin-ankle-boots-toundra-coyote-fur-boots-in-grey_p88";
                        title="Christian Louboutin Ankle Boots Toundra Coyote-fur Shoes In Grey CL088">
                        <img src="www.christianlouboutinhotselling.com/.../christian-louboutin-ankle-boots-toundra-coyote-fur-boots-in-grey_20120217053850656.jpg"; alt="Christian Louboutin Ankle Boots Toundra Coyote-fur Shoes In Grey CL088" onload="AutoResizeImage(132,128,this);"/>
                    </a></span>
                        <ul>
                            <li class="name"><a href="www.christianlouboutinhotselling.com/christian-louboutin-ankle-boots-toundra-coyote-fur-boots-in-grey_p88";
                                title="Christian Louboutin Ankle Boots Toundra Coyote-fur Shoes In Grey CL088">
                                Christian Louboutin Ankle Boots Toundra Coyote-fur Shoes In Grey CL088
                            </a></li>
                            <li class="price"><span>
                                $2,095.00
                            </span>
                                $240.00
                            </li>
                            <li class="save">Save:
                                89%
                                off</li>
                        </ul>
                    </li>
                
                    <li><span class="pic"><a href="www.christianlouboutinhotselling.com/christian-louboutin-sale-bianca-140mm-shoes-beige_p170";
                        title="Christian Louboutin Sale Bianca 140mm Shoes Beige CL170">
                        <img src="www.christianlouboutinhotselling.com/.../christian-louboutin-sale-bianca-140mm-shoes-orange_20120222030923734.jpg"; alt="Christian Louboutin Sale Bianca 140mm Shoes Beige CL170" onload="AutoResizeImage(132,128,this);"/>
                    </a></span>
                        <ul>
                            <li class="name"><a href="www.christianlouboutinhotselling.com/christian-louboutin-sale-bianca-140mm-shoes-beige_p170";
                                title="Christian Louboutin Sale Bianca 140mm Shoes Beige CL170">
                                Christian Louboutin Sale Bianca 140mm Shoes Beige CL170
                            </a></li>
                            <li class="price"><span>
                                $799.00
                            </span>
                                $140.00
                            </li>
                            <li class="save">Save:
                                82%
                                off</li>
                        </ul>
                    </li>
                
        </ul>
    </div>
</div>

    </div>

            </div>
            <div class="clear">
            </div>
        </div>
<div class="footer">
    <div class="footerShadow">
        
        
        <div class="clear">
        </div>
    </div>
    <div class="Copyright">
        <CENTER>
           <FONT style=" font-size:10PX; color:#555"><a href="www.christianlouboutinhotselling.com/">Christian Louboutin,Christian Louboutin Shoes,Christian Louboutin Online Store</a> | <FONT style=" font-size:10PX; color:#555"><a href="www.christianlouboutinhotselling.com/.../">Christian Louboutin Pumps</a> | <FONT style=" font-size:10PX; color:#555"><a href="www.christianlouboutinhotselling.com/.../">Christian Louboutin 2012 Hot Sale</a> | <FONT style=" font-size:10PX; color:#555"><a href="www.christianlouboutinhotselling.com/.../">Christian Louboutin Platforms</a> </BR>
Email:christianlouboutinhotselling@hotmail.com Web support hours are Monday to Friday, 9:00AM to 4:30PM EST.</FONT>


           </CENTER>
<P style="display:none;">
<script language="javascript" type="text/javascript" src="js.users.51.la/7040626.js"></script>;
<noscript><a href="http://www.51.la/?7040626"; target="_blank"><img alt="&#x6211;&#x8981;&#x5566;&#x514D;&#x8D39;&#x7EDF;&#x8BA1;" src="http://img.users.51.la/7040626.asp"; style="border:none" /></a></noscript></p>
<P style="display:none;">
<script language="javascript" type="text/javascript" src="js.users.51.la/8079932.js"></script>;
<noscript><a href="http://www.51.la/?8079932"; target="_blank"><img alt="&#x6211;&#x8981;&#x5566;&#x514D;&#x8D39;&#x7EDF;&#x8BA1;" src="http://img.users.51.la/8079932.asp"; style="border:none" /></a></noscript>
        &copy; 1998-2013
        <a href="/blogs/christian-louboutin-christian-louboutin-platforms-outlet-lady-peep-150mm-shoes_w158"  target="_blank">Christian Louboutin, Christian Louboutin Platforms Outlet Lady Peep 150mm Shoes</a>. All Rights Reserved.
    </div>
    
    
</div>

    
<script type="text/javascript">
//<![CDATA[
var Page_ValidationSummaries =  new Array(document.getElementById("ctl00_cp1_vSMessage"));
var Page_Validators =  new Array(document.getElementById("ctl00_cp1_rfvName"), document.getElementById("ctl00_cp1_rfvContent"));
//]]>
</script>

<script type="text/javascript">
//<![CDATA[
var ctl00_cp1_rfvName = document.all ? document.all["ctl00_cp1_rfvName"] : document.getElementById("ctl00_cp1_rfvName");
ctl00_cp1_rfvName.controltovalidate = "ctl00_cp1_WName";
ctl00_cp1_rfvName.errormessage = "Please enter your user name!";
ctl00_cp1_rfvName.display = "Dynamic";
ctl00_cp1_rfvName.validationGroup = "AddMess";
ctl00_cp1_rfvName.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
ctl00_cp1_rfvName.initialvalue = "";
var ctl00_cp1_rfvContent = document.all ? document.all["ctl00_cp1_rfvContent"] : document.getElementById("ctl00_cp1_rfvContent");
ctl00_cp1_rfvContent.controltovalidate = "ctl00_cp1_WContent";
ctl00_cp1_rfvContent.errormessage = "Please fill in the content!";
ctl00_cp1_rfvContent.display = "Dynamic";
ctl00_cp1_rfvContent.validationGroup = "AddMess";
ctl00_cp1_rfvContent.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
ctl00_cp1_rfvContent.initialvalue = "";
var ctl00_cp1_vSMessage = document.all ? document.all["ctl00_cp1_vSMessage"] : document.getElementById("ctl00_cp1_vSMessage");
ctl00_cp1_vSMessage.showmessagebox = "True";
ctl00_cp1_vSMessage.showsummary = "False";
ctl00_cp1_vSMessage.validationGroup = "AddMess";
//]]>
</script>


<script type="text/javascript">
//<![CDATA[

var Page_ValidationActive = false;
if (typeof(ValidatorOnLoad) == "function") {
    ValidatorOnLoad();
}

function ValidatorOnSubmit() {
    if (Page_ValidationActive) {
        return ValidatorCommonOnSubmit();
    }
    else {
        return true;
    }
}
        //]]>
</script>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE3ODc0ODI2MzAPZBYCZg9kFgRmDxYCHgRUZXh0Bc8CPHRpdGxlPkNocmlzdGlhbiBMb3Vib3V0aW4sIENocmlzdGlhbiBMb3Vib3V0aW4gUGxhdGZvcm1zIE91dGxldCBMYWR5IFBlZXAgMTUwbW0gU2hvZXM8L3RpdGxlPgogICAgPG1ldGEgbmFtZT0ia2V5d29yZHMiIGNvbnRlbnQ9ImNocmlzdGlhbiBsb3Vib3V0aW4sIGNocmlzdGlhbiBsb3Vib3V0aW4gcGxhdGZvcm1zIG91dGxldCBsYWR5IHBlZXAgMTUwbW0gc2hvZXMiIC8+CiAgICA8bWV0YSBuYW1lPSJkZXNjcmlwdGlvbiIgY29udGVudD0iQ2hyaXN0aWFuIExvdWJvdXRpbiwgQ2hyaXN0aWFuIExvdWJvdXRpbiBQbGF0Zm9ybXMgT3V0bGV0IExhZHkgUGVlcCAxNTBtbSBTaG9lcyIgLz5kAgEQZGQWBgIBD2QWCGYPFgIfAAVPQ2hyaXN0aWFuIExvdWJvdXRpbiwgQ2hyaXN0aWFuIExvdWJvdXRpbiBQbGF0Zm9ybXMgT3V0bGV0IExhZHkgUGVlcCAxNTBtbSBTaG9lc2QCAQ9kFgJmDxAPFgYeDURhdGFUZXh0RmllbGQFBlJfbmFtZR4ORGF0YVZhbHVlRmllbGQFBFJfaWQeC18hRGF0YUJvdW5kZ2QQFQYERVVSTwNHQlADQ0FEA0FVRANSTUIDVVNEFQYBMwE1ATYBNwE4AjEwFCsDBmdnZ2dnZxYBAgVkAgIPDxYCHgdWaXNpYmxlaGRkAgMPFgIeCW9ua2V5ZG93bgVqaWYoZXZlbnQua2V5Q29kZT09MTMpIHtkb2N1bWVudC5hbGwuY3RsMDBfbWhlYWRfU1NlYXJjaC5mb2N1cygpO2RvY3VtZW50LmFsbC5jdGwwMF9taGVhZF9TU2VhcmNoLmNsaWNrKCk7fWQCAw9kFhBmDxYCHwAFnAQ8bGkgY2xhc3M9ImNydW1iMSI+PGEgaHJlZj0iL2Jsb2dzLyIgdGl0bGU9IkNocmlzdGlhbiBMb3Vib3V0aW4gQmxvZ3MiID4gQmxvZ3M8aT48L2k+PC9hPiA8L2xpPjxsaSBjbGFzcz0iY3J1bWIyIj48YSBocmVmPSIvYmxvZ3MvY2hyaXN0aWFuLWxvdWJvdXRpbi1zaG9lc19sNiIgdGl0bGU9ImNocmlzdGlhbiBsb3Vib3V0aW4gc2hvZXMiPmNocmlzdGlhbiBsb3Vib3V0aW4gc2hvZXM8aT48L2k+PC9hPiA8L2xpPjxsaSBjbGFzcz0iY3J1bWIzIj48YSBocmVmPSIvYmxvZ3MvY2hyaXN0aWFuLWxvdWJvdXRpbi1jaHJpc3RpYW4tbG91Ym91dGluLXBsYXRmb3Jtcy1vdXRsZXQtbGFkeS1wZWVwLTE1MG1tLXNob2VzX3cxNTgiIHRpdGxlPSJDaHJpc3RpYW4gTG91Ym91dGluLCBDaHJpc3RpYW4gTG91Ym91dGluIFBsYXRmb3JtcyBPdXRsZXQgTGFkeSBQZWVwIDE1MG1tIFNob2VzIj5DaHJpc3RpYW4gTG91Ym91dGluLCBDaHJpc3RpYW4gTG91Ym91dGluIFBsYXRmb3JtcyBPdXRsZXQgTGFkeSBQZWVwIDE1MG1tIFNob2VzPGk+PC9pPjwvYT4gPC9saT5kAgEPZBYGAgEPFgIfAAUZY2hyaXN0aWFuIGxvdWJvdXRpbiBzaG9lc2QCAw8WAh4LXyFJdGVtQ291bnQCCBYQZg9kFgRmDxUDIi9ibG9ncy9jaHJpc3RpYW4tbG91Ym91dGluLW5ld3NfbDEYQ2hyaXN0aWFuIExvdWJvdXRpbiBOZXdzGENocmlzdGlhbiBMb3Vib3V0aW4gTmV3c2QCAQ8WAh8GAv////8PZAIBD2QWBGYPFQMlL2Jsb2dzL2NocmlzdGlhbi1sb3Vib3V0aW4tZmFzaGlvbl9sMhtDaHJpc3RpYW4gTG91Ym91dGluIEZhc2hpb24bQ2hyaXN0aWFuIExvdWJvdXRpbiBGYXNoaW9uZAIBDxYCHwYC/////w9kAgIPZBYEZg8VAyYvYmxvZ3MvY2hyaXN0aWFuLWxvdWJvdXRpbi1kaXNjb3VudF9sMxxjaHJpc3RpYW4gbG91Ym91dGluIGRpc2NvdW50HGNocmlzdGlhbiBsb3Vib3V0aW4gZGlzY291bnRkAgEPFgIfBgL/////D2QCAw9kFgRmDxUDIy9ibG9ncy9jaHJpc3RpYW4tbG91Ym91dGluLXNhbGVzX2w0GWNocmlzdGlhbiBsb3Vib3V0aW4gc2FsZXMZY2hyaXN0aWFuIGxvdWJvdXRpbiBzYWxlc2QCAQ8WAh8GAv////8PZAIED2QWBGYPFQMuL2Jsb2dzL2NocmlzdGlhbi1sb3Vib3V0aW4tcmVkLWJvdHRvbS1zaG9lc19sNSRjaHJpc3RpYW4gbG91Ym91dGluIHJlZCBib3R0b20gc2hvZXMkY2hyaXN0aWFuIGxvdWJvdXRpbiByZWQgYm90dG9tIHNob2VzZAIBDxYCHwYC/////w9kAgUPZBYEZg8VAyMvYmxvZ3MvY2hyaXN0aWFuLWxvdWJvdXRpbi1zaG9lc19sNhljaHJpc3RpYW4gbG91Ym91dGluIHNob2VzGWNocmlzdGlhbiBsb3Vib3V0aW4gc2hvZXNkAgEPFgIfBgL/////D2QCBg9kFgRmDxUDJS9ibG9ncy9jaHJpc3RpYW4tbG91Ym91dGluLWZhc2hpb25fbDcbY2hyaXN0aWFuIGxvdWJvdXRpbiBmYXNoaW9uG2NocmlzdGlhbiBsb3Vib3V0aW4gZmFzaGlvbmQCAQ8WAh8GAv////8PZAIHD2QWBGYPFQMiL2Jsb2dzL2NocmlzdGlhbi1sb3Vib3V0aW4tMjAxMl9sOBhjaHJpc3RpYW4gbG91Ym91dGluIDIwMTIYY2hyaXN0aWFuIGxvdWJvdXRpbiAyMDEyZAIBDxYCHwYC/////w9kAgUPFgIfBgIJFhJmD2QWBGYPFQNJaHR0cDovL3d3dy5jaHJpc3RpYW5sb3Vib3V0aW5ob3RzZWxsaW5nLmNvbS9jaHJpc3RpYW4tbG91Ym91dGluLXNob2VzX2M5LxlDaHJpc3RpYW4gTG91Ym91dGluIFNob2VzGUNocmlzdGlhbiBMb3Vib3V0aW4gU2hvZXNkAgEPFgIfBgL/////D2QCAQ9kFgRmDxUDSWh0dHA6Ly93d3cuY2hyaXN0aWFubG91Ym91dGluaG90c2VsbGluZy5jb20vY2hyaXN0aWFuLWxvdWJvdXRpbi1wdW1wc19jMy8ZQ2hyaXN0aWFuIExvdWJvdXRpbiBQdW1wcxlDaHJpc3RpYW4gTG91Ym91dGluIFB1bXBzZAIBDxYCHwYC/////w9kAgIPZBYEZg8VA0lodHRwOi8vd3d3LmNocmlzdGlhbmxvdWJvdXRpbmhvdHNlbGxpbmcuY29tL2NocmlzdGlhbi1sb3Vib3V0aW4tYm9vdHNfYzIvGUNocmlzdGlhbiBMb3Vib3V0aW4gQm9vdHMZQ2hyaXN0aWFuIExvdWJvdXRpbiBCb290c2QCAQ8WAh8GAv////8PZAIDD2QWBGYPFQNRaHR0cDovL3d3dy5jaHJpc3RpYW5sb3Vib3V0aW5ob3RzZWxsaW5nLmNvbS9jaHJpc3RpYW4tbG91Ym91dGluLTIwMTItaG90LXNhbGVfYzEvIUNocmlzdGlhbiBMb3Vib3V0aW4gMjAxMiBIb3QgU2FsZSFDaHJpc3RpYW4gTG91Ym91dGluIDIwMTIgSG90IFNhbGVkAgEPFgIfBgL/////D2QCBA9kFgRmDxUDTWh0dHA6Ly93d3cuY2hyaXN0aWFubG91Ym91dGluaG90c2VsbGluZy5jb20vY2hyaXN0aWFuLWxvdWJvdXRpbi1wbGF0Zm9ybXNfYzYvHUNocmlzdGlhbiBMb3Vib3V0aW4gUGxhdGZvcm1zHUNocmlzdGlhbiBMb3Vib3V0aW4gUGxhdGZvcm1zZAIBDxYCHwYC/////w9kAgUPZBYEZg8VA0todHRwOi8vd3d3LmNocmlzdGlhbmxvdWJvdXRpbmhvdHNlbGxpbmcuY29tL2NocmlzdGlhbi1sb3Vib3V0aW4tc2FuZGFsc19jNC8bQ2hyaXN0aWFuIExvdWJvdXRpbiBTYW5kYWxzG0NocmlzdGlhbiBMb3Vib3V0aW4gU2FuZGFsc2QCAQ8WAh8GAv////8PZAIGD2QWBGYPFQNMaHR0cDovL3d3dy5jaHJpc3RpYW5sb3Vib3V0aW5ob3RzZWxsaW5nLmNvbS9jaHJpc3RpYW4tbG91Ym91dGluLWV2ZW5pbmdzX2M1LxxDaHJpc3RpYW4gTG91Ym91dGluIEV2ZW5pbmdzHENocmlzdGlhbiBMb3Vib3V0aW4gRXZlbmluZ3NkAgEPFgIfBgL/////D2QCBw9kFgRmDxUDTmh0dHA6Ly93d3cuY2hyaXN0aWFubG91Ym91dGluaG90c2VsbGluZy5jb20vY2hyaXN0aWFuLWxvdWJvdXRpbi1zbGluZ2JhY2tzX2M3Lx5DaHJpc3RpYW4gTG91Ym91dGluIFNsaW5nYmFja3MeQ2hyaXN0aWFuIExvdWJvdXRpbiBTbGluZ2JhY2tzZAIBDxYCHwYC/////w9kAggPZBYEZg8VA0todHRwOi8vd3d3LmNocmlzdGlhbmxvdWJvdXRpbmhvdHNlbGxpbmcuY29tL2NocmlzdGlhbi1sb3Vib3V0aW4tbGVvcGFyZF9jOC8bQ2hyaXN0aWFuIExvdWJvdXRpbiBMZW9wYXJkG0NocmlzdGlhbiBMb3Vib3V0aW4gTGVvcGFyZGQCAQ8WAh8GAv////8PZAICDxYCHwAFbTxhIGhyZWY9Ii9ibG9ncy9jaHJpc3RpYW4tbG91Ym91dGluLXNob2VzX2w2IiB0aXRsZT0iY2hyaXN0aWFuIGxvdWJvdXRpbiBzaG9lcyI+Y2hyaXN0aWFuIGxvdWJvdXRpbiBzaG9lczwvYT5kAgMPDxYEHgtOYXZpZ2F0ZVVybAVuL2Jsb2dzL2NocmlzdGlhbi1sb3Vib3V0aW4tc2hvZXMsLWNocmlzdGlhbi1sb3Vib3V0aW4tYXJhbmVhLTEwMC1zcGlkZXJ3ZWItZC1vcnNheS1wZWVwLXRvZS1zYW5kYWxzLWNsMjgzX3cxNTAfAAViQ2hyaXN0aWFuIExvdWJvdXRpbiBTaG9lcywgQ2hyaXN0aWFuIExvdWJvdXRpbiBBcmFuZWEgMTAwIFNwaWRlcndlYiBEIE9yc2F5IFBlZXAgVG9lIFNhbmRhbHMgQ0wyODNkZAIEDw8WAh8ABQdOb3RoaW5nZGQCBQ8WAh8GZmQCBg8PFgIeC1JlY29yZGNvdW50ZmRkAg0PZBYCAgEPFgIfBgIFFgpmD2QWAmYPFQlhaHR0cDovL3d3dy5jaHJpc3RpYW5sb3Vib3V0aW5ob3RzZWxsaW5nLmNvbS9jaHJpc3RpYW4tbG91Ym91dGluLW91dGxldC1sYWR5LXBlZXAtMTUwbW0tc2hvZXNfcDE5NDZDaHJpc3RpYW4gTG91Ym91dGluIE91dGxldCBMYWR5IFBlZXAgMTUwbW0gU2hvZXMgQ0wxOTT2ATxpbWcgc3JjPSJodHRwOi8vd3d3LmNocmlzdGlhbmxvdWJvdXRpbmhvdHNlbGxpbmcuY29tL3VwaW1hZ2UvdGh1bWJuYWlsL2NocmlzdGlhbi1sb3Vib3V0aW4tb3V0bGV0LWxhZHktcGVlcC0xNTBtbS1zaG9lc18yMDEyMDIyMjA1MzM0MTk1My5qcGciIGFsdD0iQ2hyaXN0aWFuIExvdWJvdXRpbiBPdXRsZXQgTGFkeSBQZWVwIDE1MG1tIFNob2VzIENMMTk0IiBvbmxvYWQ9IkF1dG9SZXNpemVJbWFnZSgxMzIsMTI4LHRoaXMpOyIvPmFodHRwOi8vd3d3LmNocmlzdGlhbmxvdWJvdXRpbmhvdHNlbGxpbmcuY29tL2NocmlzdGlhbi1sb3Vib3V0aW4tb3V0bGV0LWxhZHktcGVlcC0xNTBtbS1zaG9lc19wMTk0NkNocmlzdGlhbiBMb3Vib3V0aW4gT3V0bGV0IExhZHkgUGVlcCAxNTBtbSBTaG9lcyBDTDE5NDZDaHJpc3RpYW4gTG91Ym91dGluIE91dGxldCBMYWR5IFBlZXAgMTUwbW0gU2hvZXMgQ0wxOTQJJDMsMzk1LjAwByQyODkuMDADOTElZAIBD2QWAmYPFQljaHR0cDovL3d3dy5jaHJpc3RpYW5sb3Vib3V0aW5ob3RzZWxsaW5nLmNvbS9jaHJpc3RpYW4tbG91Ym91dGluLXNhbGUtbi1wcml2ZS0xMjBtbS1zaG9lcy13aGl0ZV9wMTYyOUNocmlzdGlhbiBMb3Vib3V0aW4gU2FsZSBOwrBQcml2ZSAxMjBtbSBTaG9lcyBXaGl0ZSBDTDE2MvoBPGltZyBzcmM9Imh0dHA6Ly93d3cuY2hyaXN0aWFubG91Ym91dGluaG90c2VsbGluZy5jb20vdXBpbWFnZS90aHVtYm5haWwvY2hyaXN0aWFuLWxvdWJvdXRpbi1zYWxlLW4tcHJpdmUtMTIwbW0tc2hvZXMtbnVkZV8yMDEyMDIyMjExNTYxNTQwNi5qcGciIGFsdD0iQ2hyaXN0aWFuIExvdWJvdXRpbiBTYWxlIE7CsFByaXZlIDEyMG1tIFNob2VzIFdoaXRlIENMMTYyIiBvbmxvYWQ9IkF1dG9SZXNpemVJbWFnZSgxMzIsMTI4LHRoaXMpOyIvPmNodHRwOi8vd3d3LmNocmlzdGlhbmxvdWJvdXRpbmhvdHNlbGxpbmcuY29tL2NocmlzdGlhbi1sb3Vib3V0aW4tc2FsZS1uLXByaXZlLTEyMG1tLXNob2VzLXdoaXRlX3AxNjI5Q2hyaXN0aWFuIExvdWJvdXRpbiBTYWxlIE7CsFByaXZlIDEyMG1tIFNob2VzIFdoaXRlIENMMTYyOUNocmlzdGlhbiBMb3Vib3V0aW4gU2FsZSBOwrBQcml2ZSAxMjBtbSBTaG9lcyBXaGl0ZSBDTDE2MgckNzk1LjAwByQxMzguMDADODMlZAICD2QWAmYPFQlaaHR0cDovL3d3dy5jaHJpc3RpYW5sb3Vib3V0aW5ob3RzZWxsaW5nLmNvbS9jaHJpc3RpYW4tbG91Ym91dGluLXB1bXBzLWZpZmktcGF0ZW50LXNob2VzX3A4NkNocmlzdGlhbiBMb3Vib3V0aW4gUHVtcHMgRmlmaSA4NW1tIFBhdGVudCBTaG9lcyBDTDAwOPEBPGltZyBzcmM9Imh0dHA6Ly93d3cuY2hyaXN0aWFubG91Ym91dGluaG90c2VsbGluZy5jb20vdXBpbWFnZS90aHVtYm5haWwvY2hyaXN0aWFuLWxvdWJvdXRpbi1wdW1wcy1maWZpLXBhdGVudC1zaG9lc18yMDEyMDIxNTExMDI0NTY1Ni5qcGciIGFsdD0iQ2hyaXN0aWFuIExvdWJvdXRpbiBQdW1wcyBGaWZpIDg1bW0gUGF0ZW50IFNob2VzIENMMDA4IiBvbmxvYWQ9IkF1dG9SZXNpemVJbWFnZSgxMzIsMTI4LHRoaXMpOyIvPlpodHRwOi8vd3d3LmNocmlzdGlhbmxvdWJvdXRpbmhvdHNlbGxpbmcuY29tL2NocmlzdGlhbi1sb3Vib3V0aW4tcHVtcHMtZmlmaS1wYXRlbnQtc2hvZXNfcDg2Q2hyaXN0aWFuIExvdWJvdXRpbiBQdW1wcyBGaWZpIDg1bW0gUGF0ZW50IFNob2VzIENMMDA4NkNocmlzdGlhbiBMb3Vib3V0aW4gUHVtcHMgRmlmaSA4NW1tIFBhdGVudCBTaG9lcyBDTDAwOAckNjg5LjAwByQxMzkuMDADODAlZAIDD2QWAmYPFQlwaHR0cDovL3d3dy5jaHJpc3RpYW5sb3Vib3V0aW5ob3RzZWxsaW5nLmNvbS9jaHJpc3RpYW4tbG91Ym91dGluLWFua2xlLWJvb3RzLXRvdW5kcmEtY295b3RlLWZ1ci1ib290cy1pbi1ncmV5X3A4OEZDaHJpc3RpYW4gTG91Ym91dGluIEFua2xlIEJvb3RzIFRvdW5kcmEgQ295b3RlLWZ1ciBTaG9lcyBJbiBHcmV5IENMMDg4lgI8aW1nIHNyYz0iaHR0cDovL3d3dy5jaHJpc3RpYW5sb3Vib3V0aW5ob3RzZWxsaW5nLmNvbS91cGltYWdlL3RodW1ibmFpbC9jaHJpc3RpYW4tbG91Ym91dGluLWFua2xlLWJvb3RzLXRvdW5kcmEtY295b3RlLWZ1ci1ib290cy1pbi1ncmV5XzIwMTIwMjE3MDUzODUwNjU2LmpwZyIgYWx0PSJDaHJpc3RpYW4gTG91Ym91dGluIEFua2xlIEJvb3RzIFRvdW5kcmEgQ295b3RlLWZ1ciBTaG9lcyBJbiBHcmV5IENMMDg4IiBvbmxvYWQ9IkF1dG9SZXNpemVJbWFnZSgxMzIsMTI4LHRoaXMpOyIvPnBodHRwOi8vd3d3LmNocmlzdGlhbmxvdWJvdXRpbmhvdHNlbGxpbmcuY29tL2NocmlzdGlhbi1sb3Vib3V0aW4tYW5rbGUtYm9vdHMtdG91bmRyYS1jb3lvdGUtZnVyLWJvb3RzLWluLWdyZXlfcDg4RkNocmlzdGlhbiBMb3Vib3V0aW4gQW5rbGUgQm9vdHMgVG91bmRyYSBDb3lvdGUtZnVyIFNob2VzIEluIEdyZXkgQ0wwODhGQ2hyaXN0aWFuIExvdWJvdXRpbiBBbmtsZSBCb290cyBUb3VuZHJhIENveW90ZS1mdXIgU2hvZXMgSW4gR3JleSBDTDA4OAkkMiwwOTUuMDAHJDI0MC4wMAM4OSVkAgQPZBYCZg8VCWJodHRwOi8vd3d3LmNocmlzdGlhbmxvdWJvdXRpbmhvdHNlbGxpbmcuY29tL2NocmlzdGlhbi1sb3Vib3V0aW4tc2FsZS1iaWFuY2EtMTQwbW0tc2hvZXMtYmVpZ2VfcDE3MDdDaHJpc3RpYW4gTG91Ym91dGluIFNhbGUgQmlhbmNhIDE0MG1tIFNob2VzIEJlaWdlIENMMTcw+QE8aW1nIHNyYz0iaHR0cDovL3d3dy5jaHJpc3RpYW5sb3Vib3V0aW5ob3RzZWxsaW5nLmNvbS91cGltYWdlL3RodW1ibmFpbC9jaHJpc3RpYW4tbG91Ym91dGluLXNhbGUtYmlhbmNhLTE0MG1tLXNob2VzLW9yYW5nZV8yMDEyMDIyMjAzMDkyMzczNC5qcGciIGFsdD0iQ2hyaXN0aWFuIExvdWJvdXRpbiBTYWxlIEJpYW5jYSAxNDBtbSBTaG9lcyBCZWlnZSBDTDE3MCIgb25sb2FkPSJBdXRvUmVzaXplSW1hZ2UoMTMyLDEyOCx0aGlzKTsiLz5iaHR0cDovL3d3dy5jaHJpc3RpYW5sb3Vib3V0aW5ob3RzZWxsaW5nLmNvbS9jaHJpc3RpYW4tbG91Ym91dGluLXNhbGUtYmlhbmNhLTE0MG1tLXNob2VzLWJlaWdlX3AxNzA3Q2hyaXN0aWFuIExvdWJvdXRpbiBTYWxlIEJpYW5jYSAxNDBtbSBTaG9lcyBCZWlnZSBDTDE3MDdDaHJpc3RpYW4gTG91Ym91dGluIFNhbGUgQmlhbmNhIDE0MG1tIFNob2VzIEJlaWdlIENMMTcwByQ3OTkuMDAHJDE0MC4wMAM4MiVkAgUPZBYGZg8WAh8AZWQCAQ8WAh8ABfsLPENFTlRFUj4NCiAgICAgICAgICAgPEZPTlQgc3R5bGU9IiBmb250LXNpemU6MTBQWDsgY29sb3I6IzU1NSI+PGEgaHJlZj0iaHR0cDovL3d3dy5jaHJpc3RpYW5sb3Vib3V0aW5ob3RzZWxsaW5nLmNvbS8iPkNocmlzdGlhbiBMb3Vib3V0aW4sQ2hyaXN0aWFuIExvdWJvdXRpbiBTaG9lcyxDaHJpc3RpYW4gTG91Ym91dGluIE9ubGluZSBTdG9yZTwvYT4gfCA8Rk9OVCBzdHlsZT0iIGZvbnQtc2l6ZToxMFBYOyBjb2xvcjojNTU1Ij48YSBocmVmPSJodHRwOi8vd3d3LmNocmlzdGlhbmxvdWJvdXRpbmhvdHNlbGxpbmcuY29tL2NocmlzdGlhbi1sb3Vib3V0aW4tcHVtcHNfYzMvIj5DaHJpc3RpYW4gTG91Ym91dGluIFB1bXBzPC9hPiB8IDxGT05UIHN0eWxlPSIgZm9udC1zaXplOjEwUFg7IGNvbG9yOiM1NTUiPjxhIGhyZWY9Imh0dHA6Ly93d3cuY2hyaXN0aWFubG91Ym91dGluaG90c2VsbGluZy5jb20vY2hyaXN0aWFuLWxvdWJvdXRpbi0yMDEyLWhvdC1zYWxlX2MxLyI+Q2hyaXN0aWFuIExvdWJvdXRpbiAyMDEyIEhvdCBTYWxlPC9hPiB8IDxGT05UIHN0eWxlPSIgZm9udC1zaXplOjEwUFg7IGNvbG9yOiM1NTUiPjxhIGhyZWY9Imh0dHA6Ly93d3cuY2hyaXN0aWFubG91Ym91dGluaG90c2VsbGluZy5jb20vY2hyaXN0aWFuLWxvdWJvdXRpbi1wbGF0Zm9ybXNfYzYvIj5DaHJpc3RpYW4gTG91Ym91dGluIFBsYXRmb3JtczwvYT4gPC9CUj4NCkVtYWlsOmNocmlzdGlhbmxvdWJvdXRpbmhvdHNlbGxpbmdAaG90bWFpbC5jb20gV2ViIHN1cHBvcnQgaG91cnMgYXJlIE1vbmRheSB0byBGcmlkYXksIDk6MDBBTSB0byA0OjMwUE0gRVNULjwvRk9OVD4NCg0KDQogICAgICAgICAgIDwvQ0VOVEVSPg0KPFAgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPg0KPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9qcy51c2Vycy41MS5sYS83MDQwNjI2LmpzIj48L3NjcmlwdD4NCjxub3NjcmlwdD48YSBocmVmPSJodHRwOi8vd3d3LjUxLmxhLz83MDQwNjI2IiB0YXJnZXQ9Il9ibGFuayI+PGltZyBhbHQ9IiYjeDYyMTE7JiN4ODk4MTsmI3g1NTY2OyYjeDUxNEQ7JiN4OEQzOTsmI3g3RURGOyYjeDhCQTE7IiBzcmM9Imh0dHA6Ly9pbWcudXNlcnMuNTEubGEvNzA0MDYyNi5hc3AiIHN0eWxlPSJib3JkZXI6bm9uZSIgLz48L2E+PC9ub3NjcmlwdD48L3A+DQo8UCBzdHlsZT0iZGlzcGxheTpub25lOyI+DQo8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL2pzLnVzZXJzLjUxLmxhLzgwNzk5MzIuanMiPjwvc2NyaXB0Pg0KPG5vc2NyaXB0PjxhIGhyZWY9Imh0dHA6Ly93d3cuNTEubGEvPzgwNzk5MzIiIHRhcmdldD0iX2JsYW5rIj48aW1nIGFsdD0iJiN4NjIxMTsmI3g4OTgxOyYjeDU1NjY7JiN4NTE0RDsmI3g4RDM5OyYjeDdFREY7JiN4OEJBMTsiIHNyYz0iaHR0cDovL2ltZy51c2Vycy41MS5sYS84MDc5OTMyLmFzcCIgc3R5bGU9ImJvcmRlcjpub25lIiAvPjwvYT48L25vc2NyaXB0PmQCAg8WAh8ABckBPGEgaHJlZj0iL2Jsb2dzL2NocmlzdGlhbi1sb3Vib3V0aW4tY2hyaXN0aWFuLWxvdWJvdXRpbi1wbGF0Zm9ybXMtb3V0bGV0LWxhZHktcGVlcC0xNTBtbS1zaG9lc193MTU4IiAgdGFyZ2V0PSJfYmxhbmsiPkNocmlzdGlhbiBMb3Vib3V0aW4sIENocmlzdGlhbiBMb3Vib3V0aW4gUGxhdGZvcm1zIE91dGxldCBMYWR5IFBlZXAgMTUwbW0gU2hvZXM8L2E+ZGSKndE51f2LtkzZgGJ//zWSqciEeA==" /></form>
</div>
</body>
</html>
Sandals">
                            Christian Louboutin Sandals
                        </a></span>
                        </li>
                    
                        <li><span><a href="http://www.christian

Christian Louboutin
Christian Louboutin People's Republic of China
on 02-May-12 6:29 PM
<a href="http://www.beatsbydreinstore.com/"; title="Monster Beats" ><strong><em>Monster Beats</strong></em></a>
<a href="http://www.beatsbydreinstore.com/"; title="Cheap Monster Beats"><strong><em>Cheap Monster Beats</strong></em></a>
<a href="www.beatsbydreinstore.com/beats-by-dr-dre_c21"; title="Beats By Dre"><strong><em>Beats By Dre</strong></em></a>
<a href="www.beatsbydreinstore.com/beats-by-dre-in-ear_c1"; title="MONSTER BEATS IN-EAR Headphones"><strong><em>MONSTER BEATS IN-EAR Headphones</strong></em></a>
<a href="www.beatsbydreinstore.com/beats-by-dre-over-ear_c2"; title="MONSTER BEATS OVER-EAR Headphones"><strong><em>MONSTER BEATS OVER-EAR Headphones</strong></em></a>


<a href="www.redbottomshoesstores.com/christian-louboutin-shoes_c18"; title="Christian Louboutin"><strong><em>Christian Louboutin</em></strong></a>
<a href="www.redbottomshoesstores.com/yves-saint-laurent-shoes_c17"; title="Yves Saint Laurent"><strong><em>Yves Saint Laurent</em></strong></a>
<a href="http://www.redbottomshoesstores.com"; title="Red Bottom Shoes"><strong><em>Red Bottom Shoes</em></strong></a>
<a href="http://www.redbottomshoesstores.com/products"; title="Red Bottom Shoes Sale"><strong><em>Red Bottom Shoes Sale</em></strong></a>
<a href="http://www.redbottomshoesstores.com"; title="replica red bottom shoes"><strong><em>replica red bottom shoes</em></strong></a>
<a href="http://www.redbottomshoesstores.com"; title="Christian Louboutin Outlet"><strong><em>Christian Louboutin Outlet</em></strong></a>


<a href="http://www.christian-louboutininuk.com/"; title="Christian Louboutin"><strong><em>Christian Louboutin</strong></em></a>
<a href="http://www.christian-louboutininuk.com/"; title="Red Bottom Shoes"><strong><em>Red Bottom Shoes</strong></em></a>
<a href="www.christian-louboutininuk.com/products"; title="Christian Louboutin Shoes"><strong><em>Christian Louboutin Shoes</strong></em></a>
<a href="www.christian-louboutininuk.com/products"; title="Cheap Christian Louboutin"><strong><em>Cheap Christian Louboutin</strong></em></a>
<a href="www.christian-louboutininuk.com/christian-louboutin-pumps_c3"; title="Christian Louboutin Pumps"><strong><em>Christian Louboutin Pumps</strong></em></a>


<a href="http://www.shopmbtonsale.com/"; title="Mbt Shoes"><strong><em>Mbt Shoes</strong></em></a>
<a href="http://www.shopmbtonsale.com/products"; title="Mbt Shoes"><strong><em>Mbt Shoes</strong></em></a>
<a href="www.shopmbtonsale.com/women-mbt-shoes_c3"; title="Women Mbt Shoes"><strong><em>Women Mbt Shoes</strong></em></a>
<a href="http://www.shopmbtonsale.com/men-mbt-shoes_c2"; title="Men Mbt Shoes"><strong><em>Men Mbt Shoes</strong></em></a>
<a href="http://www.shopmbtonsale.com/featured-mlfy"; title="Mbt Special Shoes"><strong><em>Mbt Special Shoes</strong></em></a>


<a href="http://uschrstianlouboutin.com/"; title="Christian Louboutin"><strong><em>Christian Louboutin</strong></em></a>
<a href="uschrstianlouboutin.com/.../"; title="Red Bottom Shoes"><strong><em>Red Bottom Shoes</strong></em></a>
<a href="uschrstianlouboutin.com/.../"; title="Christian Louboutin Shoes"><strong><em>Christian Louboutin Shoes</strong></em></a>
<a href="http://uschrstianlouboutin.com/"; title="Christian Louboutin Shoes Sale"><strong><em>Christian Louboutin Shoes Sale</strong></em></a>
<a href="http://uschrstianlouboutin.com/"; title="Cheap Christian Louboutin Shoes"><strong><em>Cheap Christian Louboutin Shoes</strong></em></a>


<a href="http://www.primecanadagoose.com/"; title="Canada Goose"><strong><em>Canada Goose</strong></em></a>
<a href="http://www.primecanadagoose.com/Products.htm"; title="Canada Goose Jackets"><strong><em>Canada Goose Jackets</strong></em></a>
<a href="http://www.primecanadagoose.com/Products.htm"; title="Canada Goose Parka"><strong><em>Canada Goose Parka</strong></em></a>


<a href="http://www.canadagoosefr.com/"; title="Canada Goose"><strong><em>Canada Goose</strong></em></a>
<a href="http://www.canadagoosefr.com/PRODUCTS.html"; title="Canada Goose Jackets"><strong><em>Canada Goose Jackets</strong></em></a>
<a href="http://www.canadagoosefr.com/PRODUCTS.html"; title="Canada Goose Park"><strong><em>Canada Goose Parka</strong></em></a>

dfgdfgfd
dfgdfgfd People's Republic of China
on 09-May-12 9:49 PM

<p><strong>Among all the world-famous centers, the <a href="www.christianlouboutin--onsale.com/">Christian Louboutin Shoes</a> is one of the bellwethers leading the latest trend. Being a Cheap <a href="www.christianlouboutin--onsale.com/">Christian Louboutin Outlet Store Online</a>, we wholeheartedly dedicate to present the latest Christian Louboutin Pumps with rational prices for your reference. Whichever style of shoes you're looking for, Christian Louboutin Sandals or the latest design of Christian Louboutin Sneakers,<a href="www.christianlouboutin--onsale.com/">Christian Louboutin New 2012</a>, you can find your favorite here. You may find them amazing in their looks if they're the first time for you to see<a href="www.christianlouboutin--onsale.com/">Christian Louboutin Shose</a>. We promise, you'll love them.</p>

business directory
business directory United States
on 13-May-12 4:33 AM
Another excellent post. Really, I'm very happy I found this. I'll pin your blog post so my buddies can read your writing too!

dfgdfgfd
dfgdfgfd People's Republic of China
on 14-May-12 1:54 PM
<p>Belgium's border city of Maaseik has opened an exhibition of about 200 relics and treasures of the Tang Dynasty (AD 618-907), showcasing China's golden age of ancient civilization.</p>
<p>The exhibition, which opened Friday, <a href="www.louisvuittons--outlet.com/">Coach outlet Online</a>continues until Oct 20, part of the city's effort to create a center of Chinese culture. Belgian Princess Mathilde struck a gong to formally open the exhibition, titled &quot;China's Golden Age: Treasure from the Tang Dynasty&quot;.<a href="www.coach--outletonlinestores.com/">Coach Outlet</a></p>
<p>The items, including gold plate and silver wares for royal families, Tang Dynasty tri-color glazed figurines of women and mural paintings, <a href="www.louisvuittons--outlet.com/">Coach Outlet Online Store</a> have recently been on exhibit in the Dutch city of Assen.<a href="www.coach--outletonlinestores.com/">Coach outlet Store</a></p>
<p>The show features social components of men and women, cultural components of merchants, trade and production, sports and exercise, Buddhism, mysticism, art and literature.<a href="www.coach--outletonlinestores.com/">Coach Outlet Store online</a>.</p>
<p>All of the exhibited items are from China's Shaanxi province and its provincial capital Xi'an, the most populous city in the world at the time and once the capital of the Tang Dynasty.<a href="www.louisvuittons--outlet.com/">Louis Vuitton Handbags</a></p>
<p>The Tang period is generally regarded as a high point in Chinese civilization - equal to, or surpassing that of, the earlier Han Dynasty (206 BC - AD 220), a golden age of cosmopolitan culture.<a href="www.christianlouboutin--onsale.com/">Christian Louboutin Shoes</a></p>
<p>Several years ago, said Dirk Verlaak, vice-mayor of Maaseik, his city and Assen teamed up to host history and culture exhibitions of China's first two imperial dynasties, the Qin (221-206 BC) and the Han. <a href="www.christianlouboutin--onsale.com/">Christian Louboutin Outlet Store Online</a> The Chinese artifacts attracted 350,000 visitors in Assen and 190,000 in Maaseik. <a href="www.christianlouboutin--onsale.com/">Christian Louboutin Shose</a></p>


Pingbacks and trackbacks (4)+

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading