merge fx-team to m-c
authorRob Campbell <rcampbell@mozilla.com>
Fri, 12 Aug 2011 10:55:14 -0300
changeset 74310 3c8f87c6cbc69dc1f90cfac82b5ed1dd9c171558
parent 74309 5776ff214937fed05aeff81e42a0be3f1bf62941 (current diff)
parent 74302 c2213f8c76dd448da1fa9e646cf944eb38608d28 (diff)
child 74311 71c422d27ed4ea3c3951ae23b134318310c8682e
child 74337 9975c8487a09366aa21ba19555272cbe690ed6d7
child 74346 af01921fc49352323e65e943ab4a3f46b0b3d59a
push id2
push userbsmedberg@mozilla.com
push dateFri, 19 Aug 2011 14:38:13 +0000
milestone8.0a1
merge fx-team to m-c
js/src/jsapi-tests/testThreadGC.cpp
js/src/jsapi-tests/testThreads.cpp
js/src/tests/js1_8_5/extensions/regress-672804-1.js
js/src/tests/js1_8_5/extensions/regress-672804-2.js
js/src/tests/js1_8_5/extensions/regress-672804-3.js
--- a/accessible/src/base/AccEvent.cpp
+++ b/accessible/src/base/AccEvent.cpp
@@ -226,24 +226,27 @@ AccStateChangeEvent::
   AccEvent(nsIAccessibleEvent::EVENT_STATE_CHANGE, aAccessible,
            aIsFromUserInput, eAllowDupes),
   mState(aState), mIsEnabled(aIsEnabled)
 {
 }
 
 AccStateChangeEvent::
   AccStateChangeEvent(nsINode* aNode, PRUint64 aState, PRBool aIsEnabled):
-  AccEvent(::nsIAccessibleEvent::EVENT_STATE_CHANGE, aNode),
+  AccEvent(::nsIAccessibleEvent::EVENT_STATE_CHANGE, aNode,
+           eAutoDetect, eAllowDupes),
   mState(aState), mIsEnabled(aIsEnabled)
 {
 }
 
 AccStateChangeEvent::
   AccStateChangeEvent(nsINode* aNode, PRUint64 aState) :
-  AccEvent(::nsIAccessibleEvent::EVENT_STATE_CHANGE, aNode), mState(aState)
+  AccEvent(::nsIAccessibleEvent::EVENT_STATE_CHANGE, aNode,
+           eAutoDetect, eAllowDupes),
+  mState(aState)
 {
   // Use GetAccessibleForNode() because we do not want to store an accessible
   // since it leads to problems with delayed events in the case when
   // an accessible gets reorder event before delayed event is processed.
   nsAccessible *accessible = GetAccessibleForNode();
   mIsEnabled = accessible && ((accessible->State() & mState) != 0);
 }
 
--- a/accessible/src/base/nsAccUtils.cpp
+++ b/accessible/src/base/nsAccUtils.cpp
@@ -52,16 +52,17 @@
 #include "nsXULTreeGridAccessible.h"
 
 #include "nsIDOMXULContainerElement.h"
 #include "nsIDOMXULSelectCntrlEl.h"
 #include "nsIDOMXULSelectCntrlItemEl.h"
 #include "nsWhitespaceTokenizer.h"
 #include "nsComponentManagerUtils.h"
 
+namespace dom = mozilla::dom;
 using namespace mozilla::a11y;
 
 void
 nsAccUtils::GetAccAttr(nsIPersistentProperties *aAttributes,
                        nsIAtom *aAttrName, nsAString& aAttrValue)
 {
   aAttrValue.Truncate();
 
@@ -330,16 +331,34 @@ nsAccUtils::HasDefinedARIAToken(nsIConte
                             nsAccessibilityAtoms::_empty, eCaseMatters) ||
       aContent->AttrValueIs(kNameSpaceID_None, aAtom,
                             nsAccessibilityAtoms::_undefined, eCaseMatters)) {
         return PR_FALSE;
   }
   return PR_TRUE;
 }
 
+nsIAtom*
+nsAccUtils::GetARIAToken(dom::Element* aElement, nsIAtom* aAttr)
+{
+  if (!nsAccUtils::HasDefinedARIAToken(aElement, aAttr))
+    return nsAccessibilityAtoms::_empty;
+
+  static nsIContent::AttrValuesArray tokens[] =
+    { &nsAccessibilityAtoms::_false, &nsAccessibilityAtoms::_true,
+      &nsAccessibilityAtoms::mixed, nsnull};
+
+  PRInt32 idx = aElement->FindAttrValueIn(kNameSpaceID_None,
+                                          aAttr, tokens, eCaseMatters);
+  if (idx >= 0)
+    return *(tokens[idx]);
+
+  return nsnull;
+}
+
 nsAccessible *
 nsAccUtils::GetAncestorWithRole(nsAccessible *aDescendant, PRUint32 aRole)
 {
   nsAccessible *document = aDescendant->GetDocAccessible();
   nsAccessible *parent = aDescendant;
   while ((parent = parent->Parent())) {
     PRUint32 testRole = parent->Role();
     if (testRole == aRole)
--- a/accessible/src/base/nsAccUtils.h
+++ b/accessible/src/base/nsAccUtils.h
@@ -45,17 +45,17 @@
 #include "nsIAccessibleRole.h"
 #include "nsIAccessibleText.h"
 #include "nsIAccessibleTable.h"
 
 #include "nsARIAMap.h"
 #include "nsAccessibilityService.h"
 #include "nsCoreUtils.h"
 
-#include "nsIContent.h"
+#include "mozilla/dom/Element.h"
 #include "nsIDocShell.h"
 #include "nsIDOMNode.h"
 #include "nsIPersistentProperties2.h"
 #include "nsIPresShell.h"
 #include "nsPoint.h"
 
 class nsAccessNode;
 class nsAccessible;
@@ -146,16 +146,21 @@ public:
    * property is not present, or is "" or "undefined". Do not call 
    * this method for properties of type string, decimal, IDREF or IDREFS.
    * 
    * Return PR_TRUE if the ARIA property is defined, otherwise PR_FALSE
    */
   static PRBool HasDefinedARIAToken(nsIContent *aContent, nsIAtom *aAtom);
 
   /**
+   * Return atomic value of ARIA attribute of boolean or NMTOKEN type.
+   */
+  static nsIAtom* GetARIAToken(mozilla::dom::Element* aElement, nsIAtom* aAttr);
+
+  /**
    * Return document accessible for the given presshell.
    */
   static nsDocAccessible *GetDocAccessibleFor(nsIWeakReference *aWeakShell)
   {
     nsCOMPtr<nsIPresShell> presShell(do_QueryReferent(aWeakShell));
     return presShell ?
       GetAccService()->GetDocAccessible(presShell->GetDocument()) : nsnull;
   }
--- a/accessible/src/base/nsAccessibilityAtomList.h
+++ b/accessible/src/base/nsAccessibilityAtomList.h
@@ -60,16 +60,17 @@ ACCESSIBILITY_ATOM(button, "button")
 ACCESSIBILITY_ATOM(checkbox, "checkbox")
 ACCESSIBILITY_ATOM(col, "col")
 ACCESSIBILITY_ATOM(_empty, "")
 ACCESSIBILITY_ATOM(_false, "false")
 ACCESSIBILITY_ATOM(image, "image")
 ACCESSIBILITY_ATOM(menu, "menu")
 ACCESSIBILITY_ATOM(menuButton, "menu-button")
 ACCESSIBILITY_ATOM(multiple, "multiple")
+ACCESSIBILITY_ATOM(mixed, "mixed")
 ACCESSIBILITY_ATOM(open, "open")
 ACCESSIBILITY_ATOM(password, "password")
 ACCESSIBILITY_ATOM(radio, "radio")
 ACCESSIBILITY_ATOM(reset, "reset")
 ACCESSIBILITY_ATOM(row, "row")
 ACCESSIBILITY_ATOM(submit, "submit")
 ACCESSIBILITY_ATOM(_true, "true")
 ACCESSIBILITY_ATOM(_undefined, "undefined")
--- a/accessible/src/base/nsDocAccessible.cpp
+++ b/accessible/src/base/nsDocAccessible.cpp
@@ -79,18 +79,16 @@
 #endif
 
 namespace dom = mozilla::dom;
 using namespace mozilla::a11y;
 
 ////////////////////////////////////////////////////////////////////////////////
 // Static member initialization
 
-PRUint64 nsDocAccessible::gLastFocusedAccessiblesState = 0;
-
 static nsIAtom** kRelationAttrs[] =
 {
   &nsAccessibilityAtoms::aria_labelledby,
   &nsAccessibilityAtoms::aria_describedby,
   &nsAccessibilityAtoms::aria_owns,
   &nsAccessibilityAtoms::aria_controls,
   &nsAccessibilityAtoms::aria_flowto,
   &nsAccessibilityAtoms::_for,
@@ -913,31 +911,43 @@ NS_IMPL_NSIDOCUMENTOBSERVER_LOAD_STUB(ns
 NS_IMPL_NSIDOCUMENTOBSERVER_STYLE_STUB(nsDocAccessible)
 
 void
 nsDocAccessible::AttributeWillChange(nsIDocument *aDocument,
                                      dom::Element* aElement,
                                      PRInt32 aNameSpaceID,
                                      nsIAtom* aAttribute, PRInt32 aModType)
 {
-  // XXX TODO: bugs 467143, 472142, 472143.
-  // Here we will want to cache whatever state we are potentially interested in,
-  // such as the existence of aria-pressed for button (so we know if we need to
-  // newly expose it as a toggle button) etc.
+  nsAccessible* accessible = GetAccessible(aElement);
+  if (!accessible) {
+    if (aElement != mContent)
+      return;
+
+    accessible = this;
+  }
 
   // Update dependent IDs cache. Take care of elements that are accessible
   // because dependent IDs cache doesn't contain IDs from non accessible
   // elements.
-  if (aModType == nsIDOMMutationEvent::MODIFICATION ||
-      aModType == nsIDOMMutationEvent::REMOVAL) {
-    nsAccessible* accessible = GetAccessible(aElement);
-    if (accessible)
-      RemoveDependentIDsFor(accessible, aAttribute);
-    else if (aElement == mContent)
-      RemoveDependentIDsFor(this, aAttribute);
+  if (aModType != nsIDOMMutationEvent::ADDITION)
+    RemoveDependentIDsFor(accessible, aAttribute);
+
+  // Store the ARIA attribute old value so that it can be used after
+  // attribute change. Note, we assume there's no nested ARIA attribute
+  // changes. If this happens then we should end up with keeping a stack of
+  // old values.
+
+  // XXX TODO: bugs 472142, 472143.
+  // Here we will want to cache whatever attribute values we are interested
+  // in, such as the existence of aria-pressed for button (so we know if we
+  // need to newly expose it as a toggle button) etc.
+  if (aAttribute == nsAccessibilityAtoms::aria_checked ||
+      aAttribute == nsAccessibilityAtoms::aria_pressed) {
+    mARIAAttrOldValue = (aModType != nsIDOMMutationEvent::ADDITION) ?
+      nsAccUtils::GetARIAToken(aElement, aAttribute) : nsnull;
   }
 }
 
 void
 nsDocAccessible::AttributeChanged(nsIDocument *aDocument,
                                   dom::Element* aElement,
                                   PRInt32 aNameSpaceID, nsIAtom* aAttribute,
                                   PRInt32 aModType)
@@ -971,20 +981,16 @@ nsDocAccessible::AttributeChanged(nsIDoc
   // accessible element means either the element is not accessible at all or
   // its accessible will be created later. It doesn't make sense to keep
   // dependent IDs for non accessible elements. For the second case we'll update
   // dependent IDs cache when its accessible is created.
   if (aModType == nsIDOMMutationEvent::MODIFICATION ||
       aModType == nsIDOMMutationEvent::ADDITION) {
     AddDependentIDsFor(accessible, aAttribute);
   }
-
-  // If it was the focused node, cache the new state.
-  if (aElement == gLastFocusedNode)
-    gLastFocusedAccessiblesState = accessible->State();
 }
 
 // nsDocAccessible protected member
 void
 nsDocAccessible::AttributeChangedImpl(nsIContent* aContent, PRInt32 aNameSpaceID, nsIAtom* aAttribute)
 {
   // Fire accessible event after short timer, because we need to wait for
   // DOM attribute & resulting layout to actually change. Otherwise,
@@ -1040,18 +1046,18 @@ nsDocAccessible::AttributeChangedImpl(ns
       aAttribute == nsAccessibilityAtoms::aria_label ||
       aAttribute == nsAccessibilityAtoms::aria_labelledby) {
     FireDelayedAccessibleEvent(nsIAccessibleEvent::EVENT_NAME_CHANGE,
                                aContent);
     return;
   }
 
   if (aAttribute == nsAccessibilityAtoms::aria_busy) {
-    PRBool isOn = !aContent->AttrValueIs(aNameSpaceID, aAttribute,
-                                         nsAccessibilityAtoms::_true, eCaseMatters);
+    PRBool isOn = aContent->AttrValueIs(aNameSpaceID, aAttribute,
+                                        nsAccessibilityAtoms::_true, eCaseMatters);
     nsRefPtr<AccEvent> event = new AccStateChangeEvent(aContent, states::BUSY, isOn);
     FireDelayedAccessibleEvent(event);
     return;
   }
 
   if (aAttribute == nsAccessibilityAtoms::selected ||
       aAttribute == nsAccessibilityAtoms::aria_selected) {
     // ARIA or XUL selection
@@ -1153,34 +1159,28 @@ nsDocAccessible::ARIAAttributeChanged(ns
     return;
   }
 
   // The following ARIA attributes only take affect when dynamic content role is present
   if (aAttribute == nsAccessibilityAtoms::aria_checked ||
       aAttribute == nsAccessibilityAtoms::aria_pressed) {
     const PRUint32 kState = (aAttribute == nsAccessibilityAtoms::aria_checked) ?
                             states::CHECKED : states::PRESSED;
-    nsRefPtr<AccEvent> event =
-      new AccStateChangeEvent(aContent, kState);
+    nsRefPtr<AccEvent> event = new AccStateChangeEvent(aContent, kState);
     FireDelayedAccessibleEvent(event);
-    if (aContent == gLastFocusedNode) {
-      // State changes for MIXED state currently only supported for focused item, because
-      // otherwise we would need access to the old attribute value in this listener.
-      // This is because we don't know if the previous value of aria-checked or aria-pressed was "mixed"
-      // without caching that info.
-      nsAccessible *accessible = event->GetAccessible();
-      if (accessible) {
-        PRBool wasMixed = (gLastFocusedAccessiblesState & states::MIXED) != 0;
-        PRBool isMixed  =
-          (accessible->State() & states::MIXED) != 0;
-        if (wasMixed != isMixed) {
-          nsRefPtr<AccEvent> event =
-            new AccStateChangeEvent(aContent, states::MIXED, isMixed);
-          FireDelayedAccessibleEvent(event);
-        }
+
+    nsAccessible* accessible = event->GetAccessible();
+    if (accessible) {
+      bool wasMixed = (mARIAAttrOldValue == nsAccessibilityAtoms::mixed);
+      bool isMixed = aContent->AttrValueIs(kNameSpaceID_None, aAttribute,
+                                           nsAccessibilityAtoms::mixed, eCaseMatters);
+      if (isMixed != wasMixed) {
+        nsRefPtr<AccEvent> event =
+          new AccStateChangeEvent(aContent, states::MIXED, isMixed);
+        FireDelayedAccessibleEvent(event);
       }
     }
     return;
   }
 
   if (aAttribute == nsAccessibilityAtoms::aria_readonly) {
     nsRefPtr<AccEvent> event =
       new AccStateChangeEvent(aContent, states::READONLY);
--- a/accessible/src/base/nsDocAccessible.h
+++ b/accessible/src/base/nsDocAccessible.h
@@ -562,17 +562,21 @@ protected:
    */
   PRUint32 mLoadState;
 
   /**
    * Type of document load event fired after the document is loaded completely.
    */
   PRUint32 mLoadEventType;
 
-  static PRUint64 gLastFocusedAccessiblesState;
+  /**
+   * Keep the ARIA attribute old value that is initialized by
+   * AttributeWillChange and used by AttributeChanged notifications.
+   */
+  nsIAtom* mARIAAttrOldValue;
 
   nsTArray<nsRefPtr<nsDocAccessible> > mChildDocuments;
 
   /**
    * A storage class for pairing content with one of its relation attributes.
    */
   class AttrRelProvider
   {
--- a/accessible/src/base/nsRootAccessible.cpp
+++ b/accessible/src/base/nsRootAccessible.cpp
@@ -350,18 +350,16 @@ nsRootAccessible::FireAccessibleFocusEve
   // aForceEvent == PR_TRUE
   nsINode* focusNode = focusAccessible->GetNode();
   if (gLastFocusedNode == focusNode && !aForceEvent)
     return;
 
   nsDocAccessible* focusDocument = focusAccessible->GetDocAccessible();
   NS_ASSERTION(focusDocument, "No document while accessible is in document?!");
 
-  gLastFocusedAccessiblesState = focusAccessible->State();
-
   // Fire menu start/end events for ARIA menus.
   if (focusAccessible->ARIARole() == nsIAccessibleRole::ROLE_MENUITEM) {
     // The focus is inside a menu.
     if (!mCurrentARIAMenubar) {
       // Entering ARIA menu. Fire menu start event.
       nsAccessible* menuBarAccessible =
         nsAccUtils::GetAncestorWithRole(focusAccessible,
                                         nsIAccessibleRole::ROLE_MENUBAR);
@@ -663,17 +661,16 @@ nsRootAccessible::ProcessDOMEvent(nsIDOM
             return;
         }
       }
     }
     FireAccessibleFocusEvent(accessible, origTargetContent);
   }
   else if (eventType.EqualsLiteral("blur")) {
     NS_IF_RELEASE(gLastFocusedNode);
-    gLastFocusedAccessiblesState = 0;
   }
   else if (eventType.EqualsLiteral("AlertActive")) { 
     nsEventShell::FireEvent(nsIAccessibleEvent::EVENT_ALERT, accessible);
   }
   else if (eventType.EqualsLiteral("popupshown")) {
     HandlePopupShownEvent(accessible);
   }
   else if (eventType.EqualsLiteral("DOMMenuInactive")) {
--- a/accessible/src/msaa/nsAccessibleWrap.cpp
+++ b/accessible/src/msaa/nsAccessibleWrap.cpp
@@ -802,18 +802,21 @@ STDMETHODIMP nsAccessibleWrap::accLocati
 }
 
 STDMETHODIMP nsAccessibleWrap::accNavigate(
       /* [in] */ long navDir,
       /* [optional][in] */ VARIANT varStart,
       /* [retval][out] */ VARIANT __RPC_FAR *pvarEndUpAt)
 {
 __try {
+  if (!pvarEndUpAt)
+    return E_INVALIDARG;
+
   nsAccessible *xpAccessibleStart = GetXPAccessibleFor(varStart);
-  if (!xpAccessibleStart)
+  if (!xpAccessibleStart || IsDefunct())
     return E_FAIL;
 
   VariantInit(pvarEndUpAt);
 
   nsCOMPtr<nsIAccessible> xpAccessibleResult;
   PRUint32 xpRelation = 0;
 
   switch(navDir) {
--- a/accessible/tests/mochitest/events.js
+++ b/accessible/tests/mochitest/events.js
@@ -597,20 +597,21 @@ function eventQueue(aEventType)
     var target2 = (aEvent instanceof nsIDOMEvent) ?
       aEvent.originalTarget : aEvent.DOMNode;
     return target1 == target2;
   }
 
   this.isAlreadyCaught = function eventQueue_isAlreadyCaught(aIdx, aEvent)
   {
     // We don't have stored info about handled event other than its type and
-    // target, thus we should filter text change events since they may occur
-    // on the same element because of complex changes.
+    // target, thus we should filter text change and state change events since
+    // they may occur on the same element because of complex changes.
     return this.compareEvents(aIdx, aEvent) &&
-      !(aEvent instanceof nsIAccessibleTextChangeEvent);
+      !(aEvent instanceof nsIAccessibleTextChangeEvent) &&
+      !(aEvent instanceof nsIAccessibleStateChangeEvent);
   }
 
   this.checkEvent = function eventQueue_checkEvent(aIdx, aEvent)
   {
     var eventItem = this.mEventSeq[aIdx];
     if ("check" in eventItem)
       eventItem.check(aEvent);
 
@@ -1036,16 +1037,82 @@ function caretMoveChecker(aCaretOffset)
   this.check = function caretMoveChecker_check(aEvent)
   {
     is(aEvent.QueryInterface(nsIAccessibleCaretMoveEvent).caretOffset,
        aCaretOffset,
        "Wrong caret offset for " + prettyName(aEvent.accessible));
   }
 }
 
+/**
+ * State change checker.
+ */
+function stateChangeChecker(aState, aIsExtraState, aIsEnabled,
+                            aTargetOrFunc, aTargetFuncArg)
+{
+  this.__proto__ = new invokerChecker(EVENT_STATE_CHANGE, aTargetOrFunc,
+                                      aTargetFuncArg);
+
+  this.check = function stateChangeChecker_check(aEvent)
+  {
+    var event = null;
+    try {
+      var event = aEvent.QueryInterface(nsIAccessibleStateChangeEvent);
+    } catch (e) {
+      ok(false, "State change event was expected");
+    }
+
+    if (!event)
+      return;
+
+    is(event.state, aState, "Wrong state of the statechange event.");
+    is(event.isExtraState(), aIsExtraState,
+       "Wrong extra state bit of the statechange event.");
+    is(event.isEnabled(), aIsEnabled,
+      "Wrong state of statechange event state");
+
+    var state = aIsEnabled ? (aIsExtraState ? 0 : aState) : 0;
+    var extraState = aIsEnabled ? (aIsExtraState ? aState : 0) : 0;
+    var unxpdState = aIsEnabled ? 0 : (aIsExtraState ? 0 : aState);
+    var unxpdExtraState = aIsEnabled ? 0 : (aIsExtraState ? aState : 0);
+    testStates(event.accessible, state, extraState, unxpdState, unxpdExtraState);
+  }
+}
+
+/**
+ * Expanded state change checker.
+ */
+function expandedStateChecker(aIsEnabled, aTargetOrFunc, aTargetFuncArg)
+{
+  this.__proto__ = new invokerChecker(EVENT_STATE_CHANGE, aTargetOrFunc,
+                                      aTargetFuncArg);
+
+  this.check = function expandedStateChecker_check(aEvent)
+  {
+    var event = null;
+    try {
+      var event = aEvent.QueryInterface(nsIAccessibleStateChangeEvent);
+    } catch (e) {
+      ok(false, "State change event was expected");
+    }
+
+    if (!event)
+      return;
+
+    is(event.state, STATE_EXPANDED, "Wrong state of the statechange event.");
+    is(event.isExtraState(), false,
+       "Wrong extra state bit of the statechange event.");
+    is(event.isEnabled(), aIsEnabled,
+      "Wrong state of statechange event state");
+
+    testStates(event.accessible,
+               (aIsEnabled ? STATE_EXPANDED : STATE_COLLAPSED));
+  }
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // Private implementation details.
 ////////////////////////////////////////////////////////////////////////////////
 
 
 ////////////////////////////////////////////////////////////////////////////////
 // General
 
--- a/accessible/tests/mochitest/events/test_aria_statechange.html
+++ b/accessible/tests/mochitest/events/test_aria_statechange.html
@@ -21,97 +21,163 @@
   <script type="application/javascript">
 
 
     /**
      * Do tests.
      */
     var gQueue = null;
 
-    // Debug stuff.
-    //gA11yEventDumpID = "eventdump";
-    // gA11yEventDumpToConsole = true;
+    //gA11yEventDumpID = "eventdump"; // debugging
+    //gA11yEventDumpToConsole = true; // debugging
 
-    function expandNode(aNodeOrID, bExpand)
+    function expandNode(aID, aIsExpanded)
     {
-      this.DOMNode = getNode(aNodeOrID);
+      this.DOMNode = getNode(aID);
 
-      this.invoke = function expandNode_invoke() {
-        // Note: this should fire an EVENT_STATE_CHANGE
-        this.DOMNode.setAttribute("aria-expanded", bExpand);
+      this.eventSeq = [
+        new expandedStateChecker(aIsExpanded, this.DOMNode)
+      ];
+
+      this.invoke = function expandNode_invoke()
+      {
+        this.DOMNode.setAttribute("aria-expanded",
+                                  (aIsExpanded ? "true" : "false"));
       };
 
-      this.check = function expandNode_check() {
-        testStates(aNodeOrID,
-                   bExpand ? STATE_EXPANDED : STATE_COLLAPSED,
-                   EXT_STATE_EXPANDABLE);
+      this.getID = function expandNode_getID()
+      {
+        return prettyName(aID) + " aria-expanded changed to '" + aIsExpanded + "'";
+      };
+    }
+
+    function busyify(aID, aIsBusy)
+    {
+      this.DOMNode = getNode(aID);
+
+      this.eventSeq = [
+        new stateChangeChecker(STATE_BUSY, kOrdinalState, aIsBusy, this.DOMNode)
+      ];
+
+      this.invoke = function busyify_invoke()
+      {
+        this.DOMNode.setAttribute("aria-busy", (aIsBusy ? "true" : "false"));
       };
 
-      this.getID = function expandNode_getID() {
-        return prettyName(aNodeOrID) + " aria-expanded changed";
+      this.getID = function busyify_getID()
+      {
+        return prettyName(aID) + " aria-busy changed to '" + aIsBusy + "'";
       };
     }
 
-    function busyify(aNodeOrID, aBusy)
+    function setAttrOfMixedType(aID, aAttr, aState, aValue)
     {
-      this.DOMNode = getNode(aNodeOrID);
+      this.DOMNode = getNode(aID);
+
+      this.eventSeq = [
+        new stateChangeChecker(aState, kOrdinalState,
+                               aValue == "true", this.DOMNode)
+      ];
 
-      this.invoke = function busyify_invoke() {
-        this.DOMNode.setAttribute("aria-busy", aBusy);
+      if (hasState(aID, STATE_MIXED) || aValue == "mixed") {
+        this.eventSeq.push(
+          new stateChangeChecker(STATE_MIXED, kOrdinalState,
+                                 aValue == "mixed", this.DOMNode)
+        );
+      }
+
+      this.invoke = function setAttrOfMixedType_invoke()
+      {
+        this.DOMNode.setAttribute(aAttr, aValue);
       };
 
-      this.check = function busyify_check(event) {
-        testStates(aNodeOrID,
-                   (aBusy ? STATE_BUSY : 0), 0,
-                   (aBusy ? 0 : STATE_BUSY), 0);
+      this.getID = function setAttrOfMixedType_getID()
+      {
+        return prettyName(aID) + " " + aAttr + " changed to '" + aValue + "'";
       };
+    }
 
-      this.getID = function busyify_getID() {
-        return prettyName(aNodeOrID) + " aria-busy changed to " + aBusy;
-      };
+    function setPressed(aID, aValue)
+    {
+      this.__proto__ =
+        new setAttrOfMixedType(aID, "aria-pressed", STATE_PRESSED, aValue);
+    }
+
+    function setChecked(aID, aValue)
+    {
+      this.__proto__ =
+        new setAttrOfMixedType(aID, "aria-checked", STATE_CHECKED, aValue);
+    }
+
+    function buildQueueForAttrOfMixedType(aQueue, aID, aInvokerFunc)
+    {
+      var list = [ "", "undefined", "false", "true", "mixed" ];
+      for (var i = 0; i < list.length; i++) {
+        for (var j = i + 1; j < list.length; j++) {
+          // XXX: changes from/to "undefined"/"" shouldn't fire state change
+          // events, bug 472142.
+          aQueue.push(new aInvokerFunc(aID, list[i]));
+          aQueue.push(new aInvokerFunc(aID, list[j]));
+        }
+      }
     }
 
     function doTests()
     {
-      gQueue = new eventQueue(EVENT_STATE_CHANGE);
+      gQueue = new eventQueue();
 
       gQueue.push(new expandNode("section", true));
       gQueue.push(new expandNode("section", false));
       gQueue.push(new expandNode("div", true));
       gQueue.push(new expandNode("div", false));
 
       gQueue.push(new busyify("aria_doc", true));
       gQueue.push(new busyify("aria_doc", false));
+
+      buildQueueForAttrOfMixedType(gQueue, "pressable", setPressed);
+      buildQueueForAttrOfMixedType(gQueue, "checkable", setChecked);
+
       gQueue.invoke(); // Will call SimpleTest.finish();
     }
 
     SimpleTest.waitForExplicitFinish();
     addA11yLoadEvent(doTests);
   </script>
 </head>
 
 <body>
 
   <a target="_blank"
      href="https://bugzilla.mozilla.org/show_bug.cgi?id=551684"
      title="No statechange event for aria-expanded on native HTML elements, is fired on ARIA widgets">
     Mozilla Bug 551684
-  </a>
-
+  </a><br>
   <a target="_blank"
      href="https://bugzilla.mozilla.org/show_bug.cgi?id=648133"
      title="fire state change event for aria-busy"
     Mozilla Bug 648133
+  </a><br>
+  <a target="_blank"
+     href="https://bugzilla.mozilla.org/show_bug.cgi?id=467143"
+     title="mixed state change event is fired for focused accessible only"
+    Mozilla Bug 467143
   </a>
+
   <p id="display"></p>
   <div id="content" style="display: none"></div>
   <pre id="test">
   </pre>
   <div id="eventdump"></div>
 
   <!-- aria-expanded -->
   <div id="section" role="section" aria-expanded="false">expandable section</div>
   <div id="div" aria-expanded="false">expandable native div</div>
 
   <!-- aria-busy -->
   <div id="aria_doc" role="document" tabindex="0">A document</div>
+
+  <!-- aria-pressed -->
+  <div id="pressable" role="button"></div>
+
+  <!-- aria-checked -->
+  <div id="checkable" role="checkbox"></div>
 </body>
 </html>
--- a/accessible/tests/mochitest/states.js
+++ b/accessible/tests/mochitest/states.js
@@ -40,16 +40,18 @@ const EXT_STATE_EXPANDABLE = nsIAccessib
 const EXT_STATE_HORIZONTAL = nsIAccessibleStates.EXT_STATE_HORIZONTAL;
 const EXT_STATE_MULTI_LINE = nsIAccessibleStates.EXT_STATE_MULTI_LINE;
 const EXT_STATE_SINGLE_LINE = nsIAccessibleStates.EXT_STATE_SINGLE_LINE;
 const EXT_STATE_STALE = nsIAccessibleStates.EXT_STATE_STALE;
 const EXT_STATE_SUPPORTS_AUTOCOMPLETION =
   nsIAccessibleStates.EXT_STATE_SUPPORTS_AUTOCOMPLETION;
 const EXT_STATE_VERTICAL = nsIAccessibleStates.EXT_STATE_VERTICAL;
 
+const kOrdinalState = 0;
+const kExtraState = 1;
 
 ////////////////////////////////////////////////////////////////////////////////
 // Test functions
 
 /**
  * Tests the states and extra states of the given accessible.
  * Also tests for unwanted states and extra states.
  * In addition, the function performs a few plausibility checks derived from the
--- a/configure.in
+++ b/configure.in
@@ -6034,18 +6034,16 @@ esac
 
 # The DirectX SDK libraries are split into x86 and x64 sub-directories
 case "${target_cpu}" in
 i*86)
   MOZ_DIRECTX_SDK_CPU_SUFFIX=x86
   ;;
 x86_64)
   MOZ_DIRECTX_SDK_CPU_SUFFIX=x64
-  # currently we disable ANGLE in 64bit builds
-  MOZ_ANGLE=
   ;;
 esac
 
 if test -n "$MOZ_ANGLE"; then
 MOZ_ARG_DISABLE_BOOL(angle,
 [  --disable-angle     Disable building of ANGLE for WebGL->D3D translation],
     MOZ_ANGLE=,
     MOZ_ANGLE=1)
@@ -7861,17 +7859,17 @@ dnl Omnijar packaging is compatible with
 dnl In unpackaged builds, omnijar looks for files as if
 dnl things were flat packaged. After packaging, all files
 dnl are loaded from a single jar. MOZ_CHROME_FILE_FORMAT
 dnl is set to flat since putting files into jars is only
 dnl done during packaging with omnijar.
 if test "$MOZ_CHROME_FILE_FORMAT" = "omni"; then
     MOZ_OMNIJAR=1
     AC_DEFINE(MOZ_OMNIJAR)
-    if test "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "OS2"; then
+    if test "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "OS2" -o "$OS_TARGET" = "Android"; then
         MOZ_CHROME_FILE_FORMAT=flat
     else
         MOZ_CHROME_FILE_FORMAT=symlink
     fi
 elif test "$MOZ_CHROME_FILE_FORMAT" = "jar"; then
     AC_DEFINE(MOZ_CHROME_FILE_FORMAT_JAR)
 fi
 
--- a/content/events/src/nsDOMEvent.cpp
+++ b/content/events/src/nsDOMEvent.cpp
@@ -979,19 +979,16 @@ nsDOMEvent::GetEventPopupControlState(ns
     // while handling user input. See
     // nsPresShell::HandleEventInternal() for details.
     if (nsEventStateManager::IsHandlingUserInput()) {
       switch(aEvent->message) {
       case NS_FORM_CHANGE :
         if (::PopupAllowedForEvent("change"))
           abuse = openControlled;
         break;
-      case NS_XUL_COMMAND:
-        abuse = openControlled;
-        break;
       }
     }
     break;
   case NS_KEY_EVENT :
     if (NS_IS_TRUSTED_EVENT(aEvent)) {
       PRUint32 key = static_cast<nsKeyEvent *>(aEvent)->keyCode;
       switch(aEvent->message) {
       case NS_KEY_PRESS :
--- a/content/media/nsBuiltinDecoderStateMachine.cpp
+++ b/content/media/nsBuiltinDecoderStateMachine.cpp
@@ -211,21 +211,21 @@ nsBuiltinDecoderStateMachine::nsBuiltinD
   mSeekable(PR_TRUE),
   mPositionChangeQueued(PR_FALSE),
   mAudioCompleted(PR_FALSE),
   mGotDurationFromMetaData(PR_FALSE),
   mStopDecodeThread(PR_TRUE),
   mDecodeThreadIdle(PR_FALSE),
   mStopAudioThread(PR_TRUE),
   mQuickBuffering(PR_FALSE),
-  mEventManager(aDecoder),
   mIsRunning(PR_FALSE),
   mRunAgain(PR_FALSE),
   mDispatchedRunEvent(PR_FALSE),
-  mDecodeThreadWaiting(PR_FALSE)
+  mDecodeThreadWaiting(PR_FALSE),
+  mEventManager(aDecoder)
 {
   MOZ_COUNT_CTOR(nsBuiltinDecoderStateMachine);
   NS_ASSERTION(NS_IsMainThread(), "Should be on main thread.");
   if (gStateMachineCount == 0) {
     NS_ASSERTION(!gStateMachineThread, "Should have null state machine thread!");
     nsresult res = NS_NewThread(&gStateMachineThread,
                                 nsnull,
                                 MEDIA_THREAD_STACK_SIZE);
--- a/docshell/shistory/src/nsSHEntryShared.h
+++ b/docshell/shistory/src/nsSHEntryShared.h
@@ -78,17 +78,16 @@ class nsSHEntryShared : public nsIBFCach
   private:
     friend class nsSHEntry;
 
     friend class HistoryTracker;
     friend class nsExpirationTracker<nsSHEntryShared, 3>;
     nsExpirationState *GetExpirationState() { return &mExpirationState; }
 
     static already_AddRefed<nsSHEntryShared> Duplicate(nsSHEntryShared *aEntry);
-    void SetDocIdentifier(PRUint64 aDocIdentifier);
 
     void RemoveFromExpirationTracker();
     void Expire();
     nsresult SyncPresentationState();
     void DropPresentationState();
 
     nsresult SetContentViewer(nsIContentViewer *aViewer);
 
--- a/dom/plugins/base/nsPluginInstanceOwner.cpp
+++ b/dom/plugins/base/nsPluginInstanceOwner.cpp
@@ -1937,17 +1937,18 @@ nsEventStatus nsPluginInstanceOwner::Pro
   nsPoint pt =
   nsLayoutUtils::GetEventCoordinatesRelativeTo(&anEvent, mObjectFrame) -
   mObjectFrame->GetContentRectRelativeToSelf().TopLeft();
   nsPresContext* presContext = mObjectFrame->PresContext();
   nsIntPoint ptPx(presContext->AppUnitsToDevPixels(pt.x),
                   presContext->AppUnitsToDevPixels(pt.y));
 #ifndef NP_NO_CARBON
   nsIntPoint geckoScreenCoords = mWidget->WidgetToScreenOffset();
-  ::Point carbonPt = { ptPx.y + geckoScreenCoords.y, ptPx.x + geckoScreenCoords.x };
+  ::Point carbonPt = { static_cast<short>(ptPx.y + geckoScreenCoords.y),
+                       static_cast<short>(ptPx.x + geckoScreenCoords.x) };
   if (eventModel == NPEventModelCarbon) {
     if (event && anEvent.eventStructType == NS_MOUSE_EVENT) {
       static_cast<EventRecord*>(event)->where = carbonPt;
     }
   }
 #endif
   if (!event) {
 #ifndef NP_NO_CARBON
--- a/dom/tests/browser/Makefile.in
+++ b/dom/tests/browser/Makefile.in
@@ -46,12 +46,13 @@ include $(topsrcdir)/config/rules.mk
 
 _BROWSER_FILES = \
 		browser_focus_steal_from_chrome.js \
 		browser_focus_steal_from_chrome_during_mousedown.js \
 		browser_autofocus_background.js \
 		browser_ConsoleAPITests.js \
 		test-console-api.html \
 		browser_autofocus_preference.js \
+		browser_popup_blocker_save_open_panel.js \
 		$(NULL)
 
 libs::	$(_BROWSER_FILES)
 	$(INSTALL) $(foreach f,$^,"$f") $(DEPTH)/_tests/testing/mochitest/browser/$(relativesrcdir)
new file mode 100644
--- /dev/null
+++ b/dom/tests/browser/browser_popup_blocker_save_open_panel.js
@@ -0,0 +1,101 @@
+/**
+ * In this test, we call the save panel with CTRL+S. When shown, we load a
+ * webpage that is going to open malicious popups. These popups should be
+ * disallowed.
+ */
+
+var gLoaded = false;
+
+Cc["@mozilla.org/moz/jssubscript-loader;1"]
+  .getService(Ci.mozIJSSubScriptLoader)
+  .loadSubScript("chrome://mochitests/content/browser/toolkit/content/tests/browser/common/mockObjects.js",
+                 this);
+
+function MockFilePicker() { }
+
+MockFilePicker.prototype = {
+  QueryInterface: XPCOMUtils.generateQI([Ci.nsIFilePicker]),
+
+  init: function() { },
+
+  appendFilters: function(val) { },
+  appendFilter: function(val) { },
+
+  // constants
+  modeOpen: 0,
+  modeSave: 1,
+  modeGetFolder: 2,
+  modeOpenMultiple: 3,
+  returnOK: 0,
+  returnCancel: 1,
+  returnReplace: 2,
+  filterAll: 1,
+  filterHTML: 2,
+  filterText: 4,
+  filterImages: 8,
+  filterXML: 16,
+  filterXUL: 32,
+  filterApps: 64,
+  filterAllowURLs: 128,
+  filterAudio: 256,
+  filterVideo: 512,
+
+  // properties
+  defaultExtension: "",
+  defaultString: "",
+  get displayDirectory() { return null; },
+  set displayDirectory(val) { },
+  file: null,
+  get files() { return null; },
+  get fileURL() { return null; },
+  filterIndex: 0,
+
+  show: function() {
+    gBrowser.selectedTab.linkedBrowser.addEventListener("load", function () {
+      gBrowser.selectedTab.linkedBrowser.removeEventListener("load", arguments.callee, true);
+      executeSoon(function() {
+        gLoaded = true;
+      });
+    }, true);
+
+    gBrowser.selectedTab.linkedBrowser.loadURI("data:text/html,<!DOCTYPE html><html><body onload='window.open(\"about:blank\", \"\", \"width=200,height=200\");'></body></html>");
+
+    let curThread = Components.classes["@mozilla.org/thread-manager;1"]
+                              .getService().currentThread;
+    while (!gLoaded) {
+      curThread.processNextEvent(true);
+    }
+
+    return this.returnCancel;
+  },
+};
+
+function test() {
+  waitForExplicitFinish();
+
+  var mockFilePickerRegisterer =
+    new MockObjectRegisterer("@mozilla.org/filepicker;1", MockFilePicker);
+  mockFilePickerRegisterer.register();
+
+  var prefs = Components.classes["@mozilla.org/preferences-service;1"]
+            .getService(Components.interfaces.nsIPrefBranch);
+  var gDisableLoadPref = prefs.getBoolPref("dom.disable_open_during_load");
+  prefs.setBoolPref("dom.disable_open_during_load", true);
+
+  gBrowser.addEventListener("DOMPopupBlocked", function() {
+    gBrowser.removeEventListener("DOMPopupBlocked", arguments.callee, true);
+    ok(true, "The popup has been blocked");
+    prefs.setBoolPref("dom.disable_open_during_load", gDisableLoadPref);
+
+    mockFilePickerRegisterer.unregister();
+
+    finish();
+  }, true)
+
+  if (navigator.platform.indexOf("Mac") == 0) {
+    // MacOS use metaKey instead of ctrlKey.
+    EventUtils.synthesizeKey("s", { metaKey: true, });
+  } else {
+    EventUtils.synthesizeKey("s", { ctrlKey: true, });
+  }
+}
--- a/gfx/angle/Makefile.in
+++ b/gfx/angle/Makefile.in
@@ -118,19 +118,16 @@ CSRCS   = \
         memory.c \
         scanner.c \
         symbols.c \
         tokens.c \
 	$(NULL)
 
 DEFINES += -DANGLE_USE_NSPR -DANGLE_BUILD
 
-# ANGLE only on Win32 for now, the solution isn't set up
-# for 64-bit yet. This is handled by MOZ_ANGLE which the configure script
-# leaves undefined in the 64-bit case.
 ifdef MOZ_ANGLE
 
 # libEGL depends on (links against!) libGLESv2!
 DIRS = src/libGLESv2 src/libEGL
 
 libs::
 	expand "$(MOZ_D3DX9_CAB)" -F:$(MOZ_D3DX9_DLL) "$(DIST)/bin"
 	expand "$(MOZ_D3DCOMPILER_CAB)" -F:$(MOZ_D3DCOMPILER_DLL) "$(DIST)/bin"
--- a/gfx/angle/README.mozilla
+++ b/gfx/angle/README.mozilla
@@ -7,16 +7,18 @@ Current revision: r653
 In this order:
   angle-nspr-misc.patch - don't bother with ANGLE_OS detection with NSPR
   angle-renaming.patch - rename debug.h to compilerdebug.h to avoid conflict in our makefiles
   angle-intrinsic-msvc2005.patch - work around a MSVC 2005 compile error
   angle-amap-arev-fix.patch - plain bug fix, this is ANGLE r699
   angle-r702.patch - this is ANGLE r702
   angle-limit-identifiers-to-250-chars.patch - see bug 675625
   angle-r712.patch - this is ANGLE r712
+  angle-win64.patch - Win64 support. This is ANGLE r697
+  angle-r707.patch - this is ANGLE r707 for Win64 bug fix
 
 In addition to these patches, the Makefile.in files are ours, they're not present in upsteam ANGLE.
 
 == How to update this ANGLE copy ==
 
 1. Unapply patches
 2. Apply diff with new ANGLE version
 3. Reapply patches.
new file mode 100644
--- /dev/null
+++ b/gfx/angle/angle-r707.patch
@@ -0,0 +1,45 @@
+diff --git a/gfx/angle/src/libGLESv2/VertexDataManager.cpp b/gfx/angle/src/libGLESv2/VertexDataManager.cpp
+--- a/gfx/angle/src/libGLESv2/VertexDataManager.cpp
++++ b/gfx/angle/src/libGLESv2/VertexDataManager.cpp
+@@ -714,17 +714,17 @@ void StaticVertexBuffer::reserveRequired
+     {
+         // Already allocated
+     }
+     else UNREACHABLE();   // Static vertex buffers can't be resized
+ 
+     mRequiredSpace = 0;
+ }
+ 
+-UINT StaticVertexBuffer::lookupAttribute(const VertexAttribute &attribute)
++std::size_t StaticVertexBuffer::lookupAttribute(const VertexAttribute &attribute)
+ {
+     for (unsigned int element = 0; element < mCache.size(); element++)
+     {
+         if (mCache[element].type == attribute.mType &&  mCache[element].size == attribute.mSize && mCache[element].normalized == attribute.mNormalized)
+         {
+             if (mCache[element].attributeOffset == attribute.mOffset % attribute.stride())
+             {
+                 return mCache[element].streamOffset;
+diff --git a/gfx/angle/src/libGLESv2/VertexDataManager.h b/gfx/angle/src/libGLESv2/VertexDataManager.h
+--- a/gfx/angle/src/libGLESv2/VertexDataManager.h
++++ b/gfx/angle/src/libGLESv2/VertexDataManager.h
+@@ -88,17 +88,17 @@ class StaticVertexBuffer : public ArrayV
+ {
+   public:
+     explicit StaticVertexBuffer(IDirect3DDevice9 *device);
+     ~StaticVertexBuffer();
+ 
+     void *map(const VertexAttribute &attribute, std::size_t requiredSpace, std::size_t *streamOffset);
+     void reserveRequiredSpace();
+ 
+-    UINT lookupAttribute(const VertexAttribute &attribute);   // Returns the offset into the vertex buffer, or -1 if not found
++    std::size_t lookupAttribute(const VertexAttribute &attribute);   // Returns the offset into the vertex buffer, or -1 if not found
+ 
+   private:
+     struct VertexElement
+     {
+         GLenum type;
+         GLint size;
+         bool normalized;
+         int attributeOffset;
+ 
new file mode 100644
--- /dev/null
+++ b/gfx/angle/angle-win64.patch
@@ -0,0 +1,235 @@
+diff --git a/gfx/angle/src/libEGL/Surface.cpp b/gfx/angle/src/libEGL/Surface.cpp
+--- a/gfx/angle/src/libEGL/Surface.cpp
++++ b/gfx/angle/src/libEGL/Surface.cpp
+@@ -285,17 +285,17 @@ void Surface::subclassWindow()
+     DWORD processId;
+     DWORD threadId = GetWindowThreadProcessId(mWindow, &processId);
+     if (processId != GetCurrentProcessId() || threadId != GetCurrentThreadId())
+     {
+         return;
+     }
+ 
+     SetLastError(0);
+-    LONG oldWndProc = SetWindowLong(mWindow, GWL_WNDPROC, reinterpret_cast<LONG>(SurfaceWindowProc));
++    LONG_PTR oldWndProc = SetWindowLongPtr(mWindow, GWLP_WNDPROC, reinterpret_cast<LONG_PTR>(SurfaceWindowProc));
+     if(oldWndProc == 0 && GetLastError() != ERROR_SUCCESS)
+     {
+         mWindowSubclassed = false;
+         return;
+     }
+ 
+     SetProp(mWindow, kSurfaceProperty, reinterpret_cast<HANDLE>(this));
+     SetProp(mWindow, kParentWndProc, reinterpret_cast<HANDLE>(oldWndProc));
+@@ -305,27 +305,27 @@ void Surface::subclassWindow()
+ void Surface::unsubclassWindow()
+ {
+     if(!mWindowSubclassed)
+     {
+         return;
+     }
+ 
+     // un-subclass
+-    LONG parentWndFunc = reinterpret_cast<LONG>(GetProp(mWindow, kParentWndProc));
++    LONG_PTR parentWndFunc = reinterpret_cast<LONG_PTR>(GetProp(mWindow, kParentWndProc));
+ 
+     // Check the windowproc is still SurfaceWindowProc.
+     // If this assert fails, then it is likely the application has subclassed the
+     // hwnd as well and did not unsubclass before destroying its EGL context. The
+     // application should be modified to either subclass before initializing the
+     // EGL context, or to unsubclass before destroying the EGL context.
+     if(parentWndFunc)
+     {
+-        LONG prevWndFunc = SetWindowLong(mWindow, GWL_WNDPROC, parentWndFunc);
+-        ASSERT(prevWndFunc == reinterpret_cast<LONG>(SurfaceWindowProc));
++        LONG_PTR prevWndFunc = SetWindowLongPtr(mWindow, GWLP_WNDPROC, parentWndFunc);
++        ASSERT(prevWndFunc == reinterpret_cast<LONG_PTR>(SurfaceWindowProc));
+     }
+ 
+     RemoveProp(mWindow, kSurfaceProperty);
+     RemoveProp(mWindow, kParentWndProc);
+     mWindowSubclassed = false;
+ }
+ 
+ bool Surface::checkForOutOfDateSwapChain()
+diff --git a/gfx/angle/src/libGLESv2/VertexDataManager.cpp b/gfx/angle/src/libGLESv2/VertexDataManager.cpp
+--- a/gfx/angle/src/libGLESv2/VertexDataManager.cpp
++++ b/gfx/angle/src/libGLESv2/VertexDataManager.cpp
+@@ -50,24 +50,24 @@ VertexDataManager::~VertexDataManager()
+     delete mStreamingBuffer;
+ 
+     for (int i = 0; i < MAX_VERTEX_ATTRIBS; i++)
+     {
+         delete mCurrentValueBuffer[i];
+     }
+ }
+ 
+-UINT VertexDataManager::writeAttributeData(ArrayVertexBuffer *vertexBuffer, GLint start, GLsizei count, const VertexAttribute &attribute)
++std::size_t VertexDataManager::writeAttributeData(ArrayVertexBuffer *vertexBuffer, GLint start, GLsizei count, const VertexAttribute &attribute)
+ {
+     Buffer *buffer = attribute.mBoundBuffer.get();
+ 
+     int inputStride = attribute.stride();
+     int elementSize = attribute.typeSize();
+     const FormatConverter &converter = formatConverter(attribute);
+-    UINT streamOffset = 0;
++    std::size_t streamOffset = 0;
+ 
+     void *output = NULL;
+     
+     if (vertexBuffer)
+     {
+         output = vertexBuffer->map(attribute, spaceRequired(attribute, count), &streamOffset);
+     }
+ 
+@@ -198,17 +198,17 @@ GLenum VertexDataManager::prepareVertexD
+                     return GL_INVALID_OPERATION;
+                 }
+ 
+                 const FormatConverter &converter = formatConverter(attribs[i]);
+ 
+                 StaticVertexBuffer *staticBuffer = buffer ? buffer->getStaticVertexBuffer() : NULL;
+                 ArrayVertexBuffer *vertexBuffer = staticBuffer ? staticBuffer : static_cast<ArrayVertexBuffer*>(mStreamingBuffer);
+ 
+-                UINT streamOffset = -1;
++                std::size_t streamOffset = -1;
+ 
+                 if (staticBuffer)
+                 {
+                     streamOffset = staticBuffer->lookupAttribute(attribs[i]);
+ 
+                     if (streamOffset == -1)
+                     {
+                         // Convert the entire buffer
+@@ -666,17 +666,17 @@ void StreamingVertexBuffer::reserveRequi
+ StaticVertexBuffer::StaticVertexBuffer(IDirect3DDevice9 *device) : ArrayVertexBuffer(device, 0, D3DUSAGE_WRITEONLY)
+ {
+ }
+ 
+ StaticVertexBuffer::~StaticVertexBuffer()
+ {
+ }
+ 
+-void *StaticVertexBuffer::map(const VertexAttribute &attribute, std::size_t requiredSpace, UINT *streamOffset)
++void *StaticVertexBuffer::map(const VertexAttribute &attribute, std::size_t requiredSpace, std::size_t *streamOffset)
+ {
+     void *mapPtr = NULL;
+ 
+     if (mVertexBuffer)
+     {
+         HRESULT result = mVertexBuffer->Lock(mWritePosition, requiredSpace, &mapPtr, 0);
+         
+         if (FAILED(result))
+diff --git a/gfx/angle/src/libGLESv2/VertexDataManager.h b/gfx/angle/src/libGLESv2/VertexDataManager.h
+--- a/gfx/angle/src/libGLESv2/VertexDataManager.h
++++ b/gfx/angle/src/libGLESv2/VertexDataManager.h
+@@ -30,17 +30,17 @@ struct TranslatedAttribute
+     UINT stride;   // 0 means not to advance the read pointer at all
+ 
+     IDirect3DVertexBuffer9 *vertexBuffer;
+ };
+ 
+ class VertexBuffer
+ {
+   public:
+-    VertexBuffer(IDirect3DDevice9 *device, UINT size, DWORD usageFlags);
++    VertexBuffer(IDirect3DDevice9 *device, std::size_t size, DWORD usageFlags);
+     virtual ~VertexBuffer();
+ 
+     void unmap();
+ 
+     IDirect3DVertexBuffer9 *getBuffer() const;
+ 
+   protected:
+     IDirect3DDevice9 *const mDevice;
+@@ -55,60 +55,60 @@ class ConstantVertexBuffer : public Vert
+   public:
+     ConstantVertexBuffer(IDirect3DDevice9 *device, float x, float y, float z, float w);
+     ~ConstantVertexBuffer();
+ };
+ 
+ class ArrayVertexBuffer : public VertexBuffer
+ {
+   public:
+-    ArrayVertexBuffer(IDirect3DDevice9 *device, UINT size, DWORD usageFlags);
++    ArrayVertexBuffer(IDirect3DDevice9 *device, std::size_t size, DWORD usageFlags);
+     ~ArrayVertexBuffer();
+ 
+-    UINT size() const { return mBufferSize; }
+-    virtual void *map(const VertexAttribute &attribute, UINT requiredSpace, UINT *streamOffset) = 0;
++    std::size_t size() const { return mBufferSize; }
++    virtual void *map(const VertexAttribute &attribute, std::size_t requiredSpace, std::size_t *streamOffset) = 0;
+     virtual void reserveRequiredSpace() = 0;
+     void addRequiredSpace(UINT requiredSpace);
+ 
+   protected:
+-    UINT mBufferSize;
+-    UINT mWritePosition;
+-    UINT mRequiredSpace;
++    std::size_t mBufferSize;
++    std::size_t mWritePosition;
++    std::size_t mRequiredSpace;
+ };
+ 
+ class StreamingVertexBuffer : public ArrayVertexBuffer
+ {
+   public:
+-    StreamingVertexBuffer(IDirect3DDevice9 *device, UINT initialSize);
++    StreamingVertexBuffer(IDirect3DDevice9 *device, std::size_t initialSize);
+     ~StreamingVertexBuffer();
+ 
+-    void *map(const VertexAttribute &attribute, UINT requiredSpace, UINT *streamOffset);
++    void *map(const VertexAttribute &attribute, std::size_t requiredSpace, std::size_t *streamOffset);
+     void reserveRequiredSpace();
+ };
+ 
+ class StaticVertexBuffer : public ArrayVertexBuffer
+ {
+   public:
+     explicit StaticVertexBuffer(IDirect3DDevice9 *device);
+     ~StaticVertexBuffer();
+ 
+-    void *map(const VertexAttribute &attribute, UINT requiredSpace, UINT *streamOffset);
++    void *map(const VertexAttribute &attribute, std::size_t requiredSpace, std::size_t *streamOffset);
+     void reserveRequiredSpace();
+ 
+     UINT lookupAttribute(const VertexAttribute &attribute);   // Returns the offset into the vertex buffer, or -1 if not found
+ 
+   private:
+     struct VertexElement
+     {
+         GLenum type;
+         GLint size;
+         bool normalized;
+         int attributeOffset;
+ 
+-        UINT streamOffset;
++        std::size_t streamOffset;
+     };
+ 
+     std::vector<VertexElement> mCache;
+ };
+ 
+ class VertexDataManager
+ {
+   public:
+@@ -117,18 +117,18 @@ class VertexDataManager
+ 
+     void dirtyCurrentValue(int index) { mDirtyCurrentValue[index] = true; }
+ 
+     GLenum prepareVertexData(GLint start, GLsizei count, TranslatedAttribute *outAttribs);
+ 
+   private:
+     DISALLOW_COPY_AND_ASSIGN(VertexDataManager);
+ 
+-    UINT spaceRequired(const VertexAttribute &attrib, std::size_t count) const;
+-    UINT writeAttributeData(ArrayVertexBuffer *vertexBuffer, GLint start, GLsizei count, const VertexAttribute &attribute);
++    std::size_t spaceRequired(const VertexAttribute &attrib, std::size_t count) const;
++    std::size_t writeAttributeData(ArrayVertexBuffer *vertexBuffer, GLint start, GLsizei count, const VertexAttribute &attribute);
+ 
+     Context *const mContext;
+     IDirect3DDevice9 *const mDevice;
+ 
+     StreamingVertexBuffer *mStreamingBuffer;
+ 
+     bool mDirtyCurrentValue[MAX_VERTEX_ATTRIBS];
+     ConstantVertexBuffer *mCurrentValueBuffer[MAX_VERTEX_ATTRIBS];
--- a/gfx/angle/src/libEGL/Makefile.in
+++ b/gfx/angle/src/libEGL/Makefile.in
@@ -138,14 +138,14 @@ CPPSRCS += \
   main.cpp \
   Surface.cpp \
   $(NULL)
 
 DEFFILE = $(srcdir)/libEGL.def
 
 include $(topsrcdir)/config/rules.mk
 
-EXTRA_DSO_LDOPTS = "$(MOZ_DIRECTX_SDK_PATH)/lib/x86/d3d9.lib" \
-                   "$(MOZ_DIRECTX_SDK_PATH)/lib/x86/dxguid.lib" \
+EXTRA_DSO_LDOPTS = "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/d3d9.lib" \
+                   "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/dxguid.lib" \
 		   "$(DIST)/lib/libGLESv2.lib" \
 		   dwmapi.lib \
 		   delayimp.lib \
 		   /delayload:dwmapi.dll
--- a/gfx/angle/src/libEGL/Surface.cpp
+++ b/gfx/angle/src/libEGL/Surface.cpp
@@ -285,17 +285,17 @@ void Surface::subclassWindow()
     DWORD processId;
     DWORD threadId = GetWindowThreadProcessId(mWindow, &processId);
     if (processId != GetCurrentProcessId() || threadId != GetCurrentThreadId())
     {
         return;
     }
 
     SetLastError(0);
-    LONG oldWndProc = SetWindowLong(mWindow, GWL_WNDPROC, reinterpret_cast<LONG>(SurfaceWindowProc));
+    LONG_PTR oldWndProc = SetWindowLongPtr(mWindow, GWLP_WNDPROC, reinterpret_cast<LONG_PTR>(SurfaceWindowProc));
     if(oldWndProc == 0 && GetLastError() != ERROR_SUCCESS)
     {
         mWindowSubclassed = false;
         return;
     }
 
     SetProp(mWindow, kSurfaceProperty, reinterpret_cast<HANDLE>(this));
     SetProp(mWindow, kParentWndProc, reinterpret_cast<HANDLE>(oldWndProc));
@@ -305,27 +305,27 @@ void Surface::subclassWindow()
 void Surface::unsubclassWindow()
 {
     if(!mWindowSubclassed)
     {
         return;
     }
 
     // un-subclass
-    LONG parentWndFunc = reinterpret_cast<LONG>(GetProp(mWindow, kParentWndProc));
+    LONG_PTR parentWndFunc = reinterpret_cast<LONG_PTR>(GetProp(mWindow, kParentWndProc));
 
     // Check the windowproc is still SurfaceWindowProc.
     // If this assert fails, then it is likely the application has subclassed the
     // hwnd as well and did not unsubclass before destroying its EGL context. The
     // application should be modified to either subclass before initializing the
     // EGL context, or to unsubclass before destroying the EGL context.
     if(parentWndFunc)
     {
-        LONG prevWndFunc = SetWindowLong(mWindow, GWL_WNDPROC, parentWndFunc);
-        ASSERT(prevWndFunc == reinterpret_cast<LONG>(SurfaceWindowProc));
+        LONG_PTR prevWndFunc = SetWindowLongPtr(mWindow, GWLP_WNDPROC, parentWndFunc);
+        ASSERT(prevWndFunc == reinterpret_cast<LONG_PTR>(SurfaceWindowProc));
     }
 
     RemoveProp(mWindow, kSurfaceProperty);
     RemoveProp(mWindow, kParentWndProc);
     mWindowSubclassed = false;
 }
 
 bool Surface::checkForOutOfDateSwapChain()
--- a/gfx/angle/src/libGLESv2/Makefile.in
+++ b/gfx/angle/src/libGLESv2/Makefile.in
@@ -151,11 +151,11 @@ CPPSRCS	+= \
 	VertexDataManager.cpp \
 	$(NULL)
 
 DEFFILE = $(srcdir)/libGLESv2.def
 
 
 include $(topsrcdir)/config/rules.mk
 
-EXTRA_DSO_LDOPTS = "$(MOZ_DIRECTX_SDK_PATH)/lib/x86/d3d9.lib" \
-                   "$(MOZ_DIRECTX_SDK_PATH)/lib/x86/d3dx9.lib" \
-		   "$(MOZ_DIRECTX_SDK_PATH)/lib/x86/D3DCompiler.lib"
+EXTRA_DSO_LDOPTS = "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/d3d9.lib" \
+                   "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/d3dx9.lib" \
+		   "$(MOZ_DIRECTX_SDK_PATH)/lib/$(MOZ_DIRECTX_SDK_CPU_SUFFIX)/D3DCompiler.lib"
--- a/gfx/angle/src/libGLESv2/VertexDataManager.cpp
+++ b/gfx/angle/src/libGLESv2/VertexDataManager.cpp
@@ -50,24 +50,24 @@ VertexDataManager::~VertexDataManager()
     delete mStreamingBuffer;
 
     for (int i = 0; i < MAX_VERTEX_ATTRIBS; i++)
     {
         delete mCurrentValueBuffer[i];
     }
 }
 
-UINT VertexDataManager::writeAttributeData(ArrayVertexBuffer *vertexBuffer, GLint start, GLsizei count, const VertexAttribute &attribute)
+std::size_t VertexDataManager::writeAttributeData(ArrayVertexBuffer *vertexBuffer, GLint start, GLsizei count, const VertexAttribute &attribute)
 {
     Buffer *buffer = attribute.mBoundBuffer.get();
 
     int inputStride = attribute.stride();
     int elementSize = attribute.typeSize();
     const FormatConverter &converter = formatConverter(attribute);
-    UINT streamOffset = 0;
+    std::size_t streamOffset = 0;
 
     void *output = NULL;
     
     if (vertexBuffer)
     {
         output = vertexBuffer->map(attribute, spaceRequired(attribute, count), &streamOffset);
     }
 
@@ -198,17 +198,17 @@ GLenum VertexDataManager::prepareVertexD
                     return GL_INVALID_OPERATION;
                 }
 
                 const FormatConverter &converter = formatConverter(attribs[i]);
 
                 StaticVertexBuffer *staticBuffer = buffer ? buffer->getStaticVertexBuffer() : NULL;
                 ArrayVertexBuffer *vertexBuffer = staticBuffer ? staticBuffer : static_cast<ArrayVertexBuffer*>(mStreamingBuffer);
 
-                UINT streamOffset = -1;
+                std::size_t streamOffset = -1;
 
                 if (staticBuffer)
                 {
                     streamOffset = staticBuffer->lookupAttribute(attribs[i]);
 
                     if (streamOffset == -1)
                     {
                         // Convert the entire buffer
@@ -666,17 +666,17 @@ void StreamingVertexBuffer::reserveRequi
 StaticVertexBuffer::StaticVertexBuffer(IDirect3DDevice9 *device) : ArrayVertexBuffer(device, 0, D3DUSAGE_WRITEONLY)
 {
 }
 
 StaticVertexBuffer::~StaticVertexBuffer()
 {
 }
 
-void *StaticVertexBuffer::map(const VertexAttribute &attribute, std::size_t requiredSpace, UINT *streamOffset)
+void *StaticVertexBuffer::map(const VertexAttribute &attribute, std::size_t requiredSpace, std::size_t *streamOffset)
 {
     void *mapPtr = NULL;
 
     if (mVertexBuffer)
     {
         HRESULT result = mVertexBuffer->Lock(mWritePosition, requiredSpace, &mapPtr, 0);
         
         if (FAILED(result))
@@ -714,17 +714,17 @@ void StaticVertexBuffer::reserveRequired
     {
         // Already allocated
     }
     else UNREACHABLE();   // Static vertex buffers can't be resized
 
     mRequiredSpace = 0;
 }
 
-UINT StaticVertexBuffer::lookupAttribute(const VertexAttribute &attribute)
+std::size_t StaticVertexBuffer::lookupAttribute(const VertexAttribute &attribute)
 {
     for (unsigned int element = 0; element < mCache.size(); element++)
     {
         if (mCache[element].type == attribute.mType &&  mCache[element].size == attribute.mSize && mCache[element].normalized == attribute.mNormalized)
         {
             if (mCache[element].attributeOffset == attribute.mOffset % attribute.stride())
             {
                 return mCache[element].streamOffset;
--- a/gfx/angle/src/libGLESv2/VertexDataManager.h
+++ b/gfx/angle/src/libGLESv2/VertexDataManager.h
@@ -30,17 +30,17 @@ struct TranslatedAttribute
     UINT stride;   // 0 means not to advance the read pointer at all
 
     IDirect3DVertexBuffer9 *vertexBuffer;
 };
 
 class VertexBuffer
 {
   public:
-    VertexBuffer(IDirect3DDevice9 *device, UINT size, DWORD usageFlags);
+    VertexBuffer(IDirect3DDevice9 *device, std::size_t size, DWORD usageFlags);
     virtual ~VertexBuffer();
 
     void unmap();
 
     IDirect3DVertexBuffer9 *getBuffer() const;
 
   protected:
     IDirect3DDevice9 *const mDevice;
@@ -55,60 +55,60 @@ class ConstantVertexBuffer : public Vert
   public:
     ConstantVertexBuffer(IDirect3DDevice9 *device, float x, float y, float z, float w);
     ~ConstantVertexBuffer();
 };
 
 class ArrayVertexBuffer : public VertexBuffer
 {
   public:
-    ArrayVertexBuffer(IDirect3DDevice9 *device, UINT size, DWORD usageFlags);
+    ArrayVertexBuffer(IDirect3DDevice9 *device, std::size_t size, DWORD usageFlags);
     ~ArrayVertexBuffer();
 
-    UINT size() const { return mBufferSize; }
-    virtual void *map(const VertexAttribute &attribute, UINT requiredSpace, UINT *streamOffset) = 0;
+    std::size_t size() const { return mBufferSize; }
+    virtual void *map(const VertexAttribute &attribute, std::size_t requiredSpace, std::size_t *streamOffset) = 0;
     virtual void reserveRequiredSpace() = 0;
     void addRequiredSpace(UINT requiredSpace);
 
   protected:
-    UINT mBufferSize;
-    UINT mWritePosition;
-    UINT mRequiredSpace;
+    std::size_t mBufferSize;
+    std::size_t mWritePosition;
+    std::size_t mRequiredSpace;
 };
 
 class StreamingVertexBuffer : public ArrayVertexBuffer
 {
   public:
-    StreamingVertexBuffer(IDirect3DDevice9 *device, UINT initialSize);
+    StreamingVertexBuffer(IDirect3DDevice9 *device, std::size_t initialSize);
     ~StreamingVertexBuffer();
 
-    void *map(const VertexAttribute &attribute, UINT requiredSpace, UINT *streamOffset);
+    void *map(const VertexAttribute &attribute, std::size_t requiredSpace, std::size_t *streamOffset);
     void reserveRequiredSpace();
 };
 
 class StaticVertexBuffer : public ArrayVertexBuffer
 {
   public:
     explicit StaticVertexBuffer(IDirect3DDevice9 *device);
     ~StaticVertexBuffer();
 
-    void *map(const VertexAttribute &attribute, UINT requiredSpace, UINT *streamOffset);
+    void *map(const VertexAttribute &attribute, std::size_t requiredSpace, std::size_t *streamOffset);
     void reserveRequiredSpace();
 
-    UINT lookupAttribute(const VertexAttribute &attribute);   // Returns the offset into the vertex buffer, or -1 if not found
+    std::size_t lookupAttribute(const VertexAttribute &attribute);   // Returns the offset into the vertex buffer, or -1 if not found
 
   private:
     struct VertexElement
     {
         GLenum type;
         GLint size;
         bool normalized;
         int attributeOffset;
 
-        UINT streamOffset;
+        std::size_t streamOffset;
     };
 
     std::vector<VertexElement> mCache;
 };
 
 class VertexDataManager
 {
   public:
@@ -117,18 +117,18 @@ class VertexDataManager
 
     void dirtyCurrentValue(int index) { mDirtyCurrentValue[index] = true; }
 
     GLenum prepareVertexData(GLint start, GLsizei count, TranslatedAttribute *outAttribs);
 
   private:
     DISALLOW_COPY_AND_ASSIGN(VertexDataManager);
 
-    UINT spaceRequired(const VertexAttribute &attrib, std::size_t count) const;
-    UINT writeAttributeData(ArrayVertexBuffer *vertexBuffer, GLint start, GLsizei count, const VertexAttribute &attribute);
+    std::size_t spaceRequired(const VertexAttribute &attrib, std::size_t count) const;
+    std::size_t writeAttributeData(ArrayVertexBuffer *vertexBuffer, GLint start, GLsizei count, const VertexAttribute &attribute);
 
     Context *const mContext;
     IDirect3DDevice9 *const mDevice;
 
     StreamingVertexBuffer *mStreamingBuffer;
 
     bool mDirtyCurrentValue[MAX_VERTEX_ATTRIBS];
     ConstantVertexBuffer *mCurrentValueBuffer[MAX_VERTEX_ATTRIBS];
--- a/gfx/layers/basic/BasicLayers.cpp
+++ b/gfx/layers/basic/BasicLayers.cpp
@@ -89,17 +89,18 @@ class ShadowableLayer;
  *  |    +-> BasicThebesLayer <---------+   |
  *  |                                       |
  *  +-> ImageLayer                          |
  *       |                                  |
  *       +-> BasicImageLayer <--------------+
  */
 class BasicImplData {
 public:
-  BasicImplData() : mHidden(PR_FALSE), mOperator(gfxContext::OPERATOR_OVER)
+  BasicImplData() : mHidden(PR_FALSE),
+    mClipToVisibleRegion(PR_FALSE), mOperator(gfxContext::OPERATOR_OVER)
   {
     MOZ_COUNT_CTOR(BasicImplData);
   }
   virtual ~BasicImplData()
   {
     MOZ_COUNT_DTOR(BasicImplData);
   }
 
@@ -109,16 +110,18 @@ public:
    * set up to account for all the properties of the layer (transform,
    * opacity, etc).
    */
   virtual void Paint(gfxContext* aContext) {}
 
   /**
    * Like Paint() but called for ThebesLayers with the additional parameters
    * they need.
+   * If mClipToVisibleRegion is set, then the layer must clip to its
+   * effective visible region (snapped or unsnapped, it doesn't matter).
    */
   virtual void PaintThebes(gfxContext* aContext,
                            LayerManager::DrawThebesLayerCallback aCallback,
                            void* aCallbackData,
                            ReadbackProcessor* aReadback) {}
 
   virtual ShadowableLayer* AsShadowableLayer() { return nsnull; }
 
@@ -152,18 +155,22 @@ public:
   {
     NS_ASSERTION(aOperator == gfxContext::OPERATOR_OVER ||
                  aOperator == gfxContext::OPERATOR_SOURCE,
                  "Bad composition operator");
     mOperator = aOperator;
   }
   gfxContext::GraphicsOperator GetOperator() const { return mOperator; }
 
+  PRBool GetClipToVisibleRegion() { return mClipToVisibleRegion; }
+  void SetClipToVisibleRegion(PRBool aClip) { mClipToVisibleRegion = aClip; }
+
 protected:
   PRPackedBool mHidden;
+  PRPackedBool mClipToVisibleRegion;
   gfxContext::GraphicsOperator mOperator;
 };
 
 class AutoSetOperator {
 public:
   AutoSetOperator(gfxContext* aContext, gfxContext::GraphicsOperator aOperator) {
     if (aOperator != gfxContext::OPERATOR_OVER) {
       aContext->SetOperator(aOperator);
@@ -659,17 +666,17 @@ BasicThebesLayer::PaintThebes(gfxContext
     if (!toDraw.IsEmpty() && !IsHidden()) {
       if (!aCallback) {
         BasicManager()->SetTransactionIncomplete();
         return;
       }
 
       aContext->Save();
 
-      PRBool needsClipToVisibleRegion = PR_FALSE;
+      PRBool needsClipToVisibleRegion = GetClipToVisibleRegion();
       PRBool needsGroup =
           opacity != 1.0 || GetOperator() != gfxContext::OPERATOR_OVER;
       nsRefPtr<gfxContext> groupContext;
       if (needsGroup) {
         groupContext =
           BasicManager()->PushGroupForLayer(aContext, this, toDraw,
                                             &needsClipToVisibleRegion);
         if (GetOperator() != gfxContext::OPERATOR_OVER) {
@@ -761,17 +768,20 @@ void
 BasicThebesLayerBuffer::DrawTo(ThebesLayer* aLayer,
                                gfxContext* aTarget,
                                float aOpacity)
 {
   aTarget->Save();
   // If the entire buffer is valid, we can just draw the whole thing,
   // no need to clip. But we'll still clip if clipping is cheap ---
   // that might let us copy a smaller region of the buffer.
+  // Also clip to the visible region if we're told to.
   if (!aLayer->GetValidRegion().Contains(BufferRect()) ||
+      (ToData(aLayer)->GetClipToVisibleRegion() &&
+       !aLayer->GetVisibleRegion().Contains(BufferRect())) ||
       IsClippingCheap(aTarget, aLayer->GetEffectiveVisibleRegion())) {
     // We don't want to draw invalid stuff, so we need to clip. Might as
     // well clip to the smallest area possible --- the visible region.
     // Bug 599189 if there is a non-integer-translation transform in aTarget,
     // we might sample pixels outside GetEffectiveVisibleRegion(), which is wrong
     // and may cause gray lines.
     gfxUtils::ClipToRegionSnapped(aTarget, aLayer->GetEffectiveVisibleRegion());
   }
@@ -1370,16 +1380,17 @@ TransformIntRect(nsIntRect& aRect, const
 }
 
 /**
  * This function assumes that GetEffectiveTransform transforms
  * all layers to the same coordinate system (the "root coordinate system").
  * It can't be used as is by accelerated layers because of intermediate surfaces.
  * This must set the hidden flag to true or false on *all* layers in the subtree.
  * It also sets the operator for all layers to "OVER".
+ * It clears mClipToVisibleRegion on all layers.
  * @param aClipRect the cliprect, in the root coordinate system. We assume
  * that any layer drawing is clipped to this rect. It is therefore not
  * allowed to add to the opaque region outside that rect.
  * @param aDirtyRect the dirty rect that will be painted, in the root
  * coordinate system. Layers outside this rect should be hidden.
  * @param aOpaqueRegion the opaque region covering aLayer, in the
  * root coordinate system.
  */
@@ -1418,16 +1429,17 @@ MarkLayersHidden(Layer* aLayer, const ns
         }
       }
       newClipRect.IntersectRect(newClipRect, cr);
     }
   }
 
   BasicImplData* data = ToData(aLayer);
   data->SetOperator(gfxContext::OPERATOR_OVER);
+  data->SetClipToVisibleRegion(PR_FALSE);
 
   if (!aLayer->AsContainerLayer()) {
     gfxMatrix transform;
     if (!aLayer->GetEffectiveTransform().Is2D(&transform)) {
       data->SetHidden(PR_FALSE);
       return;
     }
 
@@ -1508,18 +1520,21 @@ ApplyDoubleBuffering(Layer* aLayer, cons
     data->SetOperator(gfxContext::OPERATOR_SOURCE);
   } else {
     if (container->UseIntermediateSurface() ||
         !container->ChildrenPartitionVisibleRegion(newVisibleRect)) {
       // We need to double-buffer this container.
       data->SetOperator(gfxContext::OPERATOR_SOURCE);
       container->ForceIntermediateSurface();
     } else {
+      // Tell the children to clip to their visible regions so our assumption
+      // that they don't paint outside their visible regions is valid!
       for (Layer* child = aLayer->GetFirstChild(); child;
            child = child->GetNextSibling()) {
+        ToData(child)->SetClipToVisibleRegion(PR_TRUE);
         ApplyDoubleBuffering(child, newVisibleRect);
       }
     }
   }
 }
 
 void
 BasicLayerManager::EndTransaction(DrawThebesLayerCallback aCallback,
@@ -1632,24 +1647,26 @@ BasicLayerManager::PaintLayer(gfxContext
                               void* aCallbackData,
                               ReadbackProcessor* aReadback)
 {
   const nsIntRect* clipRect = aLayer->GetEffectiveClipRect();
   const gfx3DMatrix& effectiveTransform = aLayer->GetEffectiveTransform();
   BasicContainerLayer* container = static_cast<BasicContainerLayer*>(aLayer);
   PRBool needsGroup = aLayer->GetFirstChild() &&
     container->UseIntermediateSurface();
+  BasicImplData* data = ToData(aLayer);
+  PRBool needsClipToVisibleRegion =
+    data->GetClipToVisibleRegion() && !aLayer->AsThebesLayer();
   NS_ASSERTION(needsGroup || !aLayer->GetFirstChild() ||
                container->GetOperator() == gfxContext::OPERATOR_OVER,
                "non-OVER operator should have forced UseIntermediateSurface");
 
   // If needsSaveRestore is false, we should still save and restore
   // the CTM
-  PRBool needsSaveRestore = needsGroup || clipRect;
-
+  PRBool needsSaveRestore = needsGroup || clipRect || needsClipToVisibleRegion;
   gfxMatrix savedMatrix;
   if (needsSaveRestore) {
     aTarget->Save();
 
     if (clipRect) {
       aTarget->NewPath();
       aTarget->Rectangle(gfxRect(clipRect->x, clipRect->y, clipRect->width, clipRect->height), PR_TRUE);
       aTarget->Clip();
@@ -1661,45 +1678,50 @@ BasicLayerManager::PaintLayer(gfxContext
   gfxMatrix transform;
   // XXX we need to add some kind of 3D transform support, possibly
   // using pixman?
   NS_ASSERTION(effectiveTransform.Is2D(),
                "Only 2D transforms supported currently");
   effectiveTransform.Is2D(&transform);
   aTarget->SetMatrix(transform);
 
+  const nsIntRegion& visibleRegion = aLayer->GetEffectiveVisibleRegion();
+  // If needsGroup is true, we'll clip to the visible region after we've popped the group
+  if (needsClipToVisibleRegion && !needsGroup) {
+    gfxUtils::ClipToRegion(aTarget, visibleRegion);
+    // Don't need to clip to visible region again
+    needsClipToVisibleRegion = PR_FALSE;
+  }
+
   PRBool pushedTargetOpaqueRect = PR_FALSE;
-  const nsIntRegion& visibleRegion = aLayer->GetEffectiveVisibleRegion();
   nsRefPtr<gfxASurface> currentSurface = aTarget->CurrentSurface();
   const gfxRect& targetOpaqueRect = currentSurface->GetOpaqueRect();
 
   // Try to annotate currentSurface with a region of pixels that have been
   // (or will be) painted opaque, if no such region is currently set.
   if (targetOpaqueRect.IsEmpty() && visibleRegion.GetNumRects() == 1 &&
       (aLayer->GetContentFlags() & Layer::CONTENT_OPAQUE) &&
       !transform.HasNonAxisAlignedTransform()) {
     const nsIntRect& bounds = visibleRegion.GetBounds();
     currentSurface->SetOpaqueRect(
         aTarget->UserToDevice(gfxRect(bounds.x, bounds.y, bounds.width, bounds.height)));
     pushedTargetOpaqueRect = PR_TRUE;
   }
 
-  PRBool needsClipToVisibleRegion = PR_FALSE;
   nsRefPtr<gfxContext> groupTarget;
   if (needsGroup) {
     groupTarget = PushGroupForLayer(aTarget, aLayer, aLayer->GetEffectiveVisibleRegion(),
                                     &needsClipToVisibleRegion);
   } else {
     groupTarget = aTarget;
   }
 
   /* Only paint ourself, or our children - This optimization relies on this! */
   Layer* child = aLayer->GetFirstChild();
   if (!child) {
-    BasicImplData* data = ToData(aLayer);
 #ifdef MOZ_LAYERS_HAVE_LOG
     MOZ_LAYERS_LOG(("%s (0x%p) is covered: %i\n", __FUNCTION__,
                    (void*)aLayer, data->IsHidden()));
 #endif
     if (aLayer->AsThebesLayer()) {
       data->PaintThebes(groupTarget, aCallback, aCallbackData, aReadback);
     } else {
       data->Paint(groupTarget);
--- a/gfx/layers/d3d10/LayerManagerD3D10.fx
+++ b/gfx/layers/d3d10/LayerManagerD3D10.fx
@@ -43,18 +43,18 @@ BlendState NonPremul
 
 BlendState ComponentAlphaBlend
 {
   AlphaToCoverageEnable = FALSE;
   BlendEnable[0] = TRUE;
   SrcBlend = One;
   DestBlend = Inv_Src1_Color;
   BlendOp = Add;
-  SrcBlendAlpha = Zero;
-  DestBlendAlpha = One;
+  SrcBlendAlpha = Src1_Alpha;
+  DestBlendAlpha = Inv_Src1_Alpha;
   BlendOpAlpha = Add;
   RenderTargetWriteMask[0] = 0x0F; // All
 };
 
 RasterizerState LayerRast
 {
   ScissorEnable = True;
   CullMode = None;
@@ -167,16 +167,17 @@ float4 YCbCrShader(const VS_OUTPUT aVert
 }
 
 PS_OUTPUT ComponentAlphaShader(const VS_OUTPUT aVertex) : SV_Target
 {
   PS_OUTPUT result;
 
   result.vSrc = tRGB.Sample(LayerTextureSamplerLinear, aVertex.vTexCoords);
   result.vAlpha = 1.0 - tRGBWhite.Sample(LayerTextureSamplerLinear, aVertex.vTexCoords) + result.vSrc;
+  result.vAlpha.a = result.vAlpha.g;
   result.vSrc *= fLayerOpacity;
   result.vAlpha *= fLayerOpacity;
   return result;
 }
 
 float4 SolidColorShader(const VS_OUTPUT aVertex) : SV_Target
 {
   return fLayerColor;
--- a/gfx/layers/d3d10/LayerManagerD3D10Effect.h
+++ b/gfx/layers/d3d10/LayerManagerD3D10Effect.h
@@ -1,7222 +1,7183 @@
-#if 0
-//
-// FX Version: fx_4_0
-// Child effect (requires effect pool): false
-//
-// 3 local buffer(s)
-//
-cbuffer PerLayer
-{
-    float4  vTextureCoords;             // Offset:    0, size:   16
-    float4  vLayerQuad;                 // Offset:   16, size:   16
-    float   fLayerOpacity;              // Offset:   32, size:    4
-    float4x4 mLayerTransform;           // Offset:   48, size:   64
-}
-
-cbuffer PerOccasionalLayer
-{
-    float4  vRenderTargetOffset;        // Offset:    0, size:   16
-    float4  fLayerColor;                // Offset:   16, size:   16
-}
-
-cbuffer PerLayerManager
-{
-    float4x4 mProjection;               // Offset:    0, size:   64
-}
-
-//
-// 11 local object(s)
-//
-BlendState Premul
-{
-    AlphaToCoverageEnable = bool(FALSE /* 0 */);
-    BlendEnable[0] = bool(TRUE /* 1 */);
-    SrcBlend[0] = uint(ONE /* 2 */);
-    DestBlend[0] = uint(INV_SRC_ALPHA /* 6 */);
-    BlendOp[0] = uint(ADD /* 1 */);
-    SrcBlendAlpha[0] = uint(ONE /* 2 */);
-    DestBlendAlpha[0] = uint(INV_SRC_ALPHA /* 6 */);
-    BlendOpAlpha[0] = uint(ADD /* 1 */);
-    RenderTargetWriteMask[0] = byte(0x0f);
-};
-BlendState NonPremul
-{
-    AlphaToCoverageEnable = bool(FALSE /* 0 */);
-    BlendEnable[0] = bool(TRUE /* 1 */);
-    SrcBlend[0] = uint(SRC_ALPHA /* 5 */);
-    DestBlend[0] = uint(INV_SRC_ALPHA /* 6 */);
-    BlendOp[0] = uint(ADD /* 1 */);
-    SrcBlendAlpha[0] = uint(ONE /* 2 */);
-    DestBlendAlpha[0] = uint(INV_SRC_ALPHA /* 6 */);
-    BlendOpAlpha[0] = uint(ADD /* 1 */);
-    RenderTargetWriteMask[0] = byte(0x0f);
-};
-BlendState ComponentAlphaBlend
-{
-    AlphaToCoverageEnable = bool(FALSE /* 0 */);
-    BlendEnable[0] = bool(TRUE /* 1 */);
-    SrcBlend[0] = uint(ONE /* 2 */);
-    DestBlend[0] = uint(INV_SRC1_COLOR /* 17 */);
-    BlendOp[0] = uint(ADD /* 1 */);
-    SrcBlendAlpha[0] = uint(ZERO /* 1 */);
-    DestBlendAlpha[0] = uint(ONE /* 2 */);
-    BlendOpAlpha[0] = uint(ADD /* 1 */);
-    RenderTargetWriteMask[0] = byte(0x0f);
-};
-RasterizerState LayerRast
-{
-    ScissorEnable = bool(TRUE /* 1 */);
-    CullMode = uint(NONE /* 1 */);
-};
-Texture2D tRGB;
-Texture2D tY;
-Texture2D tCb;
-Texture2D tCr;
-Texture2D tRGBWhite;
-SamplerState LayerTextureSamplerLinear
-{
-    Filter   = uint(MIN_MAG_MIP_LINEAR /* 21 */);
-    AddressU = uint(CLAMP /* 3 */);
-    AddressV = uint(CLAMP /* 3 */);
-};
-SamplerState LayerTextureSamplerPoint
-{
-    Filter   = uint(MIN_MAG_MIP_POINT /* 0 */);
-    AddressU = uint(CLAMP /* 3 */);
-    AddressV = uint(CLAMP /* 3 */);
-};
-
-//
-// 9 technique(s)
-//
-technique10 RenderRGBLayerPremul
-{
-    pass P0
-    {
-        RasterizerState = LayerRast;
-        AB_BlendFactor = float4(0, 0, 0, 0);
-        AB_SampleMask = uint(0xffffffff);
-        BlendState = Premul;
-        VertexShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16
-            //   float fLayerOpacity;               // Offset:   32 Size:     4 [unused]
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64
-            //
-            // }
-            //
-            // cbuffer PerOccasionalLayer
-            // {
-            //
-            //   float4 vRenderTargetOffset;        // Offset:    0 Size:    16
-            //   float4 fLayerColor;                // Offset:   16 Size:    16 [unused]
-            //
-            // }
-            //
-            // cbuffer PerLayerManager
-            // {
-            //
-            //   float4x4 mProjection;              // Offset:    0 Size:    64
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // PerLayer                          cbuffer      NA          NA    0        1
-            // PerOccasionalLayer                cbuffer      NA          NA    1        1
-            // PerLayerManager                   cbuffer      NA          NA    2        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // POSITION                 0   xy          0     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float   xyzw
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c1         cb0             0         2  ( FLT, FLT, FLT, FLT)
-            // c3         cb0             3         2  ( FLT, FLT, FLT, FLT)
-            // c5         cb0             6         1  ( FLT, FLT, FLT, FLT)
-            // c6         cb1             0         1  ( FLT, FLT, FLT, FLT)
-            // c7         cb2             0         4  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Runtime generated constant mappings:
-            //
-            // Target Reg                               Constant Description
-            // ---------- --------------------------------------------------
-            // c0                              Vertex Shader position offset
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                vs_2_x
-                dcl_texcoord v0
-                mad oT0.xy, v0, c1.zwzw, c1
-                mad r0.x, v0.y, c2.w, c2.y
-                mul r0, r0.x, c4
-                mad r1.x, v0.x, c2.z, c2.x
-                mad r0, c3, r1.x, r0
-                add r0, r0, c5
-                add r0, r0, -c6
-                mul r1, r0.y, c8
-                mad r1, c7, r0.x, r1
-                mad r1, c9, r0.z, r1
-                mad r0, c10, r0.w, r1
-                mad oPos.xy, r0.w, c0, r0
-                mov oPos.zw, r0
-            
-            // approximately 13 instruction slots used
-            vs_4_0
-            dcl_constantbuffer cb0[7], immediateIndexed
-            dcl_constantbuffer cb1[1], immediateIndexed
-            dcl_constantbuffer cb2[4], immediateIndexed
-            dcl_input v0.xy
-            dcl_output_siv o0.xyzw, position
-            dcl_output o1.xy
-            dcl_temps 2
-            mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx
-            mul r1.xyzw, r0.yyyy, cb0[4].xyzw
-            mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw
-            add r0.xyzw, r0.xyzw, cb0[6].xyzw
-            add r0.xyzw, r0.xyzw, -cb1[0].xyzw
-            mul r1.xyzw, r0.yyyy, cb2[1].xyzw
-            mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw
-            mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw
-            mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw
-            mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
-            ret 
-            // Approximately 11 instruction slots used
-                    
-        };
-        GeometryShader = NULL;
-        PixelShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16 [unused]
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16 [unused]
-            //   float fLayerOpacity;               // Offset:   32 Size:     4
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64 [unused]
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // LayerTextureSamplerLinear         sampler      NA          NA    0        1
-            // tRGB                              texture  float4          2d    0        1
-            // PerLayer                          cbuffer      NA          NA    0        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float       
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Target                0   xyzw        0   TARGET  float   xyzw
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c0         cb0             2         1  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Sampler/Resource to DX9 shader sampler mappings:
-            //
-            // Target Sampler Source Sampler  Source Resource
-            // -------------- --------------- ----------------
-            // s0             s0              t0               
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                ps_2_x
-                dcl t0.xy
-                dcl_2d s0
-                texld r0, t0, s0
-                mul r0.xyz, r0, c0.x
-                mov r0.w, c0.x
-                mov oC0, r0
-            
-            // approximately 4 instruction slots used (1 texture, 3 arithmetic)
-            ps_4_0
-            dcl_constantbuffer cb0[3], immediateIndexed
-            dcl_sampler s0, mode_default
-            dcl_resource_texture2d (float,float,float,float) t0
-            dcl_input_ps linear v1.xy
-            dcl_output o0.xyzw
-            dcl_temps 1
-            sample r0.xyzw, v1.xyxx, t0.xyzw, s0
-            mul o0.xyz, r0.xyzx, cb0[2].xxxx
-            mov o0.w, cb0[2].x
-            ret 
-            // Approximately 4 instruction slots used
-                    
-        };
-    }
-
-}
-
-technique10 RenderRGBLayerPremulPoint
-{
-    pass P0
-    {
-        RasterizerState = LayerRast;
-        AB_BlendFactor = float4(0, 0, 0, 0);
-        AB_SampleMask = uint(0xffffffff);
-        BlendState = Premul;
-        VertexShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16
-            //   float fLayerOpacity;               // Offset:   32 Size:     4 [unused]
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64
-            //
-            // }
-            //
-            // cbuffer PerOccasionalLayer
-            // {
-            //
-            //   float4 vRenderTargetOffset;        // Offset:    0 Size:    16
-            //   float4 fLayerColor;                // Offset:   16 Size:    16 [unused]
-            //
-            // }
-            //
-            // cbuffer PerLayerManager
-            // {
-            //
-            //   float4x4 mProjection;              // Offset:    0 Size:    64
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // PerLayer                          cbuffer      NA          NA    0        1
-            // PerOccasionalLayer                cbuffer      NA          NA    1        1
-            // PerLayerManager                   cbuffer      NA          NA    2        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // POSITION                 0   xy          0     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float   xyzw
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c1         cb0             0         2  ( FLT, FLT, FLT, FLT)
-            // c3         cb0             3         2  ( FLT, FLT, FLT, FLT)
-            // c5         cb0             6         1  ( FLT, FLT, FLT, FLT)
-            // c6         cb1             0         1  ( FLT, FLT, FLT, FLT)
-            // c7         cb2             0         4  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Runtime generated constant mappings:
-            //
-            // Target Reg                               Constant Description
-            // ---------- --------------------------------------------------
-            // c0                              Vertex Shader position offset
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                vs_2_x
-                dcl_texcoord v0
-                mad oT0.xy, v0, c1.zwzw, c1
-                mad r0.x, v0.y, c2.w, c2.y
-                mul r0, r0.x, c4
-                mad r1.x, v0.x, c2.z, c2.x
-                mad r0, c3, r1.x, r0
-                add r0, r0, c5
-                add r0, r0, -c6
-                mul r1, r0.y, c8
-                mad r1, c7, r0.x, r1
-                mad r1, c9, r0.z, r1
-                mad r0, c10, r0.w, r1
-                mad oPos.xy, r0.w, c0, r0
-                mov oPos.zw, r0
-            
-            // approximately 13 instruction slots used
-            vs_4_0
-            dcl_constantbuffer cb0[7], immediateIndexed
-            dcl_constantbuffer cb1[1], immediateIndexed
-            dcl_constantbuffer cb2[4], immediateIndexed
-            dcl_input v0.xy
-            dcl_output_siv o0.xyzw, position
-            dcl_output o1.xy
-            dcl_temps 2
-            mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx
-            mul r1.xyzw, r0.yyyy, cb0[4].xyzw
-            mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw
-            add r0.xyzw, r0.xyzw, cb0[6].xyzw
-            add r0.xyzw, r0.xyzw, -cb1[0].xyzw
-            mul r1.xyzw, r0.yyyy, cb2[1].xyzw
-            mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw
-            mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw
-            mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw
-            mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
-            ret 
-            // Approximately 11 instruction slots used
-                    
-        };
-        GeometryShader = NULL;
-        PixelShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16 [unused]
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16 [unused]
-            //   float fLayerOpacity;               // Offset:   32 Size:     4
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64 [unused]
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // LayerTextureSamplerPoint          sampler      NA          NA    0        1
-            // tRGB                              texture  float4          2d    0        1
-            // PerLayer                          cbuffer      NA          NA    0        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float       
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Target                0   xyzw        0   TARGET  float   xyzw
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c0         cb0             2         1  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Sampler/Resource to DX9 shader sampler mappings:
-            //
-            // Target Sampler Source Sampler  Source Resource
-            // -------------- --------------- ----------------
-            // s0             s0              t0               
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                ps_2_x
-                dcl t0.xy
-                dcl_2d s0
-                texld r0, t0, s0
-                mul r0.xyz, r0, c0.x
-                mov r0.w, c0.x
-                mov oC0, r0
-            
-            // approximately 4 instruction slots used (1 texture, 3 arithmetic)
-            ps_4_0
-            dcl_constantbuffer cb0[3], immediateIndexed
-            dcl_sampler s0, mode_default
-            dcl_resource_texture2d (float,float,float,float) t0
-            dcl_input_ps linear v1.xy
-            dcl_output o0.xyzw
-            dcl_temps 1
-            sample r0.xyzw, v1.xyxx, t0.xyzw, s0
-            mul o0.xyz, r0.xyzx, cb0[2].xxxx
-            mov o0.w, cb0[2].x
-            ret 
-            // Approximately 4 instruction slots used
-                    
-        };
-    }
-
-}
-
-technique10 RenderRGBALayerPremul
-{
-    pass P0
-    {
-        RasterizerState = LayerRast;
-        AB_BlendFactor = float4(0, 0, 0, 0);
-        AB_SampleMask = uint(0xffffffff);
-        BlendState = Premul;
-        VertexShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16
-            //   float fLayerOpacity;               // Offset:   32 Size:     4 [unused]
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64
-            //
-            // }
-            //
-            // cbuffer PerOccasionalLayer
-            // {
-            //
-            //   float4 vRenderTargetOffset;        // Offset:    0 Size:    16
-            //   float4 fLayerColor;                // Offset:   16 Size:    16 [unused]
-            //
-            // }
-            //
-            // cbuffer PerLayerManager
-            // {
-            //
-            //   float4x4 mProjection;              // Offset:    0 Size:    64
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // PerLayer                          cbuffer      NA          NA    0        1
-            // PerOccasionalLayer                cbuffer      NA          NA    1        1
-            // PerLayerManager                   cbuffer      NA          NA    2        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // POSITION                 0   xy          0     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float   xyzw
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c1         cb0             0         2  ( FLT, FLT, FLT, FLT)
-            // c3         cb0             3         2  ( FLT, FLT, FLT, FLT)
-            // c5         cb0             6         1  ( FLT, FLT, FLT, FLT)
-            // c6         cb1             0         1  ( FLT, FLT, FLT, FLT)
-            // c7         cb2             0         4  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Runtime generated constant mappings:
-            //
-            // Target Reg                               Constant Description
-            // ---------- --------------------------------------------------
-            // c0                              Vertex Shader position offset
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                vs_2_x
-                dcl_texcoord v0
-                mad oT0.xy, v0, c1.zwzw, c1
-                mad r0.x, v0.y, c2.w, c2.y
-                mul r0, r0.x, c4
-                mad r1.x, v0.x, c2.z, c2.x
-                mad r0, c3, r1.x, r0
-                add r0, r0, c5
-                add r0, r0, -c6
-                mul r1, r0.y, c8
-                mad r1, c7, r0.x, r1
-                mad r1, c9, r0.z, r1
-                mad r0, c10, r0.w, r1
-                mad oPos.xy, r0.w, c0, r0
-                mov oPos.zw, r0
-            
-            // approximately 13 instruction slots used
-            vs_4_0
-            dcl_constantbuffer cb0[7], immediateIndexed
-            dcl_constantbuffer cb1[1], immediateIndexed
-            dcl_constantbuffer cb2[4], immediateIndexed
-            dcl_input v0.xy
-            dcl_output_siv o0.xyzw, position
-            dcl_output o1.xy
-            dcl_temps 2
-            mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx
-            mul r1.xyzw, r0.yyyy, cb0[4].xyzw
-            mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw
-            add r0.xyzw, r0.xyzw, cb0[6].xyzw
-            add r0.xyzw, r0.xyzw, -cb1[0].xyzw
-            mul r1.xyzw, r0.yyyy, cb2[1].xyzw
-            mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw
-            mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw
-            mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw
-            mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
-            ret 
-            // Approximately 11 instruction slots used
-                    
-        };
-        GeometryShader = NULL;
-        PixelShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16 [unused]
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16 [unused]
-            //   float fLayerOpacity;               // Offset:   32 Size:     4
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64 [unused]
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // LayerTextureSamplerLinear         sampler      NA          NA    0        1
-            // tRGB                              texture  float4          2d    0        1
-            // PerLayer                          cbuffer      NA          NA    0        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float       
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Target                0   xyzw        0   TARGET  float   xyzw
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c0         cb0             2         1  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Sampler/Resource to DX9 shader sampler mappings:
-            //
-            // Target Sampler Source Sampler  Source Resource
-            // -------------- --------------- ----------------
-            // s0             s0              t0               
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                ps_2_x
-                dcl t0.xy
-                dcl_2d s0
-                texld r0, t0, s0
-                mul r0, r0, c0.x
-                mov oC0, r0
-            
-            // approximately 3 instruction slots used (1 texture, 2 arithmetic)
-            ps_4_0
-            dcl_constantbuffer cb0[3], immediateIndexed
-            dcl_sampler s0, mode_default
-            dcl_resource_texture2d (float,float,float,float) t0
-            dcl_input_ps linear v1.xy
-            dcl_output o0.xyzw
-            dcl_temps 1
-            sample r0.xyzw, v1.xyxx, t0.xyzw, s0
-            mul o0.xyzw, r0.xyzw, cb0[2].xxxx
-            ret 
-            // Approximately 3 instruction slots used
-                    
-        };
-    }
-
-}
-
-technique10 RenderRGBALayerNonPremul
-{
-    pass P0
-    {
-        RasterizerState = LayerRast;
-        AB_BlendFactor = float4(0, 0, 0, 0);
-        AB_SampleMask = uint(0xffffffff);
-        BlendState = NonPremul;
-        VertexShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16
-            //   float fLayerOpacity;               // Offset:   32 Size:     4 [unused]
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64
-            //
-            // }
-            //
-            // cbuffer PerOccasionalLayer
-            // {
-            //
-            //   float4 vRenderTargetOffset;        // Offset:    0 Size:    16
-            //   float4 fLayerColor;                // Offset:   16 Size:    16 [unused]
-            //
-            // }
-            //
-            // cbuffer PerLayerManager
-            // {
-            //
-            //   float4x4 mProjection;              // Offset:    0 Size:    64
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // PerLayer                          cbuffer      NA          NA    0        1
-            // PerOccasionalLayer                cbuffer      NA          NA    1        1
-            // PerLayerManager                   cbuffer      NA          NA    2        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // POSITION                 0   xy          0     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float   xyzw
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c1         cb0             0         2  ( FLT, FLT, FLT, FLT)
-            // c3         cb0             3         2  ( FLT, FLT, FLT, FLT)
-            // c5         cb0             6         1  ( FLT, FLT, FLT, FLT)
-            // c6         cb1             0         1  ( FLT, FLT, FLT, FLT)
-            // c7         cb2             0         4  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Runtime generated constant mappings:
-            //
-            // Target Reg                               Constant Description
-            // ---------- --------------------------------------------------
-            // c0                              Vertex Shader position offset
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                vs_2_x
-                dcl_texcoord v0
-                mad oT0.xy, v0, c1.zwzw, c1
-                mad r0.x, v0.y, c2.w, c2.y
-                mul r0, r0.x, c4
-                mad r1.x, v0.x, c2.z, c2.x
-                mad r0, c3, r1.x, r0
-                add r0, r0, c5
-                add r0, r0, -c6
-                mul r1, r0.y, c8
-                mad r1, c7, r0.x, r1
-                mad r1, c9, r0.z, r1
-                mad r0, c10, r0.w, r1
-                mad oPos.xy, r0.w, c0, r0
-                mov oPos.zw, r0
-            
-            // approximately 13 instruction slots used
-            vs_4_0
-            dcl_constantbuffer cb0[7], immediateIndexed
-            dcl_constantbuffer cb1[1], immediateIndexed
-            dcl_constantbuffer cb2[4], immediateIndexed
-            dcl_input v0.xy
-            dcl_output_siv o0.xyzw, position
-            dcl_output o1.xy
-            dcl_temps 2
-            mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx
-            mul r1.xyzw, r0.yyyy, cb0[4].xyzw
-            mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw
-            add r0.xyzw, r0.xyzw, cb0[6].xyzw
-            add r0.xyzw, r0.xyzw, -cb1[0].xyzw
-            mul r1.xyzw, r0.yyyy, cb2[1].xyzw
-            mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw
-            mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw
-            mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw
-            mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
-            ret 
-            // Approximately 11 instruction slots used
-                    
-        };
-        GeometryShader = NULL;
-        PixelShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16 [unused]
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16 [unused]
-            //   float fLayerOpacity;               // Offset:   32 Size:     4
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64 [unused]
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // LayerTextureSamplerLinear         sampler      NA          NA    0        1
-            // tRGB                              texture  float4          2d    0        1
-            // PerLayer                          cbuffer      NA          NA    0        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float       
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Target                0   xyzw        0   TARGET  float   xyzw
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c0         cb0             2         1  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Sampler/Resource to DX9 shader sampler mappings:
-            //
-            // Target Sampler Source Sampler  Source Resource
-            // -------------- --------------- ----------------
-            // s0             s0              t0               
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                ps_2_x
-                dcl t0.xy
-                dcl_2d s0
-                texld r0, t0, s0
-                mul r0, r0, c0.x
-                mov oC0, r0
-            
-            // approximately 3 instruction slots used (1 texture, 2 arithmetic)
-            ps_4_0
-            dcl_constantbuffer cb0[3], immediateIndexed
-            dcl_sampler s0, mode_default
-            dcl_resource_texture2d (float,float,float,float) t0
-            dcl_input_ps linear v1.xy
-            dcl_output o0.xyzw
-            dcl_temps 1
-            sample r0.xyzw, v1.xyxx, t0.xyzw, s0
-            mul o0.xyzw, r0.xyzw, cb0[2].xxxx
-            ret 
-            // Approximately 3 instruction slots used
-                    
-        };
-    }
-
-}
-
-technique10 RenderRGBALayerPremulPoint
-{
-    pass P0
-    {
-        RasterizerState = LayerRast;
-        AB_BlendFactor = float4(0, 0, 0, 0);
-        AB_SampleMask = uint(0xffffffff);
-        BlendState = Premul;
-        VertexShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16
-            //   float fLayerOpacity;               // Offset:   32 Size:     4 [unused]
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64
-            //
-            // }
-            //
-            // cbuffer PerOccasionalLayer
-            // {
-            //
-            //   float4 vRenderTargetOffset;        // Offset:    0 Size:    16
-            //   float4 fLayerColor;                // Offset:   16 Size:    16 [unused]
-            //
-            // }
-            //
-            // cbuffer PerLayerManager
-            // {
-            //
-            //   float4x4 mProjection;              // Offset:    0 Size:    64
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // PerLayer                          cbuffer      NA          NA    0        1
-            // PerOccasionalLayer                cbuffer      NA          NA    1        1
-            // PerLayerManager                   cbuffer      NA          NA    2        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // POSITION                 0   xy          0     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float   xyzw
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c1         cb0             0         2  ( FLT, FLT, FLT, FLT)
-            // c3         cb0             3         2  ( FLT, FLT, FLT, FLT)
-            // c5         cb0             6         1  ( FLT, FLT, FLT, FLT)
-            // c6         cb1             0         1  ( FLT, FLT, FLT, FLT)
-            // c7         cb2             0         4  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Runtime generated constant mappings:
-            //
-            // Target Reg                               Constant Description
-            // ---------- --------------------------------------------------
-            // c0                              Vertex Shader position offset
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                vs_2_x
-                dcl_texcoord v0
-                mad oT0.xy, v0, c1.zwzw, c1
-                mad r0.x, v0.y, c2.w, c2.y
-                mul r0, r0.x, c4
-                mad r1.x, v0.x, c2.z, c2.x
-                mad r0, c3, r1.x, r0
-                add r0, r0, c5
-                add r0, r0, -c6
-                mul r1, r0.y, c8
-                mad r1, c7, r0.x, r1
-                mad r1, c9, r0.z, r1
-                mad r0, c10, r0.w, r1
-                mad oPos.xy, r0.w, c0, r0
-                mov oPos.zw, r0
-            
-            // approximately 13 instruction slots used
-            vs_4_0
-            dcl_constantbuffer cb0[7], immediateIndexed
-            dcl_constantbuffer cb1[1], immediateIndexed
-            dcl_constantbuffer cb2[4], immediateIndexed
-            dcl_input v0.xy
-            dcl_output_siv o0.xyzw, position
-            dcl_output o1.xy
-            dcl_temps 2
-            mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx
-            mul r1.xyzw, r0.yyyy, cb0[4].xyzw
-            mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw
-            add r0.xyzw, r0.xyzw, cb0[6].xyzw
-            add r0.xyzw, r0.xyzw, -cb1[0].xyzw
-            mul r1.xyzw, r0.yyyy, cb2[1].xyzw
-            mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw
-            mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw
-            mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw
-            mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
-            ret 
-            // Approximately 11 instruction slots used
-                    
-        };
-        GeometryShader = NULL;
-        PixelShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16 [unused]
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16 [unused]
-            //   float fLayerOpacity;               // Offset:   32 Size:     4
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64 [unused]
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // LayerTextureSamplerPoint          sampler      NA          NA    0        1
-            // tRGB                              texture  float4          2d    0        1
-            // PerLayer                          cbuffer      NA          NA    0        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float       
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Target                0   xyzw        0   TARGET  float   xyzw
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c0         cb0             2         1  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Sampler/Resource to DX9 shader sampler mappings:
-            //
-            // Target Sampler Source Sampler  Source Resource
-            // -------------- --------------- ----------------
-            // s0             s0              t0               
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                ps_2_x
-                dcl t0.xy
-                dcl_2d s0
-                texld r0, t0, s0
-                mul r0, r0, c0.x
-                mov oC0, r0
-            
-            // approximately 3 instruction slots used (1 texture, 2 arithmetic)
-            ps_4_0
-            dcl_constantbuffer cb0[3], immediateIndexed
-            dcl_sampler s0, mode_default
-            dcl_resource_texture2d (float,float,float,float) t0
-            dcl_input_ps linear v1.xy
-            dcl_output o0.xyzw
-            dcl_temps 1
-            sample r0.xyzw, v1.xyxx, t0.xyzw, s0
-            mul o0.xyzw, r0.xyzw, cb0[2].xxxx
-            ret 
-            // Approximately 3 instruction slots used
-                    
-        };
-    }
-
-}
-
-technique10 RenderRGBALayerNonPremulPoint
-{
-    pass P0
-    {
-        RasterizerState = LayerRast;
-        AB_BlendFactor = float4(0, 0, 0, 0);
-        AB_SampleMask = uint(0xffffffff);
-        BlendState = NonPremul;
-        VertexShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16
-            //   float fLayerOpacity;               // Offset:   32 Size:     4 [unused]
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64
-            //
-            // }
-            //
-            // cbuffer PerOccasionalLayer
-            // {
-            //
-            //   float4 vRenderTargetOffset;        // Offset:    0 Size:    16
-            //   float4 fLayerColor;                // Offset:   16 Size:    16 [unused]
-            //
-            // }
-            //
-            // cbuffer PerLayerManager
-            // {
-            //
-            //   float4x4 mProjection;              // Offset:    0 Size:    64
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // PerLayer                          cbuffer      NA          NA    0        1
-            // PerOccasionalLayer                cbuffer      NA          NA    1        1
-            // PerLayerManager                   cbuffer      NA          NA    2        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // POSITION                 0   xy          0     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float   xyzw
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c1         cb0             0         2  ( FLT, FLT, FLT, FLT)
-            // c3         cb0             3         2  ( FLT, FLT, FLT, FLT)
-            // c5         cb0             6         1  ( FLT, FLT, FLT, FLT)
-            // c6         cb1             0         1  ( FLT, FLT, FLT, FLT)
-            // c7         cb2             0         4  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Runtime generated constant mappings:
-            //
-            // Target Reg                               Constant Description
-            // ---------- --------------------------------------------------
-            // c0                              Vertex Shader position offset
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                vs_2_x
-                dcl_texcoord v0
-                mad oT0.xy, v0, c1.zwzw, c1
-                mad r0.x, v0.y, c2.w, c2.y
-                mul r0, r0.x, c4
-                mad r1.x, v0.x, c2.z, c2.x
-                mad r0, c3, r1.x, r0
-                add r0, r0, c5
-                add r0, r0, -c6
-                mul r1, r0.y, c8
-                mad r1, c7, r0.x, r1
-                mad r1, c9, r0.z, r1
-                mad r0, c10, r0.w, r1
-                mad oPos.xy, r0.w, c0, r0
-                mov oPos.zw, r0
-            
-            // approximately 13 instruction slots used
-            vs_4_0
-            dcl_constantbuffer cb0[7], immediateIndexed
-            dcl_constantbuffer cb1[1], immediateIndexed
-            dcl_constantbuffer cb2[4], immediateIndexed
-            dcl_input v0.xy
-            dcl_output_siv o0.xyzw, position
-            dcl_output o1.xy
-            dcl_temps 2
-            mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx
-            mul r1.xyzw, r0.yyyy, cb0[4].xyzw
-            mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw
-            add r0.xyzw, r0.xyzw, cb0[6].xyzw
-            add r0.xyzw, r0.xyzw, -cb1[0].xyzw
-            mul r1.xyzw, r0.yyyy, cb2[1].xyzw
-            mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw
-            mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw
-            mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw
-            mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
-            ret 
-            // Approximately 11 instruction slots used
-                    
-        };
-        GeometryShader = NULL;
-        PixelShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16 [unused]
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16 [unused]
-            //   float fLayerOpacity;               // Offset:   32 Size:     4
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64 [unused]
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // LayerTextureSamplerPoint          sampler      NA          NA    0        1
-            // tRGB                              texture  float4          2d    0        1
-            // PerLayer                          cbuffer      NA          NA    0        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float       
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Target                0   xyzw        0   TARGET  float   xyzw
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c0         cb0             2         1  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Sampler/Resource to DX9 shader sampler mappings:
-            //
-            // Target Sampler Source Sampler  Source Resource
-            // -------------- --------------- ----------------
-            // s0             s0              t0               
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                ps_2_x
-                dcl t0.xy
-                dcl_2d s0
-                texld r0, t0, s0
-                mul r0, r0, c0.x
-                mov oC0, r0
-            
-            // approximately 3 instruction slots used (1 texture, 2 arithmetic)
-            ps_4_0
-            dcl_constantbuffer cb0[3], immediateIndexed
-            dcl_sampler s0, mode_default
-            dcl_resource_texture2d (float,float,float,float) t0
-            dcl_input_ps linear v1.xy
-            dcl_output o0.xyzw
-            dcl_temps 1
-            sample r0.xyzw, v1.xyxx, t0.xyzw, s0
-            mul o0.xyzw, r0.xyzw, cb0[2].xxxx
-            ret 
-            // Approximately 3 instruction slots used
-                    
-        };
-    }
-
-}
-
-technique10 RenderYCbCrLayer
-{
-    pass P0
-    {
-        RasterizerState = LayerRast;
-        AB_BlendFactor = float4(0, 0, 0, 0);
-        AB_SampleMask = uint(0xffffffff);
-        BlendState = Premul;
-        VertexShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16
-            //   float fLayerOpacity;               // Offset:   32 Size:     4 [unused]
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64
-            //
-            // }
-            //
-            // cbuffer PerOccasionalLayer
-            // {
-            //
-            //   float4 vRenderTargetOffset;        // Offset:    0 Size:    16
-            //   float4 fLayerColor;                // Offset:   16 Size:    16 [unused]
-            //
-            // }
-            //
-            // cbuffer PerLayerManager
-            // {
-            //
-            //   float4x4 mProjection;              // Offset:    0 Size:    64
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // PerLayer                          cbuffer      NA          NA    0        1
-            // PerOccasionalLayer                cbuffer      NA          NA    1        1
-            // PerLayerManager                   cbuffer      NA          NA    2        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // POSITION                 0   xy          0     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float   xyzw
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c1         cb0             0         2  ( FLT, FLT, FLT, FLT)
-            // c3         cb0             3         2  ( FLT, FLT, FLT, FLT)
-            // c5         cb0             6         1  ( FLT, FLT, FLT, FLT)
-            // c6         cb1             0         1  ( FLT, FLT, FLT, FLT)
-            // c7         cb2             0         4  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Runtime generated constant mappings:
-            //
-            // Target Reg                               Constant Description
-            // ---------- --------------------------------------------------
-            // c0                              Vertex Shader position offset
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                vs_2_x
-                dcl_texcoord v0
-                mad oT0.xy, v0, c1.zwzw, c1
-                mad r0.x, v0.y, c2.w, c2.y
-                mul r0, r0.x, c4
-                mad r1.x, v0.x, c2.z, c2.x
-                mad r0, c3, r1.x, r0
-                add r0, r0, c5
-                add r0, r0, -c6
-                mul r1, r0.y, c8
-                mad r1, c7, r0.x, r1
-                mad r1, c9, r0.z, r1
-                mad r0, c10, r0.w, r1
-                mad oPos.xy, r0.w, c0, r0
-                mov oPos.zw, r0
-            
-            // approximately 13 instruction slots used
-            vs_4_0
-            dcl_constantbuffer cb0[7], immediateIndexed
-            dcl_constantbuffer cb1[1], immediateIndexed
-            dcl_constantbuffer cb2[4], immediateIndexed
-            dcl_input v0.xy
-            dcl_output_siv o0.xyzw, position
-            dcl_output o1.xy
-            dcl_temps 2
-            mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx
-            mul r1.xyzw, r0.yyyy, cb0[4].xyzw
-            mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw
-            add r0.xyzw, r0.xyzw, cb0[6].xyzw
-            add r0.xyzw, r0.xyzw, -cb1[0].xyzw
-            mul r1.xyzw, r0.yyyy, cb2[1].xyzw
-            mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw
-            mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw
-            mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw
-            mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
-            ret 
-            // Approximately 11 instruction slots used
-                    
-        };
-        GeometryShader = NULL;
-        PixelShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16 [unused]
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16 [unused]
-            //   float fLayerOpacity;               // Offset:   32 Size:     4
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64 [unused]
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // LayerTextureSamplerLinear         sampler      NA          NA    0        1
-            // tY                                texture  float4          2d    0        1
-            // tCb                               texture  float4          2d    1        1
-            // tCr                               texture  float4          2d    2        1
-            // PerLayer                          cbuffer      NA          NA    0        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float       
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Target                0   xyzw        0   TARGET  float   xyzw
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c0         cb0             2         1  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Sampler/Resource to DX9 shader sampler mappings:
-            //
-            // Target Sampler Source Sampler  Source Resource
-            // -------------- --------------- ----------------
-            // s0             s0              t0               
-            // s1             s0              t1               
-            // s2             s0              t2               
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                ps_2_x
-                def c1, -0.5, -0.0625, 1.59599996, 0.813000023
-                def c2, 1.16400003, 2.01799989, 0.391000003, 1
-                dcl t0.xy
-                dcl_2d s0
-                dcl_2d s1
-                dcl_2d s2
-                texld r0, t0, s0
-                texld r1, t0, s2
-                add r0.y, r1.x, c1.x
-                mul r0.yz, r0.y, c1.xzww
-                add r0.x, r0.x, c1.y
-                mad r0.z, r0.x, c2.x, -r0.z
-                mad r1.x, r0.x, c2.x, r0.y
-                texld r2, t0, s1
-                add r0.y, r2.x, c1.x
-                mad r1.y, r0.y, -c2.z, r0.z
-                mul r0.y, r0.y, c2.y
-                mad r1.z, r0.x, c2.x, r0.y
-                mov r1.w, c2.w
-                mul r0, r1, c0.x
-                mov oC0, r0
-            
-            // approximately 15 instruction slots used (3 texture, 12 arithmetic)
-            ps_4_0
-            dcl_constantbuffer cb0[3], immediateIndexed
-            dcl_sampler s0, mode_default
-            dcl_resource_texture2d (float,float,float,float) t0
-            dcl_resource_texture2d (float,float,float,float) t1
-            dcl_resource_texture2d (float,float,float,float) t2
-            dcl_input_ps linear v1.xy
-            dcl_output o0.xyzw
-            dcl_temps 3
-            sample r0.xyzw, v1.xyxx, t2.xyzw, s0
-            add r0.x, r0.x, l(-0.500000)
-            mul r0.xy, r0.xxxx, l(1.596000, 0.813000, 0.000000, 0.000000)
-            sample r1.xyzw, v1.xyxx, t0.xyzw, s0
-            add r0.z, r1.x, l(-0.062500)
-            mad r0.y, r0.z, l(1.164000), -r0.y
-            mad r1.x, r0.z, l(1.164000), r0.x
-            sample r2.xyzw, v1.xyxx, t1.xyzw, s0
-            add r0.x, r2.x, l(-0.500000)
-            mad r1.y, -r0.x, l(0.391000), r0.y
-            mul r0.x, r0.x, l(2.018000)
-            mad r1.z, r0.z, l(1.164000), r0.x
-            mov r1.w, l(1.000000)
-            mul o0.xyzw, r1.xyzw, cb0[2].xxxx
-            ret 
-            // Approximately 15 instruction slots used
-                    
-        };
-    }
-
-}
-
-technique10 RenderComponentAlphaLayer
-{
-    pass P0
-    {
-        RasterizerState = LayerRast;
-        AB_BlendFactor = float4(0, 0, 0, 0);
-        AB_SampleMask = uint(0xffffffff);
-        BlendState = ComponentAlphaBlend;
-        VertexShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16
-            //   float fLayerOpacity;               // Offset:   32 Size:     4 [unused]
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64
-            //
-            // }
-            //
-            // cbuffer PerOccasionalLayer
-            // {
-            //
-            //   float4 vRenderTargetOffset;        // Offset:    0 Size:    16
-            //   float4 fLayerColor;                // Offset:   16 Size:    16 [unused]
-            //
-            // }
-            //
-            // cbuffer PerLayerManager
-            // {
-            //
-            //   float4x4 mProjection;              // Offset:    0 Size:    64
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // PerLayer                          cbuffer      NA          NA    0        1
-            // PerOccasionalLayer                cbuffer      NA          NA    1        1
-            // PerLayerManager                   cbuffer      NA          NA    2        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // POSITION                 0   xy          0     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float   xyzw
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c1         cb0             0         2  ( FLT, FLT, FLT, FLT)
-            // c3         cb0             3         2  ( FLT, FLT, FLT, FLT)
-            // c5         cb0             6         1  ( FLT, FLT, FLT, FLT)
-            // c6         cb1             0         1  ( FLT, FLT, FLT, FLT)
-            // c7         cb2             0         4  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Runtime generated constant mappings:
-            //
-            // Target Reg                               Constant Description
-            // ---------- --------------------------------------------------
-            // c0                              Vertex Shader position offset
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                vs_2_x
-                dcl_texcoord v0
-                mad oT0.xy, v0, c1.zwzw, c1
-                mad r0.x, v0.y, c2.w, c2.y
-                mul r0, r0.x, c4
-                mad r1.x, v0.x, c2.z, c2.x
-                mad r0, c3, r1.x, r0
-                add r0, r0, c5
-                add r0, r0, -c6
-                mul r1, r0.y, c8
-                mad r1, c7, r0.x, r1
-                mad r1, c9, r0.z, r1
-                mad r0, c10, r0.w, r1
-                mad oPos.xy, r0.w, c0, r0
-                mov oPos.zw, r0
-            
-            // approximately 13 instruction slots used
-            vs_4_0
-            dcl_constantbuffer cb0[7], immediateIndexed
-            dcl_constantbuffer cb1[1], immediateIndexed
-            dcl_constantbuffer cb2[4], immediateIndexed
-            dcl_input v0.xy
-            dcl_output_siv o0.xyzw, position
-            dcl_output o1.xy
-            dcl_temps 2
-            mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx
-            mul r1.xyzw, r0.yyyy, cb0[4].xyzw
-            mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw
-            add r0.xyzw, r0.xyzw, cb0[6].xyzw
-            add r0.xyzw, r0.xyzw, -cb1[0].xyzw
-            mul r1.xyzw, r0.yyyy, cb2[1].xyzw
-            mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw
-            mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw
-            mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw
-            mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
-            ret 
-            // Approximately 11 instruction slots used
-                    
-        };
-        GeometryShader = NULL;
-        PixelShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16 [unused]
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16 [unused]
-            //   float fLayerOpacity;               // Offset:   32 Size:     4
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64 [unused]
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // LayerTextureSamplerLinear         sampler      NA          NA    0        1
-            // tRGB                              texture  float4          2d    0        1
-            // tRGBWhite                         texture  float4          2d    1        1
-            // PerLayer                          cbuffer      NA          NA    0        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float       
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Target                0   xyzw        0   TARGET  float   xyzw
-            // SV_Target                1   xyzw        1   TARGET  float   xyzw
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c0         cb0             2         1  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Sampler/Resource to DX9 shader sampler mappings:
-            //
-            // Target Sampler Source Sampler  Source Resource
-            // -------------- --------------- ----------------
-            // s0             s0              t0               
-            // s1             s0              t1               
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                ps_2_x
-                def c1, 1, 0, 0, 0
-                dcl t0.xy
-                dcl_2d s0
-                dcl_2d s1
-                texld r0, t0, s1
-                texld r1, t0, s0
-                mul r2, r1, c0.x
-                mov oC0, r2
-                add r0, -r0, r1
-                add r0, r0, c1.x
-                mul r0, r0, c0.x
-                mov oC1, r0
-            
-            // approximately 8 instruction slots used (2 texture, 6 arithmetic)
-            ps_4_0
-            dcl_constantbuffer cb0[3], immediateIndexed
-            dcl_sampler s0, mode_default
-            dcl_resource_texture2d (float,float,float,float) t0
-            dcl_resource_texture2d (float,float,float,float) t1
-            dcl_input_ps linear v1.xy
-            dcl_output o0.xyzw
-            dcl_output o1.xyzw
-            dcl_temps 2
-            sample r0.xyzw, v1.xyxx, t0.xyzw, s0
-            mul o0.xyzw, r0.xyzw, cb0[2].xxxx
-            sample r1.xyzw, v1.xyxx, t1.xyzw, s0
-            add r0.xyzw, r0.xyzw, -r1.xyzw
-            add r0.xyzw, r0.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
-            mul o1.xyzw, r0.xyzw, cb0[2].xxxx
-            ret 
-            // Approximately 7 instruction slots used
-                    
-        };
-    }
-
-}
-
-technique10 RenderSolidColorLayer
-{
-    pass P0
-    {
-        RasterizerState = LayerRast;
-        AB_BlendFactor = float4(0, 0, 0, 0);
-        AB_SampleMask = uint(0xffffffff);
-        BlendState = Premul;
-        VertexShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerLayer
-            // {
-            //
-            //   float4 vTextureCoords;             // Offset:    0 Size:    16
-            //   float4 vLayerQuad;                 // Offset:   16 Size:    16
-            //   float fLayerOpacity;               // Offset:   32 Size:     4 [unused]
-            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64
-            //
-            // }
-            //
-            // cbuffer PerOccasionalLayer
-            // {
-            //
-            //   float4 vRenderTargetOffset;        // Offset:    0 Size:    16
-            //   float4 fLayerColor;                // Offset:   16 Size:    16 [unused]
-            //
-            // }
-            //
-            // cbuffer PerLayerManager
-            // {
-            //
-            //   float4x4 mProjection;              // Offset:    0 Size:    64
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // PerLayer                          cbuffer      NA          NA    0        1
-            // PerOccasionalLayer                cbuffer      NA          NA    1        1
-            // PerLayerManager                   cbuffer      NA          NA    2        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // POSITION                 0   xy          0     NONE  float   xy  
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float   xyzw
-            // TEXCOORD                 0   xy          1     NONE  float   xy  
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c1         cb0             0         2  ( FLT, FLT, FLT, FLT)
-            // c3         cb0             3         2  ( FLT, FLT, FLT, FLT)
-            // c5         cb0             6         1  ( FLT, FLT, FLT, FLT)
-            // c6         cb1             0         1  ( FLT, FLT, FLT, FLT)
-            // c7         cb2             0         4  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Runtime generated constant mappings:
-            //
-            // Target Reg                               Constant Description
-            // ---------- --------------------------------------------------
-            // c0                              Vertex Shader position offset
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                vs_2_x
-                dcl_texcoord v0
-                mad oT0.xy, v0, c1.zwzw, c1
-                mad r0.x, v0.y, c2.w, c2.y
-                mul r0, r0.x, c4
-                mad r1.x, v0.x, c2.z, c2.x
-                mad r0, c3, r1.x, r0
-                add r0, r0, c5
-                add r0, r0, -c6
-                mul r1, r0.y, c8
-                mad r1, c7, r0.x, r1
-                mad r1, c9, r0.z, r1
-                mad r0, c10, r0.w, r1
-                mad oPos.xy, r0.w, c0, r0
-                mov oPos.zw, r0
-            
-            // approximately 13 instruction slots used
-            vs_4_0
-            dcl_constantbuffer cb0[7], immediateIndexed
-            dcl_constantbuffer cb1[1], immediateIndexed
-            dcl_constantbuffer cb2[4], immediateIndexed
-            dcl_input v0.xy
-            dcl_output_siv o0.xyzw, position
-            dcl_output o1.xy
-            dcl_temps 2
-            mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx
-            mul r1.xyzw, r0.yyyy, cb0[4].xyzw
-            mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw
-            add r0.xyzw, r0.xyzw, cb0[6].xyzw
-            add r0.xyzw, r0.xyzw, -cb1[0].xyzw
-            mul r1.xyzw, r0.yyyy, cb2[1].xyzw
-            mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw
-            mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw
-            mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw
-            mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
-            ret 
-            // Approximately 11 instruction slots used
-                    
-        };
-        GeometryShader = NULL;
-        PixelShader = asm {
-            //
-            // Generated by Microsoft (R) HLSL Shader Compiler 9.27.952.3022
-            //
-            //
-            // Buffer Definitions: 
-            //
-            // cbuffer PerOccasionalLayer
-            // {
-            //
-            //   float4 vRenderTargetOffset;        // Offset:    0 Size:    16 [unused]
-            //   float4 fLayerColor;                // Offset:   16 Size:    16
-            //
-            // }
-            //
-            //
-            // Resource Bindings:
-            //
-            // Name                                 Type  Format         Dim Slot Elements
-            // ------------------------------ ---------- ------- ----------- ---- --------
-            // PerOccasionalLayer                cbuffer      NA          NA    0        1
-            //
-            //
-            //
-            // Input signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Position              0   xyzw        0      POS  float       
-            // TEXCOORD                 0   xy          1     NONE  float       
-            //
-            //
-            // Output signature:
-            //
-            // Name                 Index   Mask Register SysValue Format   Used
-            // -------------------- ----- ------ -------- -------- ------ ------
-            // SV_Target                0   xyzw        0   TARGET  float   xyzw
-            //
-            //
-            // Constant buffer to DX9 shader constant mappings:
-            //
-            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
-            // ---------- ------- --------- --------- ----------------------
-            // c0         cb0             1         1  ( FLT, FLT, FLT, FLT)
-            //
-            //
-            // Level9 shader bytecode:
-            //
-                ps_2_x
-                mov oC0, c0
-            
-            // approximately 1 instruction slot used
-            ps_4_0
-            dcl_constantbuffer cb0[2], immediateIndexed
-            dcl_output o0.xyzw
-            mov o0.xyzw, cb0[1].xyzw
-            ret 
-            // Approximately 2 instruction slots used
-                    
-        };
-    }
-
-}
-
-#endif
-
-const BYTE g_main[] =
-{
-     68,  88,  66,  67, 105, 120, 
-    157,  39, 125,  94,  29,  78, 
-     15, 169,  65, 191,  70, 115, 
-    164,  88,   1,   0,   0,   0, 
-    231, 121,   0,   0,   1,   0, 
-      0,   0,  36,   0,   0,   0, 
-     70,  88,  49,  48, 187, 121, 
-      0,   0,   1,  16, 255, 254, 
-      3,   0,   0,   0,   7,   0, 
-      0,   0,  11,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      9,   0,   0,   0, 119, 112, 
-      0,   0,   0,   0,   0,   0, 
-      5,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  18,   0, 
-      0,   0,  18,   0,   0,   0, 
-      0,   0,   0,   0,  80, 101, 
-    114,  76,  97, 121, 101, 114, 
-      0, 102, 108, 111,  97, 116, 
-     52,   0,  13,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,  16,   0,   0,   0, 
-     16,   0,   0,   0,  16,   0, 
-      0,   0,  10,  33,   0,   0, 
-    118,  84, 101, 120, 116, 117, 
-    114, 101,  67, 111, 111, 114, 
-    100, 115,   0, 118,  76,  97, 
-    121, 101, 114,  81, 117,  97, 
-    100,   0, 102, 108, 111,  97, 
-    116,   0,  74,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   4,   0,   0,   0, 
-     16,   0,   0,   0,   4,   0, 
-      0,   0,   9,   9,   0,   0, 
-    102,  76,  97, 121, 101, 114, 
-     79, 112,  97,  99, 105, 116, 
-    121,   0, 102, 108, 111,  97, 
-    116,  52, 120,  52,   0, 122, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,  64, 
-      0,   0,   0,  64,   0,   0, 
-      0,  64,   0,   0,   0,  11, 
-    100,   0,   0, 109,  76,  97, 
-    121, 101, 114,  84, 114,  97, 
-    110, 115, 102, 111, 114, 109, 
-      0,  80, 101, 114,  79,  99, 
-     99,  97, 115, 105, 111, 110, 
-     97, 108,  76,  97, 121, 101, 
-    114,   0, 118,  82, 101, 110, 
-    100, 101, 114,  84,  97, 114, 
-    103, 101, 116,  79, 102, 102, 
-    115, 101, 116,   0, 102,  76, 
-     97, 121, 101, 114,  67, 111, 
-    108, 111, 114,   0,  80, 101, 
-    114,  76,  97, 121, 101, 114, 
-     77,  97, 110,  97, 103, 101, 
-    114,   0, 109,  80, 114, 111, 
-    106, 101,  99, 116, 105, 111, 
-    110,   0,  66, 108, 101, 110, 
-    100,  83, 116,  97, 116, 101, 
-      0, 254,   0,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0,  80, 
-    114, 101, 109, 117, 108,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   2,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   6,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   2,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   6,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   3,   0, 
-      0,   0,  15,   0,   0,   0, 
-     78, 111, 110,  80, 114, 101, 
-    109, 117, 108,   0,   1,   0, 
-      0,   0,   2,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   2,   0,   0,   0, 
-      1,   0,   0,   0,   1,   0, 
-      0,   0,   2,   0,   0,   0, 
-      5,   0,   0,   0,   1,   0, 
-      0,   0,   2,   0,   0,   0, 
-      6,   0,   0,   0,   1,   0, 
-      0,   0,   2,   0,   0,   0, 
-      1,   0,   0,   0,   1,   0, 
-      0,   0,   2,   0,   0,   0, 
-      2,   0,   0,   0,   1,   0, 
-      0,   0,   2,   0,   0,   0, 
-      6,   0,   0,   0,   1,   0, 
-      0,   0,   2,   0,   0,   0, 
-      1,   0,   0,   0,   1,   0, 
-      0,   0,   3,   0,   0,   0, 
-     15,   0,   0,   0,  67, 111, 
-    109, 112, 111, 110, 101, 110, 
-    116,  65, 108, 112, 104,  97, 
-     66, 108, 101, 110, 100,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   2,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,  17,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   2,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   3,   0, 
-      0,   0,  15,   0,   0,   0, 
-     82,  97, 115, 116, 101, 114, 
-    105, 122, 101, 114,  83, 116, 
-     97, 116, 101,   0, 142,   2, 
-      0,   0,   2,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   4,   0, 
-      0,   0,  76,  97, 121, 101, 
-    114,  82,  97, 115, 116,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-     84, 101, 120, 116, 117, 114, 
-    101,  50,  68,   0, 220,   2, 
-      0,   0,   2,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  12,   0, 
-      0,   0, 116,  82,  71,  66, 
-      0, 116,  89,   0, 116,  67, 
-     98,   0, 116,  67, 114,   0, 
-    116,  82,  71,  66,  87, 104, 
-    105, 116, 101,   0,  83,  97, 
-    109, 112, 108, 101, 114,  83, 
-    116,  97, 116, 101,   0,  28, 
-      3,   0,   0,   2,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,  21, 
-      0,   0,   0,  76,  97, 121, 
-    101, 114,  84, 101, 120, 116, 
-    117, 114, 101,  83,  97, 109, 
-    112, 108, 101, 114,  76, 105, 
-    110, 101,  97, 114,   0,   1, 
-      0,   0,   0,   2,   0,   0, 
-      0,  21,   0,   0,   0,   1, 
-      0,   0,   0,   2,   0,   0, 
-      0,   3,   0,   0,   0,   1, 
-      0,   0,   0,   2,   0,   0, 
-      0,   3,   0,   0,   0,  76, 
-     97, 121, 101, 114,  84, 101, 
-    120, 116, 117, 114, 101,  83, 
-     97, 109, 112, 108, 101, 114, 
-     80, 111, 105, 110, 116,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   3,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   3,   0,   0,   0, 
-     82, 101, 110, 100, 101, 114, 
-     82,  71,  66,  76,  97, 121, 
-    101, 114,  80, 114, 101, 109, 
-    117, 108,   0,  80,  48,   0, 
-      4,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   3,   0, 
-      0,   0, 255, 255, 255, 255, 
-     24,   7,   0,   0,  68,  88, 
-     66,  67, 254, 249,  65, 252, 
-     64,  46, 192, 119,  73, 197, 
-    161, 234,  24,   1, 194, 131, 
-      1,   0,   0,   0,  24,   7, 
-      0,   0,   6,   0,   0,   0, 
-     56,   0,   0,   0, 164,   1, 
-      0,   0, 148,   3,   0,   0, 
-     16,   4,   0,   0, 140,   6, 
-      0,   0, 192,   6,   0,   0, 
-     65, 111, 110,  57, 100,   1, 
-      0,   0, 100,   1,   0,   0, 
-      0,   2, 254, 255,   0,   1, 
-      0,   0, 100,   0,   0,   0, 
-      5,   0,  36,   0,   0,   0, 
-     96,   0,   0,   0,  96,   0, 
-      0,   0,  36,   0,   1,   0, 
-     96,   0,   0,   0,   0,   0, 
-      2,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   3,   0, 
-      2,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,   6,   0, 
-      1,   0,   5,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   6,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-      4,   0,   7,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   2, 254, 255,  31,   0, 
-      0,   2,   5,   0,   0, 128, 
-      0,   0,  15, 144,   4,   0, 
-      0,   4,   0,   0,   3, 224, 
-      0,   0, 228, 144,   1,   0, 
-    238, 160,   1,   0, 228, 160, 
-      4,   0,   0,   4,   0,   0, 
-      1, 128,   0,   0,  85, 144, 
-      2,   0, 255, 160,   2,   0, 
-     85, 160,   5,   0,   0,   3, 
-      0,   0,  15, 128,   0,   0, 
-      0, 128,   4,   0, 228, 160, 
-      4,   0,   0,   4,   1,   0, 
-      1, 128,   0,   0,   0, 144, 
-      2,   0, 170, 160,   2,   0, 
-      0, 160,   4,   0,   0,   4, 
-      0,   0,  15, 128,   3,   0, 
-    228, 160,   1,   0,   0, 128, 
-      0,   0, 228, 128,   2,   0, 
-      0,   3,   0,   0,  15, 128, 
-      0,   0, 228, 128,   5,   0, 
-    228, 160,   2,   0,   0,   3, 
-      0,   0,  15, 128,   0,   0, 
-    228, 128,   6,   0, 228, 161, 
-      5,   0,   0,   3,   1,   0, 
-     15, 128,   0,   0,  85, 128, 
-      8,   0, 228, 160,   4,   0, 
-      0,   4,   1,   0,  15, 128, 
-      7,   0, 228, 160,   0,   0, 
-      0, 128,   1,   0, 228, 128, 
-      4,   0,   0,   4,   1,   0, 
-     15, 128,   9,   0, 228, 160, 
-      0,   0, 170, 128,   1,   0, 
-    228, 128,   4,   0,   0,   4, 
-      0,   0,  15, 128,  10,   0, 
-    228, 160,   0,   0, 255, 128, 
-      1,   0, 228, 128,   4,   0, 
-      0,   4,   0,   0,   3, 192, 
-      0,   0, 255, 128,   0,   0, 
-    228, 160,   0,   0, 228, 128, 
-      1,   0,   0,   2,   0,   0, 
-     12, 192,   0,   0, 228, 128, 
-    255, 255,   0,   0,  83,  72, 
-     68,  82, 232,   1,   0,   0, 
-     64,   0,   1,   0, 122,   0, 
-      0,   0,  89,   0,   0,   4, 
-     70, 142,  32,   0,   0,   0, 
-      0,   0,   7,   0,   0,   0, 
-     89,   0,   0,   4,  70, 142, 
-     32,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,  89,   0, 
-      0,   4,  70, 142,  32,   0, 
-      2,   0,   0,   0,   4,   0, 
-      0,   0,  95,   0,   0,   3, 
-     50,  16,  16,   0,   0,   0, 
-      0,   0, 103,   0,   0,   4, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-    101,   0,   0,   3,  50,  32, 
-     16,   0,   1,   0,   0,   0, 
-    104,   0,   0,   2,   2,   0, 
-      0,   0,  50,   0,   0,  11, 
-     50,   0,  16,   0,   0,   0, 
-      0,   0,  70,  16,  16,   0, 
-      0,   0,   0,   0, 230, 138, 
-     32,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,  70, 128, 
-     32,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,  56,   0, 
-      0,   8, 242,   0,  16,   0, 
-      1,   0,   0,   0,  86,   5, 
-     16,   0,   0,   0,   0,   0, 
-     70, 142,  32,   0,   0,   0, 
-      0,   0,   4,   0,   0,   0, 
-     50,   0,   0,  10, 242,   0, 
-     16,   0,   0,   0,   0,   0, 
-     70, 142,  32,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      6,   0,  16,   0,   0,   0, 
-      0,   0,  70,  14,  16,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   8, 242,   0,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
-     16,   0,   0,   0,   0,   0, 
-     70, 142,  32,   0,   0,   0, 
-      0,   0,   6,   0,   0,   0, 
-      0,   0,   0,   9, 242,   0, 
-     16,   0,   0,   0,   0,   0, 
-     70,  14,  16,   0,   0,   0, 
-      0,   0,  70, 142,  32, 128, 
-     65,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-     56,   0,   0,   8, 242,   0, 
-     16,   0,   1,   0,   0,   0, 
-     86,   5,  16,   0,   0,   0, 
-      0,   0,  70, 142,  32,   0, 
-      2,   0,   0,   0,   1,   0, 
-      0,   0,  50,   0,   0,  10, 
-    242,   0,  16,   0,   1,   0, 
-      0,   0,  70, 142,  32,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,   0,   6,   0,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
-     16,   0,   1,   0,   0,   0, 
-     50,   0,   0,  10, 242,   0, 
-     16,   0,   1,   0,   0,   0, 
-     70, 142,  32,   0,   2,   0, 
-      0,   0,   2,   0,   0,   0, 
-    166,  10,  16,   0,   0,   0, 
-      0,   0,  70,  14,  16,   0, 
-      1,   0,   0,   0,  50,   0, 
-      0,  10, 242,  32,  16,   0, 
-      0,   0,   0,   0,  70, 142, 
-     32,   0,   2,   0,   0,   0, 
-      3,   0,   0,   0, 246,  15, 
-     16,   0,   0,   0,   0,   0, 
-     70,  14,  16,   0,   1,   0, 
-      0,   0,  50,   0,   0,  11, 
-     50,  32,  16,   0,   1,   0, 
-      0,   0,  70,  16,  16,   0, 
-      0,   0,   0,   0, 230, 138, 
-     32,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  70, 128, 
-     32,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  62,   0, 
-      0,   1,  83,  84,  65,  84, 
-    116,   0,   0,   0,  11,   0, 
-      0,   0,   2,   0,   0,   0, 
-      0,   0,   0,   0,   3,   0, 
-      0,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     82,  68,  69,  70, 116,   2, 
-      0,   0,   3,   0,   0,   0, 
-    168,   0,   0,   0,   3,   0, 
-      0,   0,  28,   0,   0,   0, 
-      0,   4, 254, 255,   0,   1, 
-      0,   0,  64,   2,   0,   0, 
-    124,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0, 133,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0, 152,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      2,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-     80, 101, 114,  76,  97, 121, 
-    101, 114,   0,  80, 101, 114, 
-     79,  99,  99,  97, 115, 105, 
-    111, 110,  97, 108,  76,  97, 
-    121, 101, 114,   0,  80, 101, 
-    114,  76,  97, 121, 101, 114, 
-     77,  97, 110,  97, 103, 101, 
-    114,   0, 124,   0,   0,   0, 
-      4,   0,   0,   0, 240,   0, 
-      0,   0, 112,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 133,   0,   0,   0, 
-      2,   0,   0,   0, 188,   1, 
-      0,   0,  32,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 152,   0,   0,   0, 
-      1,   0,   0,   0,  28,   2, 
-      0,   0,  64,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  80,   1,   0,   0, 
-      0,   0,   0,   0,  16,   0, 
-      0,   0,   2,   0,   0,   0, 
-     96,   1,   0,   0,   0,   0, 
-      0,   0, 112,   1,   0,   0, 
-     16,   0,   0,   0,  16,   0, 
-      0,   0,   2,   0,   0,   0, 
-     96,   1,   0,   0,   0,   0, 
-      0,   0, 123,   1,   0,   0, 
-     32,   0,   0,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-    140,   1,   0,   0,   0,   0, 
-      0,   0, 156,   1,   0,   0, 
-     48,   0,   0,   0,  64,   0, 
-      0,   0,   2,   0,   0,   0, 
-    172,   1,   0,   0,   0,   0, 
-      0,   0, 118,  84, 101, 120, 
-    116, 117, 114, 101,  67, 111, 
-    111, 114, 100, 115,   0, 171, 
-      1,   0,   3,   0,   1,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 118,  76, 
-     97, 121, 101, 114,  81, 117, 
-     97, 100,   0, 102,  76,  97, 
-    121, 101, 114,  79, 112,  97, 
-     99, 105, 116, 121,   0, 171, 
-    171, 171,   0,   0,   3,   0, 
-      1,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    109,  76,  97, 121, 101, 114, 
-     84, 114,  97, 110, 115, 102, 
-    111, 114, 109,   0,   3,   0, 
-      3,   0,   4,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 236,   1,   0,   0, 
-      0,   0,   0,   0,  16,   0, 
-      0,   0,   2,   0,   0,   0, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0,  16,   2,   0,   0, 
-     16,   0,   0,   0,  16,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0, 118,  82, 101, 110, 
-    100, 101, 114,  84,  97, 114, 
-    103, 101, 116,  79, 102, 102, 
-    115, 101, 116,   0,   1,   0, 
-      3,   0,   1,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 102,  76,  97, 121, 
-    101, 114,  67, 111, 108, 111, 
-    114,   0,  52,   2,   0,   0, 
-      0,   0,   0,   0,  64,   0, 
-      0,   0,   2,   0,   0,   0, 
-    172,   1,   0,   0,   0,   0, 
-      0,   0, 109,  80, 114, 111, 
-    106, 101,  99, 116, 105, 111, 
-    110,   0,  77, 105,  99, 114, 
-    111, 115, 111, 102, 116,  32, 
-     40,  82,  41,  32,  72,  76, 
-     83,  76,  32,  83, 104,  97, 
-    100, 101, 114,  32,  67, 111, 
-    109, 112, 105, 108, 101, 114, 
-     32,  57,  46,  50,  55,  46, 
-     57,  53,  50,  46,  51,  48, 
-     50,  50,   0, 171, 171, 171, 
-     73,  83,  71,  78,  44,   0, 
-      0,   0,   1,   0,   0,   0, 
-      8,   0,   0,   0,  32,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   3,   0,   0,  80,  79, 
-     83,  73,  84,  73,  79,  78, 
-      0, 171, 171, 171,  79,  83, 
-     71,  78,  80,   0,   0,   0, 
-      2,   0,   0,   0,   8,   0, 
-      0,   0,  56,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,  15,   0, 
-      0,   0,  68,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      1,   0,   0,   0,   3,  12, 
-      0,   0,  83,  86,  95,  80, 
-    111, 115, 105, 116, 105, 111, 
-    110,   0,  84,  69,  88,  67, 
-     79,  79,  82,  68,   0, 171, 
-    171, 171,   8,   4,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   2,   0,   0,   0, 
-      0,   0,   0,   0,  84,   4, 
-      0,   0,  68,  88,  66,  67, 
-    170, 213,  87, 132, 192, 216, 
-     64,  34, 189,  70,  85, 214, 
-    198,   9, 122, 139,   1,   0, 
-      0,   0,  84,   4,   0,   0, 
-      6,   0,   0,   0,  56,   0, 
-      0,   0, 204,   0,   0,   0, 
-    136,   1,   0,   0,   4,   2, 
-      0,   0, 200,   3,   0,   0, 
-     32,   4,   0,   0,  65, 111, 
-    110,  57, 140,   0,   0,   0, 
-    140,   0,   0,   0,   0,   2, 
-    255, 255,  88,   0,   0,   0, 
-     52,   0,   0,   0,   1,   0, 
-     40,   0,   0,   0,  52,   0, 
-      0,   0,  52,   0,   1,   0, 
-     36,   0,   0,   0,  52,   0, 
-      0,   0,   0,   0,   0,   0, 
-      2,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   1,   2, 
-    255, 255,  31,   0,   0,   2, 
-      0,   0,   0, 128,   0,   0, 
-      3, 176,  31,   0,   0,   2, 
-      0,   0,   0, 144,   0,   8, 
-     15, 160,  66,   0,   0,   3, 
-      0,   0,  15, 128,   0,   0, 
-    228, 176,   0,   8, 228, 160, 
-      5,   0,   0,   3,   0,   0, 
-      7, 128,   0,   0, 228, 128, 
-      0,   0,   0, 160,   1,   0, 
-      0,   2,   0,   0,   8, 128, 
-      0,   0,   0, 160,   1,   0, 
-      0,   2,   0,   8,  15, 128, 
-      0,   0, 228, 128, 255, 255, 
-      0,   0,  83,  72,  68,  82, 
-    180,   0,   0,   0,  64,   0, 
-      0,   0,  45,   0,   0,   0, 
-     89,   0,   0,   4,  70, 142, 
-     32,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,  90,   0, 
-      0,   3,   0,  96,  16,   0, 
-      0,   0,   0,   0,  88,  24, 
-      0,   4,   0, 112,  16,   0, 
-      0,   0,   0,   0,  85,  85, 
-      0,   0,  98,  16,   0,   3, 
-     50,  16,  16,   0,   1,   0, 
-      0,   0, 101,   0,   0,   3, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0, 104,   0,   0,   2, 
-      1,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      0,   0,   0,   0,  70,  16, 
-     16,   0,   1,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  56,   0, 
-      0,   8, 114,  32,  16,   0, 
-      0,   0,   0,   0,  70,   2, 
-     16,   0,   0,   0,   0,   0, 
-      6, 128,  32,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-     54,   0,   0,   6, 130,  32, 
-     16,   0,   0,   0,   0,   0, 
-     10, 128,  32,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-     62,   0,   0,   1,  83,  84, 
-     65,  84, 116,   0,   0,   0, 
-      4,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      2,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  82,  68,  69,  70, 
-    188,   1,   0,   0,   1,   0, 
-      0,   0, 164,   0,   0,   0, 
-      3,   0,   0,   0,  28,   0, 
-      0,   0,   0,   4, 255, 255, 
-      0,   1,   0,   0, 136,   1, 
-      0,   0, 124,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0, 150,   0, 
-      0,   0,   2,   0,   0,   0, 
-      5,   0,   0,   0,   4,   0, 
-      0,   0, 255, 255, 255, 255, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,  12,   0,   0,   0, 
-    155,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,  76,  97, 121, 101, 
-    114,  84, 101, 120, 116, 117, 
-    114, 101,  83,  97, 109, 112, 
-    108, 101, 114,  76, 105, 110, 
-    101,  97, 114,   0, 116,  82, 
-     71,  66,   0,  80, 101, 114, 
-     76,  97, 121, 101, 114,   0, 
-    155,   0,   0,   0,   4,   0, 
-      0,   0, 188,   0,   0,   0, 
-    112,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     28,   1,   0,   0,   0,   0, 
-      0,   0,  16,   0,   0,   0, 
-      0,   0,   0,   0,  44,   1, 
-      0,   0,   0,   0,   0,   0, 
-     60,   1,   0,   0,  16,   0, 
-      0,   0,  16,   0,   0,   0, 
-      0,   0,   0,   0,  44,   1, 
-      0,   0,   0,   0,   0,   0, 
-     71,   1,   0,   0,  32,   0, 
-      0,   0,   4,   0,   0,   0, 
-      2,   0,   0,   0,  88,   1, 
-      0,   0,   0,   0,   0,   0, 
-    104,   1,   0,   0,  48,   0, 
-      0,   0,  64,   0,   0,   0, 
-      0,   0,   0,   0, 120,   1, 
-      0,   0,   0,   0,   0,   0, 
-    118,  84, 101, 120, 116, 117, 
-    114, 101,  67, 111, 111, 114, 
-    100, 115,   0, 171,   1,   0, 
-      3,   0,   1,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 118,  76,  97, 121, 
-    101, 114,  81, 117,  97, 100, 
-      0, 102,  76,  97, 121, 101, 
-    114,  79, 112,  97,  99, 105, 
-    116, 121,   0, 171, 171, 171, 
-      0,   0,   3,   0,   1,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 109,  76, 
-     97, 121, 101, 114,  84, 114, 
-     97, 110, 115, 102, 111, 114, 
-    109,   0,   3,   0,   3,   0, 
-      4,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     77, 105,  99, 114, 111, 115, 
-    111, 102, 116,  32,  40,  82, 
-     41,  32,  72,  76,  83,  76, 
-     32,  83, 104,  97, 100, 101, 
-    114,  32,  67, 111, 109, 112, 
-    105, 108, 101, 114,  32,  57, 
-     46,  50,  55,  46,  57,  53, 
-     50,  46,  51,  48,  50,  50, 
-      0, 171, 171, 171,  73,  83, 
-     71,  78,  80,   0,   0,   0, 
-      2,   0,   0,   0,   8,   0, 
-      0,   0,  56,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,  15,   0, 
-      0,   0,  68,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      1,   0,   0,   0,   3,   3, 
-      0,   0,  83,  86,  95,  80, 
-    111, 115, 105, 116, 105, 111, 
-    110,   0,  84,  69,  88,  67, 
-     79,  79,  82,  68,   0, 171, 
-    171, 171,  79,  83,  71,  78, 
-     44,   0,   0,   0,   1,   0, 
-      0,   0,   8,   0,   0,   0, 
-     32,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,  15,   0,   0,   0, 
-     83,  86,  95,  84,  97, 114, 
-    103, 101, 116,   0, 171, 171, 
-     56,  11,   0,   0,   0,   0, 
-      0,   0,  82, 101, 110, 100, 
-    101, 114,  82,  71,  66,  76, 
-     97, 121, 101, 114,  80, 114, 
-    101, 109, 117, 108,  80, 111, 
-    105, 110, 116,   0,   4,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   3,   0,   0,   0, 
-    255, 255, 255, 255,  24,   7, 
-      0,   0,  68,  88,  66,  67, 
-    254, 249,  65, 252,  64,  46, 
-    192, 119,  73, 197, 161, 234, 
-     24,   1, 194, 131,   1,   0, 
-      0,   0,  24,   7,   0,   0, 
-      6,   0,   0,   0,  56,   0, 
-      0,   0, 164,   1,   0,   0, 
-    148,   3,   0,   0,  16,   4, 
-      0,   0, 140,   6,   0,   0, 
-    192,   6,   0,   0,  65, 111, 
-    110,  57, 100,   1,   0,   0, 
-    100,   1,   0,   0,   0,   2, 
-    254, 255,   0,   1,   0,   0, 
-    100,   0,   0,   0,   5,   0, 
-     36,   0,   0,   0,  96,   0, 
-      0,   0,  96,   0,   0,   0, 
-     36,   0,   1,   0,  96,   0, 
-      0,   0,   0,   0,   2,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   2,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,   6,   0,   1,   0, 
-      5,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   1,   0, 
-      6,   0,   0,   0,   0,   0, 
-      2,   0,   0,   0,   4,   0, 
-      7,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   2, 
-    254, 255,  31,   0,   0,   2, 
-      5,   0,   0, 128,   0,   0, 
-     15, 144,   4,   0,   0,   4, 
-      0,   0,   3, 224,   0,   0, 
-    228, 144,   1,   0, 238, 160, 
-      1,   0, 228, 160,   4,   0, 
-      0,   4,   0,   0,   1, 128, 
-      0,   0,  85, 144,   2,   0, 
-    255, 160,   2,   0,  85, 160, 
-      5,   0,   0,   3,   0,   0, 
-     15, 128,   0,   0,   0, 128, 
-      4,   0, 228, 160,   4,   0, 
-      0,   4,   1,   0,   1, 128, 
-      0,   0,   0, 144,   2,   0, 
-    170, 160,   2,   0,   0, 160, 
-      4,   0,   0,   4,   0,   0, 
-     15, 128,   3,   0, 228, 160, 
-      1,   0,   0, 128,   0,   0, 
-    228, 128,   2,   0,   0,   3, 
-      0,   0,  15, 128,   0,   0, 
-    228, 128,   5,   0, 228, 160, 
-      2,   0,   0,   3,   0,   0, 
-     15, 128,   0,   0, 228, 128, 
-      6,   0, 228, 161,   5,   0, 
-      0,   3,   1,   0,  15, 128, 
-      0,   0,  85, 128,   8,   0, 
-    228, 160,   4,   0,   0,   4, 
-      1,   0,  15, 128,   7,   0, 
-    228, 160,   0,   0,   0, 128, 
-      1,   0, 228, 128,   4,   0, 
-      0,   4,   1,   0,  15, 128, 
-      9,   0, 228, 160,   0,   0, 
-    170, 128,   1,   0, 228, 128, 
-      4,   0,   0,   4,   0,   0, 
-     15, 128,  10,   0, 228, 160, 
-      0,   0, 255, 128,   1,   0, 
-    228, 128,   4,   0,   0,   4, 
-      0,   0,   3, 192,   0,   0, 
-    255, 128,   0,   0, 228, 160, 
-      0,   0, 228, 128,   1,   0, 
-      0,   2,   0,   0,  12, 192, 
-      0,   0, 228, 128, 255, 255, 
-      0,   0,  83,  72,  68,  82, 
-    232,   1,   0,   0,  64,   0, 
-      1,   0, 122,   0,   0,   0, 
-     89,   0,   0,   4,  70, 142, 
-     32,   0,   0,   0,   0,   0, 
-      7,   0,   0,   0,  89,   0, 
-      0,   4,  70, 142,  32,   0, 
-      1,   0,   0,   0,   1,   0, 
-      0,   0,  89,   0,   0,   4, 
-     70, 142,  32,   0,   2,   0, 
-      0,   0,   4,   0,   0,   0, 
-     95,   0,   0,   3,  50,  16, 
-     16,   0,   0,   0,   0,   0, 
-    103,   0,   0,   4, 242,  32, 
-     16,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0, 101,   0, 
-      0,   3,  50,  32,  16,   0, 
-      1,   0,   0,   0, 104,   0, 
-      0,   2,   2,   0,   0,   0, 
-     50,   0,   0,  11,  50,   0, 
-     16,   0,   0,   0,   0,   0, 
-     70,  16,  16,   0,   0,   0, 
-      0,   0, 230, 138,  32,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,  70, 128,  32,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,  56,   0,   0,   8, 
-    242,   0,  16,   0,   1,   0, 
-      0,   0,  86,   5,  16,   0, 
-      0,   0,   0,   0,  70, 142, 
-     32,   0,   0,   0,   0,   0, 
-      4,   0,   0,   0,  50,   0, 
-      0,  10, 242,   0,  16,   0, 
-      0,   0,   0,   0,  70, 142, 
-     32,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   6,   0, 
-     16,   0,   0,   0,   0,   0, 
-     70,  14,  16,   0,   1,   0, 
-      0,   0,   0,   0,   0,   8, 
-    242,   0,  16,   0,   0,   0, 
-      0,   0,  70,  14,  16,   0, 
-      0,   0,   0,   0,  70, 142, 
-     32,   0,   0,   0,   0,   0, 
-      6,   0,   0,   0,   0,   0, 
-      0,   9, 242,   0,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
-     16,   0,   0,   0,   0,   0, 
-     70, 142,  32, 128,  65,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,  56,   0, 
-      0,   8, 242,   0,  16,   0, 
-      1,   0,   0,   0,  86,   5, 
-     16,   0,   0,   0,   0,   0, 
-     70, 142,  32,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-     50,   0,   0,  10, 242,   0, 
-     16,   0,   1,   0,   0,   0, 
-     70, 142,  32,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-      6,   0,  16,   0,   0,   0, 
-      0,   0,  70,  14,  16,   0, 
-      1,   0,   0,   0,  50,   0, 
-      0,  10, 242,   0,  16,   0, 
-      1,   0,   0,   0,  70, 142, 
-     32,   0,   2,   0,   0,   0, 
-      2,   0,   0,   0, 166,  10, 
-     16,   0,   0,   0,   0,   0, 
-     70,  14,  16,   0,   1,   0, 
-      0,   0,  50,   0,   0,  10, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0,  70, 142,  32,   0, 
-      2,   0,   0,   0,   3,   0, 
-      0,   0, 246,  15,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
-     16,   0,   1,   0,   0,   0, 
-     50,   0,   0,  11,  50,  32, 
-     16,   0,   1,   0,   0,   0, 
-     70,  16,  16,   0,   0,   0, 
-      0,   0, 230, 138,  32,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  70, 128,  32,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  62,   0,   0,   1, 
-     83,  84,  65,  84, 116,   0, 
-      0,   0,  11,   0,   0,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  82,  68, 
-     69,  70, 116,   2,   0,   0, 
-      3,   0,   0,   0, 168,   0, 
-      0,   0,   3,   0,   0,   0, 
-     28,   0,   0,   0,   0,   4, 
-    254, 255,   0,   1,   0,   0, 
-     64,   2,   0,   0, 124,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-    133,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0, 152,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,  80, 101, 
-    114,  76,  97, 121, 101, 114, 
-      0,  80, 101, 114,  79,  99, 
-     99,  97, 115, 105, 111, 110, 
-     97, 108,  76,  97, 121, 101, 
-    114,   0,  80, 101, 114,  76, 
-     97, 121, 101, 114,  77,  97, 
-    110,  97, 103, 101, 114,   0, 
-    124,   0,   0,   0,   4,   0, 
-      0,   0, 240,   0,   0,   0, 
-    112,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    133,   0,   0,   0,   2,   0, 
-      0,   0, 188,   1,   0,   0, 
-     32,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    152,   0,   0,   0,   1,   0, 
-      0,   0,  28,   2,   0,   0, 
-     64,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     80,   1,   0,   0,   0,   0, 
-      0,   0,  16,   0,   0,   0, 
-      2,   0,   0,   0,  96,   1, 
-      0,   0,   0,   0,   0,   0, 
-    112,   1,   0,   0,  16,   0, 
-      0,   0,  16,   0,   0,   0, 
-      2,   0,   0,   0,  96,   1, 
-      0,   0,   0,   0,   0,   0, 
-    123,   1,   0,   0,  32,   0, 
-      0,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0, 140,   1, 
-      0,   0,   0,   0,   0,   0, 
-    156,   1,   0,   0,  48,   0, 
-      0,   0,  64,   0,   0,   0, 
-      2,   0,   0,   0, 172,   1, 
-      0,   0,   0,   0,   0,   0, 
-    118,  84, 101, 120, 116, 117, 
-    114, 101,  67, 111, 111, 114, 
-    100, 115,   0, 171,   1,   0, 
-      3,   0,   1,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 118,  76,  97, 121, 
-    101, 114,  81, 117,  97, 100, 
-      0, 102,  76,  97, 121, 101, 
-    114,  79, 112,  97,  99, 105, 
-    116, 121,   0, 171, 171, 171, 
-      0,   0,   3,   0,   1,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 109,  76, 
-     97, 121, 101, 114,  84, 114, 
-     97, 110, 115, 102, 111, 114, 
-    109,   0,   3,   0,   3,   0, 
-      4,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    236,   1,   0,   0,   0,   0, 
-      0,   0,  16,   0,   0,   0, 
-      2,   0,   0,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-     16,   2,   0,   0,  16,   0, 
-      0,   0,  16,   0,   0,   0, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-    118,  82, 101, 110, 100, 101, 
-    114,  84,  97, 114, 103, 101, 
-    116,  79, 102, 102, 115, 101, 
-    116,   0,   1,   0,   3,   0, 
-      1,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    102,  76,  97, 121, 101, 114, 
-     67, 111, 108, 111, 114,   0, 
-     52,   2,   0,   0,   0,   0, 
-      0,   0,  64,   0,   0,   0, 
-      2,   0,   0,   0, 172,   1, 
-      0,   0,   0,   0,   0,   0, 
-    109,  80, 114, 111, 106, 101, 
-     99, 116, 105, 111, 110,   0, 
-     77, 105,  99, 114, 111, 115, 
-    111, 102, 116,  32,  40,  82, 
-     41,  32,  72,  76,  83,  76, 
-     32,  83, 104,  97, 100, 101, 
-    114,  32,  67, 111, 109, 112, 
-    105, 108, 101, 114,  32,  57, 
-     46,  50,  55,  46,  57,  53, 
-     50,  46,  51,  48,  50,  50, 
-      0, 171, 171, 171,  73,  83, 
-     71,  78,  44,   0,   0,   0, 
-      1,   0,   0,   0,   8,   0, 
-      0,   0,  32,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,   3,   3, 
-      0,   0,  80,  79,  83,  73, 
-     84,  73,  79,  78,   0, 171, 
-    171, 171,  79,  83,  71,  78, 
-     80,   0,   0,   0,   2,   0, 
-      0,   0,   8,   0,   0,   0, 
-     56,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,  15,   0,   0,   0, 
-     68,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,   3,  12,   0,   0, 
-     83,  86,  95,  80, 111, 115, 
-    105, 116, 105, 111, 110,   0, 
-     84,  69,  88,  67,  79,  79, 
-     82,  68,   0, 171, 171, 171, 
-    226,  15,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,   0,  84,   4,   0,   0, 
-     68,  88,  66,  67, 146,   3, 
-    215,  66, 245, 177,   6,  57, 
-     16,  82, 147, 232,  61, 101, 
-    156, 116,   1,   0,   0,   0, 
-     84,   4,   0,   0,   6,   0, 
-      0,   0,  56,   0,   0,   0, 
-    204,   0,   0,   0, 136,   1, 
-      0,   0,   4,   2,   0,   0, 
-    200,   3,   0,   0,  32,   4, 
-      0,   0,  65, 111, 110,  57, 
-    140,   0,   0,   0, 140,   0, 
-      0,   0,   0,   2, 255, 255, 
-     88,   0,   0,   0,  52,   0, 
-      0,   0,   1,   0,  40,   0, 
-      0,   0,  52,   0,   0,   0, 
-     52,   0,   1,   0,  36,   0, 
-      0,   0,  52,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   1,   2, 255, 255, 
-     31,   0,   0,   2,   0,   0, 
-      0, 128,   0,   0,   3, 176, 
-     31,   0,   0,   2,   0,   0, 
-      0, 144,   0,   8,  15, 160, 
-     66,   0,   0,   3,   0,   0, 
-     15, 128,   0,   0, 228, 176, 
-      0,   8, 228, 160,   5,   0, 
-      0,   3,   0,   0,   7, 128, 
-      0,   0, 228, 128,   0,   0, 
-      0, 160,   1,   0,   0,   2, 
-      0,   0,   8, 128,   0,   0, 
-      0, 160,   1,   0,   0,   2, 
-      0,   8,  15, 128,   0,   0, 
-    228, 128, 255, 255,   0,   0, 
-     83,  72,  68,  82, 180,   0, 
-      0,   0,  64,   0,   0,   0, 
-     45,   0,   0,   0,  89,   0, 
-      0,   4,  70, 142,  32,   0, 
-      0,   0,   0,   0,   3,   0, 
-      0,   0,  90,   0,   0,   3, 
-      0,  96,  16,   0,   0,   0, 
-      0,   0,  88,  24,   0,   4, 
-      0, 112,  16,   0,   0,   0, 
-      0,   0,  85,  85,   0,   0, 
-     98,  16,   0,   3,  50,  16, 
-     16,   0,   1,   0,   0,   0, 
-    101,   0,   0,   3, 242,  32, 
-     16,   0,   0,   0,   0,   0, 
-    104,   0,   0,   2,   1,   0, 
-      0,   0,  69,   0,   0,   9, 
-    242,   0,  16,   0,   0,   0, 
-      0,   0,  70,  16,  16,   0, 
-      1,   0,   0,   0,  70, 126, 
-     16,   0,   0,   0,   0,   0, 
-      0,  96,  16,   0,   0,   0, 
-      0,   0,  56,   0,   0,   8, 
-    114,  32,  16,   0,   0,   0, 
-      0,   0,  70,   2,  16,   0, 
-      0,   0,   0,   0,   6, 128, 
-     32,   0,   0,   0,   0,   0, 
-      2,   0,   0,   0,  54,   0, 
-      0,   6, 130,  32,  16,   0, 
-      0,   0,   0,   0,  10, 128, 
-     32,   0,   0,   0,   0,   0, 
-      2,   0,   0,   0,  62,   0, 
-      0,   1,  83,  84,  65,  84, 
-    116,   0,   0,   0,   4,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     82,  68,  69,  70, 188,   1, 
-      0,   0,   1,   0,   0,   0, 
-    164,   0,   0,   0,   3,   0, 
-      0,   0,  28,   0,   0,   0, 
-      0,   4, 255, 255,   0,   1, 
-      0,   0, 136,   1,   0,   0, 
-    124,   0,   0,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0, 149,   0,   0,   0, 
-      2,   0,   0,   0,   5,   0, 
-      0,   0,   4,   0,   0,   0, 
-    255, 255, 255, 255,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-     12,   0,   0,   0, 154,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-     76,  97, 121, 101, 114,  84, 
-    101, 120, 116, 117, 114, 101, 
-     83,  97, 109, 112, 108, 101, 
-    114,  80, 111, 105, 110, 116, 
-      0, 116,  82,  71,  66,   0, 
-     80, 101, 114,  76,  97, 121, 
-    101, 114,   0, 171, 154,   0, 
-      0,   0,   4,   0,   0,   0, 
-    188,   0,   0,   0, 112,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  28,   1, 
-      0,   0,   0,   0,   0,   0, 
-     16,   0,   0,   0,   0,   0, 
-      0,   0,  44,   1,   0,   0, 
-      0,   0,   0,   0,  60,   1, 
-      0,   0,  16,   0,   0,   0, 
-     16,   0,   0,   0,   0,   0, 
-      0,   0,  44,   1,   0,   0, 
-      0,   0,   0,   0,  71,   1, 
-      0,   0,  32,   0,   0,   0, 
-      4,   0,   0,   0,   2,   0, 
-      0,   0,  88,   1,   0,   0, 
-      0,   0,   0,   0, 104,   1, 
-      0,   0,  48,   0,   0,   0, 
-     64,   0,   0,   0,   0,   0, 
-      0,   0, 120,   1,   0,   0, 
-      0,   0,   0,   0, 118,  84, 
-    101, 120, 116, 117, 114, 101, 
-     67, 111, 111, 114, 100, 115, 
-      0, 171,   1,   0,   3,   0, 
-      1,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    118,  76,  97, 121, 101, 114, 
-     81, 117,  97, 100,   0, 102, 
-     76,  97, 121, 101, 114,  79, 
-    112,  97,  99, 105, 116, 121, 
-      0, 171, 171, 171,   0,   0, 
-      3,   0,   1,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 109,  76,  97, 121, 
-    101, 114,  84, 114,  97, 110, 
-    115, 102, 111, 114, 109,   0, 
-      3,   0,   3,   0,   4,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  77, 105, 
-     99, 114, 111, 115, 111, 102, 
-    116,  32,  40,  82,  41,  32, 
-     72,  76,  83,  76,  32,  83, 
-    104,  97, 100, 101, 114,  32, 
-     67, 111, 109, 112, 105, 108, 
-    101, 114,  32,  57,  46,  50, 
-     55,  46,  57,  53,  50,  46, 
-     51,  48,  50,  50,   0, 171, 
-    171, 171,  73,  83,  71,  78, 
-     80,   0,   0,   0,   2,   0, 
-      0,   0,   8,   0,   0,   0, 
-     56,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,  15,   0,   0,   0, 
-     68,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,   3,   3,   0,   0, 
-     83,  86,  95,  80, 111, 115, 
-    105, 116, 105, 111, 110,   0, 
-     84,  69,  88,  67,  79,  79, 
-     82,  68,   0, 171, 171, 171, 
-     79,  83,  71,  78,  44,   0, 
-      0,   0,   1,   0,   0,   0, 
-      8,   0,   0,   0,  32,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-     15,   0,   0,   0,  83,  86, 
-     95,  84,  97, 114, 103, 101, 
-    116,   0, 171, 171,  18,  23, 
-      0,   0,   0,   0,   0,   0, 
-     82, 101, 110, 100, 101, 114, 
-     82,  71,  66,  65,  76,  97, 
-    121, 101, 114,  80, 114, 101, 
-    109, 117, 108,   0,   4,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   3,   0,   0,   0, 
-    255, 255, 255, 255,  24,   7, 
-      0,   0,  68,  88,  66,  67, 
-    254, 249,  65, 252,  64,  46, 
-    192, 119,  73, 197, 161, 234, 
-     24,   1, 194, 131,   1,   0, 
-      0,   0,  24,   7,   0,   0, 
-      6,   0,   0,   0,  56,   0, 
-      0,   0, 164,   1,   0,   0, 
-    148,   3,   0,   0,  16,   4, 
-      0,   0, 140,   6,   0,   0, 
-    192,   6,   0,   0,  65, 111, 
-    110,  57, 100,   1,   0,   0, 
-    100,   1,   0,   0,   0,   2, 
-    254, 255,   0,   1,   0,   0, 
-    100,   0,   0,   0,   5,   0, 
-     36,   0,   0,   0,  96,   0, 
-      0,   0,  96,   0,   0,   0, 
-     36,   0,   1,   0,  96,   0, 
-      0,   0,   0,   0,   2,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   2,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,   6,   0,   1,   0, 
-      5,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   1,   0, 
-      6,   0,   0,   0,   0,   0, 
-      2,   0,   0,   0,   4,   0, 
-      7,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   2, 
-    254, 255,  31,   0,   0,   2, 
-      5,   0,   0, 128,   0,   0, 
-     15, 144,   4,   0,   0,   4, 
-      0,   0,   3, 224,   0,   0, 
-    228, 144,   1,   0, 238, 160, 
-      1,   0, 228, 160,   4,   0, 
-      0,   4,   0,   0,   1, 128, 
-      0,   0,  85, 144,   2,   0, 
-    255, 160,   2,   0,  85, 160, 
-      5,   0,   0,   3,   0,   0, 
-     15, 128,   0,   0,   0, 128, 
-      4,   0, 228, 160,   4,   0, 
-      0,   4,   1,   0,   1, 128, 
-      0,   0,   0, 144,   2,   0, 
-    170, 160,   2,   0,   0, 160, 
-      4,   0,   0,   4,   0,   0, 
-     15, 128,   3,   0, 228, 160, 
-      1,   0,   0, 128,   0,   0, 
-    228, 128,   2,   0,   0,   3, 
-      0,   0,  15, 128,   0,   0, 
-    228, 128,   5,   0, 228, 160, 
-      2,   0,   0,   3,   0,   0, 
-     15, 128,   0,   0, 228, 128, 
-      6,   0, 228, 161,   5,   0, 
-      0,   3,   1,   0,  15, 128, 
-      0,   0,  85, 128,   8,   0, 
-    228, 160,   4,   0,   0,   4, 
-      1,   0,  15, 128,   7,   0, 
-    228, 160,   0,   0,   0, 128, 
-      1,   0, 228, 128,   4,   0, 
-      0,   4,   1,   0,  15, 128, 
-      9,   0, 228, 160,   0,   0, 
-    170, 128,   1,   0, 228, 128, 
-      4,   0,   0,   4,   0,   0, 
-     15, 128,  10,   0, 228, 160, 
-      0,   0, 255, 128,   1,   0, 
-    228, 128,   4,   0,   0,   4, 
-      0,   0,   3, 192,   0,   0, 
-    255, 128,   0,   0, 228, 160, 
-      0,   0, 228, 128,   1,   0, 
-      0,   2,   0,   0,  12, 192, 
-      0,   0, 228, 128, 255, 255, 
-      0,   0,  83,  72,  68,  82, 
-    232,   1,   0,   0,  64,   0, 
-      1,   0, 122,   0,   0,   0, 
-     89,   0,   0,   4,  70, 142, 
-     32,   0,   0,   0,   0,   0, 
-      7,   0,   0,   0,  89,   0, 
-      0,   4,  70, 142,  32,   0, 
-      1,   0,   0,   0,   1,   0, 
-      0,   0,  89,   0,   0,   4, 
-     70, 142,  32,   0,   2,   0, 
-      0,   0,   4,   0,   0,   0, 
-     95,   0,   0,   3,  50,  16, 
-     16,   0,   0,   0,   0,   0, 
-    103,   0,   0,   4, 242,  32, 
-     16,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0, 101,   0, 
-      0,   3,  50,  32,  16,   0, 
-      1,   0,   0,   0, 104,   0, 
-      0,   2,   2,   0,   0,   0, 
-     50,   0,   0,  11,  50,   0, 
-     16,   0,   0,   0,   0,   0, 
-     70,  16,  16,   0,   0,   0, 
-      0,   0, 230, 138,  32,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,  70, 128,  32,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,  56,   0,   0,   8, 
-    242,   0,  16,   0,   1,   0, 
-      0,   0,  86,   5,  16,   0, 
-      0,   0,   0,   0,  70, 142, 
-     32,   0,   0,   0,   0,   0, 
-      4,   0,   0,   0,  50,   0, 
-      0,  10, 242,   0,  16,   0, 
-      0,   0,   0,   0,  70, 142, 
-     32,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   6,   0, 
-     16,   0,   0,   0,   0,   0, 
-     70,  14,  16,   0,   1,   0, 
-      0,   0,   0,   0,   0,   8, 
-    242,   0,  16,   0,   0,   0, 
-      0,   0,  70,  14,  16,   0, 
-      0,   0,   0,   0,  70, 142, 
-     32,   0,   0,   0,   0,   0, 
-      6,   0,   0,   0,   0,   0, 
-      0,   9, 242,   0,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
-     16,   0,   0,   0,   0,   0, 
-     70, 142,  32, 128,  65,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,  56,   0, 
-      0,   8, 242,   0,  16,   0, 
-      1,   0,   0,   0,  86,   5, 
-     16,   0,   0,   0,   0,   0, 
-     70, 142,  32,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-     50,   0,   0,  10, 242,   0, 
-     16,   0,   1,   0,   0,   0, 
-     70, 142,  32,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-      6,   0,  16,   0,   0,   0, 
-      0,   0,  70,  14,  16,   0, 
-      1,   0,   0,   0,  50,   0, 
-      0,  10, 242,   0,  16,   0, 
-      1,   0,   0,   0,  70, 142, 
-     32,   0,   2,   0,   0,   0, 
-      2,   0,   0,   0, 166,  10, 
-     16,   0,   0,   0,   0,   0, 
-     70,  14,  16,   0,   1,   0, 
-      0,   0,  50,   0,   0,  10, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0,  70, 142,  32,   0, 
-      2,   0,   0,   0,   3,   0, 
-      0,   0, 246,  15,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
-     16,   0,   1,   0,   0,   0, 
-     50,   0,   0,  11,  50,  32, 
-     16,   0,   1,   0,   0,   0, 
-     70,  16,  16,   0,   0,   0, 
-      0,   0, 230, 138,  32,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  70, 128,  32,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  62,   0,   0,   1, 
-     83,  84,  65,  84, 116,   0, 
-      0,   0,  11,   0,   0,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  82,  68, 
-     69,  70, 116,   2,   0,   0, 
-      3,   0,   0,   0, 168,   0, 
-      0,   0,   3,   0,   0,   0, 
-     28,   0,   0,   0,   0,   4, 
-    254, 255,   0,   1,   0,   0, 
-     64,   2,   0,   0, 124,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-    133,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0, 152,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,  80, 101, 
-    114,  76,  97, 121, 101, 114, 
-      0,  80, 101, 114,  79,  99, 
-     99,  97, 115, 105, 111, 110, 
-     97, 108,  76,  97, 121, 101, 
-    114,   0,  80, 101, 114,  76, 
-     97, 121, 101, 114,  77,  97, 
-    110,  97, 103, 101, 114,   0, 
-    124,   0,   0,   0,   4,   0, 
-      0,   0, 240,   0,   0,   0, 
-    112,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    133,   0,   0,   0,   2,   0, 
-      0,   0, 188,   1,   0,   0, 
-     32,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    152,   0,   0,   0,   1,   0, 
-      0,   0,  28,   2,   0,   0, 
-     64,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     80,   1,   0,   0,   0,   0, 
-      0,   0,  16,   0,   0,   0, 
-      2,   0,   0,   0,  96,   1, 
-      0,   0,   0,   0,   0,   0, 
-    112,   1,   0,   0,  16,   0, 
-      0,   0,  16,   0,   0,   0, 
-      2,   0,   0,   0,  96,   1, 
-      0,   0,   0,   0,   0,   0, 
-    123,   1,   0,   0,  32,   0, 
-      0,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0, 140,   1, 
-      0,   0,   0,   0,   0,   0, 
-    156,   1,   0,   0,  48,   0, 
-      0,   0,  64,   0,   0,   0, 
-      2,   0,   0,   0, 172,   1, 
-      0,   0,   0,   0,   0,   0, 
-    118,  84, 101, 120, 116, 117, 
-    114, 101,  67, 111, 111, 114, 
-    100, 115,   0, 171,   1,   0, 
-      3,   0,   1,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 118,  76,  97, 121, 
-    101, 114,  81, 117,  97, 100, 
-      0, 102,  76,  97, 121, 101, 
-    114,  79, 112,  97,  99, 105, 
-    116, 121,   0, 171, 171, 171, 
-      0,   0,   3,   0,   1,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 109,  76, 
-     97, 121, 101, 114,  84, 114, 
-     97, 110, 115, 102, 111, 114, 
-    109,   0,   3,   0,   3,   0, 
-      4,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    236,   1,   0,   0,   0,   0, 
-      0,   0,  16,   0,   0,   0, 
-      2,   0,   0,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-     16,   2,   0,   0,  16,   0, 
-      0,   0,  16,   0,   0,   0, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-    118,  82, 101, 110, 100, 101, 
-    114,  84,  97, 114, 103, 101, 
-    116,  79, 102, 102, 115, 101, 
-    116,   0,   1,   0,   3,   0, 
-      1,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    102,  76,  97, 121, 101, 114, 
-     67, 111, 108, 111, 114,   0, 
-     52,   2,   0,   0,   0,   0, 
-      0,   0,  64,   0,   0,   0, 
-      2,   0,   0,   0, 172,   1, 
-      0,   0,   0,   0,   0,   0, 
-    109,  80, 114, 111, 106, 101, 
-     99, 116, 105, 111, 110,   0, 
-     77, 105,  99, 114, 111, 115, 
-    111, 102, 116,  32,  40,  82, 
-     41,  32,  72,  76,  83,  76, 
-     32,  83, 104,  97, 100, 101, 
-    114,  32,  67, 111, 109, 112, 
-    105, 108, 101, 114,  32,  57, 
-     46,  50,  55,  46,  57,  53, 
-     50,  46,  51,  48,  50,  50, 
-      0, 171, 171, 171,  73,  83, 
-     71,  78,  44,   0,   0,   0, 
-      1,   0,   0,   0,   8,   0, 
-      0,   0,  32,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,   3,   3, 
-      0,   0,  80,  79,  83,  73, 
-     84,  73,  79,  78,   0, 171, 
-    171, 171,  79,  83,  71,  78, 
-     80,   0,   0,   0,   2,   0, 
-      0,   0,   8,   0,   0,   0, 
-     56,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,  15,   0,   0,   0, 
-     68,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,   3,  12,   0,   0, 
-     83,  86,  95,  80, 111, 115, 
-    105, 116, 105, 111, 110,   0, 
-     84,  69,  88,  67,  79,  79, 
-     82,  68,   0, 171, 171, 171, 
-    184,  27,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,   0,  48,   4,   0,   0, 
-     68,  88,  66,  67, 135,  78, 
-    217, 178,  82, 246,  12, 136, 
-     40, 218, 112,  36, 133,  68, 
-    115,  32,   1,   0,   0,   0, 
-     48,   4,   0,   0,   6,   0, 
-      0,   0,  56,   0,   0,   0, 
-    192,   0,   0,   0, 100,   1, 
-      0,   0, 224,   1,   0,   0, 
-    164,   3,   0,   0, 252,   3, 
-      0,   0,  65, 111, 110,  57, 
-    128,   0,   0,   0, 128,   0, 
-      0,   0,   0,   2, 255, 255, 
-     76,   0,   0,   0,  52,   0, 
-      0,   0,   1,   0,  40,   0, 
-      0,   0,  52,   0,   0,   0, 
-     52,   0,   1,   0,  36,   0, 
-      0,   0,  52,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   1,   2, 255, 255, 
-     31,   0,   0,   2,   0,   0, 
-      0, 128,   0,   0,   3, 176, 
-     31,   0,   0,   2,   0,   0, 
-      0, 144,   0,   8,  15, 160, 
-     66,   0,   0,   3,   0,   0, 
-     15, 128,   0,   0, 228, 176, 
-      0,   8, 228, 160,   5,   0, 
-      0,   3,   0,   0,  15, 128, 
-      0,   0, 228, 128,   0,   0, 
-      0, 160,   1,   0,   0,   2, 
-      0,   8,  15, 128,   0,   0, 
-    228, 128, 255, 255,   0,   0, 
-     83,  72,  68,  82, 156,   0, 
-      0,   0,  64,   0,   0,   0, 
-     39,   0,   0,   0,  89,   0, 
-      0,   4,  70, 142,  32,   0, 
-      0,   0,   0,   0,   3,   0, 
-      0,   0,  90,   0,   0,   3, 
-      0,  96,  16,   0,   0,   0, 
-      0,   0,  88,  24,   0,   4, 
-      0, 112,  16,   0,   0,   0, 
-      0,   0,  85,  85,   0,   0, 
-     98,  16,   0,   3,  50,  16, 
-     16,   0,   1,   0,   0,   0, 
-    101,   0,   0,   3, 242,  32, 
-     16,   0,   0,   0,   0,   0, 
-    104,   0,   0,   2,   1,   0, 
-      0,   0,  69,   0,   0,   9, 
-    242,   0,  16,   0,   0,   0, 
-      0,   0,  70,  16,  16,   0, 
-      1,   0,   0,   0,  70, 126, 
-     16,   0,   0,   0,   0,   0, 
-      0,  96,  16,   0,   0,   0, 
-      0,   0,  56,   0,   0,   8, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0,  70,  14,  16,   0, 
-      0,   0,   0,   0,   6, 128, 
-     32,   0,   0,   0,   0,   0, 
-      2,   0,   0,   0,  62,   0, 
-      0,   1,  83,  84,  65,  84, 
-    116,   0,   0,   0,   3,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     82,  68,  69,  70, 188,   1, 
-      0,   0,   1,   0,   0,   0, 
-    164,   0,   0,   0,   3,   0, 
-      0,   0,  28,   0,   0,   0, 
-      0,   4, 255, 255,   0,   1, 
-      0,   0, 136,   1,   0,   0, 
-    124,   0,   0,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0, 150,   0,   0,   0, 
-      2,   0,   0,   0,   5,   0, 
-      0,   0,   4,   0,   0,   0, 
-    255, 255, 255, 255,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-     12,   0,   0,   0, 155,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-     76,  97, 121, 101, 114,  84, 
-    101, 120, 116, 117, 114, 101, 
-     83,  97, 109, 112, 108, 101, 
-    114,  76, 105, 110, 101,  97, 
-    114,   0, 116,  82,  71,  66, 
-      0,  80, 101, 114,  76,  97, 
-    121, 101, 114,   0, 155,   0, 
-      0,   0,   4,   0,   0,   0, 
-    188,   0,   0,   0, 112,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  28,   1, 
-      0,   0,   0,   0,   0,   0, 
-     16,   0,   0,   0,   0,   0, 
-      0,   0,  44,   1,   0,   0, 
-      0,   0,   0,   0,  60,   1, 
-      0,   0,  16,   0,   0,   0, 
-     16,   0,   0,   0,   0,   0, 
-      0,   0,  44,   1,   0,   0, 
-      0,   0,   0,   0,  71,   1, 
-      0,   0,  32,   0,   0,   0, 
-      4,   0,   0,   0,   2,   0, 
-      0,   0,  88,   1,   0,   0, 
-      0,   0,   0,   0, 104,   1, 
-      0,   0,  48,   0,   0,   0, 
-     64,   0,   0,   0,   0,   0, 
-      0,   0, 120,   1,   0,   0, 
-      0,   0,   0,   0, 118,  84, 
-    101, 120, 116, 117, 114, 101, 
-     67, 111, 111, 114, 100, 115, 
-      0, 171,   1,   0,   3,   0, 
-      1,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    118,  76,  97, 121, 101, 114, 
-     81, 117,  97, 100,   0, 102, 
-     76,  97, 121, 101, 114,  79, 
-    112,  97,  99, 105, 116, 121, 
-      0, 171, 171, 171,   0,   0, 
-      3,   0,   1,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 109,  76,  97, 121, 
-    101, 114,  84, 114,  97, 110, 
-    115, 102, 111, 114, 109,   0, 
-      3,   0,   3,   0,   4,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  77, 105, 
-     99, 114, 111, 115, 111, 102, 
-    116,  32,  40,  82,  41,  32, 
-     72,  76,  83,  76,  32,  83, 
-    104,  97, 100, 101, 114,  32, 
-     67, 111, 109, 112, 105, 108, 
-    101, 114,  32,  57,  46,  50, 
-     55,  46,  57,  53,  50,  46, 
-     51,  48,  50,  50,   0, 171, 
-    171, 171,  73,  83,  71,  78, 
-     80,   0,   0,   0,   2,   0, 
-      0,   0,   8,   0,   0,   0, 
-     56,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,  15,   0,   0,   0, 
-     68,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,   3,   3,   0,   0, 
-     83,  86,  95,  80, 111, 115, 
-    105, 116, 105, 111, 110,   0, 
-     84,  69,  88,  67,  79,  79, 
-     82,  68,   0, 171, 171, 171, 
-     79,  83,  71,  78,  44,   0, 
-      0,   0,   1,   0,   0,   0, 
-      8,   0,   0,   0,  32,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-     15,   0,   0,   0,  83,  86, 
-     95,  84,  97, 114, 103, 101, 
-    116,   0, 171, 171, 232,  34, 
-      0,   0,   0,   0,   0,   0, 
-     82, 101, 110, 100, 101, 114, 
-     82,  71,  66,  65,  76,  97, 
-    121, 101, 114,  78, 111, 110, 
-     80, 114, 101, 109, 117, 108, 
-      0,   4,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   3, 
-      0,   0,   0, 255, 255, 255, 
-    255,  24,   7,   0,   0,  68, 
-     88,  66,  67, 254, 249,  65, 
-    252,  64,  46, 192, 119,  73, 
-    197, 161, 234,  24,   1, 194, 
-    131,   1,   0,   0,   0,  24, 
-      7,   0,   0,   6,   0,   0, 
-      0,  56,   0,   0,   0, 164, 
-      1,   0,   0, 148,   3,   0, 
-      0,  16,   4,   0,   0, 140, 
-      6,   0,   0, 192,   6,   0, 
-      0,  65, 111, 110,  57, 100, 
-      1,   0,   0, 100,   1,   0, 
-      0,   0,   2, 254, 255,   0, 
-      1,   0,   0, 100,   0,   0, 
-      0,   5,   0,  36,   0,   0, 
-      0,  96,   0,   0,   0,  96, 
-      0,   0,   0,  36,   0,   1, 
-      0,  96,   0,   0,   0,   0, 
-      0,   2,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,   3, 
-      0,   2,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,   6, 
-      0,   1,   0,   5,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   1,   0,   6,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0,   4,   0,   7,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   2, 254, 255,  31, 
-      0,   0,   2,   5,   0,   0, 
-    128,   0,   0,  15, 144,   4, 
-      0,   0,   4,   0,   0,   3, 
-    224,   0,   0, 228, 144,   1, 
-      0, 238, 160,   1,   0, 228, 
-    160,   4,   0,   0,   4,   0, 
-      0,   1, 128,   0,   0,  85, 
-    144,   2,   0, 255, 160,   2, 
-      0,  85, 160,   5,   0,   0, 
-      3,   0,   0,  15, 128,   0, 
-      0,   0, 128,   4,   0, 228, 
-    160,   4,   0,   0,   4,   1, 
-      0,   1, 128,   0,   0,   0, 
-    144,   2,   0, 170, 160,   2, 
-      0,   0, 160,   4,   0,   0, 
-      4,   0,   0,  15, 128,   3, 
-      0, 228, 160,   1,   0,   0, 
-    128,   0,   0, 228, 128,   2, 
-      0,   0,   3,   0,   0,  15, 
-    128,   0,   0, 228, 128,   5, 
-      0, 228, 160,   2,   0,   0, 
-      3,   0,   0,  15, 128,   0, 
-      0, 228, 128,   6,   0, 228, 
-    161,   5,   0,   0,   3,   1, 
-      0,  15, 128,   0,   0,  85, 
-    128,   8,   0, 228, 160,   4, 
-      0,   0,   4,   1,   0,  15, 
-    128,   7,   0, 228, 160,   0, 
-      0,   0, 128,   1,   0, 228, 
-    128,   4,   0,   0,   4,   1, 
-      0,  15, 128,   9,   0, 228, 
-    160,   0,   0, 170, 128,   1, 
-      0, 228, 128,   4,   0,   0, 
-      4,   0,   0,  15, 128,  10, 
-      0, 228, 160,   0,   0, 255, 
-    128,   1,   0, 228, 128,   4, 
-      0,   0,   4,   0,   0,   3, 
-    192,   0,   0, 255, 128,   0, 
-      0, 228, 160,   0,   0, 228, 
-    128,   1,   0,   0,   2,   0, 
-      0,  12, 192,   0,   0, 228, 
-    128, 255, 255,   0,   0,  83, 
-     72,  68,  82, 232,   1,   0, 
-      0,  64,   0,   1,   0, 122, 
-      0,   0,   0,  89,   0,   0, 
-      4,  70, 142,  32,   0,   0, 
-      0,   0,   0,   7,   0,   0, 
-      0,  89,   0,   0,   4,  70, 
-    142,  32,   0,   1,   0,   0, 
-      0,   1,   0,   0,   0,  89, 
-      0,   0,   4,  70, 142,  32, 
-      0,   2,   0,   0,   0,   4, 
-      0,   0,   0,  95,   0,   0, 
-      3,  50,  16,  16,   0,   0, 
-      0,   0,   0, 103,   0,   0, 
-      4, 242,  32,  16,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 101,   0,   0,   3,  50, 
-     32,  16,   0,   1,   0,   0, 
-      0, 104,   0,   0,   2,   2, 
-      0,   0,   0,  50,   0,   0, 
-     11,  50,   0,  16,   0,   0, 
-      0,   0,   0,  70,  16,  16, 
-      0,   0,   0,   0,   0, 230, 
-    138,  32,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,  70, 
-    128,  32,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,  56, 
-      0,   0,   8, 242,   0,  16, 
-      0,   1,   0,   0,   0,  86, 
-      5,  16,   0,   0,   0,   0, 
-      0,  70, 142,  32,   0,   0, 
-      0,   0,   0,   4,   0,   0, 
-      0,  50,   0,   0,  10, 242, 
-      0,  16,   0,   0,   0,   0, 
-      0,  70, 142,  32,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   6,   0,  16,   0,   0, 
-      0,   0,   0,  70,  14,  16, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   8, 242,   0,  16, 
-      0,   0,   0,   0,   0,  70, 
-     14,  16,   0,   0,   0,   0, 
-      0,  70, 142,  32,   0,   0, 
-      0,   0,   0,   6,   0,   0, 
-      0,   0,   0,   0,   9, 242, 
-      0,  16,   0,   0,   0,   0, 
-      0,  70,  14,  16,   0,   0, 
-      0,   0,   0,  70, 142,  32, 
-    128,  65,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,  56,   0,   0,   8, 242, 
-      0,  16,   0,   1,   0,   0, 
-      0,  86,   5,  16,   0,   0, 
-      0,   0,   0,  70, 142,  32, 
-      0,   2,   0,   0,   0,   1, 
-      0,   0,   0,  50,   0,   0, 
-     10, 242,   0,  16,   0,   1, 
-      0,   0,   0,  70, 142,  32, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0,   0,   6,   0,  16, 
-      0,   0,   0,   0,   0,  70, 
-     14,  16,   0,   1,   0,   0, 
-      0,  50,   0,   0,  10, 242, 
-      0,  16,   0,   1,   0,   0, 
-      0,  70, 142,  32,   0,   2, 
-      0,   0,   0,   2,   0,   0, 
-      0, 166,  10,  16,   0,   0, 
-      0,   0,   0,  70,  14,  16, 
-      0,   1,   0,   0,   0,  50, 
-      0,   0,  10, 242,  32,  16, 
-      0,   0,   0,   0,   0,  70, 
-    142,  32,   0,   2,   0,   0, 
-      0,   3,   0,   0,   0, 246, 
-     15,  16,   0,   0,   0,   0, 
-      0,  70,  14,  16,   0,   1, 
-      0,   0,   0,  50,   0,   0, 
-     11,  50,  32,  16,   0,   1, 
-      0,   0,   0,  70,  16,  16, 
-      0,   0,   0,   0,   0, 230, 
-    138,  32,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,  70, 
-    128,  32,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,  62, 
-      0,   0,   1,  83,  84,  65, 
-     84, 116,   0,   0,   0,  11, 
-      0,   0,   0,   2,   0,   0, 
-      0,   0,   0,   0,   0,   3, 
-      0,   0,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  82,  68,  69,  70, 116, 
-      2,   0,   0,   3,   0,   0, 
-      0, 168,   0,   0,   0,   3, 
-      0,   0,   0,  28,   0,   0, 
-      0,   0,   4, 254, 255,   0, 
-      1,   0,   0,  64,   2,   0, 
-      0, 124,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0, 133,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0, 152, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,  80, 101, 114,  76,  97, 
-    121, 101, 114,   0,  80, 101, 
-    114,  79,  99,  99,  97, 115, 
-    105, 111, 110,  97, 108,  76, 
-     97, 121, 101, 114,   0,  80, 
-    101, 114,  76,  97, 121, 101, 
-    114,  77,  97, 110,  97, 103, 
-    101, 114,   0, 124,   0,   0, 
-      0,   4,   0,   0,   0, 240, 
-      0,   0,   0, 112,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 133,   0,   0, 
-      0,   2,   0,   0,   0, 188, 
-      1,   0,   0,  32,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 152,   0,   0, 
-      0,   1,   0,   0,   0,  28, 
-      2,   0,   0,  64,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  80,   1,   0, 
-      0,   0,   0,   0,   0,  16, 
-      0,   0,   0,   2,   0,   0, 
-      0,  96,   1,   0,   0,   0, 
-      0,   0,   0, 112,   1,   0, 
-      0,  16,   0,   0,   0,  16, 
-      0,   0,   0,   2,   0,   0, 
-      0,  96,   1,   0,   0,   0, 
-      0,   0,   0, 123,   1,   0, 
-      0,  32,   0,   0,   0,   4, 
-      0,   0,   0,   0,   0,   0, 
-      0, 140,   1,   0,   0,   0, 
-      0,   0,   0, 156,   1,   0, 
-      0,  48,   0,   0,   0,  64, 
-      0,   0,   0,   2,   0,   0, 
-      0, 172,   1,   0,   0,   0, 
-      0,   0,   0, 118,  84, 101, 
-    120, 116, 117, 114, 101,  67, 
-    111, 111, 114, 100, 115,   0, 
-    171,   1,   0,   3,   0,   1, 
-      0,   4,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 118, 
-     76,  97, 121, 101, 114,  81, 
-    117,  97, 100,   0, 102,  76, 
-     97, 121, 101, 114,  79, 112, 
-     97,  99, 105, 116, 121,   0, 
-    171, 171, 171,   0,   0,   3, 
-      0,   1,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 109,  76,  97, 121, 101, 
-    114,  84, 114,  97, 110, 115, 
-    102, 111, 114, 109,   0,   3, 
-      0,   3,   0,   4,   0,   4, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 236,   1,   0, 
-      0,   0,   0,   0,   0,  16, 
-      0,   0,   0,   2,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-      0,   0,   0,  16,   2,   0, 
-      0,  16,   0,   0,   0,  16, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-      0,   0,   0, 118,  82, 101, 
-    110, 100, 101, 114,  84,  97, 
-    114, 103, 101, 116,  79, 102, 
-    102, 115, 101, 116,   0,   1, 
-      0,   3,   0,   1,   0,   4, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 102,  76,  97, 
-    121, 101, 114,  67, 111, 108, 
-    111, 114,   0,  52,   2,   0, 
-      0,   0,   0,   0,   0,  64, 
-      0,   0,   0,   2,   0,   0, 
-      0, 172,   1,   0,   0,   0, 
-      0,   0,   0, 109,  80, 114, 
-    111, 106, 101,  99, 116, 105, 
-    111, 110,   0,  77, 105,  99, 
-    114, 111, 115, 111, 102, 116, 
-     32,  40,  82,  41,  32,  72, 
-     76,  83,  76,  32,  83, 104, 
-     97, 100, 101, 114,  32,  67, 
-    111, 109, 112, 105, 108, 101, 
-    114,  32,  57,  46,  50,  55, 
-     46,  57,  53,  50,  46,  51, 
-     48,  50,  50,   0, 171, 171, 
-    171,  73,  83,  71,  78,  44, 
-      0,   0,   0,   1,   0,   0, 
-      0,   8,   0,   0,   0,  32, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   3, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   3,   0,   0,  80, 
-     79,  83,  73,  84,  73,  79, 
-     78,   0, 171, 171, 171,  79, 
-     83,  71,  78,  80,   0,   0, 
-      0,   2,   0,   0,   0,   8, 
-      0,   0,   0,  56,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,  15, 
-      0,   0,   0,  68,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   1,   0,   0,   0,   3, 
-     12,   0,   0,  83,  86,  95, 
-     80, 111, 115, 105, 116, 105, 
-    111, 110,   0,  84,  69,  88, 
-     67,  79,  79,  82,  68,   0, 
-    171, 171, 171, 109,  39,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   2,   0,   0, 
-      0,   0,   0,   0,   0,  48, 
-      4,   0,   0,  68,  88,  66, 
-     67, 135,  78, 217, 178,  82, 
-    246,  12, 136,  40, 218, 112, 
-     36, 133,  68, 115,  32,   1, 
-      0,   0,   0,  48,   4,   0, 
-      0,   6,   0,   0,   0,  56, 
-      0,   0,   0, 192,   0,   0, 
-      0, 100,   1,   0,   0, 224, 
-      1,   0,   0, 164,   3,   0, 
-      0, 252,   3,   0,   0,  65, 
-    111, 110,  57, 128,   0,   0, 
-      0, 128,   0,   0,   0,   0, 
-      2, 255, 255,  76,   0,   0, 
-      0,  52,   0,   0,   0,   1, 
-      0,  40,   0,   0,   0,  52, 
-      0,   0,   0,  52,   0,   1, 
-      0,  36,   0,   0,   0,  52, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      2, 255, 255,  31,   0,   0, 
-      2,   0,   0,   0, 128,   0, 
-      0,   3, 176,  31,   0,   0, 
-      2,   0,   0,   0, 144,   0, 
-      8,  15, 160,  66,   0,   0, 
-      3,   0,   0,  15, 128,   0, 
-      0, 228, 176,   0,   8, 228, 
-    160,   5,   0,   0,   3,   0, 
-      0,  15, 128,   0,   0, 228, 
-    128,   0,   0,   0, 160,   1, 
-      0,   0,   2,   0,   8,  15, 
-    128,   0,   0, 228, 128, 255, 
-    255,   0,   0,  83,  72,  68, 
-     82, 156,   0,   0,   0,  64, 
-      0,   0,   0,  39,   0,   0, 
-      0,  89,   0,   0,   4,  70, 
-    142,  32,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,  90, 
-      0,   0,   3,   0,  96,  16, 
-      0,   0,   0,   0,   0,  88, 
-     24,   0,   4,   0, 112,  16, 
-      0,   0,   0,   0,   0,  85, 
-     85,   0,   0,  98,  16,   0, 
-      3,  50,  16,  16,   0,   1, 
-      0,   0,   0, 101,   0,   0, 
-      3, 242,  32,  16,   0,   0, 
-      0,   0,   0, 104,   0,   0, 
-      2,   1,   0,   0,   0,  69, 
-      0,   0,   9, 242,   0,  16, 
-      0,   0,   0,   0,   0,  70, 
-     16,  16,   0,   1,   0,   0, 
-      0,  70, 126,  16,   0,   0, 
-      0,   0,   0,   0,  96,  16, 
-      0,   0,   0,   0,   0,  56, 
-      0,   0,   8, 242,  32,  16, 
-      0,   0,   0,   0,   0,  70, 
-     14,  16,   0,   0,   0,   0, 
-      0,   6, 128,  32,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0,  62,   0,   0,   1,  83, 
-     84,  65,  84, 116,   0,   0, 
-      0,   3,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  82,  68,  69, 
-     70, 188,   1,   0,   0,   1, 
-      0,   0,   0, 164,   0,   0, 
-      0,   3,   0,   0,   0,  28, 
-      0,   0,   0,   0,   4, 255, 
-    255,   0,   1,   0,   0, 136, 
-      1,   0,   0, 124,   0,   0, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0, 150, 
-      0,   0,   0,   2,   0,   0, 
-      0,   5,   0,   0,   0,   4, 
-      0,   0,   0, 255, 255, 255, 
-    255,   0,   0,   0,   0,   1, 
-      0,   0,   0,  12,   0,   0, 
-      0, 155,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,  76,  97, 121, 
-    101, 114,  84, 101, 120, 116, 
-    117, 114, 101,  83,  97, 109, 
-    112, 108, 101, 114,  76, 105, 
-    110, 101,  97, 114,   0, 116, 
-     82,  71,  66,   0,  80, 101, 
-    114,  76,  97, 121, 101, 114, 
-      0, 155,   0,   0,   0,   4, 
-      0,   0,   0, 188,   0,   0, 
-      0, 112,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  28,   1,   0,   0,   0, 
-      0,   0,   0,  16,   0,   0, 
-      0,   0,   0,   0,   0,  44, 
-      1,   0,   0,   0,   0,   0, 
-      0,  60,   1,   0,   0,  16, 
-      0,   0,   0,  16,   0,   0, 
-      0,   0,   0,   0,   0,  44, 
-      1,   0,   0,   0,   0,   0, 
-      0,  71,   1,   0,   0,  32, 
-      0,   0,   0,   4,   0,   0, 
-      0,   2,   0,   0,   0,  88, 
-      1,   0,   0,   0,   0,   0, 
-      0, 104,   1,   0,   0,  48, 
-      0,   0,   0,  64,   0,   0, 
-      0,   0,   0,   0,   0, 120, 
-      1,   0,   0,   0,   0,   0, 
-      0, 118,  84, 101, 120, 116, 
-    117, 114, 101,  67, 111, 111, 
-    114, 100, 115,   0, 171,   1, 
-      0,   3,   0,   1,   0,   4, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 118,  76,  97, 
-    121, 101, 114,  81, 117,  97, 
-    100,   0, 102,  76,  97, 121, 
-    101, 114,  79, 112,  97,  99, 
-    105, 116, 121,   0, 171, 171, 
-    171,   0,   0,   3,   0,   1, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 109, 
-     76,  97, 121, 101, 114,  84, 
-    114,  97, 110, 115, 102, 111, 
-    114, 109,   0,   3,   0,   3, 
-      0,   4,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  77, 105,  99, 114, 111, 
-    115, 111, 102, 116,  32,  40, 
-     82,  41,  32,  72,  76,  83, 
-     76,  32,  83, 104,  97, 100, 
-    101, 114,  32,  67, 111, 109, 
-    112, 105, 108, 101, 114,  32, 
-     57,  46,  50,  55,  46,  57, 
-     53,  50,  46,  51,  48,  50, 
-     50,   0, 171, 171, 171,  73, 
-     83,  71,  78,  80,   0,   0, 
-      0,   2,   0,   0,   0,   8, 
-      0,   0,   0,  56,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,  15, 
-      0,   0,   0,  68,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   1,   0,   0,   0,   3, 
-      3,   0,   0,  83,  86,  95, 
-     80, 111, 115, 105, 116, 105, 
-    111, 110,   0,  84,  69,  88, 
-     67,  79,  79,  82,  68,   0, 
-    171, 171, 171,  79,  83,  71, 
-     78,  44,   0,   0,   0,   1, 
-      0,   0,   0,   8,   0,   0, 
-      0,  32,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,  15,   0,   0, 
-      0,  83,  86,  95,  84,  97, 
-    114, 103, 101, 116,   0, 171, 
-    171, 157,  46,   0,   0,   0, 
-      0,   0,   0,  82, 101, 110, 
-    100, 101, 114,  82,  71,  66, 
-     65,  76,  97, 121, 101, 114, 
-     80, 114, 101, 109, 117, 108, 
-     80, 111, 105, 110, 116,   0, 
-      4,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   3,   0, 
-      0,   0, 255, 255, 255, 255, 
-     24,   7,   0,   0,  68,  88, 
-     66,  67, 254, 249,  65, 252, 
-     64,  46, 192, 119,  73, 197, 
-    161, 234,  24,   1, 194, 131, 
-      1,   0,   0,   0,  24,   7, 
-      0,   0,   6,   0,   0,   0, 
-     56,   0,   0,   0, 164,   1, 
-      0,   0, 148,   3,   0,   0, 
-     16,   4,   0,   0, 140,   6, 
-      0,   0, 192,   6,   0,   0, 
-     65, 111, 110,  57, 100,   1, 
-      0,   0, 100,   1,   0,   0, 
-      0,   2, 254, 255,   0,   1, 
-      0,   0, 100,   0,   0,   0, 
-      5,   0,  36,   0,   0,   0, 
-     96,   0,   0,   0,  96,   0, 
-      0,   0,  36,   0,   1,   0, 
-     96,   0,   0,   0,   0,   0, 
-      2,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   3,   0, 
-      2,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,   6,   0, 
-      1,   0,   5,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      1,   0,   6,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-      4,   0,   7,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   2, 254, 255,  31,   0, 
-      0,   2,   5,   0,   0, 128, 
-      0,   0,  15, 144,   4,   0, 
-      0,   4,   0,   0,   3, 224, 
-      0,   0, 228, 144,   1,   0, 
-    238, 160,   1,   0, 228, 160, 
-      4,   0,   0,   4,   0,   0, 
-      1, 128,   0,   0,  85, 144, 
-      2,   0, 255, 160,   2,   0, 
-     85, 160,   5,   0,   0,   3, 
-      0,   0,  15, 128,   0,   0, 
-      0, 128,   4,   0, 228, 160, 
-      4,   0,   0,   4,   1,   0, 
-      1, 128,   0,   0,   0, 144, 
-      2,   0, 170, 160,   2,   0, 
-      0, 160,   4,   0,   0,   4, 
-      0,   0,  15, 128,   3,   0, 
-    228, 160,   1,   0,   0, 128, 
-      0,   0, 228, 128,   2,   0, 
-      0,   3,   0,   0,  15, 128, 
-      0,   0, 228, 128,   5,   0, 
-    228, 160,   2,   0,   0,   3, 
-      0,   0,  15, 128,   0,   0, 
-    228, 128,   6,   0, 228, 161, 
-      5,   0,   0,   3,   1,   0, 
-     15, 128,   0,   0,  85, 128, 
-      8,   0, 228, 160,   4,   0, 
-      0,   4,   1,   0,  15, 128, 
-      7,   0, 228, 160,   0,   0, 
-      0, 128,   1,   0, 228, 128, 
-      4,   0,   0,   4,   1,   0, 
-     15, 128,   9,   0, 228, 160, 
-      0,   0, 170, 128,   1,   0, 
-    228, 128,   4,   0,   0,   4, 
-      0,   0,  15, 128,  10,   0, 
-    228, 160,   0,   0, 255, 128, 
-      1,   0, 228, 128,   4,   0, 
-      0,   4,   0,   0,   3, 192, 
-      0,   0, 255, 128,   0,   0, 
-    228, 160,   0,   0, 228, 128, 
-      1,   0,   0,   2,   0,   0, 
-     12, 192,   0,   0, 228, 128, 
-    255, 255,   0,   0,  83,  72, 
-     68,  82, 232,   1,   0,   0, 
-     64,   0,   1,   0, 122,   0, 
-      0,   0,  89,   0,   0,   4, 
-     70, 142,  32,   0,   0,   0, 
-      0,   0,   7,   0,   0,   0, 
-     89,   0,   0,   4,  70, 142, 
-     32,   0,   1,   0,   0,   0, 
-      1,   0,   0,   0,  89,   0, 
-      0,   4,  70, 142,  32,   0, 
-      2,   0,   0,   0,   4,   0, 
-      0,   0,  95,   0,   0,   3, 
-     50,  16,  16,   0,   0,   0, 
-      0,   0, 103,   0,   0,   4, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-    101,   0,   0,   3,  50,  32, 
-     16,   0,   1,   0,   0,   0, 
-    104,   0,   0,   2,   2,   0, 
-      0,   0,  50,   0,   0,  11, 
-     50,   0,  16,   0,   0,   0, 
-      0,   0,  70,  16,  16,   0, 
-      0,   0,   0,   0, 230, 138, 
-     32,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,  70, 128, 
-     32,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,  56,   0, 
-      0,   8, 242,   0,  16,   0, 
-      1,   0,   0,   0,  86,   5, 
-     16,   0,   0,   0,   0,   0, 
-     70, 142,  32,   0,   0,   0, 
-      0,   0,   4,   0,   0,   0, 
-     50,   0,   0,  10, 242,   0, 
-     16,   0,   0,   0,   0,   0, 
-     70, 142,  32,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      6,   0,  16,   0,   0,   0, 
-      0,   0,  70,  14,  16,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   8, 242,   0,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
-     16,   0,   0,   0,   0,   0, 
-     70, 142,  32,   0,   0,   0, 
-      0,   0,   6,   0,   0,   0, 
-      0,   0,   0,   9, 242,   0, 
-     16,   0,   0,   0,   0,   0, 
-     70,  14,  16,   0,   0,   0, 
-      0,   0,  70, 142,  32, 128, 
-     65,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-     56,   0,   0,   8, 242,   0, 
-     16,   0,   1,   0,   0,   0, 
-     86,   5,  16,   0,   0,   0, 
-      0,   0,  70, 142,  32,   0, 
-      2,   0,   0,   0,   1,   0, 
-      0,   0,  50,   0,   0,  10, 
-    242,   0,  16,   0,   1,   0, 
-      0,   0,  70, 142,  32,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,   0,   6,   0,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
-     16,   0,   1,   0,   0,   0, 
-     50,   0,   0,  10, 242,   0, 
-     16,   0,   1,   0,   0,   0, 
-     70, 142,  32,   0,   2,   0, 
-      0,   0,   2,   0,   0,   0, 
-    166,  10,  16,   0,   0,   0, 
-      0,   0,  70,  14,  16,   0, 
-      1,   0,   0,   0,  50,   0, 
-      0,  10, 242,  32,  16,   0, 
-      0,   0,   0,   0,  70, 142, 
-     32,   0,   2,   0,   0,   0, 
-      3,   0,   0,   0, 246,  15, 
-     16,   0,   0,   0,   0,   0, 
-     70,  14,  16,   0,   1,   0, 
-      0,   0,  50,   0,   0,  11, 
-     50,  32,  16,   0,   1,   0, 
-      0,   0,  70,  16,  16,   0, 
-      0,   0,   0,   0, 230, 138, 
-     32,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  70, 128, 
-     32,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  62,   0, 
-      0,   1,  83,  84,  65,  84, 
-    116,   0,   0,   0,  11,   0, 
-      0,   0,   2,   0,   0,   0, 
-      0,   0,   0,   0,   3,   0, 
-      0,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     82,  68,  69,  70, 116,   2, 
-      0,   0,   3,   0,   0,   0, 
-    168,   0,   0,   0,   3,   0, 
-      0,   0,  28,   0,   0,   0, 
-      0,   4, 254, 255,   0,   1, 
-      0,   0,  64,   2,   0,   0, 
-    124,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0, 133,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0, 152,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      2,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-     80, 101, 114,  76,  97, 121, 
-    101, 114,   0,  80, 101, 114, 
-     79,  99,  99,  97, 115, 105, 
-    111, 110,  97, 108,  76,  97, 
-    121, 101, 114,   0,  80, 101, 
-    114,  76,  97, 121, 101, 114, 
-     77,  97, 110,  97, 103, 101, 
-    114,   0, 124,   0,   0,   0, 
-      4,   0,   0,   0, 240,   0, 
-      0,   0, 112,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 133,   0,   0,   0, 
-      2,   0,   0,   0, 188,   1, 
-      0,   0,  32,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 152,   0,   0,   0, 
-      1,   0,   0,   0,  28,   2, 
-      0,   0,  64,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  80,   1,   0,   0, 
-      0,   0,   0,   0,  16,   0, 
-      0,   0,   2,   0,   0,   0, 
-     96,   1,   0,   0,   0,   0, 
-      0,   0, 112,   1,   0,   0, 
-     16,   0,   0,   0,  16,   0, 
-      0,   0,   2,   0,   0,   0, 
-     96,   1,   0,   0,   0,   0, 
-      0,   0, 123,   1,   0,   0, 
-     32,   0,   0,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-    140,   1,   0,   0,   0,   0, 
-      0,   0, 156,   1,   0,   0, 
-     48,   0,   0,   0,  64,   0, 
-      0,   0,   2,   0,   0,   0, 
-    172,   1,   0,   0,   0,   0, 
-      0,   0, 118,  84, 101, 120, 
-    116, 117, 114, 101,  67, 111, 
-    111, 114, 100, 115,   0, 171, 
-      1,   0,   3,   0,   1,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 118,  76, 
-     97, 121, 101, 114,  81, 117, 
-     97, 100,   0, 102,  76,  97, 
-    121, 101, 114,  79, 112,  97, 
-     99, 105, 116, 121,   0, 171, 
-    171, 171,   0,   0,   3,   0, 
-      1,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    109,  76,  97, 121, 101, 114, 
-     84, 114,  97, 110, 115, 102, 
-    111, 114, 109,   0,   3,   0, 
-      3,   0,   4,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 236,   1,   0,   0, 
-      0,   0,   0,   0,  16,   0, 
-      0,   0,   2,   0,   0,   0, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0,  16,   2,   0,   0, 
-     16,   0,   0,   0,  16,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0, 118,  82, 101, 110, 
-    100, 101, 114,  84,  97, 114, 
-    103, 101, 116,  79, 102, 102, 
-    115, 101, 116,   0,   1,   0, 
-      3,   0,   1,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 102,  76,  97, 121, 
-    101, 114,  67, 111, 108, 111, 
-    114,   0,  52,   2,   0,   0, 
-      0,   0,   0,   0,  64,   0, 
-      0,   0,   2,   0,   0,   0, 
-    172,   1,   0,   0,   0,   0, 
-      0,   0, 109,  80, 114, 111, 
-    106, 101,  99, 116, 105, 111, 
-    110,   0,  77, 105,  99, 114, 
-    111, 115, 111, 102, 116,  32, 
-     40,  82,  41,  32,  72,  76, 
-     83,  76,  32,  83, 104,  97, 
-    100, 101, 114,  32,  67, 111, 
-    109, 112, 105, 108, 101, 114, 
-     32,  57,  46,  50,  55,  46, 
-     57,  53,  50,  46,  51,  48, 
-     50,  50,   0, 171, 171, 171, 
-     73,  83,  71,  78,  44,   0, 
-      0,   0,   1,   0,   0,   0, 
-      8,   0,   0,   0,  32,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   3,   0,   0,  80,  79, 
-     83,  73,  84,  73,  79,  78, 
-      0, 171, 171, 171,  79,  83, 
-     71,  78,  80,   0,   0,   0, 
-      2,   0,   0,   0,   8,   0, 
-      0,   0,  56,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,  15,   0, 
-      0,   0,  68,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      1,   0,   0,   0,   3,  12, 
-      0,   0,  83,  86,  95,  80, 
-    111, 115, 105, 116, 105, 111, 
-    110,   0,  84,  69,  88,  67, 
-     79,  79,  82,  68,   0, 171, 
-    171, 171,  36,  51,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   2,   0,   0,   0, 
-      0,   0,   0,   0,  48,   4, 
-      0,   0,  68,  88,  66,  67, 
-     15,  77, 243, 211, 185,  20, 
-    200, 151,  80,  95, 178, 168, 
-    167, 229, 221,  45,   1,   0, 
-      0,   0,  48,   4,   0,   0, 
-      6,   0,   0,   0,  56,   0, 
-      0,   0, 192,   0,   0,   0, 
-    100,   1,   0,   0, 224,   1, 
-      0,   0, 164,   3,   0,   0, 
-    252,   3,   0,   0,  65, 111, 
-    110,  57, 128,   0,   0,   0, 
-    128,   0,   0,   0,   0,   2, 
-    255, 255,  76,   0,   0,   0, 
-     52,   0,   0,   0,   1,   0, 
-     40,   0,   0,   0,  52,   0, 
-      0,   0,  52,   0,   1,   0, 
-     36,   0,   0,   0,  52,   0, 
-      0,   0,   0,   0,   0,   0, 
-      2,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   1,   2, 
-    255, 255,  31,   0,   0,   2, 
-      0,   0,   0, 128,   0,   0, 
-      3, 176,  31,   0,   0,   2, 
-      0,   0,   0, 144,   0,   8, 
-     15, 160,  66,   0,   0,   3, 
-      0,   0,  15, 128,   0,   0, 
-    228, 176,   0,   8, 228, 160, 
-      5,   0,   0,   3,   0,   0, 
-     15, 128,   0,   0, 228, 128, 
-      0,   0,   0, 160,   1,   0, 
-      0,   2,   0,   8,  15, 128, 
-      0,   0, 228, 128, 255, 255, 
-      0,   0,  83,  72,  68,  82, 
-    156,   0,   0,   0,  64,   0, 
-      0,   0,  39,   0,   0,   0, 
-     89,   0,   0,   4,  70, 142, 
-     32,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,  90,   0, 
-      0,   3,   0,  96,  16,   0, 
-      0,   0,   0,   0,  88,  24, 
-      0,   4,   0, 112,  16,   0, 
-      0,   0,   0,   0,  85,  85, 
-      0,   0,  98,  16,   0,   3, 
-     50,  16,  16,   0,   1,   0, 
-      0,   0, 101,   0,   0,   3, 
-    242,  32,  16,   0,   0,   0, 
-      0,   0, 104,   0,   0,   2, 
-      1,   0,   0,   0,  69,   0, 
-      0,   9, 242,   0,  16,   0, 
-      0,   0,   0,   0,  70,  16, 
-     16,   0,   1,   0,   0,   0, 
-     70, 126,  16,   0,   0,   0, 
-      0,   0,   0,  96,  16,   0, 
-      0,   0,   0,   0,  56,   0, 
-      0,   8, 242,  32,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
-     16,   0,   0,   0,   0,   0, 
-      6, 128,  32,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-     62,   0,   0,   1,  83,  84, 
-     65,  84, 116,   0,   0,   0, 
-      3,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      2,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  82,  68,  69,  70, 
-    188,   1,   0,   0,   1,   0, 
-      0,   0, 164,   0,   0,   0, 
-      3,   0,   0,   0,  28,   0, 
-      0,   0,   0,   4, 255, 255, 
-      0,   1,   0,   0, 136,   1, 
-      0,   0, 124,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0, 149,   0, 
-      0,   0,   2,   0,   0,   0, 
-      5,   0,   0,   0,   4,   0, 
-      0,   0, 255, 255, 255, 255, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,  12,   0,   0,   0, 
-    154,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,  76,  97, 121, 101, 
-    114,  84, 101, 120, 116, 117, 
-    114, 101,  83,  97, 109, 112, 
-    108, 101, 114,  80, 111, 105, 
-    110, 116,   0, 116,  82,  71, 
-     66,   0,  80, 101, 114,  76, 
-     97, 121, 101, 114,   0, 171, 
-    154,   0,   0,   0,   4,   0, 
-      0,   0, 188,   0,   0,   0, 
-    112,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     28,   1,   0,   0,   0,   0, 
-      0,   0,  16,   0,   0,   0, 
-      0,   0,   0,   0,  44,   1, 
-      0,   0,   0,   0,   0,   0, 
-     60,   1,   0,   0,  16,   0, 
-      0,   0,  16,   0,   0,   0, 
-      0,   0,   0,   0,  44,   1, 
-      0,   0,   0,   0,   0,   0, 
-     71,   1,   0,   0,  32,   0, 
-      0,   0,   4,   0,   0,   0, 
-      2,   0,   0,   0,  88,   1, 
-      0,   0,   0,   0,   0,   0, 
-    104,   1,   0,   0,  48,   0, 
-      0,   0,  64,   0,   0,   0, 
-      0,   0,   0,   0, 120,   1, 
-      0,   0,   0,   0,   0,   0, 
-    118,  84, 101, 120, 116, 117, 
-    114, 101,  67, 111, 111, 114, 
-    100, 115,   0, 171,   1,   0, 
-      3,   0,   1,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 118,  76,  97, 121, 
-    101, 114,  81, 117,  97, 100, 
-      0, 102,  76,  97, 121, 101, 
-    114,  79, 112,  97,  99, 105, 
-    116, 121,   0, 171, 171, 171, 
-      0,   0,   3,   0,   1,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 109,  76, 
-     97, 121, 101, 114,  84, 114, 
-     97, 110, 115, 102, 111, 114, 
-    109,   0,   3,   0,   3,   0, 
-      4,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     77, 105,  99, 114, 111, 115, 
-    111, 102, 116,  32,  40,  82, 
-     41,  32,  72,  76,  83,  76, 
-     32,  83, 104,  97, 100, 101, 
-    114,  32,  67, 111, 109, 112, 
-    105, 108, 101, 114,  32,  57, 
-     46,  50,  55,  46,  57,  53, 
-     50,  46,  51,  48,  50,  50, 
-      0, 171, 171, 171,  73,  83, 
-     71,  78,  80,   0,   0,   0, 
-      2,   0,   0,   0,   8,   0, 
-      0,   0,  56,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,  15,   0, 
-      0,   0,  68,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      1,   0,   0,   0,   3,   3, 
-      0,   0,  83,  86,  95,  80, 
-    111, 115, 105, 116, 105, 111, 
-    110,   0,  84,  69,  88,  67, 
-     79,  79,  82,  68,   0, 171, 
-    171, 171,  79,  83,  71,  78, 
-     44,   0,   0,   0,   1,   0, 
-      0,   0,   8,   0,   0,   0, 
-     32,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,  15,   0,   0,   0, 
-     83,  86,  95,  84,  97, 114, 
-    103, 101, 116,   0, 171, 171, 
-     84,  58,   0,   0,   0,   0, 
-      0,   0,  82, 101, 110, 100, 
-    101, 114,  82,  71,  66,  65, 
-     76,  97, 121, 101, 114,  78, 
-    111, 110,  80, 114, 101, 109, 
-    117, 108,  80, 111, 105, 110, 
-    116,   0,   4,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      3,   0,   0,   0, 255, 255, 
-    255, 255,  24,   7,   0,   0, 
-     68,  88,  66,  67, 254, 249, 
-     65, 252,  64,  46, 192, 119, 
-     73, 197, 161, 234,  24,   1, 
-    194, 131,   1,   0,   0,   0, 
-     24,   7,   0,   0,   6,   0, 
-      0,   0,  56,   0,   0,   0, 
-    164,   1,   0,   0, 148,   3, 
-      0,   0,  16,   4,   0,   0, 
-    140,   6,   0,   0, 192,   6, 
-      0,   0,  65, 111, 110,  57, 
-    100,   1,   0,   0, 100,   1, 
-      0,   0,   0,   2, 254, 255, 
-      0,   1,   0,   0, 100,   0, 
-      0,   0,   5,   0,  36,   0, 
-      0,   0,  96,   0,   0,   0, 
-     96,   0,   0,   0,  36,   0, 
-      1,   0,  96,   0,   0,   0, 
-      0,   0,   2,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   2,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-      6,   0,   1,   0,   5,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   1,   0,   6,   0, 
-      0,   0,   0,   0,   2,   0, 
-      0,   0,   4,   0,   7,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   2, 254, 255, 
-     31,   0,   0,   2,   5,   0, 
-      0, 128,   0,   0,  15, 144, 
-      4,   0,   0,   4,   0,   0, 
-      3, 224,   0,   0, 228, 144, 
-      1,   0, 238, 160,   1,   0, 
-    228, 160,   4,   0,   0,   4, 
-      0,   0,   1, 128,   0,   0, 
-     85, 144,   2,   0, 255, 160, 
-      2,   0,  85, 160,   5,   0, 
-      0,   3,   0,   0,  15, 128, 
-      0,   0,   0, 128,   4,   0, 
-    228, 160,   4,   0,   0,   4, 
-      1,   0,   1, 128,   0,   0, 
-      0, 144,   2,   0, 170, 160, 
-      2,   0,   0, 160,   4,   0, 
-      0,   4,   0,   0,  15, 128, 
-      3,   0, 228, 160,   1,   0, 
-      0, 128,   0,   0, 228, 128, 
-      2,   0,   0,   3,   0,   0, 
-     15, 128,   0,   0, 228, 128, 
-      5,   0, 228, 160,   2,   0, 
-      0,   3,   0,   0,  15, 128, 
-      0,   0, 228, 128,   6,   0, 
-    228, 161,   5,   0,   0,   3, 
-      1,   0,  15, 128,   0,   0, 
-     85, 128,   8,   0, 228, 160, 
-      4,   0,   0,   4,   1,   0, 
-     15, 128,   7,   0, 228, 160, 
-      0,   0,   0, 128,   1,   0, 
-    228, 128,   4,   0,   0,   4, 
-      1,   0,  15, 128,   9,   0, 
-    228, 160,   0,   0, 170, 128, 
-      1,   0, 228, 128,   4,   0, 
-      0,   4,   0,   0,  15, 128, 
-     10,   0, 228, 160,   0,   0, 
-    255, 128,   1,   0, 228, 128, 
-      4,   0,   0,   4,   0,   0, 
-      3, 192,   0,   0, 255, 128, 
-      0,   0, 228, 160,   0,   0, 
-    228, 128,   1,   0,   0,   2, 
-      0,   0,  12, 192,   0,   0, 
-    228, 128, 255, 255,   0,   0, 
-     83,  72,  68,  82, 232,   1, 
-      0,   0,  64,   0,   1,   0, 
-    122,   0,   0,   0,  89,   0, 
-      0,   4,  70, 142,  32,   0, 
-      0,   0,   0,   0,   7,   0, 
-      0,   0,  89,   0,   0,   4, 
-     70, 142,  32,   0,   1,   0, 
-      0,   0,   1,   0,   0,   0, 
-     89,   0,   0,   4,  70, 142, 
-     32,   0,   2,   0,   0,   0, 
-      4,   0,   0,   0,  95,   0, 
-      0,   3,  50,  16,  16,   0, 
-      0,   0,   0,   0, 103,   0, 
-      0,   4, 242,  32,  16,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0, 101,   0,   0,   3, 
-     50,  32,  16,   0,   1,   0, 
-      0,   0, 104,   0,   0,   2, 
-      2,   0,   0,   0,  50,   0, 
-      0,  11,  50,   0,  16,   0, 
-      0,   0,   0,   0,  70,  16, 
-     16,   0,   0,   0,   0,   0, 
-    230, 138,  32,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-     70, 128,  32,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-     56,   0,   0,   8, 242,   0, 
-     16,   0,   1,   0,   0,   0, 
-     86,   5,  16,   0,   0,   0, 
-      0,   0,  70, 142,  32,   0, 
-      0,   0,   0,   0,   4,   0, 
-      0,   0,  50,   0,   0,  10, 
-    242,   0,  16,   0,   0,   0, 
-      0,   0,  70, 142,  32,   0, 
-      0,   0,   0,   0,   3,   0, 
-      0,   0,   6,   0,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
-     16,   0,   1,   0,   0,   0, 
-      0,   0,   0,   8, 242,   0, 
-     16,   0,   0,   0,   0,   0, 
-     70,  14,  16,   0,   0,   0, 
-      0,   0,  70, 142,  32,   0, 
-      0,   0,   0,   0,   6,   0, 
-      0,   0,   0,   0,   0,   9, 
-    242,   0,  16,   0,   0,   0, 
-      0,   0,  70,  14,  16,   0, 
-      0,   0,   0,   0,  70, 142, 
-     32, 128,  65,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,  56,   0,   0,   8, 
-    242,   0,  16,   0,   1,   0, 
-      0,   0,  86,   5,  16,   0, 
-      0,   0,   0,   0,  70, 142, 
-     32,   0,   2,   0,   0,   0, 
-      1,   0,   0,   0,  50,   0, 
-      0,  10, 242,   0,  16,   0, 
-      1,   0,   0,   0,  70, 142, 
-     32,   0,   2,   0,   0,   0, 
-      0,   0,   0,   0,   6,   0, 
-     16,   0,   0,   0,   0,   0, 
-     70,  14,  16,   0,   1,   0, 
-      0,   0,  50,   0,   0,  10, 
-    242,   0,  16,   0,   1,   0, 
-      0,   0,  70, 142,  32,   0, 
-      2,   0,   0,   0,   2,   0, 
-      0,   0, 166,  10,  16,   0, 
-      0,   0,   0,   0,  70,  14, 
-     16,   0,   1,   0,   0,   0, 
-     50,   0,   0,  10, 242,  32, 
-     16,   0,   0,   0,   0,   0, 
-     70, 142,  32,   0,   2,   0, 
-      0,   0,   3,   0,   0,   0, 
-    246,  15,  16,   0,   0,   0, 
-      0,   0,  70,  14,  16,   0, 
-      1,   0,   0,   0,  50,   0, 
-      0,  11,  50,  32,  16,   0, 
-      1,   0,   0,   0,  70,  16, 
-     16,   0,   0,   0,   0,   0, 
-    230, 138,  32,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     70, 128,  32,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-     62,   0,   0,   1,  83,  84, 
-     65,  84, 116,   0,   0,   0, 
-     11,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  82,  68,  69,  70, 
-    116,   2,   0,   0,   3,   0, 
-      0,   0, 168,   0,   0,   0, 
-      3,   0,   0,   0,  28,   0, 
-      0,   0,   0,   4, 254, 255, 
-      0,   1,   0,   0,  64,   2, 
-      0,   0, 124,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0, 133,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-    152,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,  80, 101, 114,  76, 
-     97, 121, 101, 114,   0,  80, 
-    101, 114,  79,  99,  99,  97, 
-    115, 105, 111, 110,  97, 108, 
-     76,  97, 121, 101, 114,   0, 
-     80, 101, 114,  76,  97, 121, 
-    101, 114,  77,  97, 110,  97, 
-    103, 101, 114,   0, 124,   0, 
-      0,   0,   4,   0,   0,   0, 
-    240,   0,   0,   0, 112,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 133,   0, 
-      0,   0,   2,   0,   0,   0, 
-    188,   1,   0,   0,  32,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 152,   0, 
-      0,   0,   1,   0,   0,   0, 
-     28,   2,   0,   0,  64,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  80,   1, 
-      0,   0,   0,   0,   0,   0, 
-     16,   0,   0,   0,   2,   0, 
-      0,   0,  96,   1,   0,   0, 
-      0,   0,   0,   0, 112,   1, 
-      0,   0,  16,   0,   0,   0, 
-     16,   0,   0,   0,   2,   0, 
-      0,   0,  96,   1,   0,   0, 
-      0,   0,   0,   0, 123,   1, 
-      0,   0,  32,   0,   0,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0, 140,   1,   0,   0, 
-      0,   0,   0,   0, 156,   1, 
-      0,   0,  48,   0,   0,   0, 
-     64,   0,   0,   0,   2,   0, 
-      0,   0, 172,   1,   0,   0, 
-      0,   0,   0,   0, 118,  84, 
-    101, 120, 116, 117, 114, 101, 
-     67, 111, 111, 114, 100, 115, 
-      0, 171,   1,   0,   3,   0, 
-      1,   0,   4,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    118,  76,  97, 121, 101, 114, 
-     81, 117,  97, 100,   0, 102, 
-     76,  97, 121, 101, 114,  79, 
-    112,  97,  99, 105, 116, 121, 
-      0, 171, 171, 171,   0,   0, 
-      3,   0,   1,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0, 109,  76,  97, 121, 
-    101, 114,  84, 114,  97, 110, 
-    115, 102, 111, 114, 109,   0, 
-      3,   0,   3,   0,   4,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 236,   1, 
-      0,   0,   0,   0,   0,   0, 
-     16,   0,   0,   0,   2,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0,   0,   0,   0,  16,   2, 
-      0,   0,  16,   0,   0,   0, 
-     16,   0,   0,   0,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0,   0,   0,   0, 118,  82, 
-    101, 110, 100, 101, 114,  84, 
-     97, 114, 103, 101, 116,  79, 
-    102, 102, 115, 101, 116,   0, 
-      1,   0,   3,   0,   1,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 102,  76, 
-     97, 121, 101, 114,  67, 111, 
-    108, 111, 114,   0,  52,   2, 
-      0,   0,   0,   0,   0,   0, 
-     64,   0,   0,   0,   2,   0, 
-      0,   0, 172,   1,   0,   0, 
-      0,   0,   0,   0, 109,  80, 
-    114, 111, 106, 101,  99, 116, 
-    105, 111, 110,   0,  77, 105, 
-     99, 114, 111, 115, 111, 102, 
-    116,  32,  40,  82,  41,  32, 
-     72,  76,  83,  76,  32,  83, 
-    104,  97, 100, 101, 114,  32, 
-     67, 111, 109, 112, 105, 108, 
-    101, 114,  32,  57,  46,  50, 
-     55,  46,  57,  53,  50,  46, 
-     51,  48,  50,  50,   0, 171, 
-    171, 171,  73,  83,  71,  78, 
-     44,   0,   0,   0,   1,   0, 
-      0,   0,   8,   0,   0,   0, 
-     32,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      3,   0,   0,   0,   0,   0, 
-      0,   0,   3,   3,   0,   0, 
-     80,  79,  83,  73,  84,  73, 
-     79,  78,   0, 171, 171, 171, 
-     79,  83,  71,  78,  80,   0, 
-      0,   0,   2,   0,   0,   0, 
-      8,   0,   0,   0,  56,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-     15,   0,   0,   0,  68,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   3,   0, 
-      0,   0,   1,   0,   0,   0, 
-      3,  12,   0,   0,  83,  86, 
-     95,  80, 111, 115, 105, 116, 
-    105, 111, 110,   0,  84,  69, 
-     88,  67,  79,  79,  82,  68, 
-      0, 171, 171, 171, 222,  62, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0,   0, 
-     48,   4,   0,   0,  68,  88, 
-     66,  67,  15,  77, 243, 211, 
-    185,  20, 200, 151,  80,  95, 
-    178, 168, 167, 229, 221,  45, 
-      1,   0,   0,   0,  48,   4, 
-      0,   0,   6,   0,   0,   0, 
-     56,   0,   0,   0, 192,   0, 
-      0,   0, 100,   1,   0,   0, 
-    224,   1,   0,   0, 164,   3, 
-      0,   0, 252,   3,   0,   0, 
-     65, 111, 110,  57, 128,   0, 
-      0,   0, 128,   0,   0,   0, 
-      0,   2, 255, 255,  76,   0, 
-      0,   0,  52,   0,   0,   0, 
-      1,   0,  40,   0,   0,   0, 
-     52,   0,   0,   0,  52,   0, 
-      1,   0,  36,   0,   0,   0, 
-     52,   0,   0,   0,   0,   0, 
-      0,   0,   2,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   2, 255, 255,  31,   0, 
-      0,   2,   0,   0,   0, 128, 
-      0,   0,   3, 176,  31,   0, 
-      0,   2,   0,   0,   0, 144, 
-      0,   8,  15, 160,  66,   0, 
-      0,   3,   0,   0,  15, 128, 
-      0,   0, 228, 176,   0,   8, 
-    228, 160,   5,   0,   0,   3, 
-      0,   0,  15, 128,   0,   0, 
-    228, 128,   0,   0,   0, 160, 
-      1,   0,   0,   2,   0,   8, 
-     15, 128,   0,   0, 228, 128, 
-    255, 255,   0,   0,  83,  72, 
-     68,  82, 156,   0,   0,   0, 
-     64,   0,   0,   0,  39,   0, 
-      0,   0,  89,   0,   0,   4, 
-     70, 142,  32,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-     90,   0,   0,   3,   0,  96, 
-     16,   0,   0,   0,   0,   0, 
-     88,  24,   0,   4,   0, 112, 
-     16,   0,   0,   0,   0,   0, 
-     85,  85,   0,   0,  98,  16, 
-      0,   3,  50,  16,  16,   0, 
-      1,   0,   0,   0, 101,   0, 
-      0,   3, 242,  32,  16,   0, 
-      0,   0,   0,   0, 104,   0, 
-      0,   2,   1,   0,   0,   0, 
-     69,   0,   0,   9, 242,   0, 
-     16,   0,   0,   0,   0,   0, 
-     70,  16,  16,   0,   1,   0, 
-      0,   0,  70, 126,  16,   0, 
-      0,   0,   0,   0,   0,  96, 
-     16,   0,   0,   0,   0,   0, 
-     56,   0,   0,   8, 242,  32, 
-     16,   0,   0,   0,   0,   0, 
-     70,  14,  16,   0,   0,   0, 
-      0,   0,   6, 128,  32,   0, 
-      0,   0,   0,   0,   2,   0, 
-      0,   0,  62,   0,   0,   1, 
-     83,  84,  65,  84, 116,   0, 
-      0,   0,   3,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   2,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,  82,  68, 
-     69,  70, 188,   1,   0,   0, 
-      1,   0,   0,   0, 164,   0, 
-      0,   0,   3,   0,   0,   0, 
-     28,   0,   0,   0,   0,   4, 
-    255, 255,   0,   1,   0,   0, 
-    136,   1,   0,   0, 124,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   1,   0, 
-      0,   0,   0,   0,   0,   0, 
-    149,   0,   0,   0,   2,   0, 
-      0,   0,   5,   0,   0,   0, 
-      4,   0,   0,   0, 255, 255, 
-    255, 255,   0,   0,   0,   0, 
-      1,   0,   0,   0,  12,   0, 
-      0,   0, 154,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,  76,  97, 
-    121, 101, 114,  84, 101, 120, 
-    116, 117, 114, 101,  83,  97, 
-    109, 112, 108, 101, 114,  80, 
-    111, 105, 110, 116,   0, 116, 
-     82,  71,  66,   0,  80, 101, 
-    114,  76,  97, 121, 101, 114, 
-      0, 171, 154,   0,   0,   0, 
-      4,   0,   0,   0, 188,   0, 
-      0,   0, 112,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  28,   1,   0,   0, 
-      0,   0,   0,   0,  16,   0, 
-      0,   0,   0,   0,   0,   0, 
-     44,   1,   0,   0,   0,   0, 
-      0,   0,  60,   1,   0,   0, 
-     16,   0,   0,   0,  16,   0, 
-      0,   0,   0,   0,   0,   0, 
-     44,   1,   0,   0,   0,   0, 
-      0,   0,  71,   1,   0,   0, 
-     32,   0,   0,   0,   4,   0, 
-      0,   0,   2,   0,   0,   0, 
-     88,   1,   0,   0,   0,   0, 
-      0,   0, 104,   1,   0,   0, 
-     48,   0,   0,   0,  64,   0, 
-      0,   0,   0,   0,   0,   0, 
-    120,   1,   0,   0,   0,   0, 
-      0,   0, 118,  84, 101, 120, 
-    116, 117, 114, 101,  67, 111, 
-    111, 114, 100, 115,   0, 171, 
-      1,   0,   3,   0,   1,   0, 
-      4,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0, 118,  76, 
-     97, 121, 101, 114,  81, 117, 
-     97, 100,   0, 102,  76,  97, 
-    121, 101, 114,  79, 112,  97, 
-     99, 105, 116, 121,   0, 171, 
-    171, 171,   0,   0,   3,   0, 
-      1,   0,   1,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-    109,  76,  97, 121, 101, 114, 
-     84, 114,  97, 110, 115, 102, 
-    111, 114, 109,   0,   3,   0, 
-      3,   0,   4,   0,   4,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,  77, 105,  99, 114, 
-    111, 115, 111, 102, 116,  32, 
-     40,  82,  41,  32,  72,  76, 
-     83,  76,  32,  83, 104,  97, 
-    100, 101, 114,  32,  67, 111, 
-    109, 112, 105, 108, 101, 114, 
-     32,  57,  46,  50,  55,  46, 
-     57,  53,  50,  46,  51,  48, 
-     50,  50,   0, 171, 171, 171, 
-     73,  83,  71,  78,  80,   0, 
-      0,   0,   2,   0,   0,   0, 
-      8,   0,   0,   0,  56,   0, 
-      0,   0,   0,   0,   0,   0, 
-      1,   0,   0,   0,   3,   0, 
-      0,   0,   0,   0,   0,   0, 
-     15,   0,   0,   0,  68,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   3,   0, 
-      0,   0,   1,   0,   0,   0, 
-      3,   3,   0,   0,  83,  86, 
-     95,  80, 111, 115, 105, 116, 
-    105, 111, 110,   0,  84,  69, 
-     88,  67,  79,  79,  82,  68, 
-      0, 171, 171, 171,  79,  83, 
-     71,  78,  44,   0,   0,   0, 
-      1,   0,   0,   0,   8,   0, 
-      0,   0,  32,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   3,   0,   0,   0, 
-      0,   0,   0,   0,  15,   0, 
-      0,   0,  83,  86,  95,  84, 
-     97, 114, 103, 101, 116,   0, 
-    171, 171,  14,  70,   0,   0, 
-      0,   0,   0,   0,  82, 101, 
-    110, 100, 101, 114,  89,  67, 
-     98,  67, 114,  76,  97, 121, 
-    101, 114,   0,   4,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   3,   0,   0,   0, 255, 
-    255, 255, 255,  24,   7,   0, 
-      0,  68,  88,  66,  67, 254, 
-    249,  65, 252,  64,  46, 192, 
-    119,  73, 197, 161, 234,  24, 
-      1, 194, 131,   1,   0,   0, 
-      0,  24,   7,   0,   0,   6, 
-      0,   0,   0,  56,   0,   0, 
-      0, 164,   1,   0,   0, 148, 
-      3,   0,   0,  16,   4,   0, 
-      0, 140,   6,   0,   0, 192, 
-      6,   0,   0,  65, 111, 110, 
-     57, 100,   1,   0,   0, 100, 
-      1,   0,   0,   0,   2, 254, 
-    255,   0,   1,   0,   0, 100, 
-      0,   0,   0,   5,   0,  36, 
-      0,   0,   0,  96,   0,   0, 
-      0,  96,   0,   0,   0,  36, 
-      0,   1,   0,  96,   0,   0, 
-      0,   0,   0,   2,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   2,   0,   3, 
-      0,   0,   0,   0,   0,   0, 
-      0,   6,   0,   1,   0,   5, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   1,   0,   6, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0,   4,   0,   7, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   1,   2, 254, 
-    255,  31,   0,   0,   2,   5, 
-      0,   0, 128,   0,   0,  15, 
-    144,   4,   0,   0,   4,   0, 
-      0,   3, 224,   0,   0, 228, 
-    144,   1,   0, 238, 160,   1, 
-      0, 228, 160,   4,   0,   0, 
-      4,   0,   0,   1, 128,   0, 
-      0,  85, 144,   2,   0, 255, 
-    160,   2,   0,  85, 160,   5, 
-      0,   0,   3,   0,   0,  15, 
-    128,   0,   0,   0, 128,   4, 
-      0, 228, 160,   4,   0,   0, 
-      4,   1,   0,   1, 128,   0, 
-      0,   0, 144,   2,   0, 170, 
-    160,   2,   0,   0, 160,   4, 
-      0,   0,   4,   0,   0,  15, 
-    128,   3,   0, 228, 160,   1, 
-      0,   0, 128,   0,   0, 228, 
-    128,   2,   0,   0,   3,   0, 
-      0,  15, 128,   0,   0, 228, 
-    128,   5,   0, 228, 160,   2, 
-      0,   0,   3,   0,   0,  15, 
-    128,   0,   0, 228, 128,   6, 
-      0, 228, 161,   5,   0,   0, 
-      3,   1,   0,  15, 128,   0, 
-      0,  85, 128,   8,   0, 228, 
-    160,   4,   0,   0,   4,   1, 
-      0,  15, 128,   7,   0, 228, 
-    160,   0,   0,   0, 128,   1, 
-      0, 228, 128,   4,   0,   0, 
-      4,   1,   0,  15, 128,   9, 
-      0, 228, 160,   0,   0, 170, 
-    128,   1,   0, 228, 128,   4, 
-      0,   0,   4,   0,   0,  15, 
-    128,  10,   0, 228, 160,   0, 
-      0, 255, 128,   1,   0, 228, 
-    128,   4,   0,   0,   4,   0, 
-      0,   3, 192,   0,   0, 255, 
-    128,   0,   0, 228, 160,   0, 
-      0, 228, 128,   1,   0,   0, 
-      2,   0,   0,  12, 192,   0, 
-      0, 228, 128, 255, 255,   0, 
-      0,  83,  72,  68,  82, 232, 
-      1,   0,   0,  64,   0,   1, 
-      0, 122,   0,   0,   0,  89, 
-      0,   0,   4,  70, 142,  32, 
-      0,   0,   0,   0,   0,   7, 
-      0,   0,   0,  89,   0,   0, 
-      4,  70, 142,  32,   0,   1, 
-      0,   0,   0,   1,   0,   0, 
-      0,  89,   0,   0,   4,  70, 
-    142,  32,   0,   2,   0,   0, 
-      0,   4,   0,   0,   0,  95, 
-      0,   0,   3,  50,  16,  16, 
-      0,   0,   0,   0,   0, 103, 
-      0,   0,   4, 242,  32,  16, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 101,   0,   0, 
-      3,  50,  32,  16,   0,   1, 
-      0,   0,   0, 104,   0,   0, 
-      2,   2,   0,   0,   0,  50, 
-      0,   0,  11,  50,   0,  16, 
-      0,   0,   0,   0,   0,  70, 
-     16,  16,   0,   0,   0,   0, 
-      0, 230, 138,  32,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  70, 128,  32,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  56,   0,   0,   8, 242, 
-      0,  16,   0,   1,   0,   0, 
-      0,  86,   5,  16,   0,   0, 
-      0,   0,   0,  70, 142,  32, 
-      0,   0,   0,   0,   0,   4, 
-      0,   0,   0,  50,   0,   0, 
-     10, 242,   0,  16,   0,   0, 
-      0,   0,   0,  70, 142,  32, 
-      0,   0,   0,   0,   0,   3, 
-      0,   0,   0,   6,   0,  16, 
-      0,   0,   0,   0,   0,  70, 
-     14,  16,   0,   1,   0,   0, 
-      0,   0,   0,   0,   8, 242, 
-      0,  16,   0,   0,   0,   0, 
-      0,  70,  14,  16,   0,   0, 
-      0,   0,   0,  70, 142,  32, 
-      0,   0,   0,   0,   0,   6, 
-      0,   0,   0,   0,   0,   0, 
-      9, 242,   0,  16,   0,   0, 
-      0,   0,   0,  70,  14,  16, 
-      0,   0,   0,   0,   0,  70, 
-    142,  32, 128,  65,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,  56,   0,   0, 
-      8, 242,   0,  16,   0,   1, 
-      0,   0,   0,  86,   5,  16, 
-      0,   0,   0,   0,   0,  70, 
-    142,  32,   0,   2,   0,   0, 
-      0,   1,   0,   0,   0,  50, 
-      0,   0,  10, 242,   0,  16, 
-      0,   1,   0,   0,   0,  70, 
-    142,  32,   0,   2,   0,   0, 
-      0,   0,   0,   0,   0,   6, 
-      0,  16,   0,   0,   0,   0, 
-      0,  70,  14,  16,   0,   1, 
-      0,   0,   0,  50,   0,   0, 
-     10, 242,   0,  16,   0,   1, 
-      0,   0,   0,  70, 142,  32, 
-      0,   2,   0,   0,   0,   2, 
-      0,   0,   0, 166,  10,  16, 
-      0,   0,   0,   0,   0,  70, 
-     14,  16,   0,   1,   0,   0, 
-      0,  50,   0,   0,  10, 242, 
-     32,  16,   0,   0,   0,   0, 
-      0,  70, 142,  32,   0,   2, 
-      0,   0,   0,   3,   0,   0, 
-      0, 246,  15,  16,   0,   0, 
-      0,   0,   0,  70,  14,  16, 
-      0,   1,   0,   0,   0,  50, 
-      0,   0,  11,  50,  32,  16, 
-      0,   1,   0,   0,   0,  70, 
-     16,  16,   0,   0,   0,   0, 
-      0, 230, 138,  32,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  70, 128,  32,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  62,   0,   0,   1,  83, 
-     84,  65,  84, 116,   0,   0, 
-      0,  11,   0,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   4, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  82,  68,  69, 
-     70, 116,   2,   0,   0,   3, 
-      0,   0,   0, 168,   0,   0, 
-      0,   3,   0,   0,   0,  28, 
-      0,   0,   0,   0,   4, 254, 
-    255,   0,   1,   0,   0,  64, 
-      2,   0,   0, 124,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0, 133, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0, 152,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,  80, 101, 114, 
-     76,  97, 121, 101, 114,   0, 
-     80, 101, 114,  79,  99,  99, 
-     97, 115, 105, 111, 110,  97, 
-    108,  76,  97, 121, 101, 114, 
-      0,  80, 101, 114,  76,  97, 
-    121, 101, 114,  77,  97, 110, 
-     97, 103, 101, 114,   0, 124, 
-      0,   0,   0,   4,   0,   0, 
-      0, 240,   0,   0,   0, 112, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 133, 
-      0,   0,   0,   2,   0,   0, 
-      0, 188,   1,   0,   0,  32, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 152, 
-      0,   0,   0,   1,   0,   0, 
-      0,  28,   2,   0,   0,  64, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,  80, 
-      1,   0,   0,   0,   0,   0, 
-      0,  16,   0,   0,   0,   2, 
-      0,   0,   0,  96,   1,   0, 
-      0,   0,   0,   0,   0, 112, 
-      1,   0,   0,  16,   0,   0, 
-      0,  16,   0,   0,   0,   2, 
-      0,   0,   0,  96,   1,   0, 
-      0,   0,   0,   0,   0, 123, 
-      1,   0,   0,  32,   0,   0, 
-      0,   4,   0,   0,   0,   0, 
-      0,   0,   0, 140,   1,   0, 
-      0,   0,   0,   0,   0, 156, 
-      1,   0,   0,  48,   0,   0, 
-      0,  64,   0,   0,   0,   2, 
-      0,   0,   0, 172,   1,   0, 
-      0,   0,   0,   0,   0, 118, 
-     84, 101, 120, 116, 117, 114, 
-    101,  67, 111, 111, 114, 100, 
-    115,   0, 171,   1,   0,   3, 
-      0,   1,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 118,  76,  97, 121, 101, 
-    114,  81, 117,  97, 100,   0, 
-    102,  76,  97, 121, 101, 114, 
-     79, 112,  97,  99, 105, 116, 
-    121,   0, 171, 171, 171,   0, 
-      0,   3,   0,   1,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 109,  76,  97, 
-    121, 101, 114,  84, 114,  97, 
-    110, 115, 102, 111, 114, 109, 
-      0,   3,   0,   3,   0,   4, 
-      0,   4,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 236, 
-      1,   0,   0,   0,   0,   0, 
-      0,  16,   0,   0,   0,   2, 
-      0,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0,  16, 
-      2,   0,   0,  16,   0,   0, 
-      0,  16,   0,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0, 118, 
-     82, 101, 110, 100, 101, 114, 
-     84,  97, 114, 103, 101, 116, 
-     79, 102, 102, 115, 101, 116, 
-      0,   1,   0,   3,   0,   1, 
-      0,   4,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 102, 
-     76,  97, 121, 101, 114,  67, 
-    111, 108, 111, 114,   0,  52, 
-      2,   0,   0,   0,   0,   0, 
-      0,  64,   0,   0,   0,   2, 
-      0,   0,   0, 172,   1,   0, 
-      0,   0,   0,   0,   0, 109, 
-     80, 114, 111, 106, 101,  99, 
-    116, 105, 111, 110,   0,  77, 
-    105,  99, 114, 111, 115, 111, 
-    102, 116,  32,  40,  82,  41, 
-     32,  72,  76,  83,  76,  32, 
-     83, 104,  97, 100, 101, 114, 
-     32,  67, 111, 109, 112, 105, 
-    108, 101, 114,  32,  57,  46, 
-     50,  55,  46,  57,  53,  50, 
-     46,  51,  48,  50,  50,   0, 
-    171, 171, 171,  73,  83,  71, 
-     78,  44,   0,   0,   0,   1, 
-      0,   0,   0,   8,   0,   0, 
-      0,  32,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,   3,   3,   0, 
-      0,  80,  79,  83,  73,  84, 
-     73,  79,  78,   0, 171, 171, 
-    171,  79,  83,  71,  78,  80, 
-      0,   0,   0,   2,   0,   0, 
-      0,   8,   0,   0,   0,  56, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   3, 
-      0,   0,   0,   0,   0,   0, 
-      0,  15,   0,   0,   0,  68, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   3, 
-      0,   0,   0,   1,   0,   0, 
-      0,   3,  12,   0,   0,  83, 
-     86,  95,  80, 111, 115, 105, 
-    116, 105, 111, 110,   0,  84, 
-     69,  88,  67,  79,  79,  82, 
-     68,   0, 171, 171, 171, 139, 
-     74,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-      0,  64,   7,   0,   0,  68, 
-     88,  66,  67, 126,  75, 135, 
-    159,  85, 129, 194,  57,   1, 
-      1,  77, 205, 160, 221, 154, 
-    168,   1,   0,   0,   0,  64, 
-      7,   0,   0,   6,   0,   0, 
-      0,  56,   0,   0,   0, 220, 
-      1,   0,   0,  44,   4,   0, 
-      0, 168,   4,   0,   0, 180, 
-      6,   0,   0,  12,   7,   0, 
-      0,  65, 111, 110,  57, 156, 
-      1,   0,   0, 156,   1,   0, 
-      0,   0,   2, 255, 255,  96, 
-      1,   0,   0,  60,   0,   0, 
-      0,   1,   0,  48,   0,   0, 
-      0,  60,   0,   0,   0,  60, 
-      0,   3,   0,  36,   0,   0, 
-      0,  60,   0,   0,   0,   0, 
-      0,   1,   0,   1,   0,   2, 
-      0,   2,   0,   0,   0,   2, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   1,   2, 255, 
-    255,  81,   0,   0,   5,   1, 
-      0,  15, 160,   0,   0,   0, 
-    191,   0,   0, 128, 189, 186, 
-     73, 204,  63, 197,  32,  80, 
-     63,  81,   0,   0,   5,   2, 
-      0,  15, 160, 244, 253, 148, 
-     63, 233,  38,   1,  64,  39, 
-     49, 200,  62,   0,   0, 128, 
-     63,  31,   0,   0,   2,   0, 
-      0,   0, 128,   0,   0,   3, 
-    176,  31,   0,   0,   2,   0, 
-      0,   0, 144,   0,   8,  15, 
-    160,  31,   0,   0,   2,   0, 
-      0,   0, 144,   1,   8,  15, 
-    160,  31,   0,   0,   2,   0, 
-      0,   0, 144,   2,   8,  15, 
-    160,  66,   0,   0,   3,   0, 
-      0,  15, 128,   0,   0, 228, 
-    176,   0,   8, 228, 160,  66, 
-      0,   0,   3,   1,   0,  15, 
-    128,   0,   0, 228, 176,   2, 
-      8, 228, 160,   2,   0,   0, 
-      3,   0,   0,   2, 128,   1, 
-      0,   0, 128,   1,   0,   0, 
-    160,   5,   0,   0,   3,   0, 
-      0,   6, 128,   0,   0,  85, 
-    128,   1,   0, 248, 160,   2, 
-      0,   0,   3,   0,   0,   1, 
-    128,   0,   0,   0, 128,   1, 
-      0,  85, 160,   4,   0,   0, 
-      4,   0,   0,   4, 128,   0, 
-      0,   0, 128,   2,   0,   0, 
-    160,   0,   0, 170, 129,   4, 
-      0,   0,   4,   1,   0,   1, 
-    128,   0,   0,   0, 128,   2, 
-      0,   0, 160,   0,   0,  85, 
-    128,  66,   0,   0,   3,   2, 
-      0,  15, 128,   0,   0, 228, 
-    176,   1,   8, 228, 160,   2, 
-      0,   0,   3,   0,   0,   2, 
-    128,   2,   0,   0, 128,   1, 
-      0,   0, 160,   4,   0,   0, 
-      4,   1,   0,   2, 128,   0, 
-      0,  85, 128,   2,   0, 170, 
-    161,   0,   0, 170, 128,   5, 
-      0,   0,   3,   0,   0,   2, 
-    128,   0,   0,  85, 128,   2, 
-      0,  85, 160,   4,   0,   0, 
-      4,   1,   0,   4, 128,   0, 
-      0,   0, 128,   2,   0,   0, 
-    160,   0,   0,  85, 128,   1, 
-      0,   0,   2,   1,   0,   8, 
-    128,   2,   0, 255, 160,   5, 
-      0,   0,   3,   0,   0,  15, 
-    128,   1,   0, 228, 128,   0, 
-      0,   0, 160,   1,   0,   0, 
-      2,   0,   8,  15, 128,   0, 
-      0, 228, 128, 255, 255,   0, 
-      0,  83,  72,  68,  82,  72, 
-      2,   0,   0,  64,   0,   0, 
-      0, 146,   0,   0,   0,  89, 
-      0,   0,   4,  70, 142,  32, 
-      0,   0,   0,   0,   0,   3, 
-      0,   0,   0,  90,   0,   0, 
-      3,   0,  96,  16,   0,   0, 
-      0,   0,   0,  88,  24,   0, 
-      4,   0, 112,  16,   0,   0, 
-      0,   0,   0,  85,  85,   0, 
-      0,  88,  24,   0,   4,   0, 
-    112,  16,   0,   1,   0,   0, 
-      0,  85,  85,   0,   0,  88, 
-     24,   0,   4,   0, 112,  16, 
-      0,   2,   0,   0,   0,  85, 
-     85,   0,   0,  98,  16,   0, 
-      3,  50,  16,  16,   0,   1, 
-      0,   0,   0, 101,   0,   0, 
-      3, 242,  32,  16,   0,   0, 
-      0,   0,   0, 104,   0,   0, 
-      2,   3,   0,   0,   0,  69, 
-      0,   0,   9, 242,   0,  16, 
-      0,   0,   0,   0,   0,  70, 
-     16,  16,   0,   1,   0,   0, 
-      0,  70, 126,  16,   0,   2, 
-      0,   0,   0,   0,  96,  16, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   7,  18,   0,  16, 
-      0,   0,   0,   0,   0,  10, 
-      0,  16,   0,   0,   0,   0, 
-      0,   1,  64,   0,   0,   0, 
-      0,   0, 191,  56,   0,   0, 
-     10,  50,   0,  16,   0,   0, 
-      0,   0,   0,   6,   0,  16, 
-      0,   0,   0,   0,   0,   2, 
-     64,   0,   0, 186,  73, 204, 
-     63, 197,  32,  80,  63,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  69,   0,   0,   9, 242, 
-      0,  16,   0,   1,   0,   0, 
-      0,  70,  16,  16,   0,   1, 
-      0,   0,   0,  70, 126,  16, 
-      0,   0,   0,   0,   0,   0, 
-     96,  16,   0,   0,   0,   0, 
-      0,   0,   0,   0,   7,  66, 
-      0,  16,   0,   0,   0,   0, 
-      0,  10,   0,  16,   0,   1, 
-      0,   0,   0,   1,  64,   0, 
-      0,   0,   0, 128, 189,  50, 
-      0,   0,  10,  34,   0,  16, 
-      0,   0,   0,   0,   0,  42, 
-      0,  16,   0,   0,   0,   0, 
-      0,   1,  64,   0,   0, 244, 
-    253, 148,  63,  26,   0,  16, 
-    128,  65,   0,   0,   0,   0, 
-      0,   0,   0,  50,   0,   0, 
-      9,  18,   0,  16,   0,   1, 
-      0,   0,   0,  42,   0,  16, 
-      0,   0,   0,   0,   0,   1, 
-     64,   0,   0, 244, 253, 148, 
-     63,  10,   0,  16,   0,   0, 
-      0,   0,   0,  69,   0,   0, 
-      9, 242,   0,  16,   0,   2, 
-      0,   0,   0,  70,  16,  16, 
-      0,   1,   0,   0,   0,  70, 
-    126,  16,   0,   1,   0,   0, 
-      0,   0,  96,  16,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      7,  18,   0,  16,   0,   0, 
-      0,   0,   0,  10,   0,  16, 
-      0,   2,   0,   0,   0,   1, 
-     64,   0,   0,   0,   0,   0, 
-    191,  50,   0,   0,  10,  34, 
-      0,  16,   0,   1,   0,   0, 
-      0,  10,   0,  16, 128,  65, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,  64,   0,   0,  39, 
-     49, 200,  62,  26,   0,  16, 
-      0,   0,   0,   0,   0,  56, 
-      0,   0,   7,  18,   0,  16, 
-      0,   0,   0,   0,   0,  10, 
-      0,  16,   0,   0,   0,   0, 
-      0,   1,  64,   0,   0, 233, 
-     38,   1,  64,  50,   0,   0, 
-      9,  66,   0,  16,   0,   1, 
-      0,   0,   0,  42,   0,  16, 
-      0,   0,   0,   0,   0,   1, 
-     64,   0,   0, 244, 253, 148, 
-     63,  10,   0,  16,   0,   0, 
-      0,   0,   0,  54,   0,   0, 
-      5, 130,   0,  16,   0,   1, 
-      0,   0,   0,   1,  64,   0, 
-      0,   0,   0, 128,  63,  56, 
-      0,   0,   8, 242,  32,  16, 
-      0,   0,   0,   0,   0,  70, 
-     14,  16,   0,   1,   0,   0, 
-      0,   6, 128,  32,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0,  62,   0,   0,   1,  83, 
-     84,  65,  84, 116,   0,   0, 
-      0,  15,   0,   0,   0,   3, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0,   6, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  82,  68,  69, 
-     70,   4,   2,   0,   0,   1, 
-      0,   0,   0, 236,   0,   0, 
-      0,   5,   0,   0,   0,  28, 
-      0,   0,   0,   0,   4, 255, 
-    255,   0,   1,   0,   0, 208, 
-      1,   0,   0, 188,   0,   0, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0, 214, 
-      0,   0,   0,   2,   0,   0, 
-      0,   5,   0,   0,   0,   4, 
-      0,   0,   0, 255, 255, 255, 
-    255,   0,   0,   0,   0,   1, 
-      0,   0,   0,  12,   0,   0, 
-      0, 217,   0,   0,   0,   2, 
-      0,   0,   0,   5,   0,   0, 
-      0,   4,   0,   0,   0, 255, 
-    255, 255, 255,   1,   0,   0, 
-      0,   1,   0,   0,   0,  12, 
-      0,   0,   0, 221,   0,   0, 
-      0,   2,   0,   0,   0,   5, 
-      0,   0,   0,   4,   0,   0, 
-      0, 255, 255, 255, 255,   2, 
-      0,   0,   0,   1,   0,   0, 
-      0,  12,   0,   0,   0, 225, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,  76,  97, 121, 101, 114, 
-     84, 101, 120, 116, 117, 114, 
-    101,  83,  97, 109, 112, 108, 
-    101, 114,  76, 105, 110, 101, 
-     97, 114,   0, 116,  89,   0, 
-    116,  67,  98,   0, 116,  67, 
-    114,   0,  80, 101, 114,  76, 
-     97, 121, 101, 114,   0, 171, 
-    171, 225,   0,   0,   0,   4, 
-      0,   0,   0,   4,   1,   0, 
-      0, 112,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 100,   1,   0,   0,   0, 
-      0,   0,   0,  16,   0,   0, 
-      0,   0,   0,   0,   0, 116, 
-      1,   0,   0,   0,   0,   0, 
-      0, 132,   1,   0,   0,  16, 
-      0,   0,   0,  16,   0,   0, 
-      0,   0,   0,   0,   0, 116, 
-      1,   0,   0,   0,   0,   0, 
-      0, 143,   1,   0,   0,  32, 
-      0,   0,   0,   4,   0,   0, 
-      0,   2,   0,   0,   0, 160, 
-      1,   0,   0,   0,   0,   0, 
-      0, 176,   1,   0,   0,  48, 
-      0,   0,   0,  64,   0,   0, 
-      0,   0,   0,   0,   0, 192, 
-      1,   0,   0,   0,   0,   0, 
-      0, 118,  84, 101, 120, 116, 
-    117, 114, 101,  67, 111, 111, 
-    114, 100, 115,   0, 171,   1, 
-      0,   3,   0,   1,   0,   4, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 118,  76,  97, 
-    121, 101, 114,  81, 117,  97, 
-    100,   0, 102,  76,  97, 121, 
-    101, 114,  79, 112,  97,  99, 
-    105, 116, 121,   0, 171, 171, 
-    171,   0,   0,   3,   0,   1, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 109, 
-     76,  97, 121, 101, 114,  84, 
-    114,  97, 110, 115, 102, 111, 
-    114, 109,   0,   3,   0,   3, 
-      0,   4,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  77, 105,  99, 114, 111, 
-    115, 111, 102, 116,  32,  40, 
-     82,  41,  32,  72,  76,  83, 
-     76,  32,  83, 104,  97, 100, 
-    101, 114,  32,  67, 111, 109, 
-    112, 105, 108, 101, 114,  32, 
-     57,  46,  50,  55,  46,  57, 
-     53,  50,  46,  51,  48,  50, 
-     50,   0, 171, 171, 171,  73, 
-     83,  71,  78,  80,   0,   0, 
-      0,   2,   0,   0,   0,   8, 
-      0,   0,   0,  56,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,  15, 
-      0,   0,   0,  68,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   1,   0,   0,   0,   3, 
-      3,   0,   0,  83,  86,  95, 
-     80, 111, 115, 105, 116, 105, 
-    111, 110,   0,  84,  69,  88, 
-     67,  79,  79,  82,  68,   0, 
-    171, 171, 171,  79,  83,  71, 
-     78,  44,   0,   0,   0,   1, 
-      0,   0,   0,   8,   0,   0, 
-      0,  32,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,  15,   0,   0, 
-      0,  83,  86,  95,  84,  97, 
-    114, 103, 101, 116,   0, 171, 
-    171, 187,  81,   0,   0,   0, 
-      0,   0,   0,  82, 101, 110, 
-    100, 101, 114,  67, 111, 109, 
-    112, 111, 110, 101, 110, 116, 
-     65, 108, 112, 104,  97,  76, 
-     97, 121, 101, 114,   0,   4, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   3,   0,   0, 
-      0, 255, 255, 255, 255,  24, 
-      7,   0,   0,  68,  88,  66, 
-     67, 254, 249,  65, 252,  64, 
-     46, 192, 119,  73, 197, 161, 
-    234,  24,   1, 194, 131,   1, 
-      0,   0,   0,  24,   7,   0, 
-      0,   6,   0,   0,   0,  56, 
-      0,   0,   0, 164,   1,   0, 
-      0, 148,   3,   0,   0,  16, 
-      4,   0,   0, 140,   6,   0, 
-      0, 192,   6,   0,   0,  65, 
-    111, 110,  57, 100,   1,   0, 
-      0, 100,   1,   0,   0,   0, 
-      2, 254, 255,   0,   1,   0, 
-      0, 100,   0,   0,   0,   5, 
-      0,  36,   0,   0,   0,  96, 
-      0,   0,   0,  96,   0,   0, 
-      0,  36,   0,   1,   0,  96, 
-      0,   0,   0,   0,   0,   2, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   2, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,   6,   0,   1, 
-      0,   5,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   1, 
-      0,   6,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0,   4, 
-      0,   7,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      2, 254, 255,  31,   0,   0, 
-      2,   5,   0,   0, 128,   0, 
-      0,  15, 144,   4,   0,   0, 
-      4,   0,   0,   3, 224,   0, 
-      0, 228, 144,   1,   0, 238, 
-    160,   1,   0, 228, 160,   4, 
-      0,   0,   4,   0,   0,   1, 
-    128,   0,   0,  85, 144,   2, 
-      0, 255, 160,   2,   0,  85, 
-    160,   5,   0,   0,   3,   0, 
-      0,  15, 128,   0,   0,   0, 
-    128,   4,   0, 228, 160,   4, 
-      0,   0,   4,   1,   0,   1, 
-    128,   0,   0,   0, 144,   2, 
-      0, 170, 160,   2,   0,   0, 
-    160,   4,   0,   0,   4,   0, 
-      0,  15, 128,   3,   0, 228, 
-    160,   1,   0,   0, 128,   0, 
-      0, 228, 128,   2,   0,   0, 
-      3,   0,   0,  15, 128,   0, 
-      0, 228, 128,   5,   0, 228, 
-    160,   2,   0,   0,   3,   0, 
-      0,  15, 128,   0,   0, 228, 
-    128,   6,   0, 228, 161,   5, 
-      0,   0,   3,   1,   0,  15, 
-    128,   0,   0,  85, 128,   8, 
-      0, 228, 160,   4,   0,   0, 
-      4,   1,   0,  15, 128,   7, 
-      0, 228, 160,   0,   0,   0, 
-    128,   1,   0, 228, 128,   4, 
-      0,   0,   4,   1,   0,  15, 
-    128,   9,   0, 228, 160,   0, 
-      0, 170, 128,   1,   0, 228, 
-    128,   4,   0,   0,   4,   0, 
-      0,  15, 128,  10,   0, 228, 
-    160,   0,   0, 255, 128,   1, 
-      0, 228, 128,   4,   0,   0, 
-      4,   0,   0,   3, 192,   0, 
-      0, 255, 128,   0,   0, 228, 
-    160,   0,   0, 228, 128,   1, 
-      0,   0,   2,   0,   0,  12, 
-    192,   0,   0, 228, 128, 255, 
-    255,   0,   0,  83,  72,  68, 
-     82, 232,   1,   0,   0,  64, 
-      0,   1,   0, 122,   0,   0, 
-      0,  89,   0,   0,   4,  70, 
-    142,  32,   0,   0,   0,   0, 
-      0,   7,   0,   0,   0,  89, 
-      0,   0,   4,  70, 142,  32, 
-      0,   1,   0,   0,   0,   1, 
-      0,   0,   0,  89,   0,   0, 
-      4,  70, 142,  32,   0,   2, 
-      0,   0,   0,   4,   0,   0, 
-      0,  95,   0,   0,   3,  50, 
-     16,  16,   0,   0,   0,   0, 
-      0, 103,   0,   0,   4, 242, 
-     32,  16,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 101, 
-      0,   0,   3,  50,  32,  16, 
-      0,   1,   0,   0,   0, 104, 
-      0,   0,   2,   2,   0,   0, 
-      0,  50,   0,   0,  11,  50, 
-      0,  16,   0,   0,   0,   0, 
-      0,  70,  16,  16,   0,   0, 
-      0,   0,   0, 230, 138,  32, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  70, 128,  32, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  56,   0,   0, 
-      8, 242,   0,  16,   0,   1, 
-      0,   0,   0,  86,   5,  16, 
-      0,   0,   0,   0,   0,  70, 
-    142,  32,   0,   0,   0,   0, 
-      0,   4,   0,   0,   0,  50, 
-      0,   0,  10, 242,   0,  16, 
-      0,   0,   0,   0,   0,  70, 
-    142,  32,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   6, 
-      0,  16,   0,   0,   0,   0, 
-      0,  70,  14,  16,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      8, 242,   0,  16,   0,   0, 
-      0,   0,   0,  70,  14,  16, 
-      0,   0,   0,   0,   0,  70, 
-    142,  32,   0,   0,   0,   0, 
-      0,   6,   0,   0,   0,   0, 
-      0,   0,   9, 242,   0,  16, 
-      0,   0,   0,   0,   0,  70, 
-     14,  16,   0,   0,   0,   0, 
-      0,  70, 142,  32, 128,  65, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,  56, 
-      0,   0,   8, 242,   0,  16, 
-      0,   1,   0,   0,   0,  86, 
-      5,  16,   0,   0,   0,   0, 
-      0,  70, 142,  32,   0,   2, 
-      0,   0,   0,   1,   0,   0, 
-      0,  50,   0,   0,  10, 242, 
-      0,  16,   0,   1,   0,   0, 
-      0,  70, 142,  32,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-      0,   6,   0,  16,   0,   0, 
-      0,   0,   0,  70,  14,  16, 
-      0,   1,   0,   0,   0,  50, 
-      0,   0,  10, 242,   0,  16, 
-      0,   1,   0,   0,   0,  70, 
-    142,  32,   0,   2,   0,   0, 
-      0,   2,   0,   0,   0, 166, 
-     10,  16,   0,   0,   0,   0, 
-      0,  70,  14,  16,   0,   1, 
-      0,   0,   0,  50,   0,   0, 
-     10, 242,  32,  16,   0,   0, 
-      0,   0,   0,  70, 142,  32, 
-      0,   2,   0,   0,   0,   3, 
-      0,   0,   0, 246,  15,  16, 
-      0,   0,   0,   0,   0,  70, 
-     14,  16,   0,   1,   0,   0, 
-      0,  50,   0,   0,  11,  50, 
-     32,  16,   0,   1,   0,   0, 
-      0,  70,  16,  16,   0,   0, 
-      0,   0,   0, 230, 138,  32, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  70, 128,  32, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  62,   0,   0, 
-      1,  83,  84,  65,  84, 116, 
-      0,   0,   0,  11,   0,   0, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   4,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,  82, 
-     68,  69,  70, 116,   2,   0, 
-      0,   3,   0,   0,   0, 168, 
-      0,   0,   0,   3,   0,   0, 
-      0,  28,   0,   0,   0,   0, 
-      4, 254, 255,   0,   1,   0, 
-      0,  64,   2,   0,   0, 124, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0, 133,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0, 152,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,  80, 
-    101, 114,  76,  97, 121, 101, 
-    114,   0,  80, 101, 114,  79, 
-     99,  99,  97, 115, 105, 111, 
-    110,  97, 108,  76,  97, 121, 
-    101, 114,   0,  80, 101, 114, 
-     76,  97, 121, 101, 114,  77, 
-     97, 110,  97, 103, 101, 114, 
-      0, 124,   0,   0,   0,   4, 
-      0,   0,   0, 240,   0,   0, 
-      0, 112,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 133,   0,   0,   0,   2, 
-      0,   0,   0, 188,   1,   0, 
-      0,  32,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 152,   0,   0,   0,   1, 
-      0,   0,   0,  28,   2,   0, 
-      0,  64,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  80,   1,   0,   0,   0, 
-      0,   0,   0,  16,   0,   0, 
-      0,   2,   0,   0,   0,  96, 
-      1,   0,   0,   0,   0,   0, 
-      0, 112,   1,   0,   0,  16, 
-      0,   0,   0,  16,   0,   0, 
-      0,   2,   0,   0,   0,  96, 
-      1,   0,   0,   0,   0,   0, 
-      0, 123,   1,   0,   0,  32, 
-      0,   0,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0, 140, 
-      1,   0,   0,   0,   0,   0, 
-      0, 156,   1,   0,   0,  48, 
-      0,   0,   0,  64,   0,   0, 
-      0,   2,   0,   0,   0, 172, 
-      1,   0,   0,   0,   0,   0, 
-      0, 118,  84, 101, 120, 116, 
-    117, 114, 101,  67, 111, 111, 
-    114, 100, 115,   0, 171,   1, 
-      0,   3,   0,   1,   0,   4, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 118,  76,  97, 
-    121, 101, 114,  81, 117,  97, 
-    100,   0, 102,  76,  97, 121, 
-    101, 114,  79, 112,  97,  99, 
-    105, 116, 121,   0, 171, 171, 
-    171,   0,   0,   3,   0,   1, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 109, 
-     76,  97, 121, 101, 114,  84, 
-    114,  97, 110, 115, 102, 111, 
-    114, 109,   0,   3,   0,   3, 
-      0,   4,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 236,   1,   0,   0,   0, 
-      0,   0,   0,  16,   0,   0, 
-      0,   2,   0,   0,   0,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0,  16,   2,   0,   0,  16, 
-      0,   0,   0,  16,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      2,   0,   0,   0,   0,   0, 
-      0, 118,  82, 101, 110, 100, 
-    101, 114,  84,  97, 114, 103, 
-    101, 116,  79, 102, 102, 115, 
-    101, 116,   0,   1,   0,   3, 
-      0,   1,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 102,  76,  97, 121, 101, 
-    114,  67, 111, 108, 111, 114, 
-      0,  52,   2,   0,   0,   0, 
-      0,   0,   0,  64,   0,   0, 
-      0,   2,   0,   0,   0, 172, 
-      1,   0,   0,   0,   0,   0, 
-      0, 109,  80, 114, 111, 106, 
-    101,  99, 116, 105, 111, 110, 
-      0,  77, 105,  99, 114, 111, 
-    115, 111, 102, 116,  32,  40, 
-     82,  41,  32,  72,  76,  83, 
-     76,  32,  83, 104,  97, 100, 
-    101, 114,  32,  67, 111, 109, 
-    112, 105, 108, 101, 114,  32, 
-     57,  46,  50,  55,  46,  57, 
-     53,  50,  46,  51,  48,  50, 
-     50,   0, 171, 171, 171,  73, 
-     83,  71,  78,  44,   0,   0, 
-      0,   1,   0,   0,   0,   8, 
-      0,   0,   0,  32,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,   3, 
-      3,   0,   0,  80,  79,  83, 
-     73,  84,  73,  79,  78,   0, 
-    171, 171, 171,  79,  83,  71, 
-     78,  80,   0,   0,   0,   2, 
-      0,   0,   0,   8,   0,   0, 
-      0,  56,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,  15,   0,   0, 
-      0,  68,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   1, 
-      0,   0,   0,   3,  12,   0, 
-      0,  83,  86,  95,  80, 111, 
-    115, 105, 116, 105, 111, 110, 
-      0,  84,  69,  88,  67,  79, 
-     79,  82,  68,   0, 171, 171, 
-    171,  81,  89,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0,   0, 144,   5,   0, 
-      0,  68,  88,  66,  67, 238, 
-     19, 121, 188, 150,  99, 227, 
-    180,  83, 152, 252, 187,  65, 
-      5, 113, 253,   1,   0,   0, 
-      0, 144,   5,   0,   0,   6, 
-      0,   0,   0,  56,   0,   0, 
-      0,  52,   1,   0,   0, 128, 
-      2,   0,   0, 252,   2,   0, 
-      0, 236,   4,   0,   0,  68, 
-      5,   0,   0,  65, 111, 110, 
-     57, 244,   0,   0,   0, 244, 
-      0,   0,   0,   0,   2, 255, 
-    255, 188,   0,   0,   0,  56, 
-      0,   0,   0,   1,   0,  44, 
-      0,   0,   0,  56,   0,   0, 
-      0,  56,   0,   2,   0,  36, 
-      0,   0,   0,  56,   0,   0, 
-      0,   0,   0,   1,   0,   1, 
-      0,   0,   0,   2,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   2, 255, 255,  81, 
-      0,   0,   5,   1,   0,  15, 
-    160,   0,   0, 128,  63,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,  31, 
-      0,   0,   2,   0,   0,   0, 
-    128,   0,   0,   3, 176,  31, 
-      0,   0,   2,   0,   0,   0, 
-    144,   0,   8,  15, 160,  31, 
-      0,   0,   2,   0,   0,   0, 
-    144,   1,   8,  15, 160,  66, 
-      0,   0,   3,   0,   0,  15, 
-    128,   0,   0, 228, 176,   1, 
-      8, 228, 160,  66,   0,   0, 
-      3,   1,   0,  15, 128,   0, 
-      0, 228, 176,   0,   8, 228, 
-    160,   5,   0,   0,   3,   2, 
-      0,  15, 128,   1,   0, 228, 
-    128,   0,   0,   0, 160,   1, 
-      0,   0,   2,   0,   8,  15, 
-    128,   2,   0, 228, 128,   2, 
-      0,   0,   3,   0,   0,  15, 
-    128,   0,   0, 228, 129,   1, 
-      0, 228, 128,   2,   0,   0, 
-      3,   0,   0,  15, 128,   0, 
-      0, 228, 128,   1,   0,   0, 
-    160,   5,   0,   0,   3,   0, 
-      0,  15, 128,   0,   0, 228, 
-    128,   0,   0,   0, 160,   1, 
-      0,   0,   2,   1,   8,  15, 
-    128,   0,   0, 228, 128, 255, 
-    255,   0,   0,  83,  72,  68, 
-     82,  68,   1,   0,   0,  64, 
-      0,   0,   0,  81,   0,   0, 
-      0,  89,   0,   0,   4,  70, 
-    142,  32,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,  90, 
-      0,   0,   3,   0,  96,  16, 
-      0,   0,   0,   0,   0,  88, 
-     24,   0,   4,   0, 112,  16, 
-      0,   0,   0,   0,   0,  85, 
-     85,   0,   0,  88,  24,   0, 
-      4,   0, 112,  16,   0,   1, 
-      0,   0,   0,  85,  85,   0, 
-      0,  98,  16,   0,   3,  50, 
-     16,  16,   0,   1,   0,   0, 
-      0, 101,   0,   0,   3, 242, 
-     32,  16,   0,   0,   0,   0, 
-      0, 101,   0,   0,   3, 242, 
-     32,  16,   0,   1,   0,   0, 
-      0, 104,   0,   0,   2,   2, 
-      0,   0,   0,  69,   0,   0, 
-      9, 242,   0,  16,   0,   0, 
-      0,   0,   0,  70,  16,  16, 
-      0,   1,   0,   0,   0,  70, 
-    126,  16,   0,   0,   0,   0, 
-      0,   0,  96,  16,   0,   0, 
-      0,   0,   0,  56,   0,   0, 
-      8, 242,  32,  16,   0,   0, 
-      0,   0,   0,  70,  14,  16, 
-      0,   0,   0,   0,   0,   6, 
-    128,  32,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0,  69, 
-      0,   0,   9, 242,   0,  16, 
-      0,   1,   0,   0,   0,  70, 
-     16,  16,   0,   1,   0,   0, 
-      0,  70, 126,  16,   0,   1, 
-      0,   0,   0,   0,  96,  16, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   8, 242,   0,  16, 
-      0,   0,   0,   0,   0,  70, 
-     14,  16,   0,   0,   0,   0, 
-      0,  70,  14,  16, 128,  65, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,  10, 242, 
-      0,  16,   0,   0,   0,   0, 
-      0,  70,  14,  16,   0,   0, 
-      0,   0,   0,   2,  64,   0, 
-      0,   0,   0, 128,  63,   0, 
-      0, 128,  63,   0,   0, 128, 
-     63,   0,   0, 128,  63,  56, 
-      0,   0,   8, 242,  32,  16, 
-      0,   1,   0,   0,   0,  70, 
-     14,  16,   0,   0,   0,   0, 
-      0,   6, 128,  32,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0,  62,   0,   0,   1,  83, 
-     84,  65,  84, 116,   0,   0, 
-      0,   7,   0,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   4, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  82,  68,  69, 
-     70, 232,   1,   0,   0,   1, 
-      0,   0,   0, 208,   0,   0, 
-      0,   4,   0,   0,   0,  28, 
-      0,   0,   0,   0,   4, 255, 
-    255,   0,   1,   0,   0, 180, 
-      1,   0,   0, 156,   0,   0, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0, 182, 
-      0,   0,   0,   2,   0,   0, 
-      0,   5,   0,   0,   0,   4, 
-      0,   0,   0, 255, 255, 255, 
-    255,   0,   0,   0,   0,   1, 
-      0,   0,   0,  12,   0,   0, 
-      0, 187,   0,   0,   0,   2, 
-      0,   0,   0,   5,   0,   0, 
-      0,   4,   0,   0,   0, 255, 
-    255, 255, 255,   1,   0,   0, 
-      0,   1,   0,   0,   0,  12, 
-      0,   0,   0, 197,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,  76, 
-     97, 121, 101, 114,  84, 101, 
-    120, 116, 117, 114, 101,  83, 
-     97, 109, 112, 108, 101, 114, 
-     76, 105, 110, 101,  97, 114, 
-      0, 116,  82,  71,  66,   0, 
-    116,  82,  71,  66,  87, 104, 
-    105, 116, 101,   0,  80, 101, 
-    114,  76,  97, 121, 101, 114, 
-      0, 171, 171, 197,   0,   0, 
-      0,   4,   0,   0,   0, 232, 
-      0,   0,   0, 112,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  72,   1,   0, 
-      0,   0,   0,   0,   0,  16, 
-      0,   0,   0,   0,   0,   0, 
-      0,  88,   1,   0,   0,   0, 
-      0,   0,   0, 104,   1,   0, 
-      0,  16,   0,   0,   0,  16, 
-      0,   0,   0,   0,   0,   0, 
-      0,  88,   1,   0,   0,   0, 
-      0,   0,   0, 115,   1,   0, 
-      0,  32,   0,   0,   0,   4, 
-      0,   0,   0,   2,   0,   0, 
-      0, 132,   1,   0,   0,   0, 
-      0,   0,   0, 148,   1,   0, 
-      0,  48,   0,   0,   0,  64, 
-      0,   0,   0,   0,   0,   0, 
-      0, 164,   1,   0,   0,   0, 
-      0,   0,   0, 118,  84, 101, 
-    120, 116, 117, 114, 101,  67, 
-    111, 111, 114, 100, 115,   0, 
-    171,   1,   0,   3,   0,   1, 
-      0,   4,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 118, 
-     76,  97, 121, 101, 114,  81, 
-    117,  97, 100,   0, 102,  76, 
-     97, 121, 101, 114,  79, 112, 
-     97,  99, 105, 116, 121,   0, 
-    171, 171, 171,   0,   0,   3, 
-      0,   1,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 109,  76,  97, 121, 101, 
-    114,  84, 114,  97, 110, 115, 
-    102, 111, 114, 109,   0,   3, 
-      0,   3,   0,   4,   0,   4, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  77, 105,  99, 
-    114, 111, 115, 111, 102, 116, 
-     32,  40,  82,  41,  32,  72, 
-     76,  83,  76,  32,  83, 104, 
-     97, 100, 101, 114,  32,  67, 
-    111, 109, 112, 105, 108, 101, 
-    114,  32,  57,  46,  50,  55, 
-     46,  57,  53,  50,  46,  51, 
-     48,  50,  50,   0, 171, 171, 
-    171,  73,  83,  71,  78,  80, 
-      0,   0,   0,   2,   0,   0, 
-      0,   8,   0,   0,   0,  56, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   3, 
-      0,   0,   0,   0,   0,   0, 
-      0,  15,   0,   0,   0,  68, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   3, 
-      0,   0,   0,   1,   0,   0, 
-      0,   3,   3,   0,   0,  83, 
-     86,  95,  80, 111, 115, 105, 
-    116, 105, 111, 110,   0,  84, 
-     69,  88,  67,  79,  79,  82, 
-     68,   0, 171, 171, 171,  79, 
-     83,  71,  78,  68,   0,   0, 
-      0,   2,   0,   0,   0,   8, 
-      0,   0,   0,  56,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,  15, 
-      0,   0,   0,  56,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   1,   0,   0,   0,  15, 
-      0,   0,   0,  83,  86,  95, 
-     84,  97, 114, 103, 101, 116, 
-      0, 171, 171, 129,  96,   0, 
-      0,   0,   0,   0,   0,  82, 
-    101, 110, 100, 101, 114,  83, 
-    111, 108, 105, 100,  67, 111, 
-    108, 111, 114,  76,  97, 121, 
-    101, 114,   0,   4,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   3,   0,   0,   0, 255, 
-    255, 255, 255,  24,   7,   0, 
-      0,  68,  88,  66,  67, 254, 
-    249,  65, 252,  64,  46, 192, 
-    119,  73, 197, 161, 234,  24, 
-      1, 194, 131,   1,   0,   0, 
-      0,  24,   7,   0,   0,   6, 
-      0,   0,   0,  56,   0,   0, 
-      0, 164,   1,   0,   0, 148, 
-      3,   0,   0,  16,   4,   0, 
-      0, 140,   6,   0,   0, 192, 
-      6,   0,   0,  65, 111, 110, 
-     57, 100,   1,   0,   0, 100, 
-      1,   0,   0,   0,   2, 254, 
-    255,   0,   1,   0,   0, 100, 
-      0,   0,   0,   5,   0,  36, 
-      0,   0,   0,  96,   0,   0, 
-      0,  96,   0,   0,   0,  36, 
-      0,   1,   0,  96,   0,   0, 
-      0,   0,   0,   2,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   2,   0,   3, 
-      0,   0,   0,   0,   0,   0, 
-      0,   6,   0,   1,   0,   5, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   1,   0,   6, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0,   4,   0,   7, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   1,   2, 254, 
-    255,  31,   0,   0,   2,   5, 
-      0,   0, 128,   0,   0,  15, 
-    144,   4,   0,   0,   4,   0, 
-      0,   3, 224,   0,   0, 228, 
-    144,   1,   0, 238, 160,   1, 
-      0, 228, 160,   4,   0,   0, 
-      4,   0,   0,   1, 128,   0, 
-      0,  85, 144,   2,   0, 255, 
-    160,   2,   0,  85, 160,   5, 
-      0,   0,   3,   0,   0,  15, 
-    128,   0,   0,   0, 128,   4, 
-      0, 228, 160,   4,   0,   0, 
-      4,   1,   0,   1, 128,   0, 
-      0,   0, 144,   2,   0, 170, 
-    160,   2,   0,   0, 160,   4, 
-      0,   0,   4,   0,   0,  15, 
-    128,   3,   0, 228, 160,   1, 
-      0,   0, 128,   0,   0, 228, 
-    128,   2,   0,   0,   3,   0, 
-      0,  15, 128,   0,   0, 228, 
-    128,   5,   0, 228, 160,   2, 
-      0,   0,   3,   0,   0,  15, 
-    128,   0,   0, 228, 128,   6, 
-      0, 228, 161,   5,   0,   0, 
-      3,   1,   0,  15, 128,   0, 
-      0,  85, 128,   8,   0, 228, 
-    160,   4,   0,   0,   4,   1, 
-      0,  15, 128,   7,   0, 228, 
-    160,   0,   0,   0, 128,   1, 
-      0, 228, 128,   4,   0,   0, 
-      4,   1,   0,  15, 128,   9, 
-      0, 228, 160,   0,   0, 170, 
-    128,   1,   0, 228, 128,   4, 
-      0,   0,   4,   0,   0,  15, 
-    128,  10,   0, 228, 160,   0, 
-      0, 255, 128,   1,   0, 228, 
-    128,   4,   0,   0,   4,   0, 
-      0,   3, 192,   0,   0, 255, 
-    128,   0,   0, 228, 160,   0, 
-      0, 228, 128,   1,   0,   0, 
-      2,   0,   0,  12, 192,   0, 
-      0, 228, 128, 255, 255,   0, 
-      0,  83,  72,  68,  82, 232, 
-      1,   0,   0,  64,   0,   1, 
-      0, 122,   0,   0,   0,  89, 
-      0,   0,   4,  70, 142,  32, 
-      0,   0,   0,   0,   0,   7, 
-      0,   0,   0,  89,   0,   0, 
-      4,  70, 142,  32,   0,   1, 
-      0,   0,   0,   1,   0,   0, 
-      0,  89,   0,   0,   4,  70, 
-    142,  32,   0,   2,   0,   0, 
-      0,   4,   0,   0,   0,  95, 
-      0,   0,   3,  50,  16,  16, 
-      0,   0,   0,   0,   0, 103, 
-      0,   0,   4, 242,  32,  16, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 101,   0,   0, 
-      3,  50,  32,  16,   0,   1, 
-      0,   0,   0, 104,   0,   0, 
-      2,   2,   0,   0,   0,  50, 
-      0,   0,  11,  50,   0,  16, 
-      0,   0,   0,   0,   0,  70, 
-     16,  16,   0,   0,   0,   0, 
-      0, 230, 138,  32,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  70, 128,  32,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  56,   0,   0,   8, 242, 
-      0,  16,   0,   1,   0,   0, 
-      0,  86,   5,  16,   0,   0, 
-      0,   0,   0,  70, 142,  32, 
-      0,   0,   0,   0,   0,   4, 
-      0,   0,   0,  50,   0,   0, 
-     10, 242,   0,  16,   0,   0, 
-      0,   0,   0,  70, 142,  32, 
-      0,   0,   0,   0,   0,   3, 
-      0,   0,   0,   6,   0,  16, 
-      0,   0,   0,   0,   0,  70, 
-     14,  16,   0,   1,   0,   0, 
-      0,   0,   0,   0,   8, 242, 
-      0,  16,   0,   0,   0,   0, 
-      0,  70,  14,  16,   0,   0, 
-      0,   0,   0,  70, 142,  32, 
-      0,   0,   0,   0,   0,   6, 
-      0,   0,   0,   0,   0,   0, 
-      9, 242,   0,  16,   0,   0, 
-      0,   0,   0,  70,  14,  16, 
-      0,   0,   0,   0,   0,  70, 
-    142,  32, 128,  65,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,  56,   0,   0, 
-      8, 242,   0,  16,   0,   1, 
-      0,   0,   0,  86,   5,  16, 
-      0,   0,   0,   0,   0,  70, 
-    142,  32,   0,   2,   0,   0, 
-      0,   1,   0,   0,   0,  50, 
-      0,   0,  10, 242,   0,  16, 
-      0,   1,   0,   0,   0,  70, 
-    142,  32,   0,   2,   0,   0, 
-      0,   0,   0,   0,   0,   6, 
-      0,  16,   0,   0,   0,   0, 
-      0,  70,  14,  16,   0,   1, 
-      0,   0,   0,  50,   0,   0, 
-     10, 242,   0,  16,   0,   1, 
-      0,   0,   0,  70, 142,  32, 
-      0,   2,   0,   0,   0,   2, 
-      0,   0,   0, 166,  10,  16, 
-      0,   0,   0,   0,   0,  70, 
-     14,  16,   0,   1,   0,   0, 
-      0,  50,   0,   0,  10, 242, 
-     32,  16,   0,   0,   0,   0, 
-      0,  70, 142,  32,   0,   2, 
-      0,   0,   0,   3,   0,   0, 
-      0, 246,  15,  16,   0,   0, 
-      0,   0,   0,  70,  14,  16, 
-      0,   1,   0,   0,   0,  50, 
-      0,   0,  11,  50,  32,  16, 
-      0,   1,   0,   0,   0,  70, 
-     16,  16,   0,   0,   0,   0, 
-      0, 230, 138,  32,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  70, 128,  32,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  62,   0,   0,   1,  83, 
-     84,  65,  84, 116,   0,   0, 
-      0,  11,   0,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   4, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  82,  68,  69, 
-     70, 116,   2,   0,   0,   3, 
-      0,   0,   0, 168,   0,   0, 
-      0,   3,   0,   0,   0,  28, 
-      0,   0,   0,   0,   4, 254, 
-    255,   0,   1,   0,   0,  64, 
-      2,   0,   0, 124,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0, 133, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0, 152,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,  80, 101, 114, 
-     76,  97, 121, 101, 114,   0, 
-     80, 101, 114,  79,  99,  99, 
-     97, 115, 105, 111, 110,  97, 
-    108,  76,  97, 121, 101, 114, 
-      0,  80, 101, 114,  76,  97, 
-    121, 101, 114,  77,  97, 110, 
-     97, 103, 101, 114,   0, 124, 
-      0,   0,   0,   4,   0,   0, 
-      0, 240,   0,   0,   0, 112, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 133, 
-      0,   0,   0,   2,   0,   0, 
-      0, 188,   1,   0,   0,  32, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 152, 
-      0,   0,   0,   1,   0,   0, 
-      0,  28,   2,   0,   0,  64, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,  80, 
-      1,   0,   0,   0,   0,   0, 
-      0,  16,   0,   0,   0,   2, 
-      0,   0,   0,  96,   1,   0, 
-      0,   0,   0,   0,   0, 112, 
-      1,   0,   0,  16,   0,   0, 
-      0,  16,   0,   0,   0,   2, 
-      0,   0,   0,  96,   1,   0, 
-      0,   0,   0,   0,   0, 123, 
-      1,   0,   0,  32,   0,   0, 
-      0,   4,   0,   0,   0,   0, 
-      0,   0,   0, 140,   1,   0, 
-      0,   0,   0,   0,   0, 156, 
-      1,   0,   0,  48,   0,   0, 
-      0,  64,   0,   0,   0,   2, 
-      0,   0,   0, 172,   1,   0, 
-      0,   0,   0,   0,   0, 118, 
-     84, 101, 120, 116, 117, 114, 
-    101,  67, 111, 111, 114, 100, 
-    115,   0, 171,   1,   0,   3, 
-      0,   1,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 118,  76,  97, 121, 101, 
-    114,  81, 117,  97, 100,   0, 
-    102,  76,  97, 121, 101, 114, 
-     79, 112,  97,  99, 105, 116, 
-    121,   0, 171, 171, 171,   0, 
-      0,   3,   0,   1,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 109,  76,  97, 
-    121, 101, 114,  84, 114,  97, 
-    110, 115, 102, 111, 114, 109, 
-      0,   3,   0,   3,   0,   4, 
-      0,   4,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 236, 
-      1,   0,   0,   0,   0,   0, 
-      0,  16,   0,   0,   0,   2, 
-      0,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0,  16, 
-      2,   0,   0,  16,   0,   0, 
-      0,  16,   0,   0,   0,   0, 
-      0,   0,   0,   0,   2,   0, 
-      0,   0,   0,   0,   0, 118, 
-     82, 101, 110, 100, 101, 114, 
-     84,  97, 114, 103, 101, 116, 
-     79, 102, 102, 115, 101, 116, 
-      0,   1,   0,   3,   0,   1, 
-      0,   4,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 102, 
-     76,  97, 121, 101, 114,  67, 
-    111, 108, 111, 114,   0,  52, 
-      2,   0,   0,   0,   0,   0, 
-      0,  64,   0,   0,   0,   2, 
-      0,   0,   0, 172,   1,   0, 
-      0,   0,   0,   0,   0, 109, 
-     80, 114, 111, 106, 101,  99, 
-    116, 105, 111, 110,   0,  77, 
-    105,  99, 114, 111, 115, 111, 
-    102, 116,  32,  40,  82,  41, 
-     32,  72,  76,  83,  76,  32, 
-     83, 104,  97, 100, 101, 114, 
-     32,  67, 111, 109, 112, 105, 
-    108, 101, 114,  32,  57,  46, 
-     50,  55,  46,  57,  53,  50, 
-     46,  51,  48,  50,  50,   0, 
-    171, 171, 171,  73,  83,  71, 
-     78,  44,   0,   0,   0,   1, 
-      0,   0,   0,   8,   0,   0, 
-      0,  32,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,   3,   3,   0, 
-      0,  80,  79,  83,  73,  84, 
-     73,  79,  78,   0, 171, 171, 
-    171,  79,  83,  71,  78,  80, 
-      0,   0,   0,   2,   0,   0, 
-      0,   8,   0,   0,   0,  56, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   3, 
-      0,   0,   0,   0,   0,   0, 
-      0,  15,   0,   0,   0,  68, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   3, 
-      0,   0,   0,   1,   0,   0, 
-      0,   3,  12,   0,   0,  83, 
-     86,  95,  80, 111, 115, 105, 
-    116, 105, 111, 110,   0,  84, 
-     69,  88,  67,  79,  79,  82, 
-     68,   0, 171, 171, 171,  99, 
-    102,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-      0, 216,   2,   0,   0,  68, 
-     88,  66,  67, 247, 128, 122, 
-    171, 183, 156, 243,  15,  69, 
-     10, 154, 190,  66, 220,  37, 
-     74,   1,   0,   0,   0, 216, 
-      2,   0,   0,   6,   0,   0, 
-      0,  56,   0,   0,   0, 132, 
-      0,   0,   0, 204,   0,   0, 
-      0,  72,   1,   0,   0,  76, 
-      2,   0,   0, 164,   2,   0, 
-      0,  65, 111, 110,  57,  68, 
-      0,   0,   0,  68,   0,   0, 
-      0,   0,   2, 255, 255,  20, 
-      0,   0,   0,  48,   0,   0, 
-      0,   1,   0,  36,   0,   0, 
-      0,  48,   0,   0,   0,  48, 
-      0,   0,   0,  36,   0,   0, 
-      0,  48,   0,   0,   0,   1, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   1,   2, 255, 
-    255,   1,   0,   0,   2,   0, 
-      8,  15, 128,   0,   0, 228, 
-    160, 255, 255,   0,   0,  83, 
-     72,  68,  82,  64,   0,   0, 
-      0,  64,   0,   0,   0,  16, 
-      0,   0,   0,  89,   0,   0, 
-      4,  70, 142,  32,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0, 101,   0,   0,   3, 242, 
-     32,  16,   0,   0,   0,   0, 
-      0,  54,   0,   0,   6, 242, 
-     32,  16,   0,   0,   0,   0, 
-      0,  70, 142,  32,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  62,   0,   0,   1,  83, 
-     84,  65,  84, 116,   0,   0, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,  82,  68,  69, 
-     70, 252,   0,   0,   0,   1, 
-      0,   0,   0,  80,   0,   0, 
-      0,   1,   0,   0,   0,  28, 
-      0,   0,   0,   0,   4, 255, 
-    255,   0,   1,   0,   0, 200, 
-      0,   0,   0,  60,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0,  80, 
-    101, 114,  79,  99,  99,  97, 
-    115, 105, 111, 110,  97, 108, 
-     76,  97, 121, 101, 114,   0, 
-    171,  60,   0,   0,   0,   2, 
-      0,   0,   0, 104,   0,   0, 
-      0,  32,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 152,   0,   0,   0,   0, 
-      0,   0,   0,  16,   0,   0, 
-      0,   0,   0,   0,   0, 172, 
-      0,   0,   0,   0,   0,   0, 
-      0, 188,   0,   0,   0,  16, 
-      0,   0,   0,  16,   0,   0, 
-      0,   2,   0,   0,   0, 172, 
-      0,   0,   0,   0,   0,   0, 
-      0, 118,  82, 101, 110, 100, 
-    101, 114,  84,  97, 114, 103, 
-    101, 116,  79, 102, 102, 115, 
-    101, 116,   0,   1,   0,   3, 
-      0,   1,   0,   4,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 102,  76,  97, 121, 101, 
-    114,  67, 111, 108, 111, 114, 
-      0,  77, 105,  99, 114, 111, 
-    115, 111, 102, 116,  32,  40, 
-     82,  41,  32,  72,  76,  83, 
-     76,  32,  83, 104,  97, 100, 
-    101, 114,  32,  67, 111, 109, 
-    112, 105, 108, 101, 114,  32, 
-     57,  46,  50,  55,  46,  57, 
-     53,  50,  46,  51,  48,  50, 
-     50,   0, 171, 171, 171,  73, 
-     83,  71,  78,  80,   0,   0, 
-      0,   2,   0,   0,   0,   8, 
-      0,   0,   0,  56,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,   3,   0,   0, 
-      0,   0,   0,   0,   0,  15, 
-      0,   0,   0,  68,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   3,   0,   0, 
-      0,   1,   0,   0,   0,   3, 
-      0,   0,   0,  83,  86,  95, 
-     80, 111, 115, 105, 116, 105, 
-    111, 110,   0,  84,  69,  88, 
-     67,  79,  79,  82,  68,   0, 
-    171, 171, 171,  79,  83,  71, 
-     78,  44,   0,   0,   0,   1, 
-      0,   0,   0,   8,   0,   0, 
-      0,  32,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   3,   0,   0,   0,   0, 
-      0,   0,   0,  15,   0,   0, 
-      0,  83,  86,  95,  84,  97, 
-    114, 103, 101, 116,   0, 171, 
-    171, 147, 109,   0,   0,   0, 
-      0,   0,   0,   4,   0,   0, 
-      0, 112,   0,   0,   0,   0, 
-      0,   0,   0,   4,   0,   0, 
-      0, 255, 255, 255, 255,   0, 
-      0,   0,   0,  48,   0,   0, 
-      0,  20,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  63,   0,   0,   0,  20, 
-      0,   0,   0,   0,   0,   0, 
-      0,  16,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 108, 
-      0,   0,   0,  80,   0,   0, 
-      0,   0,   0,   0,   0,  32, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 159,   0,   0, 
-      0, 131,   0,   0,   0,   0, 
-      0,   0,   0,  48,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0, 175,   0,   0,   0,  32, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0, 255, 
-    255, 255, 255,   0,   0,   0, 
-      0, 194,   0,   0,   0,  20, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0, 214, 
-      0,   0,   0,  20,   0,   0, 
-      0,   0,   0,   0,   0,  16, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0, 226,   0,   0, 
-      0,  64,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 255, 255, 255, 255,   0, 
-      0,   0,   0, 242,   0,   0, 
-      0, 131,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,  37,   1,   0,   0,   9, 
-      1,   0,   0,   0,   0,   0, 
-      0, 255, 255, 255, 255,   9, 
-      0,   0,   0,  36,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  44,   1,   0, 
-      0,  37,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  56,   1,   0,   0,  38, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,  68, 
-      1,   0,   0,  39,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  80,   1,   0, 
-      0,  40,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  92,   1,   0,   0,  41, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 104, 
-      1,   0,   0,  42,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 116,   1,   0, 
-      0,  43,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 128,   1,   0,   0,  44, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 140, 
-      1,   0,   0,   0,   0,   0, 
-      0, 152,   1,   0,   0,   9, 
-      1,   0,   0,   0,   0,   0, 
-      0, 255, 255, 255, 255,   9, 
-      0,   0,   0,  36,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 162,   1,   0, 
-      0,  37,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 174,   1,   0,   0,  38, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 186, 
-      1,   0,   0,  39,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 198,   1,   0, 
-      0,  40,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 210,   1,   0,   0,  41, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 222, 
-      1,   0,   0,  42,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 234,   1,   0, 
-      0,  43,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 246,   1,   0,   0,  44, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   2, 
-      2,   0,   0,   0,   0,   0, 
-      0,  14,   2,   0,   0,   9, 
-      1,   0,   0,   0,   0,   0, 
-      0, 255, 255, 255, 255,   9, 
-      0,   0,   0,  36,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  34,   2,   0, 
-      0,  37,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  46,   2,   0,   0,  38, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,  58, 
-      2,   0,   0,  39,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  70,   2,   0, 
-      0,  40,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  82,   2,   0,   0,  41, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,  94, 
-      2,   0,   0,  42,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 106,   2,   0, 
-      0,  43,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 118,   2,   0,   0,  44, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 130, 
-      2,   0,   0,   0,   0,   0, 
-      0, 186,   2,   0,   0, 158, 
-      2,   0,   0,   0,   0,   0, 
-      0, 255, 255, 255, 255,   2, 
-      0,   0,   0,  19,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 196,   2,   0, 
-      0,  13,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 208,   2,   0,   0,   0, 
-      0,   0,   0,   2,   3,   0, 
-      0, 230,   2,   0,   0,   0, 
-      0,   0,   0, 255, 255, 255, 
-    255,   0,   0,   0,   0,   7, 
-      3,   0,   0, 230,   2,   0, 
-      0,   0,   0,   0,   0, 255, 
-    255, 255, 255,   0,   0,   0, 
-      0,  10,   3,   0,   0, 230, 
-      2,   0,   0,   0,   0,   0, 
-      0, 255, 255, 255, 255,   0, 
-      0,   0,   0,  14,   3,   0, 
-      0, 230,   2,   0,   0,   0, 
-      0,   0,   0, 255, 255, 255, 
-    255,   0,   0,   0,   0,  18, 
-      3,   0,   0, 230,   2,   0, 
-      0,   0,   0,   0,   0, 255, 
-    255, 255, 255,   0,   0,   0, 
-      0,  69,   3,   0,   0,  41, 
-      3,   0,   0,   0,   0,   0, 
-      0, 255, 255, 255, 255,   3, 
-      0,   0,   0,  45,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  95,   3,   0, 
-      0,  46,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 107,   3,   0,   0,  47, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 119, 
-      3,   0,   0,   0,   0,   0, 
-      0, 131,   3,   0,   0,  41, 
-      3,   0,   0,   0,   0,   0, 
-      0, 255, 255, 255, 255,   3, 
-      0,   0,   0,  45,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 156,   3,   0, 
-      0,  46,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 168,   3,   0,   0,  47, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 180, 
-      3,   0,   0,   0,   0,   0, 
-      0, 192,   3,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0, 213,   3,   0,   0,   7, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0, 186,   2,   0,   0,  10, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 216, 
-      3,   0,   0,  11,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 252,   3,   0, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0,  37,   1,   0,   0,   6, 
-      0,   0,   0,   0,   0,   0, 
-      0,   7,   0,   0,   0,  36, 
-     11,   0,   0,   8,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  44,  11,   0, 
-      0,   7,   0,   0,   0,   0, 
-      0,   0,   0,   7,   0,   0, 
-      0, 144,  15,   0,   0, 152, 
-     15,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0, 213, 
-      3,   0,   0,   7,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0, 186, 
-      2,   0,   0,  10,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 178,  15,   0, 
-      0,  11,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 214,  15,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0,  37, 
-      1,   0,   0,   6,   0,   0, 
-      0,   0,   0,   0,   0,   7, 
-      0,   0,   0, 254,  22,   0, 
-      0,   8,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,   6,  23,   0,   0,   7, 
-      0,   0,   0,   0,   0,   0, 
-      0,   7,   0,   0,   0, 106, 
-     27,   0,   0, 114,  27,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0, 213,   3,   0, 
-      0,   7,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0, 186,   2,   0, 
-      0,  10,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 136,  27,   0,   0,  11, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 172, 
-     27,   0,   0,   2,   0,   0, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0,  37,   1,   0, 
-      0,   6,   0,   0,   0,   0, 
-      0,   0,   0,   7,   0,   0, 
-      0, 212,  34,   0,   0,   8, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 220, 
-     34,   0,   0,   7,   0,   0, 
-      0,   0,   0,   0,   0,   7, 
-      0,   0,   0,  28,  39,   0, 
-      0,  36,  39,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0, 213,   3,   0,   0,   7, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0, 186,   2,   0,   0,  10, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,  61, 
-     39,   0,   0,  11,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  97,  39,   0, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0, 152,   1,   0,   0,   6, 
-      0,   0,   0,   0,   0,   0, 
-      0,   7,   0,   0,   0, 137, 
-     46,   0,   0,   8,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 145,  46,   0, 
-      0,   7,   0,   0,   0,   0, 
-      0,   0,   0,   7,   0,   0, 
-      0, 209,  50,   0,   0, 217, 
-     50,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0, 213, 
-      3,   0,   0,   7,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0, 186, 
-      2,   0,   0,  10,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 244,  50,   0, 
-      0,  11,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  24,  51,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0,  37, 
-      1,   0,   0,   6,   0,   0, 
-      0,   0,   0,   0,   0,   7, 
-      0,   0,   0,  64,  58,   0, 
-      0,   8,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  72,  58,   0,   0,   7, 
-      0,   0,   0,   0,   0,   0, 
-      0,   7,   0,   0,   0, 136, 
-     62,   0,   0, 144,  62,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0, 213,   3,   0, 
-      0,   7,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0, 186,   2,   0, 
-      0,  10,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 174,  62,   0,   0,  11, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 210, 
-     62,   0,   0,   2,   0,   0, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0, 152,   1,   0, 
-      0,   6,   0,   0,   0,   0, 
-      0,   0,   0,   7,   0,   0, 
-      0, 250,  69,   0,   0,   8, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,   2, 
-     70,   0,   0,   7,   0,   0, 
-      0,   0,   0,   0,   0,   7, 
-      0,   0,   0,  66,  74,   0, 
-      0,  74,  74,   0,   0,   1, 
-      0,   0,   0,   0,   0,   0, 
-      0, 213,   3,   0,   0,   7, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0, 186,   2,   0,   0,  10, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,  91, 
-     74,   0,   0,  11,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 127,  74,   0, 
-      0,   2,   0,   0,   0,   0, 
-      0,   0,   0,   2,   0,   0, 
-      0,  37,   1,   0,   0,   6, 
-      0,   0,   0,   0,   0,   0, 
-      0,   7,   0,   0,   0, 167, 
-     81,   0,   0,   8,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0, 175,  81,   0, 
-      0,   7,   0,   0,   0,   0, 
-      0,   0,   0,   7,   0,   0, 
-      0, 255,  88,   0,   0,   7, 
-     89,   0,   0,   1,   0,   0, 
-      0,   0,   0,   0,   0, 213, 
-      3,   0,   0,   7,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0, 186, 
-      2,   0,   0,  10,   0,   0, 
-      0,   0,   0,   0,   0,   1, 
-      0,   0,   0,  33,  89,   0, 
-      0,  11,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  69,  89,   0,   0,   2, 
-      0,   0,   0,   0,   0,   0, 
-      0,   2,   0,   0,   0,  14, 
-      2,   0,   0,   6,   0,   0, 
-      0,   0,   0,   0,   0,   7, 
-      0,   0,   0, 109,  96,   0, 
-      0,   8,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0, 117,  96,   0,   0,   7, 
-      0,   0,   0,   0,   0,   0, 
-      0,   7,   0,   0,   0,  21, 
-    102,   0,   0,  29, 102,   0, 
-      0,   1,   0,   0,   0,   0, 
-      0,   0,   0, 213,   3,   0, 
-      0,   7,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   0, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0, 186,   2,   0, 
-      0,  10,   0,   0,   0,   0, 
-      0,   0,   0,   1,   0,   0, 
-      0,  51, 102,   0,   0,  11, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0,  87, 
-    102,   0,   0,   2,   0,   0, 
-      0,   0,   0,   0,   0,   2, 
-      0,   0,   0,  37,   1,   0, 
-      0,   6,   0,   0,   0,   0, 
-      0,   0,   0,   7,   0,   0, 
-      0, 127, 109,   0,   0,   8, 
-      0,   0,   0,   0,   0,   0, 
-      0,   1,   0,   0,   0, 135, 
-    109,   0,   0,   7,   0,   0, 
-      0,   0,   0,   0,   0,   7, 
-      0,   0,   0, 111, 112,   0, 
-      0
-};
+#if 0
+//
+// FX Version: fx_4_0
+// Child effect (requires effect pool): false
+//
+// 3 local buffer(s)
+//
+cbuffer PerLayer
+{
+    float4  vTextureCoords;             // Offset:    0, size:   16
+    float4  vLayerQuad;                 // Offset:   16, size:   16
+    float   fLayerOpacity;              // Offset:   32, size:    4
+    float4x4 mLayerTransform;           // Offset:   48, size:   64
+}
+
+cbuffer PerOccasionalLayer
+{
+    float4  vRenderTargetOffset;        // Offset:    0, size:   16
+    float4  fLayerColor;                // Offset:   16, size:   16
+}
+
+cbuffer PerLayerManager
+{
+    float4x4 mProjection;               // Offset:    0, size:   64
+}
+
+//
+// 11 local object(s)
+//
+BlendState Premul
+{
+    AlphaToCoverageEnable = bool(FALSE /* 0 */);
+    BlendEnable[0] = bool(TRUE /* 1 */);
+    SrcBlend[0] = uint(ONE /* 2 */);
+    DestBlend[0] = uint(INV_SRC_ALPHA /* 6 */);
+    BlendOp[0] = uint(ADD /* 1 */);
+    SrcBlendAlpha[0] = uint(ONE /* 2 */);
+    DestBlendAlpha[0] = uint(INV_SRC_ALPHA /* 6 */);
+    BlendOpAlpha[0] = uint(ADD /* 1 */);
+    RenderTargetWriteMask[0] = byte(0x0f);
+};
+BlendState NonPremul
+{
+    AlphaToCoverageEnable = bool(FALSE /* 0 */);
+    BlendEnable[0] = bool(TRUE /* 1 */);
+    SrcBlend[0] = uint(SRC_ALPHA /* 5 */);
+    DestBlend[0] = uint(INV_SRC_ALPHA /* 6 */);
+    BlendOp[0] = uint(ADD /* 1 */);
+    SrcBlendAlpha[0] = uint(ONE /* 2 */);
+    DestBlendAlpha[0] = uint(INV_SRC_ALPHA /* 6 */);
+    BlendOpAlpha[0] = uint(ADD /* 1 */);
+    RenderTargetWriteMask[0] = byte(0x0f);
+};
+BlendState ComponentAlphaBlend
+{
+    AlphaToCoverageEnable = bool(FALSE /* 0 */);
+    BlendEnable[0] = bool(TRUE /* 1 */);
+    SrcBlend[0] = uint(ONE /* 2 */);
+    DestBlend[0] = uint(INV_SRC1_COLOR /* 17 */);
+    BlendOp[0] = uint(ADD /* 1 */);
+    SrcBlendAlpha[0] = uint(SRC1_ALPHA /* 18 */);
+    DestBlendAlpha[0] = uint(INV_SRC1_ALPHA /* 19 */);
+    BlendOpAlpha[0] = uint(ADD /* 1 */);
+    RenderTargetWriteMask[0] = byte(0x0f);
+};
+RasterizerState LayerRast
+{
+    ScissorEnable = bool(TRUE /* 1 */);
+    CullMode = uint(NONE /* 1 */);
+};
+Texture2D tRGB;
+Texture2D tY;
+Texture2D tCb;
+Texture2D tCr;
+Texture2D tRGBWhite;
+SamplerState LayerTextureSamplerLinear
+{
+    Filter   = uint(MIN_MAG_MIP_LINEAR /* 21 */);
+    AddressU = uint(CLAMP /* 3 */);
+    AddressV = uint(CLAMP /* 3 */);
+};
+SamplerState LayerTextureSamplerPoint
+{
+    Filter   = uint(MIN_MAG_MIP_POINT /* 0 */);
+    AddressU = uint(CLAMP /* 3 */);
+    AddressV = uint(CLAMP /* 3 */);
+};
+
+//
+// 9 technique(s)
+//
+technique10 RenderRGBLayerPremul
+{
+    pass P0
+    {
+        RasterizerState = LayerRast;
+        AB_BlendFactor = float4(0, 0, 0, 0);
+        AB_SampleMask = uint(0xffffffff);
+        BlendState = Premul;
+        VertexShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer PerLayer
+            // {
+            //
+            //   float4 vTextureCoords;             // Offset:    0 Size:    16
+            //   float4 vLayerQuad;                 // Offset:   16 Size:    16
+            //   float fLayerOpacity;               // Offset:   32 Size:     4 [unused]
+            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64
+            //
+            // }
+            //
+            // cbuffer PerOccasionalLayer
+            // {
+            //
+            //   float4 vRenderTargetOffset;        // Offset:    0 Size:    16
+            //   float4 fLayerColor;                // Offset:   16 Size:    16 [unused]
+            //
+            // }
+            //
+            // cbuffer PerLayerManager
+            // {
+            //
+            //   float4x4 mProjection;              // Offset:    0 Size:    64
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // PerLayer                          cbuffer      NA          NA    0        1
+            // PerOccasionalLayer                cbuffer      NA          NA    1        1
+            // PerLayerManager                   cbuffer      NA          NA    2        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // POSITION                 0   xy          0     NONE  float   xy  
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float   xyzw
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c1         cb0             0         2  ( FLT, FLT, FLT, FLT)
+            // c3         cb0             3         2  ( FLT, FLT, FLT, FLT)
+            // c5         cb0             6         1  ( FLT, FLT, FLT, FLT)
+            // c6         cb1             0         1  ( FLT, FLT, FLT, FLT)
+            // c7         cb2             0         4  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Runtime generated constant mappings:
+            //
+            // Target Reg                               Constant Description
+            // ---------- --------------------------------------------------
+            // c0                              Vertex Shader position offset
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                vs_2_x
+                dcl_texcoord v0
+                mad oT0.xy, v0, c1.zwzw, c1
+                mad r0.xy, v0, c2.zwzw, c2
+                mul r1, r0.y, c4
+                mad r0, c3, r0.x, r1
+                add r0, r0, c5
+                add r0, r0, -c6
+                mul r1, r0.y, c8
+                mad r1, c7, r0.x, r1
+                mad r1, c9, r0.z, r1
+                mad r0, c10, r0.w, r1
+                mad oPos.xy, r0.w, c0, r0
+                mov oPos.zw, r0
+            
+            // approximately 12 instruction slots used
+            vs_4_0
+            dcl_constantbuffer cb0[7], immediateIndexed
+            dcl_constantbuffer cb1[1], immediateIndexed
+            dcl_constantbuffer cb2[4], immediateIndexed
+            dcl_input v0.xy
+            dcl_output_siv o0.xyzw, position
+            dcl_output o1.xy
+            dcl_temps 2
+            mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx
+            mul r1.xyzw, r0.yyyy, cb0[4].xyzw
+            mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw
+            add r0.xyzw, r0.xyzw, cb0[6].xyzw
+            add r0.xyzw, r0.xyzw, -cb1[0].xyzw
+            mul r1.xyzw, r0.yyyy, cb2[1].xyzw
+            mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw
+            mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw
+            mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw
+            mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
+            ret 
+            // Approximately 11 instruction slots used
+                    
+        };
+        GeometryShader = NULL;
+        PixelShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer PerLayer
+            // {
+            //
+            //   float4 vTextureCoords;             // Offset:    0 Size:    16 [unused]
+            //   float4 vLayerQuad;                 // Offset:   16 Size:    16 [unused]
+            //   float fLayerOpacity;               // Offset:   32 Size:     4
+            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64 [unused]
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // LayerTextureSamplerLinear         sampler      NA          NA    0        1
+            // tRGB                              texture  float4          2d    0        1
+            // PerLayer                          cbuffer      NA          NA    0        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float       
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Target                0   xyzw        0   TARGET  float   xyzw
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c0         cb0             2         1  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Sampler/Resource to DX9 shader sampler mappings:
+            //
+            // Target Sampler Source Sampler  Source Resource
+            // -------------- --------------- ----------------
+            // s0             s0              t0               
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                ps_2_x
+                dcl t0.xy
+                dcl_2d s0
+                texld r0, t0, s0
+                mul r0.xyz, r0, c0.x
+                mov r0.w, c0.x
+                mov oC0, r0
+            
+            // approximately 4 instruction slots used (1 texture, 3 arithmetic)
+            ps_4_0
+            dcl_constantbuffer cb0[3], immediateIndexed
+            dcl_sampler s0, mode_default
+            dcl_resource_texture2d (float,float,float,float) t0
+            dcl_input_ps linear v1.xy
+            dcl_output o0.xyzw
+            dcl_temps 1
+            sample r0.xyzw, v1.xyxx, t0.xyzw, s0
+            mul o0.xyz, r0.xyzx, cb0[2].xxxx
+            mov o0.w, cb0[2].x
+            ret 
+            // Approximately 4 instruction slots used
+                    
+        };
+    }
+
+}
+
+technique10 RenderRGBLayerPremulPoint
+{
+    pass P0
+    {
+        RasterizerState = LayerRast;
+        AB_BlendFactor = float4(0, 0, 0, 0);
+        AB_SampleMask = uint(0xffffffff);
+        BlendState = Premul;
+        VertexShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer PerLayer
+            // {
+            //
+            //   float4 vTextureCoords;             // Offset:    0 Size:    16
+            //   float4 vLayerQuad;                 // Offset:   16 Size:    16
+            //   float fLayerOpacity;               // Offset:   32 Size:     4 [unused]
+            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64
+            //
+            // }
+            //
+            // cbuffer PerOccasionalLayer
+            // {
+            //
+            //   float4 vRenderTargetOffset;        // Offset:    0 Size:    16
+            //   float4 fLayerColor;                // Offset:   16 Size:    16 [unused]
+            //
+            // }
+            //
+            // cbuffer PerLayerManager
+            // {
+            //
+            //   float4x4 mProjection;              // Offset:    0 Size:    64
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // PerLayer                          cbuffer      NA          NA    0        1
+            // PerOccasionalLayer                cbuffer      NA          NA    1        1
+            // PerLayerManager                   cbuffer      NA          NA    2        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // POSITION                 0   xy          0     NONE  float   xy  
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float   xyzw
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c1         cb0             0         2  ( FLT, FLT, FLT, FLT)
+            // c3         cb0             3         2  ( FLT, FLT, FLT, FLT)
+            // c5         cb0             6         1  ( FLT, FLT, FLT, FLT)
+            // c6         cb1             0         1  ( FLT, FLT, FLT, FLT)
+            // c7         cb2             0         4  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Runtime generated constant mappings:
+            //
+            // Target Reg                               Constant Description
+            // ---------- --------------------------------------------------
+            // c0                              Vertex Shader position offset
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                vs_2_x
+                dcl_texcoord v0
+                mad oT0.xy, v0, c1.zwzw, c1
+                mad r0.xy, v0, c2.zwzw, c2
+                mul r1, r0.y, c4
+                mad r0, c3, r0.x, r1
+                add r0, r0, c5
+                add r0, r0, -c6
+                mul r1, r0.y, c8
+                mad r1, c7, r0.x, r1
+                mad r1, c9, r0.z, r1
+                mad r0, c10, r0.w, r1
+                mad oPos.xy, r0.w, c0, r0
+                mov oPos.zw, r0
+            
+            // approximately 12 instruction slots used
+            vs_4_0
+            dcl_constantbuffer cb0[7], immediateIndexed
+            dcl_constantbuffer cb1[1], immediateIndexed
+            dcl_constantbuffer cb2[4], immediateIndexed
+            dcl_input v0.xy
+            dcl_output_siv o0.xyzw, position
+            dcl_output o1.xy
+            dcl_temps 2
+            mad r0.xy, v0.xyxx, cb0[1].zwzz, cb0[1].xyxx
+            mul r1.xyzw, r0.yyyy, cb0[4].xyzw
+            mad r0.xyzw, cb0[3].xyzw, r0.xxxx, r1.xyzw
+            add r0.xyzw, r0.xyzw, cb0[6].xyzw
+            add r0.xyzw, r0.xyzw, -cb1[0].xyzw
+            mul r1.xyzw, r0.yyyy, cb2[1].xyzw
+            mad r1.xyzw, cb2[0].xyzw, r0.xxxx, r1.xyzw
+            mad r1.xyzw, cb2[2].xyzw, r0.zzzz, r1.xyzw
+            mad o0.xyzw, cb2[3].xyzw, r0.wwww, r1.xyzw
+            mad o1.xy, v0.xyxx, cb0[0].zwzz, cb0[0].xyxx
+            ret 
+            // Approximately 11 instruction slots used
+                    
+        };
+        GeometryShader = NULL;
+        PixelShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer PerLayer
+            // {
+            //
+            //   float4 vTextureCoords;             // Offset:    0 Size:    16 [unused]
+            //   float4 vLayerQuad;                 // Offset:   16 Size:    16 [unused]
+            //   float fLayerOpacity;               // Offset:   32 Size:     4
+            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64 [unused]
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // LayerTextureSamplerPoint          sampler      NA          NA    0        1
+            // tRGB                              texture  float4          2d    0        1
+            // PerLayer                          cbuffer      NA          NA    0        1
+            //
+            //
+            //
+            // Input signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Position              0   xyzw        0      POS  float       
+            // TEXCOORD                 0   xy          1     NONE  float   xy  
+            //
+            //
+            // Output signature:
+            //
+            // Name                 Index   Mask Register SysValue Format   Used
+            // -------------------- ----- ------ -------- -------- ------ ------
+            // SV_Target                0   xyzw        0   TARGET  float   xyzw
+            //
+            //
+            // Constant buffer to DX9 shader constant mappings:
+            //
+            // Target Reg Buffer  Start Reg # of Regs        Data Conversion
+            // ---------- ------- --------- --------- ----------------------
+            // c0         cb0             2         1  ( FLT, FLT, FLT, FLT)
+            //
+            //
+            // Sampler/Resource to DX9 shader sampler mappings:
+            //
+            // Target Sampler Source Sampler  Source Resource
+            // -------------- --------------- ----------------
+            // s0             s0              t0               
+            //
+            //
+            // Level9 shader bytecode:
+            //
+                ps_2_x
+                dcl t0.xy
+                dcl_2d s0
+                texld r0, t0, s0
+                mul r0.xyz, r0, c0.x
+                mov r0.w, c0.x
+                mov oC0, r0
+            
+            // approximately 4 instruction slots used (1 texture, 3 arithmetic)
+            ps_4_0
+            dcl_constantbuffer cb0[3], immediateIndexed
+            dcl_sampler s0, mode_default
+            dcl_resource_texture2d (float,float,float,float) t0
+            dcl_input_ps linear v1.xy
+            dcl_output o0.xyzw
+            dcl_temps 1
+            sample r0.xyzw, v1.xyxx, t0.xyzw, s0
+            mul o0.xyz, r0.xyzx, cb0[2].xxxx
+            mov o0.w, cb0[2].x
+            ret 
+            // Approximately 4 instruction slots used
+                    
+        };
+    }
+
+}
+
+technique10 RenderRGBALayerPremul
+{
+    pass P0
+    {
+        RasterizerState = LayerRast;
+        AB_BlendFactor = float4(0, 0, 0, 0);
+        AB_SampleMask = uint(0xffffffff);
+        BlendState = Premul;
+        VertexShader = asm {
+            //
+            // Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111
+            //
+            //
+            // Buffer Definitions: 
+            //
+            // cbuffer PerLayer
+            // {
+            //
+            //   float4 vTextureCoords;             // Offset:    0 Size:    16
+            //   float4 vLayerQuad;                 // Offset:   16 Size:    16
+            //   float fLayerOpacity;               // Offset:   32 Size:     4 [unused]
+            //   float4x4 mLayerTransform;          // Offset:   48 Size:    64
+            //
+            // }
+            //
+            // cbuffer PerOccasionalLayer
+            // {
+            //
+            //   float4 vRenderTargetOffset;        // Offset:    0 Size:    16
+            //   float4 fLayerColor;                // Offset:   16 Size:    16 [unused]
+            //
+            // }
+            //
+            // cbuffer PerLayerManager
+            // {
+            //
+            //   float4x4 mProjection;              // Offset:    0 Size:    64
+            //
+            // }
+            //
+            //
+            // Resource Bindings:
+            //
+            // Name                                 Type  Format         Dim Slot Elements
+            // ------------------------------ ---------- ------- ----------- ---- --------
+            // PerLayer                          cbuffer      NA          NA    0        1