text:
namespace Microsoft.Protocols.TestSuites.MS_ASAIRS
{
    using System;
    using System.Collections.Generic;
    using System.Net;
    using System.Threading;
    using System.Xml;
    using Microsoft.Protocols.TestSuites.Common;
    using Microsoft.Protocols.TestTools;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using DataStructures = Microsoft.Protocols.TestSuites.Common.DataStructures;
    using Request = Microsoft.Protocols.TestSuites.Common.Request;

    /// <summary>
    /// This scenario is designed to test the status error which is returned by the Sync command, Search command and ItemOperations command when the XML elements in AirSyncBase namespace don't comply with the requirements regarding data type, number of instance, order and placement in the XML hierarchy.
    /// </summary>
    [TestClass]
    public class S04_StatusError : TestSuiteBase
    {
        #region Class initialize and clean up
        /// <summary>
        /// Initialize the class.
        /// </summary>
        /// <param name="testContext">VSTS test context.</param>
        [ClassInitialize]
        public static void ClassInitialize(TestContext testContext)
        {
            TestClassBase.Initialize(testContext);
        }

        /// <summary>
        /// Clear the class.
        /// </summary>
        [ClassCleanup]
        public static void ClassCleanUp()
        {
            TestClassBase.Cleanup();
        }
        #endregion

        #region MSASAIRS_S04_TC01_Sync_Status4
        /// <summary>
        /// This case is designed to test if the child elements of BodyPreference are not in the correct order, the AllOrNone element is not of type Boolean, or multiple AllOrNone elements are in a single BodyPreference element, the server will return protocol status error 4 for a Sync command.
        /// </summary>
        [TestCategory("MSASAIRS"), TestMethod()]
        public void MSASAIRS_S04_TC01_Sync_Status4()
        {
            #region Send a plain text email
            string subject = Common.GenerateResourceName(Site, "Subject");
            string body = Common.GenerateResourceName(Site, "Body");
            this.SendEmail(EmailType.Plaintext, subject, body);

            // Make sure the email has reached the inbox folder of the recipient
            this.GetSyncResult(subject, this.User2Information.InboxCollectionId, null, null, null);
            #endregion

            #region Set BodyPreference element
            Request.BodyPreference[] bodyPreference = new Request.BodyPreference[]
            {
                new Request.BodyPreference()
                {
                    Type = 1,
                    TruncationSize = 100,
                    TruncationSizeSpecified = true,
                    AllOrNone = true,
                    AllOrNoneSpecified = true
                }
            };
            #endregion

            #region Call Sync command with incorrect order of child elements of BodyPreference
            SyncRequest request = TestSuiteHelper.CreateSyncRequest(this.GetInitialSyncKey(this.User2Information.InboxCollectionId), this.User2Information.InboxCollectionId, null, bodyPreference, null);
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(request.GetRequestDataSerializedXML());
            XmlNode bodyPreferenceNode = doc.SelectSingleNode("//*[name()='BodyPreference']");

            // Put the first node to the end.
            XmlNode temp = bodyPreferenceNode.ChildNodes[0];
            bodyPreferenceNode.RemoveChild(temp);
            bodyPreferenceNode.AppendChild(temp);

            SendStringResponse response = this.ASAIRSAdapter.Sync(doc.OuterXml);

            string status = this.GetStatusCodeFromXPath(response, "/a:Sync/a:Status");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R348");

            // Verify MS-ASAIRS requirement: MS-ASAIRS_R348
            Site.CaptureRequirementIfAreEqual(
                "4",
                status,
                348,
                @"[In Validating XML] If the child elements of BodyPreference (section 2.2.2.12) are not in the correct order, the server returns protocol status error 4 (for a Sync command).");
            #endregion

            #region Call Sync command with a non-boolean value of AllOrNone element
            doc.LoadXml(request.GetRequestDataSerializedXML());
            XmlNode allOrNoneNode = doc.SelectSingleNode("//*[name()='AllOrNone']");

            // Set the AllOrNone element value to non-boolean.
            allOrNoneNode.InnerText = "a";

            response = this.ASAIRSAdapter.Sync(doc.OuterXml);

            status = this.GetStatusCodeFromXPath(response, "/a:Sync/a:Status");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R350");

            // Verify MS-ASAIRS requirement: MS-ASAIRS_R350
            Site.CaptureRequirementIfAreEqual(
                "4",
                status,
                350,
                @"[In Validating XML] If the AllOrNone (section 2.2.2.3.2) element is not of type boolean, the server returns protocol status error 4 (for Sync command).");
            #endregion

            #region Call Sync command with multiple AllOrNone elements in a single BodyPreference element
            doc.LoadXml(request.GetRequestDataSerializedXML());
            bodyPreferenceNode = doc.SelectSingleNode("//*[name()='BodyPreference']");
            allOrNoneNode = doc.SelectSingleNode("//*[name()='AllOrNone']");
            temp = allOrNoneNode.Clone();
            bodyPreferenceNode.AppendChild(temp);

            response = this.ASAIRSAdapter.Sync(doc.OuterXml);

            status = this.GetStatusCodeFromXPath(response, "/a:Sync/a:Status");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R351");

            // Verify MS-ASAIRS requirement: MS-ASAIRS_R351
            Site.CaptureRequirementIfAreEqual(
                "4",
                status,
                351,
                @"[In Validating XML] If multiple AllOrNone elements are in a single BodyPreference element, the server returns protocol status error 4 (for Sync command).");
            #endregion
        }
        #endregion

        #region MSASAIRS_S04_TC02_IncorrectDataType
        /// <summary>
        /// This case is designed to test server will return protocol status error 2 for an ItemOperations command or Search command, protocol status error 6 for a Sync command, if an element doesn't meet the specified data type.
        /// </summary>
        [TestCategory("MSASAIRS"), TestMethod()]
        public void MSASAIRS_S04_TC02_IncorrectDataType()
        {
            #region Send a plain text email
            string subject = Common.GenerateResourceName(Site, "Subject");
            string body = Common.GenerateResourceName(Site, "Body");
            this.SendEmail(EmailType.Plaintext, subject, body);
            #endregion

            #region Set BodyPreference element
            Request.BodyPreference[] bodyPreference = new Request.BodyPreference[]
            {
                new Request.BodyPreference()
                {
                    Type = 1,
                    TruncationSize = 100,
                    TruncationSizeSpecified = true,
                    AllOrNone = true,
                    AllOrNoneSpecified = true
                }
            };
            #endregion

            #region Call ItemOperations command with the Type element value in incorrect data type
            DataStructures.Sync syncItem = this.GetSyncResult(subject, this.User2Information.InboxCollectionId, null, bodyPreference, null);

            if (Common.IsRequirementEnabled(346, this.Site))
            {
                ItemOperationsRequest itemOperationRequest = TestSuiteHelper.CreateItemOperationsRequest(this.User2Information.InboxCollectionId, syncItem.ServerId, null, bodyPreference, null);

                XmlDocument doc = new XmlDocument();
                doc.LoadXml(itemOperationRequest.GetRequestDataSerializedXML());
                XmlNode typeNode = doc.SelectSingleNode("//*[name()='Type']");
                typeNode.InnerText = "a";

                SendStringResponse itemOperationResponse = this.ASAIRSAdapter.ItemOperations(doc.OuterXml);

                string status = this.GetStatusCodeFromXPath(itemOperationResponse, "/i:ItemOperations/i:Status");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R346");

                // Verify MS-ASAIRS requirement: MS-ASAIRS_R346
                Site.CaptureRequirementIfAreEqual(
                    "2",
                    status,
                    346,
                    @"[In Appendix B: Product Behavior] Implementation does return protocol status error 2 for an ItemOperations command (as specified in [MS-ASCMD] section 2.2.2.8), if an element does not meet the requirements[any of the XML elements specified in section 2.2.2 that are present in the command's XML body to ensure they comply with the requirements regarding data type] specified for that element, unless specified in the following table[section 3.2.5.1]. (Exchange Server 2007 SP1 and above follow this behavior.)");
            }
            #endregion

            #region Call Search command with the Type element value in incorrect data type
            if (Common.IsRequirementEnabled(10033, this.Site))
            {
                SearchRequest searchRequest = TestSuiteHelper.CreateSearchRequest(subject, this.User2Information.InboxCollectionId, null, bodyPreference, null);
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(searchRequest.GetRequestDataSerializedXML());
                XmlNode typeNode = doc.SelectSingleNode("//*[name()='Type']");
                typeNode.InnerText = "a";

                SendStringResponse searchResponse = this.ASAIRSAdapter.Search(doc.OuterXml);
                string searchStatus = this.GetStatusCodeFromXPath(searchResponse, "/s:Search/s:Status");
                int retryCount = int.Parse(Common.GetConfigurationPropertyValue("RetryCount", this.Site));
                int waitTime = int.Parse(Common.GetConfigurationPropertyValue("WaitTime", this.Site));
                int counter = 1;

                while (counter < retryCount && searchStatus.Equals("10"))
                {
                    Thread.Sleep(waitTime);
                    searchResponse = this.ASAIRSAdapter.Search(doc.OuterXml);
                    searchStatus = this.GetStatusCodeFromXPath(searchResponse, "/s:Search/s:Status");
                    counter++;
                }

                string status = this.GetStatusCodeFromXPath(searchResponse, "/s:Search/s:Response/s:Store/s:Status");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R10033");

                // Verify MS-ASAIRS requirement: MS-ASAIRS_R10033
                Site.CaptureRequirementIfAreEqual(
                    "2",
                    status,
                    10033,
                    @"[In Appendix B: Product Behavior] Implementation does return protocol status error 2 for a Search command (as specified in [MS-ASCMD] section 2.2.2.14), if an element does not meet the requirements[any of the XML elements specified in section 2.2.2 that are present in the command's XML body to ensure they comply with the requirements regarding data type] specified for that element, unless specified in the following table[section 3.2.5.1]. (Exchange Server 2007 SP1 and above follow this behavior.)");
            }
            #endregion

            #region Call Sync command with the Type element value in incorrect data type
            if (Common.IsRequirementEnabled(10014, this.Site))
            {
                SyncRequest syncAddRequest = TestSuiteHelper.CreateSyncRequest(this.GetInitialSyncKey(this.User2Information.InboxCollectionId), this.User2Information.InboxCollectionId, CreateSyncAddCommands(), null, null);
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(syncAddRequest.GetRequestDataSerializedXML());
                XmlNode typeNode = doc.SelectSingleNode("//*[name()='Type']");
                typeNode.InnerText = "a";

                SendStringResponse syncAddResponse = this.ASAIRSAdapter.Sync(doc.OuterXml);

                string status = this.GetStatusCodeFromXPath(syncAddResponse, "/a:Sync/a:Collections/a:Collection/a:Responses/a:Add/a:Status");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R10014");

                // Verify MS-ASAIRS requirement: MS-ASAIRS_R10014
                Site.CaptureRequirementIfAreEqual(
                    "6",
                    status,
                    10014,
                    @"[In Appendix B: Product Behavior] Implementation does return protocol status error 6 for a Sync command (as specified in [MS-ASCMD] section 2.2.2.19), if an element does not meet the requirements[any of the XML elements specified in section 2.2.2 that are present in the command's XML body to ensure they comply with the requirements regarding data type] specified for that element, unless specified in the following table[section 3.2.5.1]. (Exchange Server 2007 SP1 and above follow this behavior.)");
            }
            #endregion
        }
        #endregion

        #region MSASAIRS_S04_TC03_IncorrectNumberOfInstances
        /// <summary>
        /// This case is designed to test server will return protocol status error 2 for an ItemOperations command or Search command, protocol status error 6 for a Sync command, if an element doesn't meet the number of specified instances.
        /// </summary>
        [TestCategory("MSASAIRS"), TestMethod()]
        public void MSASAIRS_S04_TC03_IncorrectNumberOfInstances()
        {
            #region Send a plain text email
            string subject = Common.GenerateResourceName(Site, "Subject");
            string body = Common.GenerateResourceName(Site, "Body");
            this.SendEmail(EmailType.Plaintext, subject, body);
            #endregion

            #region Set BodyPreference element
            Request.BodyPreference[] bodyPreference = new Request.BodyPreference[]
            {
                new Request.BodyPreference()
                {
                    Type = 1,
                    TruncationSize = 100,
                    TruncationSizeSpecified = true,
                    AllOrNone = true,
                    AllOrNoneSpecified = true
                }
            };
            #endregion

            #region Call ItemOperations command with multiple AllOrNone elements
            DataStructures.Sync syncItem = this.GetSyncResult(subject, this.User2Information.InboxCollectionId, null, bodyPreference, null);

            if (Common.IsRequirementEnabled(10030, this.Site))
            {
                ItemOperationsRequest itemOperationRequest = TestSuiteHelper.CreateItemOperationsRequest(this.User2Information.InboxCollectionId, syncItem.ServerId, null, bodyPreference, null);

                // Add another AllOrNone element in BodyPreference element
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(itemOperationRequest.GetRequestDataSerializedXML());
                XmlNode bodyPreferenceNode = doc.SelectSingleNode("//*[name()='BodyPreference']");
                XmlNode allOrNoneNode = doc.SelectSingleNode("//*[name()='AllOrNone']");
                XmlNode temp = allOrNoneNode.Clone();
                bodyPreferenceNode.AppendChild(temp);

                SendStringResponse itemOperationResponse = this.ASAIRSAdapter.ItemOperations(doc.OuterXml);

                string status = this.GetStatusCodeFromXPath(itemOperationResponse, "/i:ItemOperations/i:Status");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R10030");

                // Verify MS-ASAIRS requirement: MS-ASAIRS_R10030
                Site.CaptureRequirementIfAreEqual(
                    "2",
                    status,
                    10030,
                    @"[In Appendix B: Product Behavior] Implementation does return protocol status error 2 for an ItemOperations command (as specified in [MS-ASCMD] section 2.2.2.8), if an element does not meet the requirements[any of the XML elements specified in section 2.2.2 that are present in the command's XML body to ensure they comply with the requirements regarding number of instances] specified for that element, unless specified in the following table[section 3.2.5.1]. (Exchange Server 2007 SP1 and above follow this behavior.)");
            }
            #endregion

            #region Call Search command with multiple AllOrNone elements
            if (Common.IsRequirementEnabled(10034, this.Site))
            {
                SearchRequest searchRequest = TestSuiteHelper.CreateSearchRequest(subject, this.User2Information.InboxCollectionId, null, bodyPreference, null);

                // Add another AllOrNone element in BodyPreference element
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(searchRequest.GetRequestDataSerializedXML());
                XmlNode bodyPreferenceNode = doc.SelectSingleNode("//*[name()='BodyPreference']");
                XmlNode allOrNoneNode = doc.SelectSingleNode("//*[name()='AllOrNone']");
                XmlNode temp = allOrNoneNode.Clone();
                bodyPreferenceNode.AppendChild(temp);

                SendStringResponse searchResponse = this.ASAIRSAdapter.Search(doc.OuterXml);
                string searchStatus = this.GetStatusCodeFromXPath(searchResponse, "/s:Search/s:Status");
                int retryCount = int.Parse(Common.GetConfigurationPropertyValue("RetryCount", this.Site));
                int waitTime = int.Parse(Common.GetConfigurationPropertyValue("WaitTime", this.Site));
                int counter = 1;

                while (counter < retryCount && searchStatus.Equals("10"))
                {
                    Thread.Sleep(waitTime);
                    searchResponse = this.ASAIRSAdapter.Search(doc.OuterXml);
                    searchStatus = this.GetStatusCodeFromXPath(searchResponse, "/s:Search/s:Status");
                    counter++;
                }

                string status = this.GetStatusCodeFromXPath(searchResponse, "/s:Search/s:Response/s:Store/s:Status");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R10034");

                // Verify MS-ASAIRS requirement: MS-ASAIRS_R10034
                Site.CaptureRequirementIfAreEqual(
                    "2",
                    status,
                    10034,
                    @"[In Appendix B: Product Behavior] Implementation does return protocol status error 2 for a Search command (as specified in [MS-ASCMD] section 2.2.2.14), if an element does not meet the requirements[any of the XML elements specified in section 2.2.2 that are present in the command's XML body to ensure they comply with the requirements regarding number of instances] specified for that element, unless specified in the following table[section 3.2.5.1]. (Exchange Server 2007 SP1 and above follow this behavior.)");
            }
            #endregion

            #region Call Sync add command with multiple Type elements in Body
            if (Common.IsRequirementEnabled(10037, this.Site))
            {
                SyncRequest syncAddRequest = TestSuiteHelper.CreateSyncRequest(this.GetInitialSyncKey(this.User2Information.InboxCollectionId), this.User2Information.InboxCollectionId, CreateSyncAddCommands(), null, null);

                // Add another Type element in Body element
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(syncAddRequest.GetRequestDataSerializedXML());
                XmlNode bodyNode = doc.SelectSingleNode("//*[name()='Body']");
                XmlNode typeNode = bodyNode.SelectSingleNode("//*[name()='Type']");
                XmlNode temp = typeNode.Clone();
                bodyNode.InsertBefore(temp, typeNode);

                SendStringResponse syncAddResponse = this.ASAIRSAdapter.Sync(doc.OuterXml);

                string status = this.GetStatusCodeFromXPath(syncAddResponse, "/a:Sync/a:Collections/a:Collection/a:Responses/a:Add/a:Status");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R10037");

                // Verify MS-ASAIRS requirement: MS-ASAIRS_R10037
                Site.CaptureRequirementIfAreEqual(
                    "6",
                    status,
                    10037,
                    @"[In Appendix B: Product Behavior] Implementation does return protocol status error 6 for a Sync command (as specified in [MS-ASCMD] section 2.2.2.19), if an element does not meet the requirements[any of the XML elements specified in section 2.2.2 that are present in the command's XML body to ensure they comply with the requirements regarding number of instances] specified for that element, unless specified in the following table[section 3.2.5.1]. (Exchange Server 2007 SP1 and above follow this behavior.)");
            }
            #endregion
        }
        #endregion

        #region MSASAIRS_S04_TC04_IncorrectOrder
        /// <summary>
        /// This case is designed to test server will return protocol status error 2 for an ItemOperations command or Search command, protocol status error 6 for a Sync command, if elements don't meet the specified order.
        /// </summary>
        [TestCategory("MSASAIRS"), TestMethod()]
        public void MSASAIRS_S04_TC04_IncorrectOrder()
        {
            #region Send a plain text email
            string subject = Common.GenerateResourceName(Site, "Subject");
            string body = Common.GenerateResourceName(Site, "Body");
            this.SendEmail(EmailType.Plaintext, subject, body);
            #endregion

            #region Set BodyPreference element
            Request.BodyPreference[] bodyPreference = new Request.BodyPreference[]
            {
                new Request.BodyPreference()
                {
                    Type = 1,
                    TruncationSize = 100,
                    TruncationSizeSpecified = true,
                    AllOrNone = true,
                    AllOrNoneSpecified = true
                }
            };
            #endregion

            #region Call ItemOperations command with incorrect BodyPreference element order
            DataStructures.Sync syncItem = this.GetSyncResult(subject, this.User2Information.InboxCollectionId, null, bodyPreference, null);

            if (Common.IsRequirementEnabled(10031, this.Site))
            {
                ItemOperationsRequest itemOperationRequest = TestSuiteHelper.CreateItemOperationsRequest(this.User2Information.InboxCollectionId, syncItem.ServerId, null, bodyPreference, null);

                XmlDocument doc = new XmlDocument();
                doc.LoadXml(itemOperationRequest.GetRequestDataSerializedXML());
                XmlNode bodyPreferenceNode = doc.SelectSingleNode("//*[name()='BodyPreference']");

                // Put the first node to the end.
                XmlNode temp = bodyPreferenceNode.ChildNodes[0];
                bodyPreferenceNode.RemoveChild(temp);
                bodyPreferenceNode.AppendChild(temp);

                SendStringResponse itemOperationResponse = this.ASAIRSAdapter.ItemOperations(doc.OuterXml);

                string status = this.GetStatusCodeFromXPath(itemOperationResponse, "/i:ItemOperations/i:Status");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R10031");

                // Verify MS-ASAIRS requirement: MS-ASAIRS_R10031
                Site.CaptureRequirementIfAreEqual(
                    "2",
                    status,
                    10031,
                    @"[In Appendix B: Product Behavior] Implementation does return protocol status error 2 for an ItemOperations command (as specified in [MS-ASCMD] section 2.2.2.8), if an element does not meet the requirements[any of the XML elements specified in section 2.2.2 that are present in the command's XML body to ensure they comply with the requirements regarding order] specified for that element, unless specified in the following table[section 3.2.5.1]. (Exchange Server 2007 SP1 and above follow this behavior.)");
            }
            #endregion

            #region Call Search command with incorrect BodyPreference element order
            if (Common.IsRequirementEnabled(10035, this.Site))
            {
                SearchRequest searchRequest = TestSuiteHelper.CreateSearchRequest(subject, this.User2Information.InboxCollectionId, null, bodyPreference, null);
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(searchRequest.GetRequestDataSerializedXML());
                XmlNode bodyPreferenceNode = doc.SelectSingleNode("//*[name()='BodyPreference']");

                // Put the first node to the end.
                XmlNode temp = bodyPreferenceNode.ChildNodes[0];
                bodyPreferenceNode.RemoveChild(temp);
                bodyPreferenceNode.AppendChild(temp);

                SendStringResponse searchResponse = this.ASAIRSAdapter.Search(doc.OuterXml);
                string searchStatus = this.GetStatusCodeFromXPath(searchResponse, "/s:Search/s:Status");
                int retryCount = int.Parse(Common.GetConfigurationPropertyValue("RetryCount", this.Site));
                int waitTime = int.Parse(Common.GetConfigurationPropertyValue("WaitTime", this.Site));
                int counter = 1;

                while (counter < retryCount && searchStatus.Equals("10"))
                {
                    Thread.Sleep(waitTime);
                    searchResponse = this.ASAIRSAdapter.Search(doc.OuterXml);
                    searchStatus = this.GetStatusCodeFromXPath(searchResponse, "/s:Search/s:Status");
                    counter++;
                }

                string status = this.GetStatusCodeFromXPath(searchResponse, "/s:Search/s:Response/s:Store/s:Status");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R10035");

                // Verify MS-ASAIRS requirement: MS-ASAIRS_R10035
                Site.CaptureRequirementIfAreEqual(
                    "2",
                    status,
                    10035,
                    @"[In Appendix B: Product Behavior] Implementation does return protocol status error 2 for a Search command (as specified in [MS-ASCMD] section 2.2.2.14), if an element does not meet the requirements[any of the XML elements specified in section 2.2.2 that are present in the command's XML body to ensure they comply with the requirements regarding order] specified for that element, unless specified in the following table[section 3.2.5.1]. (Exchange Server 2007 SP1 and above follow this behavior.)");
            }
            #endregion

            #region Call Sync add command with incorrect body element order
            if (Common.IsRequirementEnabled(10038, this.Site))
            {
                SyncRequest syncAddRequest = TestSuiteHelper.CreateSyncRequest(this.GetInitialSyncKey(this.User2Information.InboxCollectionId), this.User2Information.InboxCollectionId, CreateSyncAddCommands(), null, null);
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(syncAddRequest.GetRequestDataSerializedXML());
                XmlNode bodyNode = doc.SelectSingleNode("//*[name()='Body']");

                // Put the first node to the end.
                XmlNode temp = bodyNode.ChildNodes[0];
                bodyNode.RemoveChild(temp);
                bodyNode.AppendChild(temp);

                SendStringResponse syncAddResponse = this.ASAIRSAdapter.Sync(doc.OuterXml);

                string status = this.GetStatusCodeFromXPath(syncAddResponse, "/a:Sync/a:Collections/a:Collection/a:Responses/a:Add/a:Status");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R10038");

                // Verify MS-ASAIRS requirement: MS-ASAIRS_R10038
                Site.CaptureRequirementIfAreEqual(
                    "6",
                    status,
                    10038,
                    @"[In Appendix B: Product Behavior] Implementation does return protocol status error 6 for a Sync command (as specified in [MS-ASCMD] section 2.2.2.19), if an element does not meet the requirements[any of the XML elements specified in section 2.2.2 that are present in the command's XML body to ensure they comply with the requirements regarding order] specified for that element, unless specified in the following table[section 3.2.5.1]. (Exchange Server 2007 SP1 and above follow this behavior.)");
            }
            #endregion
        }
        #endregion

        #region MSASAIRS_S04_TC05_IncorrectPlacement
        /// <summary>
        /// This case is designed to test server will return protocol status error 2 for an ItemOperations command or Search command, protocol status error 6 for a Sync command, if an element doesn't meet the specified placement.
        /// </summary>
        [TestCategory("MSASAIRS"), TestMethod()]
        public void MSASAIRS_S04_TC05_IncorrectPlacement()
        {
            #region Send a plain text email
            string subject = Common.GenerateResourceName(Site, "Subject");
            string body = Common.GenerateResourceName(Site, "Body");
            this.SendEmail(EmailType.Plaintext, subject, body);
            #endregion

            #region Set BodyPreference element
            Request.BodyPreference[] bodyPreference = new Request.BodyPreference[]
            {
                new Request.BodyPreference()
                {
                    Type = 1,
                    TruncationSize = 100,
                    TruncationSizeSpecified = true,
                    AllOrNone = true,
                    AllOrNoneSpecified = true
                }
            };
            #endregion

            #region Call ItemOperations command with incorrect placement of BodyPreference element.
            DataStructures.Sync syncItem = this.GetSyncResult(subject, this.User2Information.InboxCollectionId, null, bodyPreference, null);

            if (Common.IsRequirementEnabled(10032, this.Site))
            {
                ItemOperationsRequest itemOperationRequest = TestSuiteHelper.CreateItemOperationsRequest(this.User2Information.InboxCollectionId, syncItem.ServerId, null, bodyPreference, null);

                XmlDocument doc = new XmlDocument();
                doc.LoadXml(itemOperationRequest.GetRequestDataSerializedXML());
                XmlNode bodyPreferenceNode = doc.SelectSingleNode("//*[name()='BodyPreference']");

                // Add another BodyPreference element in the BodyPreference element, the placement is invalid.
                XmlNode temp = bodyPreferenceNode.Clone();
                temp.SelectSingleNode("//*[name()='Type']").InnerText = "2";
                bodyPreferenceNode.AppendChild(temp);

                SendStringResponse itemOperationResponse = this.ASAIRSAdapter.ItemOperations(doc.OuterXml);

                string status = this.GetStatusCodeFromXPath(itemOperationResponse, "/i:ItemOperations/i:Status");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R10032");

                // Verify MS-ASAIRS requirement: MS-ASAIRS_R10032
                Site.CaptureRequirementIfAreEqual(
                    "2",
                    status,
                    10032,
                    @"[In Appendix B: Product Behavior] Implementation does return protocol status error 2 for an ItemOperations command (as specified in [MS-ASCMD] section 2.2.2.8), if an element does not meet the requirements[any of the XML elements specified in section 2.2.2 that are present in the command's XML body to ensure they comply with the requirements regarding placement] specified for that element, unless specified in the following table[section 3.2.5.1]. (Exchange Server 2007 SP1 and above follow this behavior.)");
            }
            #endregion

            #region Call Search command with incorrect placement of BodyPreference element.
            if (Common.IsRequirementEnabled(10036, this.Site))
            {
                SearchRequest searchRequest = TestSuiteHelper.CreateSearchRequest(subject, this.User2Information.InboxCollectionId, null, bodyPreference, null);
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(searchRequest.GetRequestDataSerializedXML());
                XmlNode bodyPreferenceNode = doc.SelectSingleNode("//*[name()='BodyPreference']");

                // Add another BodyPreference element in the BodyPreference element, the placement is invalid.
                XmlNode temp = bodyPreferenceNode.Clone();
                temp.SelectSingleNode("//*[name()='Type']").InnerText = "2";
                bodyPreferenceNode.AppendChild(temp);

                SendStringResponse searchResponse = this.ASAIRSAdapter.Search(doc.OuterXml);
                string searchStatus = this.GetStatusCodeFromXPath(searchResponse, "/s:Search/s:Status");
                int retryCount = int.Parse(Common.GetConfigurationPropertyValue("RetryCount", this.Site));
                int waitTime = int.Parse(Common.GetConfigurationPropertyValue("WaitTime", this.Site));
                int counter = 1;

                while (counter < retryCount && searchStatus.Equals("10"))
                {
                    Thread.Sleep(waitTime);
                    searchResponse = this.ASAIRSAdapter.Search(doc.OuterXml);
                    searchStatus = this.GetStatusCodeFromXPath(searchResponse, "/s:Search/s:Status");
                    counter++;
                }

                string status = this.GetStatusCodeFromXPath(searchResponse, "/s:Search/s:Response/s:Store/s:Status");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R10036");

                // Verify MS-ASAIRS requirement: MS-ASAIRS_R10036
                Site.CaptureRequirementIfAreEqual(
                    "2",
                    status,
                    10036,
                    @"[In Appendix B: Product Behavior] Implementation does return protocol status error 2 for a Search command (as specified in [MS-ASCMD] section 2.2.2.14), if an element does not meet the requirements[any of the XML elements specified in section 2.2.2 that are present in the command's XML body to ensure they comply with the requirements regarding placement] specified for that element, unless specified in the following table[section 3.2.5.1]. (Exchange Server 2007 SP1 and above follow this behavior.)");
            }
            #endregion

            #region Call Sync add command with incorrect placement of Type element.
            if (Common.IsRequirementEnabled(10039, this.Site))
            {
                SyncRequest syncAddRequest = TestSuiteHelper.CreateSyncRequest(this.GetInitialSyncKey(this.User2Information.InboxCollectionId), this.User2Information.InboxCollectionId, CreateSyncAddCommands(), null, null);
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(syncAddRequest.GetRequestDataSerializedXML());
                XmlNode bodyNode = doc.SelectSingleNode("//*[name()='Body']");

                // Add another body element in the body element, the placement is invalid.
                XmlNode temp = bodyNode.Clone();
                temp.SelectSingleNode("//*[name()='Type']").InnerText = "2";
                bodyNode.AppendChild(temp);

                SendStringResponse syncAddResponse = this.ASAIRSAdapter.Sync(doc.OuterXml);

                string status = this.GetStatusCodeFromXPath(syncAddResponse, "/a:Sync/a:Collections/a:Collection/a:Responses/a:Add/a:Status");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R10039");

                // Verify MS-ASAIRS requirement: MS-ASAIRS_R10039
                Site.CaptureRequirementIfAreEqual(
                    "6",
                    status,
                    10039,
                    @"[In Appendix B: Product Behavior] Implementation does return protocol status error 6 for a Sync command (as specified in [MS-ASCMD] section 2.2.2.19), if an element does not meet the requirements[any of the XML elements specified in section 2.2.2 that are present in the command's XML body to ensure they comply with the requirements regarding placement] specified for that element, unless specified in the following table[section 3.2.5.1]. (Exchange Server 2007 SP1 and above follow this behavior.)");
            }
            #endregion
        }
        #endregion

        #region MSASAIRS_S04_TC06_MultipleBodyPreferenceHaveSameTypeValue
        /// <summary>
        /// This case is designed to test the error will be returned if multiple BodyPreference elements are present with the same value in the Type child element.
        /// </summary>
        [TestCategory("MSASAIRS"), TestMethod()]
        public void MSASAIRS_S04_TC06_MultipleBodyPreferenceHaveSameTypeValue()
        {
            #region Send a plain text email
            string subject = Common.GenerateResourceName(Site, "Subject");
            string body = Common.GenerateResourceName(Site, "Body");
            this.SendEmail(EmailType.Plaintext, subject, body);

            // Make sure the email has reached the inbox folder of the recipient
            this.GetSyncResult(subject, this.User2Information.InboxCollectionId, null, null, null);
            #endregion

            #region Set two BodyPreference elements with same type value
            Request.BodyPreference[] bodyPreference = new Request.BodyPreference[]
            {
                new Request.BodyPreference()
                {
                    Type = 1,
                    TruncationSize = 100,
                    TruncationSizeSpecified = true,
                    AllOrNone = true,
                    AllOrNoneSpecified = true
                },

                new Request.BodyPreference()
                {
                    Type = 1,
                    TruncationSize = 100,
                    TruncationSizeSpecified = true,
                    AllOrNone = true,
                    AllOrNoneSpecified = true
                }
            };
            #endregion

            #region Verify multiple BodyPreference elements with same type value in Sync for related requirements
            SyncRequest request = TestSuiteHelper.CreateSyncRequest(this.GetInitialSyncKey(this.User2Information.InboxCollectionId), this.User2Information.InboxCollectionId, null, bodyPreference, null);

            if (Common.IsRequirementEnabled(10015, this.Site))
            {
                try
                {
                    this.ASAIRSAdapter.Sync(request);

                    Site.Assert.Fail("The server should return an HTTP error 500 if multiple BodyPreference elements are present with the same value in the Type child element.");
                }
                catch (WebException exception)
                {
                    int errorCode = ((HttpWebResponse)exception.Response).StatusCode.GetHashCode();

                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R10015");

                    // Verify MS-ASAIRS requirement: MS-ASAIRS_R10015
                    Site.CaptureRequirementIfAreEqual<int>(
                        500,
                        errorCode,
                        10015,
                        @"[In Appendix B: Product Behavior] Implementation does return an HTTP error 500 instead of a Status value of 4 when multiple BodyPreference elements are present with the same value in the Type child element. (<1> Section 3.2.5.1:  Exchange 2007 SP1 returns an HTTP error 500 instead of a Status value of 4 when multiple BodyPreference elements are present with the same value in the Type child element.)");
                }
            }

            if (Common.IsRequirementEnabled(10016, this.Site))
            {
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(request.GetRequestDataSerializedXML());

                SendStringResponse syncAddResponse = this.ASAIRSAdapter.Sync(doc.OuterXml);

                string status = this.GetStatusCodeFromXPath(syncAddResponse, "/a:Sync/a:Status");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASAIRS_R10016");

                // Verify MS-ASAIRS requirement: MS-ASAIRS_R10016
                Site.CaptureRequirementIfAreEqual(
                    "4",
                    status,
                    10016,
                    @"[In Appendix B: Product Behavior] Implementation does return 4 (for Sync command) if multiple BodyPreference elements are present with the same value in the Type child element. (Exchange Server 2010 and above follow this behavior.)");
            }
            #endregion
        }
        #endregion

        #region private methods
        /// <summary>
        /// Generate a Sync Add command with body element.
        /// </summary>
        /// <returns>Returns a command list instance.</returns>
        private static object[] CreateSyncAddCommands()
        {
            Request.Body addBody = new Request.Body { Type = 1, Data = "Test sync add" };

            List<object> items = new List<object>();
            List<Request.ItemsChoiceType8> itemsElementName = new List<Request.ItemsChoiceType8>();

            items.Add(addBody);
            itemsElementName.Add(Request.ItemsChoiceType8.Body);

            Request.SyncCollectionAddApplicationData applicationData = new Request.SyncCollectionAddApplicationData
            {
                Items = items.ToArray(),
                ItemsElementName = itemsElementName.ToArray()
            };

            Request.SyncCollectionAdd syncAdd = new Request.SyncCollectionAdd
            {
                ClientId = Guid.NewGuid().ToString("N"),
                ApplicationData = applicationData
            };

            List<object> commandList = new List<object> { syncAdd };
            return commandList.ToArray();
        }

        /// <summary>
        /// Get the status code from the response.
        /// </summary>
        /// <param name="response">The string format response.</param>
        /// <param name="xpath">The XPath to get the status code.</param>
        /// <returns>Returns the status code</returns>
        private string GetStatusCodeFromXPath(SendStringResponse response, string xpath)
        {
            XmlDocument doc = new XmlDocument();
            doc.LoadXml(response.ResponseDataXML);

            XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
            nsmgr.AddNamespace("a", "AirSync");
            nsmgr.AddNamespace("i", "ItemOperations");
            nsmgr.AddNamespace("s", "Search");

            XmlNode status = doc.SelectSingleNode(xpath, nsmgr);
            Site.Assert.IsNotNull(status, "The Status element should be returned in the response.");

            return status.InnerText;
        }
        #endregion
    }
}

redpajama_set_name: RedPajamaGithub


The Heard was born somewhere between a subway station and a record fair in Stockholm 2016.
Ida, Klara and Nicki formed The Heard after the break up of their former band Crucified Barbara. The void left a hunger to create new music and when Klara met long time friend Skinny (Deathstars) at a record fair it was obvious he had the same urge. Another friend, burlesque queen Pepper, proved to have a voice to match her vibrant persona so when Ida bumped into Pepper in the subway she asked her to join the cult. So she did and The Heard was a fact.
The Heard is all about the joy of playing music but the sound is distorted and dark. The music is brought to life by all five members through shortcuts and detours with a vision about a place where reality and mystery meet.
Listen to The Heard now.


Teen years are a great time for visiting a Northridge orthodontist! Here at Blooming Smiles, we help patients of all ages enjoy a healthy, attractive smile. Malocclusions (bite misalignments) identified in childhood do not always require immediate treatment and parents are sometimes counseled to wait until their child is older before pursuing orthodontic care. In some cases, permanent adult teeth develop malocclusions as they emerge and so require correction at that point. No matter what brings you to us, we are happy you choose Dr. Sanjideh, Dr. Golian, and the rest of the Blooming Smiles team for your family's oral health care.
Many teens go through orthodontic treatment once their set of adult teeth has emerged. In fact, your child probably has many classmates and friends who will also receive orthodontic treatment at this time of life.
Treating malocclusions begins with an evaluation with a Northridge or Woodland Hills orthodontist. X-ray images will be taken of the mouth to get a closer look at how teeth are positioned. The doctor will then make a recommendation regarding which type of braces is best suited for treating a patient's particular concern. Metal braces, lingual braces, clear braces, and clear aligners all give great outcomes and can be fitted in a short amount of time.
Call Blooming Smiles in Northridge at 818-727-1800 and in Woodland Hills at 818-932-9100 to schedule an appointment for yourself or a family member. We look forward to hearing from you soon!


text:
This Is the Most-Searched Hair Color of the Summer
Bella Cacciatore
No, You Can't Wear White to a Wedding
Kim Fusaro
Demi Lovato's Thirst for Mike on The Bachelorette Is Extremely Relatable
All the Scandals Happening on The Bachelorette This Season
This Man Planned His Girlfriend's Dream Wedding as a Surprise, and You Won't Believe How He Did It
In today's OMG news, one woman got the surprise of her life when her boyfriend not only proposed, but had their entire wedding planned and ready to take place that very day. ...oh, and he planned the entire thing based ON HER PINTEREST BOARD. I'll give you a moment. Breathe, it will be OK. Alright, have you caught your breath? Let's continue. Ryan Leak, a 27 year old Dallas, Texas man, had caught wind of his girlfriend's "Dream Wedding" (or similarly titled) Pinterest board. Like so many women, Amanda was in love and had already started planning her dream wedding as she waited for her boyfriend to pop the question. But unlike so many women, she actually had a boyfriend who went ahead and brought that baby to life. Here they are when Ryan proposed and revealed the plan: "I wish I could take credit for the idea, but it was actually all hers," Leak told us, ever the self-deprecating one. "I overheard her say that she thought it would be cool to get engaged and married on the same day." And even though they've been together for five years now, Leak told us he knew his girl was
Marissa Gold
In today's OMG news, one woman got the surprise of her life when her boyfriend not only proposed, but had their entire wedding planned and ready to take place that very day.
...oh, and he planned the entire thing based ON HER PINTEREST BOARD.
I'll give you a moment.
Breathe, it will be OK. Alright, have you caught your breath? Let's continue.
Ryan Leak, a 27 year old Dallas, Texas man, had caught wind of his girlfriend's "Dream Wedding" (or similarly titled) Pinterest board. Like so many women, Amanda was in love and had already started planning her dream wedding as she waited for her boyfriend to pop the question. But unlike so many women, she actually had a boyfriend who went ahead and brought that baby to life. Here they are when Ryan proposed and revealed the plan:
"I wish I could take credit for the idea, but it was actually all hers," Leak told us, ever the self-deprecating one. "I overheard her say that she thought it would be cool to get engaged and married on the same day." And even though they've been together for five years now, Leak told us he knew his girl was THE girl since day one: "I scored big time when I found out Amanda was even interested in me 5 years ago," he said. "I knew she was the one the minute I saw her."
Wow. We have so many questions. First, how can a man plan a wedding without being able to ask his fiancée any questions? Weddings are hard. Second, how did he nail her ring size, dress size, and keep this all a secret? Well, the short answer is with help from friends and family, who all managed to keep the surprise going until the end.
Amanda Instagrammed a photo and told friends/family, "Yesterday at 8:30 am my love proposed to me in Hollywood, Florida ... He had two boxes... One with my (incredible) ring... And another with a pair of earrings to go with my wedding dress... His "will you marry me..." was followed with a "... TODAY"? ... He opened the door to a beautiful hall where 90 of my closest friends and family members were all waiting to start my WEDDING that would take place at 7:30 THAT NIGHT."
Pretty romantic, right? Oh, here's the ring:
"He worked tirelessly for OVER A YEAR to give me my dream wedding... He put together a dream-team of helpers, studied my Pinterest, and payed attention to EVERY detail I mentioned about my ideal wedding," Amanda said on Instagram.
What do you guys think about this? Would you love it if a guy did this for you?
Photo Courtesy of Instagram/@RyanLeak; Instagram/@AmandaRLeak
Topicspinterestwedding
Cheryl Burke Gives New Meaning to the Word Bridezilla
Double Proposals Are the Inclusive Wedding Trend We Need
Macey Lavoie
J.Lo and A-Rod's Fourth of July Celebration Was an Adorable Family Affair

redpajama_set_name: RedPajamaCommonCrawl


text:
Watch the intriguing first trailer for Disney's live-action 'Aladdin'
By Johnny Lieu 2018-10-12 02:21:30 UTC
Following the reveal of the poster for the live-action Aladdin film, its first trailer has just dropped.
The trailer opens with a glimpse of the sands that you'll remember from the animation, as well as what appears to be Iago, soaring up above the city. You'll also get your first glimpse of the real-life Aladdin.
Aladdin is set to hit cinemas on May 24, 2019, with Mena Massoud as Aladdin, Naomi Scott as Jasmine, Marwan Kenzari as Jafar, and Will Smith in the role of the ever-memorable, Genie.
Trevor Noah calls BS on Fox News and social media companies in Capitol riot recap
James Corden channels 'Les Misérables' for 'One Day More' of Trump's presidency
'Democracy kicked his ass:' Stephen Colbert looks back at the lowlights of Trump's presidency
Netflix's 'Fate: The Winx Saga' trailer features plenty of fairy magic, not one pair of wings
Topics: Aladdin, Entertainment, Movies


Crooked or gapped teeth can make teenagers feel self-conscious about their smiles. However, traditional braces are uncomfortable, bulky, and obvious. Invisalign® Teen features innovative additions that help facilitate the needs and habits of teenage patients, such as extra replacement trays in case aligners go missing and eruption tabs that provide space for adult teeth to grow. At Kellyn Hodges Orthodontics in Philadelphia, PA, we can help your child effectively achieve a straighter smile without the worrisome effects of metal braces.
With Invisalign Teen, your child can straighten their smile without the discomfort and hassle of braces.
Invisalign Teen is an orthodontic solution designed to help adolescents discreetly straighten their smile. While traditional braces use metal brackets and wires, this tooth straightening system uses clear, customizable aligners that are virtually invisible.
With Invisalign, your child can correct crooked teeth without the added insecurities of metal braces. If your child has misaligned teeth, but doesn't want the hassle of traditional braces, they may be a good candidate for this treatment.
Compliance indicator – At the beginning of treatment, your child is given a series of aligners. Each aligner should be worn consistently for two weeks before transitioning to the next one in the series. Keeping track of a timeline can be difficult for younger patients, which is why Invisalign Teen aligners come with a blue dot on each aligner. When the color fades, it provides an easy notification that its time to switch.
Eruption tabs – Some children need orthodontics before all their permanent teeth have emerged. In such cases, Invisalign Teen aligners can be made with special spaces (eruption tabs) so permanent teeth can naturally emerge without disrupting treatment.
Free replacement aligners – Losing an aligner can happen to patients of all ages, but there is a higher chance of this occurring with younger patients. If an aligner is lost or misplaced, you can order a specific number of replacement aligners free of charge throughout your child's treatment.
At the initial consultation, one of our doctors will review your child's teeth and jaw, creating a treatment plan specific to their needs. They can also provide a personalized cost estimate at this time. Using digital technology, impressions will be taken to create a mold of your child's smile. These images are sent to the Invisalign lab so each aligner can be customized.
Invisalign Teen is an orthodontic solution designed to help adolescents discreetly straighten their smile.
When the aligners are completed, your child's doctor will check that they fit and provide clear instructions on how to wear and clean them. Each aligner should be worn at least 20 to 22 hours a day until the blue dot fades before switching to the next set.
Be sure and remove the aligners to eat or drink anything other than water. Aligners should be stored at room temperature in a plastic container and carefully cleaned with cool water and a gentle toothbrush.
Discreet aesthetics – Aligners are virtually invisible and fit snugly over teeth. Patients can speak and smile with ease.
More comfortable treatment – Metal braces can rub against the inside of lips and cause uncomfortable sores. The plastic used to make Invisalign Teen aligners is smooth and gently guides teeth into position.
Removable aligners – Because aligners are removable, patients can enjoy all their favorite foods and drinks without worry of damage.
Convenient Care – Aligners are easy to remove and clean.
If you are looking for an effective and affordable cost to improve your child's smile, we invite you to schedule a free consultation to learn more about Invisalign Teen. You can contact us online or call one of our three convenient locations in the Philadelphia area.


text:
US failing to push economic sanctions against Russia through EU allies
Published time: 27 Apr, 2014 12:36
U.S. President Barack Obama speaks during joint news conference at the Perdana Putra Building in Putrajaya, April 27, 2014. (Reuters / Larry Downing) © Reuters
The new round of sanctions against Russia, which the EU and the US plan to unveil Monday, will not target the Russian economy. Washington said it won't use economic sanctions without the EU also signing up to them.
G7 members agreed Friday to roll out a third round of anti-Russian sanctions over the Ukrainian crisis. But those would be an extension of the previous two rounds of sanctions, which targeted 33 individuals in Russia and Ukraine and a Russian bank, which the Western government deemed responsible for the crisis in Ukraine or close enough to President Vladimir Putin to have leverage on him.
"What we will hear about in the coming days, what we will agree ... is an expansion of existing sanctions, measures against individuals or entities in Russia," UK Foreign Secretary William Hague told Sky News on Sunday.
The new round will slap travel bans and asset freezes on 15 more people, according to numerous insider reports. But it's unlikely that they would have any greater effect on Russian policies than the sanctions already in effect. If anything, so far sanctions against the officials have only resulted in mocking calls from Russian MPs, politicians and ordinary citizens to add their names on the blacklists.
Imposing sanctions on some sectors of the Russian economy, which could actually hurt the country, remains an elusive goal for Washington. At the same time America, whose economic ties with Russia are mediocre at best compared to Europe's, is unwilling to act alone. Otherwise, it would appear that there is conflict between Russia and the US, not Russia and the world, a narrative that Washington is struggling to promote.
"We're going to be in a stronger position to deter Mr. Putin when he sees that the world is unified and the United States and Europe is unified rather than this is just a US-Russian conflict," US President Barack Obama told reporters on Sunday.
But Europe has much to lose from imposing economic sanctions on Russia, and Obama said he sees how US-only sanctions won't work.
"If we, for example, say that we are not going to allow certain arms sales to Russia, but every European defense contractor backfills what we do, then it's not very effective," he said.
With Russia being a major supplier of raw materials and buyer of European goods, the EU governments are far from being eager to shoot themselves in the foot with economic sanctions.
"At the moment there is no consensus among the EU members on which economic measures against Russia would be acceptable, or even if they are needed at all," a European diplomatic source told Itar-Tass.
The diplomat, who spoke on the condition of anonymity, said only an open military invasion of Ukraine or irrefutable proof of Russian clandestine military presence in Ukraine would tip EU's stance toward economic sanctions. So far every piece of evidence that Kiev and Washington made public of alleged involvement of Russian agents in Ukraine was either inconclusive or simply false.
The US and the EU are accusing Russia of stirring up anti-government protest in eastern Ukraine and failing to fulfill its obligations under last week's Geneva statement. They want Moscow to publicly denounce the protesters holding governmental buildings in Ukraine in defiance of a military crackdown launched by Kiev.
Russia insists that it is the post-coup Ukrainian government, which is not making necessary steps to deescalate the violence. Moscow says Kiev must disarm radical nationalist groups, particularly the Right Sector, which toppled the previous Ukrainian government, and start negotiations with the protesters instead of threatening them with tanks and multiple rocket launchers.
If Kiev choses to escalate the crackdown on the protesters by using heavy arms against them Russia says it reserves the right to use its own military to stop bloodshed.
Visa admits Russia sanctions hitting business
'Russian agents captured in Ukraine? Show them!' – Lavrov
SpaceX to challenge US Air Force rocket monopoly, citing Russia sanctions risk


Make quantum leap games and speed by neurologically training at 93-100% of your maximum potential.
Train while your muscles are contracting at 245 times per second neurologically, forcing the nervous system to send increased nutritional fuel, blood flow and stimulation to the muscle fibers.
Increase your flexibility and create the muscle memory to retain it.
Train with the exact same technology and protocols that are used to dramatically elevate speed for NFL combine and preseason players.
We can train your nervous system to allow your skeletal muscle systems to reach peak levels of performance that traditional training could never create.
Neurologically train your muscles to dramatically increase force absorption by 10 times its normal level. This creates a huge increase in explosiveness and greatly decreases risk of injury and pain.
This is the only system they can train your antagonist and agonist muscles simultaneously.
By training neurologically, you can reach peak levels of speed physiologically in very rapid time.
After using this system NFL player Adam Archuleta went from 175 pounds to 211 pounds, he ran a 4.4 forty yard dash and recorded a 39 inch vertical jump. Furthermore, he bench-pressed 225 pounds 31 times to set the NFL combine record for safeties. His combine performance ranks #5 in the top NFL combine performances of all time.
With this patented technology and proprietary training protocols your nervous system will be receiving stimulus at up to 245 times per second. Due to the high intensity of this type of training on the POV, classes are only 15 to 20 minutes long. One 15 to 20 minute class equates to an hour plus of traditional speed training. This training is for the committed athlete who is determined to reach their peak performance potential.
All the speed training in the world is useless unless your nervous system is fully stimulated and working efficiently. There is a reason why the worlds most elite professional athletes trust their multimillion dollar careers to this performance technology… because it works. Period.


text:
package playn.core;

import playn.core.gl.GLShader;

/**
 * TODO
 */
public interface Surface {

  /**
   * Returns the width of this surface.
   */
  float width();

  /**
   * Returns the height of this surface.
   */
  float height();

  /**
   * Saves the current transform.
   */
  Surface save();

  /**
   * Restores the transform previously stored by {@link #save()}.
   */
  Surface restore();

  /**
   * Translates the current transformation matrix by the given amount.
   */
  Surface translate(float x, float y);

  /**
   * Scales the current transformation matrix by the specified amount on each axis.
   */
  Surface scale(float sx, float sy);

  /**
   * Rotates the current transformation matrix by the specified angle in radians.
   */
  Surface rotate(float radians);

  /**
   * Multiplies the current transformation matrix by the given matrix.
   */
  Surface transform(float m11, float m12, float m21, float m22, float dx, float dy);

  /**
   * @deprecated You almost certainly do not want to do this because this will wipe out any
   * pre-configured HiDPI transform and break automatic handling of HiDPI screens. You should
   * instead use {@link #transform}, and possibly {@link #save} and {@link #restore} if you need to
   * return to the "identity" (which is in quotes because the identity on a HiDPI screen will not
   * be the the actual identity matrix).
   */
  @Deprecated
  Surface setTransform(float m11, float m12, float m21, float m22, float dx, float dy);

  /**
   * Set the alpha component of this surface's current tint. Note that this value will be quantized
   * to an integer between 0 and 255. Also see {@link #setTint}.
   *
   *
Values outside the range [0,1] will be clamped to the range [0,1].

   *
   * @param alpha value in range [0,1] where 0 is transparent and 1 is opaque.
   */
  Surface setAlpha(float alpha);

  /**
   * Sets the tint for this layer, as {@code ARGB}.
   *
   *
 NOTE: this will overwrite any value configured via {@link #setAlpha}. Either
   * include your desired alpha in the high bits of {@code tint} or call {@link #setAlpha} after
   * calling this method.

   *
   *
 NOTE: the RGB components of a layer's tint only work on GL-based backends. It is
   * not possible to tint layers using the HTML5 canvas and Flash backends.

   */
  Surface setTint(int tint);

  /**
   * Sets the color to be used for fill operations. This replaces any existing fill gradient or
   * pattern.
   */
  Surface setFillColor(int color);

  /**
   * Sets the pattern to be used for fill operations. This replaces any existing fill gradient or
   * pattern.
   */
  Surface setFillPattern(Pattern pattern);

  /**
   * Configures a custom shader to use when drawing images and shapes to this surface. If the
   * supplied shader is null, the default shader will be used.
   */
  Surface setShader(GLShader shader);

  /**
   * Clears the entire surface to transparent blackness.
   */
  Surface clear();

  /**
   * Draws an image at the specified location.
   *
   * @param dx the destination x
   * @param dy the destination y
   */
  Surface drawImage(Image image, float dx, float dy);

  /**
   * Draws a scaled or repeated image at the specified location.
   *
   * @param dx the destination x
   * @param dy the destination y
   * @param dw the destination width
   * @param dh the destination height
   */
  Surface drawImage(Image image, float dx, float dy, float dw, float dh);

  /**
   * Draws a scaled subset of an image at the specified location.
   *
   * TODO(jgw): Document whether out-of-bounds source coordinates clamp, repeat,
   * or do nothing.
   *
   * @param dx the destination x
   * @param dy the destination y
   * @param dw the destination width
   * @param dh the destination height
   * @param sx the source x
   * @param sy the source y
   * @param sw the source width
   * @param sh the source height
   */
  Surface drawImage(Image image, float dx, float dy, float dw, float dh,
      float sx, float sy, float sw, float sh);

  /**
   * Draws an image, centered at the specified location. Simply subtracts image.width/2 from dx and
   * image.height/2 from dy.
   *
   * @param image the image to draw
   * @param dx destination x
   * @param dy destination y
   */
  Surface drawImageCentered(Image image, float dx, float dy);

  /**
   * Fills a line between the specified coordinates, of the specified (pixel) width.
   */
  Surface drawLine(float x0, float y0, float x1, float y1, float width);

  /**
   * Renders the supplied scene graph into this surface. This renders the scene graph into the
   * surface's texture using the main render pipeline, so custom shaders (on platforms that support
   * them) are handled properly. NOTE: if there is a loop in the scene graph (like you add
   * an ImmediateLayer that calls {@code surf.drawLayer(graphics().rootLayer())}) you will get the
   * infinite loop that you deserve. Caveat renderer.
   */
  Surface drawLayer(Layer layer);

  /**
   * Fills the specified rectangle.
   */
  Surface fillRect(float x, float y, float width, float height);

  /**
   * Fills the supplied batch of triangles with the current fill color or pattern. Note: this
   * method is only performant on OpenGL-based backends (Android, iOS, HTML-WebGL, etc.). On
   * non-OpenGL-based backends (HTML-Canvas, HTML-Flash) it converts the triangles to a path on
   * every rendering call.
   *
   * @param xys the xy coordinates of the triangles, as an array: {@code [x1, y1, x2, y2, ...]}.
   * @param indices the index of each vertex of each triangle in the {@code xys} array.
   */
  Surface fillTriangles(float[] xys, int[] indices);

  /**
   * Fills the supplied batch of triangles with the current fill color or pattern.
   *
   *
Note: this method is only performant on OpenGL-based backends (Android, iOS, HTML-WebGL,
   * etc.). On non-OpenGL-based backends (HTML-Canvas, HTML-Flash) it converts the triangles to a
   * path on every rendering call.

   *
   * @param xys the xy coordinates of the triangles, as an array: {@code [x1, y1, x2, y2, ...]}.
   * @param xysOffset the offset of the coordinates array, must not be negative and no greater than
   * {@code xys.length}. Note: this is an absolute offset; since {@code xys} contains pairs of
   * values, this will be some multiple of two.
   * @param xysLen the number of coordinates to read, must be no less than zero and no greater than
   * {@code xys.length - xysOffset}. Note: this is an absolute length; since {@code xys} contains
   * pairs of values, this will be some multiple of two.
   * @param indices the index of each vertex of each triangle in the {@code xys} array. Because
   * this method renders a slice of {@code xys}, one must also specify {@code indexBase} which
   * tells us how to interpret indices. The index into {@code xys} will be computed as: {@code
   * 2*(indices[ii] - indexBase)}, so if your indices reference vertices relative to the whole
   * array you should pass {@code xysOffset/2} for {@code indexBase}, but if your indices reference
   * vertices relative to the slice then you should pass zero.
   * @param indicesOffset the offset of the indices array, must not be negative and no greater than
   * {@code indices.length}.
   * @param indicesLen the number of indices to read, must be no less than zero and no greater than
   * {@code indices.length - indicesOffset}.
   * @param indexBase the basis for interpreting {@code indices}. See the docs for {@code indices}
   * for details.
   */
  Surface fillTriangles(float[] xys, int xysOffset, int xysLen,
                        int[] indices, int indicesOffset, int indicesLen, int indexBase);

  /**
   * Fills the supplied batch of triangles with the current fill pattern.
   *
   *
Note: this method only honors the texture coordinates on OpenGL-based backends (Anrdoid,
   * iOS, HTML-WebGL, etc.). On non-OpenGL-based backends (HTML-Canvas, HTML-Flash) it behaves like
   * a call to {@link #fillTriangles(float[],int[])}.

   *
   * @param xys see {@link #fillTriangles(float[],int[])}.
   * @param sxys the texture coordinates for each vertex of the triangles, as an array:
   * {@code [sx1, sy1, sx2, sy2, ...]}. This must be the same length as {@code xys}.
   * @param indices see {@link #fillTriangles(float[],int[])}.
   *
   * @throws IllegalStateException if no fill pattern is currently set.
   */
  Surface fillTriangles(float[] xys, float[] sxys, int[] indices);

  /**
   * Fills the supplied batch of triangles with the current fill pattern.
   *
   *
Note: this method only honors the texture coordinates on OpenGL-based backends (Anrdoid,
   * iOS, HTML-WebGL, etc.). On non-OpenGL-based backends (HTML-Canvas, HTML-Flash) it behaves like
   * a call to {@link #fillTriangles(float[],int[])}.

   *
   * @param xys see {@link #fillTriangles(float[],int,int,int[],int,int,int)}.
   * @param sxys the texture coordinates for each vertex of the triangles, as an array.
   * {@code [sx1, sy1, sx2, sy2, ...]}. This must be the same length as {@code xys}.
   * @param xysOffset see {@link #fillTriangles(float[],int,int,int[],int,int,int)}.
   * @param xysLen see {@link #fillTriangles(float[],int,int,int[],int,int,int)}.
   * @param indices see {@link #fillTriangles(float[],int,int,int[],int,int,int)}.
   * @param indicesOffset see {@link #fillTriangles(float[],int,int,int[],int,int,int)}.
   * @param indicesLen see {@link #fillTriangles(float[],int,int,int[],int,int,int)}.
   * @param indexBase see {@link #fillTriangles(float[],int,int,int[],int,int,int)}.
   *
   * @throws IllegalStateException if no fill pattern is currently set.
   */
  Surface fillTriangles(float[] xys, float[] sxys, int xysOffset, int xysLen,
                        int[] indices, int indicesOffset, int indicesLen, int indexBase);
}


St. Luke's Church Discovers Way to Help Members Lose Weight Over Night !
In celebration of the time change, Sunday March 10 , bring your spare change to church on Sunday and toss it in the old brass pail in the Narthex. This special collection will go to the Food Pantry Network of Licking County. Our Market Street Pantry is a part of this Network and we receive food from the Network. In the fall we collected a whopping $450.00 (along with some old washers, paperclips and even a Franc!).
P.S. We look forward to letting you know how much weight we lose as a parish.
Do you have an hour on Friday morning?


If you have some wallpaper, you can make a nice looking bookcase. Make sure you pick a wallpaper that is visually striking as well as different. Put the wallpaper on the back of the bookcase, so glimpses of it are visible when books are on the shelves. Adding a little bit of edginess to you bookshelf will create a more modern look for not only the bookshelf, but the room that it is in.
A front porch is a worthwhile place to invest your home improvement efforts. This is the first things seen by visitors and it's your home's first impression. Make sure it is all neatly organized and, if possible, add a little style with outdoor decorations, such as flowers, varnish, lights, or furniture. These things add value to a house.
You should make sure you do all the necessary plumbing and rewiring before beginning a home renovation project. Doing work in a logical order, such as doing projects that require you to access the inside of your walls first, will help your project flow without a glitch. If you have your walls open already it will make it easy to do any other renovations.


text:
A RECORD $480,000 RAISED AT SECOND ANNUAL BRISSY4WARD
1 August 2019 - Queensland's heavy hitters, sporting heroes, and music stars descended on Howard Smith Wharves for Sony Foundation's Brissy4Ward event raising $480,000 for Queensland's first 'You Can' youth cancer Centre.
Sony Foundation Ambassadors Johnathan Thurston and Giaan Rooney joined sporting heroes Allan Langer, Susie O'Neill and Liesel Jones to watch Brisbane's own ARIA chart-topping singer songwriter, Conrad Sewell who performed at the event to support young Australian's with cancer, many of whom were in the audience. Also performing was Sony Music artists Samantha Jade and Stan Walker who is in remission from his recent battle with stomach cancer.
But the real hero of the day was 22 year old cancer patient, Aliona Grystenko who will be one of the first patients to be treated in the You Can Centre set to open in the coming months. She spoke to the 350 guests present saying, "I sincerely would like to thank you all, for providing me with this opportunity and for being part of a community who are generous and supportive. A community who through their actions boldly say "I care", that people like myself matter and we are not alone."
The You Can Centre, which is currently under construction at Royal Brisbane & Women's Hospital (RBWH), was made possible with a $1.8 million commitment from Sony Foundation, the charity arm of the Sony group of companies. The centre will be a hub for clinical research to advance treatment and increase survival rates. It will also be a social haven away from the hospital wards with relaxation areas featuring the latest Sony entertainment technology, kitchen/dining, areas for study, yoga and consult rooms, an outdoor courtyard and most importantly, a space for young people to be together providing peer support.
Approximately three young Queenslanders aged 15 - 25 are diagnosed with cancer every week in Queensland[1] and about 140 youth cancer patients are treated at RBWH each year. Despite more people being diagnosed with cancer in this age group than children, for too long they have lacked the specialised treatment and care needed. These young Australians were identified as falling through the gaps in the medical system in a senate inquiry in 2005[2] due to the current split between paediatric and adult cancer care resulting in a lack of specialised and age appropriate treatment, which in turn, has a profound impact on their survival rates.
To address this, Sony Foundation has funded four You Can Centres in Perth, Melbourne, Sydney and Brisbane to date. The You Can Centres also aim to ease the confronting reality that cancer patients aged 15 – 25 years are six times more likely to have mental health issues than their peers.
"Today, we send a strong message to all young people facing cancer that they are not alone. They need to be treated in age appropriate youth cancer centres. Thanks to events like Brissy4Ward that draw together this country's leading businesses across media, entertainment and corporate, funds raised will build the Brisbane You Can Centre. These specialised youth cancer centres are changing lives around the country and we're thrilled to be soon opening Queensland's first You Can Centre," said Sophie Ryan, CEO Sony Foundation.
Beyond the centres, Sony Foundation has funded oncofertility services and innovative research including Australia's largest Virtual Reality research grant ($500,000) for using the technology to improve youth cancer car
Currently in its 21st year, the Foundation has raised over $33 million firmly placing it within the top 1% of fundraising charities nationally largely due to its award winning events Wharf4Ward in Sydney and River4Ward in Melbourne.
More information: www.sonyfoundation.org
For further information, interviews and access to youth cancer case studies please contact:
Emma Pechey
Sony Foundation General Manager
M | 0432 643 454
E | emma@sonyfoundation.org.au
About Sony Foundation Australia
Sony Foundation Australia is the charitable arm of the Sony Group of Companies in Australia. Its aim is to capitalise on the unique qualities of Sony and contribute to the advancement of the Australian community by assisting its youth and fostering their talents. Through its fundraising and activities, Sony Foundation is affirming the global unifying brand message that drives Sony: believe that anything you can imagine, you can make real. Since 1998, Sony Foundation has raised more than $33 million for youth related causes.
About the Sony Foundation's 'You Can' program
Established in 2010, the aim of the Sony Foundation's 'You Can' program is to fund the establishment of You Can youth cancer centres throughout Australia. Current locations include; Sir Charles Gairdner Hospital in Perth, Western Australia; Peter MacCallum Cancer Centre in Melbourne, Victoria. Centres in Sydney and Brisbane are set to open by early 2019. Sony Foundation's 'You Can' Centres aim to address the lack of improvement in cancer survival rates by bridging the gap in care between children and adult hospitals. Ensuring young people get the support they need in age appropriate centres within hospitals.
[1] Australian Institute of Health & Welfare. Australian Cancer Incidence and Mortality Books Annual mean 2007-2001: AIHW; 2015 [cited 2016 11 November]. Annual mean 2007-2011: Available from http://www.aihw.gov.au/acim-books/.
[2] 2005, June 23.'The Cancer Journey: Informing Choice'. Commonwealth of Australia 2005


text:
Charlton Athletic v Exeter City Oct 11th 7:45 ko Matchday thread.
Thread starter STURTZ
grecIAN Harris
Back home in the village
Grecian Max said:
He can't get down very quickly, Cam would have saved that IMO. But respect your view.
Fourth one, horrendous positioning all round.
I'd be surprised if any League1/2 keeper would have stopped it and if they did it would be more by luck than judgement.
PeteUSA said:
Point taken on the 3rd Ian, but theres no defending the fourth: I have no idea what he was thinking about on that one. I also thought he might have done a bit better with the first. He had a clear view of that shot, and got down to it in a timely fashion (He guessed right), yet a fella of his stature couldnt get something on that shot after he made it all the way across the goal? Possibly poor judgement? I also do wish he would communicate with his fellow defenders a bit more. It appears he prefers to be left alone.
Watch the first one again Pete and watch the deflection off of Hartridge right in front of him. I first thought like you when I saw it at lunch time but I watched it again when I got home from work and there is a slight deflection off of Hartridge right in front of him leaving him even less time to react than he did for the third. It's the reason why why the ball comes off the top of his hand.
Reactions: PeteUSA, andrew p long and Grecian in Guzz
AmberRed
All good points, especially the league comparisons. It just really galled me to watch him virtually give up on the header for that fourth goal. If he'd stuck an arm up and jumped a bit instead of standing rooted appearing disgusted, he would have probably got a touch on that soft header. We do need him to play to his full potential if his parent club are ever going to want him back.
Come on Pete, who is his parent club?
C j phill said:
In this situation, the Club would need to ensure that it took intellectual ownership of all information gained by Marcus, while he was an employee of Exeter City Football Club.
I'd hope that whoever has Legal and HR responsibilities at Club Club Board level could sort this out.
Nice idea in theory but whatever computerised stats there are are out there for all other statto's across clubs.
AmberRed said:
I believe it might be ECFC!
SEA Grecian
SaintJames said:
To me KN offers many of the fan base a 'comfort blanket' he seems the perfect solution to maintaining de facto the Matty Taylor legacy. However, we were all/most of us delighted when Matty tore up the post Tisdale era with a somewhat radical approach. Yes he was an internal appointment but he was very different to his predecessor. It didnt seem like change but it was a culture shift. With Taggy at the helm the emphasis on our Academy wont change whichever candidate becomes the Manager. Similarly you mention about the system and clearly only a fool would change what works best with the players we have. But what if e.g. Artell or say Luke Gerrard or Andy Woodman already use such a system and equally have a track record of developing young players? Suddenly having an 'external' appointment isn't significantly different after all?
Finally, the most significant issue for me isnt the here and now of maintaining this season but this summer when as you say key players depart. That process needs to start now not discovering six months later that actually KN doesnt actually have the contacts to replace Josh Key, Archie, Jevani and Blackman. So for me radical overhaul is already in process as it is inevitable that planning for a new cycle is already upon the new manager
But the hope is that a lot of these replacements will come from within the Academy so there is an argument that Kev is the perfect man to ease their transition into the first team.
PeteUSA
Avondale (Near Phoenix) Arizona, USA.
Obviously I was mistaken. I thought he was here on a season long loan from somewhere like Dawson was. We did very well if he's our signing with no strings, even if he is prone to the odd gaff.
robchave said:
I would agree, up to a point. There has to be a plan to cover a centre-back charging forward. If he's allowed/encouraged to go on the type of run that led to their third goal last night, someone has to be given the responsibility to drop back and cover his position.
Normally, we are pretty good at covering the forward runs of our defenders. However, at this point we were 2-1 down with 6 minutes to go so it's not a surprise that we maybe committed too many men forward while trying to score an equaliser.
andrew p long said:
I was puzzled by this too, and by MT's acquiescence when talking a few weeks back about it. It obviously would have been much better to have this fixture during November (currently 2 league games only and no midweek games) than October (9 games, including every midweek)
There certainly was a rule in force in pandemic times that clubs had to rearrange postponed fixtures for the first available date from 21 days after the postponed fixture. Don't know whether this still applies. If so, a bit puzzling that there haven't been midweeks now full of fixtures rearranged from the weekend of the Queen's death.
I think the convention is that club's are expected to re-arrange games at the earliest convenient date to avoid fixture congestion later in the season. While playing Charlton this week may not have been ideal it's still better than last season making us play Forest Green while many of our team still had covid or the season before when we had to travel to Barrow in February for a re-arranged game which was then called off an hour before kick-off.
Fareham Grecian
Preparing for liftoff
Well that's brightened up my morning! I was certain he was on loan for the season, dunno where I got that from. He is not perfect but he's a blimmin good keeper at our level.


text:
supplier update
submitting news
Bohle UK
Bystronic UK
frameXpress
HEGLA
MBA Associates
- Pilkington Building Products -
Pilkington K glass sets the part F standard
Radical changes to Part F of the Building Regulations for Northern Ireland, which come into force in November, will mean for the first time low-e glass will effectively be mandatory for all new and replacement windows. Pilkington Building Products UK has a simple solution to ensure compliance in one easy step.
Rick Wilberforce, Market Development Manager-Europe, Pilkington said, "While the changes to Part F will be far reaching and have a significant impact on glazing specifications, the use of Pilkington K Glass should ensure that all windows satisfy the requirements. And by specifying a hard coated product, you're guaranteeing that it is tough, durable and easy to process."
Although the technical detail of the new Part F is yet to be published, an announcement made by Department for Finance and Personnel Northern Ireland in March made it clear that, for new buildings, compliance will be achieved on the basis of the total CO2 performance of the building. However, the maximum allowable U value for windows will be 2.2, meaning that ordinary double glazing is no longer permissible in new buildings. For replacement windows installed in existing buildings, it is likely that a U value no greater than 2.0 will have to be achieved. Both these requirements are easily met with windows using Pilkington K Glass.
With the new requirements for replacement windows will come a new route to compliance; the Window Energy Rating (WER). WERs were launched by the British Fenestration Rating Council (BFRC) in 2004 but came of age in April this year with the changes to Part L in England and Wales and now in Northern Ireland with Part F.
Rick Wilberforce explains, "WERs is a system for assessing and labelling windows in terms of their energy performance. The concept was developed because it was recognised that the traditional U value is an incomplete reflection of the impact that windows have on the energy performance of dwellings. Indeed, it was recognised that lower or better U values could be counter-productive if a low-emissivity coated glass sacrificed valuable solar gain as a result. Taking account of this solar gain, and the ventilation of the window frame, results in a more technically correct, and a much fairer, method. Using WERs, both hardcoat low-E and softcoat low-E glasses allow windows to achieve the same performance band. The choice of low-E glass has little effect on the performance band achieved, but choosing low-E glass has a greater impact on the product processing costs. Softcoat low-E glasses require equipment investment, longer toughening cycle times and a much higher degree of care and attention due to the relatively fragile nature of the glass coating."
The BFRC rating also demystifies the energy performance of windows for householders. The BFRC rating value can be converted to a letter on a scale of A to G. The resulting label, which can literally be applied to a window, looks the same as the labels used to rate the energy performance of other domestic goods, such as fridges, washing machines and light bulbs. The public is already familiar with this type of rating and label, and understands that A-rated goods are energy-efficient and G-rated ones are not. This allows WERs to be used both as a demonstrator of Part F compliance and a product differentiation tool. WER labelling recognises and promotes added value windows ultimately to allow consumers to choose between windows on the basis of their energy performance via a single standardised measure.
"And we have already seen the first A rated windows. One such window, created by Piper Double Glazing using Pilkington K Glass and Pilkington Optiwhite low-iron glass, achieves the highest WER band. The accomplishment is all the more impressive as Piper Doubling Glazing used standard technologies and products", concluded Rick.
Pilkington has produced a special bulletin to explain WERs, the developments over the last few months and the current situation. To obtain a copy go to the Pilkington website http://www.pilkington.co.uk/WERs, call the Pilkington Helpline on 01744 692000 or email pilkington@respond.uk.com.
Pilkington Building Products
: For further information, more news and contact details ...»
News title: - Pilkington K glass sets the part F standard
Submitted by: - Pilkington Building Products
Date published:- 25/08/2006 08:12:34
call: +44(0)1744 692000
web: www.pilkington.com
twitter: @PilkingtonUK
facebook: pilkingtonglass
youtube: PilkingtonTV
linkedIn: nsg-pilkington
NSG Group, the manufacturer of Pilkington glass in the UK, manufactures a wide range of float, coated, rolled, laminated and toughened glass products as well as its own range of high-performance insulating glass units. Glass is distributed direct to customers, either as stock or as bespoke processed products to meet their needs, either direct from St Helens or through its network of branches countrywide.
« Advantage bucks the trend!
Cut-to-size global600 is now available »
map | terms & conditions | cookies | privacy | © 2004 - 2020 - Fenestration News


text:
2015 Shell Rotella SuperRigs Show – Road Kings
Diesel Power Magazine events
The Ultimate Big Rig Beauty Pageant and Celebration of Independent Truckers Everywhere
KJ Jones –
Photographers: KJ Jones
As diesel enthusiasts on the whole, we're pretty sure some of you, while fully immersed in the Cummins, Duramax, and Ford engines that motivate the pickup trucks we love, might also have more than just passing interest in the larger oil-burners, like those that are the primary focus of Diesel Power's monthly "Torque" feature.
We're talking about such engines as Paccar's MX-13, the Detroit Diesel DD15, the Caterpillar CT660, and other similar powerplants. Basically, the engines that are commonly found under the hoods of long-haul trucks.
Photo 2/60 | Super Rigs Low Peterbilt Front
While Diesel Power doesn't usually give much shine to those Kenworths, Freightliners, Peterbilts, and other heavy-duty rigs, we realize they're just as relevant to the diesel scene as the "consumer" vehicles we feature. And, like street-driven pickups with great paint, nice wheels, and engines putting ridiculous amounts of horsepower and torque on the pavement, there are big trucks that run the highway on a regular basis: working trucks or, in simple enthusiasts' parlance, "daily drivers," that you would never believe have millions of miles on their odometers.
We attend several dyno and racing events that include show-'n'-shine displays for awesome pickup trucks, but the Shell Rotella SuperRigs show is the ultimate beauty pageant for the big boys. The event, held June 11 to June 13, 2015 at Retama Park in Selma, Texas, just north of San Antonio, gives tractor-trailer drivers and fans an up-close look at some of the most outstanding working trucks on the road, and all of them are owned and operated by independent truckers from across the United States and Canada.
Photo 3/60 | Super Rigs Red Kenworth Front
And, in addition to having the opportunity to strut their stuff on what has to be the grandest scale ever for big rig drivers, they are also competing for a Best of Show top prize of $15,000 from Shell ($10,000) and Mac Trailers ($5,000), and their truck's inclusion in 2016's edition of the annual SuperRigs calendar.
To many truckers we spoke with, making it into the calendar means more to them than taking home a cash award. Yes, that seems sort of backward when you consider the revenue drivers actually stand to lose by parking a truck for three days, but that's how much simply being at SuperRigs means to some men and women of the highway. To us, that deep, sincere pride is one of the main reasons why SuperRigs is such a huge success each year.
Photo 4/60 | As one would expect, there's plenty of Shell Rotella T heavy-duty, and T6 synthetic (in the blue container) engine oil on hand at the SuperRigs show.
We were given all-access privileges at the 2015 SuperRigs show (the 33rd edition of the annual spectacle) and got to experience firsthand the high levels of quality, detail, and pure, unadulterated pride that owner-operators invest in their diesel-powered vehicles.
While congratulations for earning Best of Show and People's Choice honors go to Kiegan Nelson of Richfield, Wisconsin, for his fantastic '85 Peterbilt 359 and '14 Mac trailer, props also go to all the professional drivers and their awesome work trucks for giving us a great look at another dimension of diesel performance.
Photo 5/60 | Best Of Show Winning Truck Kiegan Nelson Front
The best of the best! Not only was Kiegan Nelson's gorgeous '85 Peterbilt 359 and Mac trailer combination deemed Best of Show at the 2015 Shell Rotella SuperRigs beauty pageant, the rig also earned top honors in the Peoples' Choice category (voted on by fellow SuperRigs competitors and show attendees). In addition to some very classy trophy hardware, Kiegan collected more than $15,000 in total prize money, a spot in the 2016 SuperRigs calendar, Shell My Miles Matter points, and a case of Rotella heavy-duty engine oil. That's quite a haul (pun certainly intended) for Kiegan to take back to his Richfield, Wisconsin, home.
Photo 9/60 | Super Rigs Sign
With the 2015 Shell Rotella SuperRigs Show being held in their home state, the Mendez brothers (Roland and Raul Jr.) of Texas Chrome Shop rolled out their arsenal of wicked, custom big rigs, headlined by Project One, an absolutely stunning '98 Peterbilt 379 and ultra-custom trailer setup that's owned by Triple R Diesel. The oval-shaped fuel tanks on this thing are sick!
After spying editor KJ Jones wearing his signature Diesel Power bucket hat, this Peterbilt's unidentified owner-operator proudly announced that the engine in his rig makes 900 dyno-verified horsepower, which lets the Pete drag 130,000 pounds up steep grades with ease.
The Shell Rotella SuperRigs inspection and judging is very stringent, with drivers' logs and trucks' service records verified to ensure they really are working machines that run the road and are not purpose-built show queens with engines that don't even have 100 miles on them—let alone nearly 1 million.
Photo 19/60 | Phil Miller
Phil Miller's '10 Peterbilt 389 is truly a sight to behold, and it's almost impossible to fathom that this beautiful cream-and-fudge-brown tractor-trailer combination drags livestock to and fro. Phil's rig earned much-deserved acknowledgement as the SuperRigs first runner-up for the Best Appearing award, and the Pete's 700 hp, twin-turbocharged Caterpillar C15 engine (that's painted to match the truck) garnered "Best" honors in the powerplant category. We can only wish our diesel pickups could pull off the 8-inch-exhaust look as well as Phil's Peterbilt can.
Photo 35/60 | We totally dig the mural work on Dustin Pope's trailer (and his '03 Kenworth W900L tractor). The Smokey and the Bandit-esque custom artwork on the box was recognized as SuperRigs' Best Theme winner, and the combination also finished in Second Place in the Tractor/Trailer Division.
Photo 36/60 | Super Rigs Chicken Thang Front
Ray French Jr. calls his bright yellow and very custom '02 Peterbilt the "Chicken Thang." While we only got to see the Thang during the daytime, the truck is fitted with a complete array of mind-blowing, color-matching illumination that helped it win the Best Lights prize at the 2015 SuperRigs show.
This is the '84 Peterbilt 359 of the late Isaias (Isaac) Trevino "Moondoggie" Flores. Isaac was tragically murdered in April 2015, and in memoriam and to celebrate a life that was dedicated to trucking, Adrian Rocamontes of ACW Specialties and Custom Trucks prepared the rig to serve as the vehicle that transported Moondoggie's casket to his burial site. This "final run" would be the last load the truck would ever haul. The rig literally is a time capsule, with Moondoggie's pack of smokes still tucked against the window, where they were always within easy reach as he rolled down the highway.
Photo 44/60 | Super Rigs Peterbilt Front
Photo 60/60 | Super Rigs Black Kenworth Front
By KJ Jones
Check out Rachel Speir's Ultimate Adventure 2020 Photo Gallery #UA2020
SEMA's Greatest Hits
Living Our Best Van Life at the Adventure Van Expo: Big Bear Edition
With November now upon us, we are entering the final stanza of a year that will forever be considere...
K.J. Jones – Nov 2, 2020
While it's certainly not uncommon to spot lifted 4×4 Sprinter vans cru...
Courtney McKinnon – Oct 20, 2020
Battle in Bama 2020
After being decommissioned in 1947—and receiving Nine Battle Stars for service during her brief th...
Jeremy Cook – Oct 8, 2020
Qruisin PCH, Quarantine Cruise 8
We did it again. Over 2,000 vehicles gathered together in Huntington Beach, California. Well, actual...
Top 10 Diesel Truck Parts of SEMA360


Great set of old school style prints for any projects associated with army and soldiers! You can use the elements of the set for the creation of any design for your purposes with minimal loss of time. Colorful designs can be used for patches, labels, signs, badges, symbols, stickers, pins, caps, bags, apparel design and much more. You can create advertising materials for promotion of military academies, military themed café, bars, pubs, parties and events. The designs will be really good for the creation of invitation cards, signboards, different army forces emblems, military themed café, club, pub, bar interior and exterior decorations. All elements are ready for printing on any items and surfaces.