/* ========================================================================
 * Copyright (c) 2005-2021 The OPC Foundation, Inc. All rights reserved.
 *
 * OPC Foundation MIT License 1.00
 * 
 * Permission is hereby granted, free of charge, to any person
 * obtaining a copy of this software and associated documentation
 * files (the "Software"), to deal in the Software without
 * restriction, including without limitation the rights to use,
 * copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following
 * conditions:
 * 
 * The above copyright notice and this permission notice shall be
 * included in all copies or substantial portions of the Software.
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE.
 *
 * The complete license agreement can be found here:
 * http://opcfoundation.org/License/MIT/1.00/
 * ======================================================================*/

using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Runtime.Serialization;

namespace Opc.Ua
{
    #region ServerObjectState Class
    #if (!OPCUA_EXCLUDE_ServerObjectState)
    /// <summary>
    /// Stores an instance of the ServerType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ServerObjectState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ServerObjectState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ServerType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (UrisVersion != null)
            {
                UrisVersion.Initialize(context, UrisVersion_InitializationString);
            }

            if (EstimatedReturnTime != null)
            {
                EstimatedReturnTime.Initialize(context, EstimatedReturnTime_InitializationString);
            }

            if (LocalTime != null)
            {
                LocalTime.Initialize(context, LocalTime_InitializationString);
            }

            if (Namespaces != null)
            {
                Namespaces.Initialize(context, Namespaces_InitializationString);
            }

            if (GetMonitoredItems != null)
            {
                GetMonitoredItems.Initialize(context, GetMonitoredItems_InitializationString);
            }

            if (ResendData != null)
            {
                ResendData.Initialize(context, ResendData_InitializationString);
            }

            if (SetSubscriptionDurable != null)
            {
                SetSubscriptionDurable.Initialize(context, SetSubscriptionDurable_InitializationString);
            }

            if (RequestServerStateChange != null)
            {
                RequestServerStateChange.Initialize(context, RequestServerStateChange_InitializationString);
            }
        }

        #region Initialization String
        private const string UrisVersion_InitializationString =
           "//////////8VcIkKAgAAAAAACwAAAFVyaXNWZXJzaW9uAQCbOgAuAESbOgAAAQAGUv////8BAQAAAAAA" +
           "QI9A/////wAAAAA=";

        private const string EstimatedReturnTime_InitializationString =
           "//////////8VcIkKAgAAAAAAEwAAAEVzdGltYXRlZFJldHVyblRpbWUBAFIyAC4ARFIyAAAADf////8B" +
           "AQAAAAAAQI9A/////wAAAAA=";

        private const string LocalTime_InitializationString =
           "//////////8VcIkKAgAAAAAACQAAAExvY2FsVGltZQEAzEQALgBEzEQAAAEA0CL/////AQEAAAAAAECP" +
           "QP////8AAAAA";

        private const string Namespaces_InitializationString =
           "//////////8EYIAKAQAAAAAACgAAAE5hbWVzcGFjZXMBAActAC8BAH0tBy0AAP////8AAAAA";

        private const string GetMonitoredItems_InitializationString =
           "//////////8EYYIKBAAAAAAAEQAAAEdldE1vbml0b3JlZEl0ZW1zAQDhLAAvAQDhLOEsAAABAf////8C" +
           "AAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA4iwALgBE4iwAAJYBAAAAAQAqAQEdAAAADgAA" +
           "AFN1YnNjcmlwdGlvbklkAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAA" +
           "AAAPAAAAT3V0cHV0QXJndW1lbnRzAQDjLAAuAETjLAAAlgIAAAABACoBASAAAAANAAAAU2VydmVySGFu" +
           "ZGxlcwAHAQAAAAEAAAAAAAAAAAEAKgEBIAAAAA0AAABDbGllbnRIYW5kbGVzAAcBAAAAAQAAAAAAAAAA" +
           "AQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string ResendData_InitializationString =
           "//////////8EYYIKBAAAAAAACgAAAFJlc2VuZERhdGEBAEcyAC8BAEcyRzIAAAEB/////wEAAAAXYKkK" +
           "AgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBIMgAuAERIMgAAlgEAAAABACoBAR0AAAAOAAAAU3Vic2Ny" +
           "aXB0aW9uSWQAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";

        private const string SetSubscriptionDurable_InitializationString =
           "//////////8EYYIKBAAAAAAAFgAAAFNldFN1YnNjcmlwdGlvbkR1cmFibGUBAMoxAC8BAMoxyjEAAAEB" +
           "/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQDLMQAuAETLMQAAlgIAAAABACoBAR0A" +
           "AAAOAAAAU3Vic2NyaXB0aW9uSWQAB/////8AAAAAAAEAKgEBHgAAAA8AAABMaWZldGltZUluSG91cnMA" +
           "B/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1" +
           "bWVudHMBAMwxAC4ARMwxAACWAQAAAAEAKgEBJQAAABYAAABSZXZpc2VkTGlmZXRpbWVJbkhvdXJzAAf/" +
           "////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";

        private const string RequestServerStateChange_InitializationString =
           "//////////8EYYIKBAAAAAAAGAAAAFJlcXVlc3RTZXJ2ZXJTdGF0ZUNoYW5nZQEAUzIALwEAUzJTMgAA" +
           "AQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAFQyAC4ARFQyAACWBQAAAAEAKgEB" +
           "FgAAAAUAAABTdGF0ZQEAVAP/////AAAAAAABACoBASIAAAATAAAARXN0aW1hdGVkUmV0dXJuVGltZQAN" +
           "/////wAAAAAAAQAqAQEiAAAAEwAAAFNlY29uZHNUaWxsU2h1dGRvd24AB/////8AAAAAAAEAKgEBFQAA" +
           "AAYAAABSZWFzb24AFf////8AAAAAAAEAKgEBFgAAAAcAAABSZXN0YXJ0AAH/////AAAAAAABACgBAQAA" +
           "AAEAAAAAAAAAAQH/////AAAAAA==";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAEgAAAFNlcnZlclR5cGVJbnN0YW5jZQEA1AcBANQH1AcAAP////8RAAAA" +
           "F3CJCgIAAAAAAAsAAABTZXJ2ZXJBcnJheQEA1QcALgBE1QcAAAAMAQAAAAEAAAAAAAAAAQEAAAAAAECP" +
           "QP////8AAAAAF3CJCgIAAAAAAA4AAABOYW1lc3BhY2VBcnJheQEA1gcALgBE1gcAAAAMAQAAAAEAAAAA" +
           "AAAAAQEAAAAAAECPQP////8AAAAAFXCJCgIAAAAAAAsAAABVcmlzVmVyc2lvbgEAmzoALgBEmzoAAAEA" +
           "BlL/////AQEAAAAAAECPQP////8AAAAAFXCJCgIAAAAAAAwAAABTZXJ2ZXJTdGF0dXMBANcHAC8BAFoI" +
           "1wcAAAEAXgP/////AQEAAAAAAECPQP////8GAAAAFWCJCgIAAAAAAAkAAABTdGFydFRpbWUBAAIMAC8A" +
           "PwIMAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAEN1cnJlbnRUaW1lAQADDAAvAD8DDAAA" +
           "AQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAUAAABTdGF0ZQEABAwALwA/BAwAAAEAVAP/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAJAAAAQnVpbGRJbmZvAQAFDAAvAQDrCwUMAAABAFIB/////wEB/////wYA" +
           "AAAVcIkKAgAAAAAACgAAAFByb2R1Y3RVcmkBAAYMAC8APwYMAAAADP////8BAQAAAAAAQI9A/////wAA" +
           "AAAVcIkKAgAAAAAAEAAAAE1hbnVmYWN0dXJlck5hbWUBAAcMAC8APwcMAAAADP////8BAQAAAAAAQI9A" +
           "/////wAAAAAVcIkKAgAAAAAACwAAAFByb2R1Y3ROYW1lAQAIDAAvAD8IDAAAAAz/////AQEAAAAAAECP" +
           "QP////8AAAAAFXCJCgIAAAAAAA8AAABTb2Z0d2FyZVZlcnNpb24BAAkMAC8APwkMAAAADP////8BAQAA" +
           "AAAAQI9A/////wAAAAAVcIkKAgAAAAAACwAAAEJ1aWxkTnVtYmVyAQAKDAAvAD8KDAAAAAz/////AQEA" +
           "AAAAAECPQP////8AAAAAFXCJCgIAAAAAAAkAAABCdWlsZERhdGUBAAsMAC8APwsMAAABACYB/////wEB" +
           "AAAAAABAj0D/////AAAAABVgiQoCAAAAAAATAAAAU2Vjb25kc1RpbGxTaHV0ZG93bgEADAwALwA/DAwA" +
           "AAAH/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAFNodXRkb3duUmVhc29uAQANDAAvAD8NDAAAABX/" +
           "////AQH/////AAAAABVwiQoCAAAAAAAMAAAAU2VydmljZUxldmVsAQDYBwAuAETYBwAAAAP/////AQEA" +
           "AAAAAECPQP////8AAAAAFXCJCgIAAAAAAAgAAABBdWRpdGluZwEAtgoALgBEtgoAAAAB/////wEBAAAA" +
           "AABAj0D/////AAAAABVwiQoCAAAAAAATAAAARXN0aW1hdGVkUmV0dXJuVGltZQEAUjIALgBEUjIAAAAN" +
           "/////wEBAAAAAABAj0D/////AAAAABVwiQoCAAAAAAAJAAAATG9jYWxUaW1lAQDMRAAuAETMRAAAAQDQ" +
           "Iv////8BAQAAAAAAQI9A/////wAAAAAEYIAKAQAAAAAAEgAAAFNlcnZlckNhcGFiaWxpdGllcwEA2QcA" +
           "LwEA3QfZBwAA/////wkAAAAXYIkKAgAAAAAAEgAAAFNlcnZlclByb2ZpbGVBcnJheQEADgwALgBEDgwA" +
           "AAAMAQAAAAEAAAAAAAAAAQH/////AAAAABdgiQoCAAAAAAANAAAATG9jYWxlSWRBcnJheQEADwwALgBE" +
           "DwwAAAEAJwEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAABYAAABNaW5TdXBwb3J0ZWRTYW1w" +
           "bGVSYXRlAQAQDAAuAEQQDAAAAQAiAf////8BAf////8AAAAAFWCJCgIAAAAAABsAAABNYXhCcm93c2VD" +
           "b250aW51YXRpb25Qb2ludHMBABEMAC4ARBEMAAAABf////8BAf////8AAAAAFWCJCgIAAAAAABoAAABN" +
           "YXhRdWVyeUNvbnRpbnVhdGlvblBvaW50cwEAEgwALgBEEgwAAAAF/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAAHAAAAE1heEhpc3RvcnlDb250aW51YXRpb25Qb2ludHMBABMMAC4ARBMMAAAABf////8BAf////8A" +
           "AAAAF2CJCgIAAAAAABQAAABTb2Z0d2FyZUNlcnRpZmljYXRlcwEAFAwALgBEFAwAAAEAWAEBAAAAAQAA" +
           "AAAAAAABAf////8AAAAABGCACgEAAAAAAA4AAABNb2RlbGxpbmdSdWxlcwEAFQwALwA9FQwAAP////8A" +
           "AAAABGCACgEAAAAAABIAAABBZ2dyZWdhdGVGdW5jdGlvbnMBABYMAC8APRYMAAD/////AAAAAARggAoB" +
           "AAAAAAARAAAAU2VydmVyRGlhZ25vc3RpY3MBANoHAC8BAOQH2gcAAP////8EAAAAFWCJCgIAAAAAABgA" +
           "AABTZXJ2ZXJEaWFnbm9zdGljc1N1bW1hcnkBABcMAC8BAGYIFwwAAAEAWwP/////AQH/////DAAAABVg" +
           "iQoCAAAAAAAPAAAAU2VydmVyVmlld0NvdW50AQAYDAAvAD8YDAAAAAf/////AQH/////AAAAABVgiQoC" +
           "AAAAAAATAAAAQ3VycmVudFNlc3Npb25Db3VudAEAGQwALwA/GQwAAAAH/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAAFQAAAEN1bXVsYXRlZFNlc3Npb25Db3VudAEAGgwALwA/GgwAAAAH/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAAHAAAAFNlY3VyaXR5UmVqZWN0ZWRTZXNzaW9uQ291bnQBABsMAC8APxsMAAAAB/////8B" +
           "Af////8AAAAAFWCJCgIAAAAAABQAAABSZWplY3RlZFNlc3Npb25Db3VudAEAHAwALwA/HAwAAAAH////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAAEwAAAFNlc3Npb25UaW1lb3V0Q291bnQBAB0MAC8APx0MAAAAB///" +
           "//8BAf////8AAAAAFWCJCgIAAAAAABEAAABTZXNzaW9uQWJvcnRDb3VudAEAHgwALwA/HgwAAAAH////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAAFwAAAFB1Ymxpc2hpbmdJbnRlcnZhbENvdW50AQAgDAAvAD8gDAAA" +
           "AAf/////AQH/////AAAAABVgiQoCAAAAAAAYAAAAQ3VycmVudFN1YnNjcmlwdGlvbkNvdW50AQAhDAAv" +
           "AD8hDAAAAAf/////AQH/////AAAAABVgiQoCAAAAAAAaAAAAQ3VtdWxhdGVkU3Vic2NyaXB0aW9uQ291" +
           "bnQBACIMAC8APyIMAAAAB/////8BAf////8AAAAAFWCJCgIAAAAAAB0AAABTZWN1cml0eVJlamVjdGVk" +
           "UmVxdWVzdHNDb3VudAEAIwwALwA/IwwAAAAH/////wEB/////wAAAAAVYIkKAgAAAAAAFQAAAFJlamVj" +
           "dGVkUmVxdWVzdHNDb3VudAEAJAwALwA/JAwAAAAH/////wEB/////wAAAAAXYIkKAgAAAAAAHAAAAFN1" +
           "YnNjcmlwdGlvbkRpYWdub3N0aWNzQXJyYXkBACYMAC8BAHsIJgwAAAEAagMBAAAAAQAAAAAAAAABAf//" +
           "//8AAAAABGCACgEAAAAAABoAAABTZXNzaW9uc0RpYWdub3N0aWNzU3VtbWFyeQEAJwwALwEA6gcnDAAA" +
           "/////wIAAAAXYIkKAgAAAAAAFwAAAFNlc3Npb25EaWFnbm9zdGljc0FycmF5AQAoDAAvAQCUCCgMAAAB" +
           "AGEDAQAAAAEAAAAAAAAAAQH/////AAAAABdgiQoCAAAAAAAfAAAAU2Vzc2lvblNlY3VyaXR5RGlhZ25v" +
           "c3RpY3NBcnJheQEAKQwALwEAwwgpDAAAAQBkAwEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAA" +
           "CwAAAEVuYWJsZWRGbGFnAQAqDAAuAEQqDAAAAAH/////AwP/////AAAAAARggAoBAAAAAAAQAAAAVmVu" +
           "ZG9yU2VydmVySW5mbwEA2wcALwEA8QfbBwAA/////wAAAAAEYIAKAQAAAAAAEAAAAFNlcnZlclJlZHVu" +
           "ZGFuY3kBANwHAC8BAPIH3AcAAP////8BAAAAFWCJCgIAAAAAABEAAABSZWR1bmRhbmN5U3VwcG9ydAEA" +
           "KwwALgBEKwwAAAEAUwP/////AQH/////AAAAAARggAoBAAAAAAAKAAAATmFtZXNwYWNlcwEABy0ALwEA" +
           "fS0HLQAA/////wAAAAAEYYIKBAAAAAAAEQAAAEdldE1vbml0b3JlZEl0ZW1zAQDhLAAvAQDhLOEsAAAB" +
           "Af////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA4iwALgBE4iwAAJYBAAAAAQAqAQEd" +
           "AAAADgAAAFN1YnNjcmlwdGlvbklkAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdg" +
           "qQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQDjLAAuAETjLAAAlgIAAAABACoBASAAAAANAAAAU2Vy" +
           "dmVySGFuZGxlcwAHAQAAAAEAAAAAAAAAAAEAKgEBIAAAAA0AAABDbGllbnRIYW5kbGVzAAcBAAAAAQAA" +
           "AAAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAACgAAAFJlc2VuZERhdGEBAEcy" +
           "AC8BAEcyRzIAAAEB/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBIMgAuAERIMgAA" +
           "lgEAAAABACoBAR0AAAAOAAAAU3Vic2NyaXB0aW9uSWQAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAAB" +
           "Af////8AAAAABGGCCgQAAAAAABYAAABTZXRTdWJzY3JpcHRpb25EdXJhYmxlAQDKMQAvAQDKMcoxAAAB" +
           "Af////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAyzEALgBEyzEAAJYCAAAAAQAqAQEd" +
           "AAAADgAAAFN1YnNjcmlwdGlvbklkAAf/////AAAAAAABACoBAR4AAAAPAAAATGlmZXRpbWVJbkhvdXJz" +
           "AAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJn" +
           "dW1lbnRzAQDMMQAuAETMMQAAlgEAAAABACoBASUAAAAWAAAAUmV2aXNlZExpZmV0aW1lSW5Ib3VycwAH" +
           "/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAAGAAAAFJlcXVlc3RTZXJ2" +
           "ZXJTdGF0ZUNoYW5nZQEAUzIALwEAUzJTMgAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1" +
           "bWVudHMBAFQyAC4ARFQyAACWBQAAAAEAKgEBFgAAAAUAAABTdGF0ZQEAVAP/////AAAAAAABACoBASIA" +
           "AAATAAAARXN0aW1hdGVkUmV0dXJuVGltZQAN/////wAAAAAAAQAqAQEiAAAAEwAAAFNlY29uZHNUaWxs" +
           "U2h1dGRvd24AB/////8AAAAAAAEAKgEBFQAAAAYAAABSZWFzb24AFf////8AAAAAAAEAKgEBFgAAAAcA" +
           "AABSZXN0YXJ0AAH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string[]> ServerArray
        {
            get
            {
                return m_serverArray;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serverArray, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serverArray = value;
            }
        }

        /// <remarks />
        public PropertyState<string[]> NamespaceArray
        {
            get
            {
                return m_namespaceArray;
            }

            set
            {
                if (!Object.ReferenceEquals(m_namespaceArray, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_namespaceArray = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> UrisVersion
        {
            get
            {
                return m_urisVersion;
            }

            set
            {
                if (!Object.ReferenceEquals(m_urisVersion, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_urisVersion = value;
            }
        }

        /// <remarks />
        public ServerStatusState ServerStatus
        {
            get
            {
                return m_serverStatus;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serverStatus, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serverStatus = value;
            }
        }

        /// <remarks />
        public PropertyState<byte> ServiceLevel
        {
            get
            {
                return m_serviceLevel;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serviceLevel, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serviceLevel = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> Auditing
        {
            get
            {
                return m_auditing;
            }

            set
            {
                if (!Object.ReferenceEquals(m_auditing, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_auditing = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> EstimatedReturnTime
        {
            get
            {
                return m_estimatedReturnTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_estimatedReturnTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_estimatedReturnTime = value;
            }
        }

        /// <remarks />
        public PropertyState<TimeZoneDataType> LocalTime
        {
            get
            {
                return m_localTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_localTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_localTime = value;
            }
        }

        /// <remarks />
        public ServerCapabilitiesState ServerCapabilities
        {
            get
            {
                return m_serverCapabilities;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serverCapabilities, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serverCapabilities = value;
            }
        }

        /// <remarks />
        public ServerDiagnosticsState ServerDiagnostics
        {
            get
            {
                return m_serverDiagnostics;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serverDiagnostics, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serverDiagnostics = value;
            }
        }

        /// <remarks />
        public VendorServerInfoState VendorServerInfo
        {
            get
            {
                return m_vendorServerInfo;
            }

            set
            {
                if (!Object.ReferenceEquals(m_vendorServerInfo, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_vendorServerInfo = value;
            }
        }

        /// <remarks />
        public ServerRedundancyState ServerRedundancy
        {
            get
            {
                return m_serverRedundancy;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serverRedundancy, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serverRedundancy = value;
            }
        }

        /// <remarks />
        public NamespacesState Namespaces
        {
            get
            {
                return m_namespaces;
            }

            set
            {
                if (!Object.ReferenceEquals(m_namespaces, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_namespaces = value;
            }
        }

        /// <remarks />
        public GetMonitoredItemsMethodState GetMonitoredItems
        {
            get
            {
                return m_getMonitoredItemsMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_getMonitoredItemsMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_getMonitoredItemsMethod = value;
            }
        }

        /// <remarks />
        public ResendDataMethodState ResendData
        {
            get
            {
                return m_resendDataMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_resendDataMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_resendDataMethod = value;
            }
        }

        /// <remarks />
        public SetSubscriptionDurableMethodState SetSubscriptionDurable
        {
            get
            {
                return m_setSubscriptionDurableMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_setSubscriptionDurableMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_setSubscriptionDurableMethod = value;
            }
        }

        /// <remarks />
        public RequestServerStateChangeMethodState RequestServerStateChange
        {
            get
            {
                return m_requestServerStateChangeMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_requestServerStateChangeMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_requestServerStateChangeMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_serverArray != null)
            {
                children.Add(m_serverArray);
            }

            if (m_namespaceArray != null)
            {
                children.Add(m_namespaceArray);
            }

            if (m_urisVersion != null)
            {
                children.Add(m_urisVersion);
            }

            if (m_serverStatus != null)
            {
                children.Add(m_serverStatus);
            }

            if (m_serviceLevel != null)
            {
                children.Add(m_serviceLevel);
            }

            if (m_auditing != null)
            {
                children.Add(m_auditing);
            }

            if (m_estimatedReturnTime != null)
            {
                children.Add(m_estimatedReturnTime);
            }

            if (m_localTime != null)
            {
                children.Add(m_localTime);
            }

            if (m_serverCapabilities != null)
            {
                children.Add(m_serverCapabilities);
            }

            if (m_serverDiagnostics != null)
            {
                children.Add(m_serverDiagnostics);
            }

            if (m_vendorServerInfo != null)
            {
                children.Add(m_vendorServerInfo);
            }

            if (m_serverRedundancy != null)
            {
                children.Add(m_serverRedundancy);
            }

            if (m_namespaces != null)
            {
                children.Add(m_namespaces);
            }

            if (m_getMonitoredItemsMethod != null)
            {
                children.Add(m_getMonitoredItemsMethod);
            }

            if (m_resendDataMethod != null)
            {
                children.Add(m_resendDataMethod);
            }

            if (m_setSubscriptionDurableMethod != null)
            {
                children.Add(m_setSubscriptionDurableMethod);
            }

            if (m_requestServerStateChangeMethod != null)
            {
                children.Add(m_requestServerStateChangeMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ServerArray:
                {
                    if (createOrReplace)
                    {
                        if (ServerArray == null)
                        {
                            if (replacement == null)
                            {
                                ServerArray = new PropertyState<string[]>(this);
                            }
                            else
                            {
                                ServerArray = (PropertyState<string[]>)replacement;
                            }
                        }
                    }

                    instance = ServerArray;
                    break;
                }

                case Opc.Ua.BrowseNames.NamespaceArray:
                {
                    if (createOrReplace)
                    {
                        if (NamespaceArray == null)
                        {
                            if (replacement == null)
                            {
                                NamespaceArray = new PropertyState<string[]>(this);
                            }
                            else
                            {
                                NamespaceArray = (PropertyState<string[]>)replacement;
                            }
                        }
                    }

                    instance = NamespaceArray;
                    break;
                }

                case Opc.Ua.BrowseNames.UrisVersion:
                {
                    if (createOrReplace)
                    {
                        if (UrisVersion == null)
                        {
                            if (replacement == null)
                            {
                                UrisVersion = new PropertyState<uint>(this);
                            }
                            else
                            {
                                UrisVersion = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = UrisVersion;
                    break;
                }

                case Opc.Ua.BrowseNames.ServerStatus:
                {
                    if (createOrReplace)
                    {
                        if (ServerStatus == null)
                        {
                            if (replacement == null)
                            {
                                ServerStatus = new ServerStatusState(this);
                            }
                            else
                            {
                                ServerStatus = (ServerStatusState)replacement;
                            }
                        }
                    }

                    instance = ServerStatus;
                    break;
                }

                case Opc.Ua.BrowseNames.ServiceLevel:
                {
                    if (createOrReplace)
                    {
                        if (ServiceLevel == null)
                        {
                            if (replacement == null)
                            {
                                ServiceLevel = new PropertyState<byte>(this);
                            }
                            else
                            {
                                ServiceLevel = (PropertyState<byte>)replacement;
                            }
                        }
                    }

                    instance = ServiceLevel;
                    break;
                }

                case Opc.Ua.BrowseNames.Auditing:
                {
                    if (createOrReplace)
                    {
                        if (Auditing == null)
                        {
                            if (replacement == null)
                            {
                                Auditing = new PropertyState<bool>(this);
                            }
                            else
                            {
                                Auditing = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = Auditing;
                    break;
                }

                case Opc.Ua.BrowseNames.EstimatedReturnTime:
                {
                    if (createOrReplace)
                    {
                        if (EstimatedReturnTime == null)
                        {
                            if (replacement == null)
                            {
                                EstimatedReturnTime = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                EstimatedReturnTime = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = EstimatedReturnTime;
                    break;
                }

                case Opc.Ua.BrowseNames.LocalTime:
                {
                    if (createOrReplace)
                    {
                        if (LocalTime == null)
                        {
                            if (replacement == null)
                            {
                                LocalTime = new PropertyState<TimeZoneDataType>(this);
                            }
                            else
                            {
                                LocalTime = (PropertyState<TimeZoneDataType>)replacement;
                            }
                        }
                    }

                    instance = LocalTime;
                    break;
                }

                case Opc.Ua.BrowseNames.ServerCapabilities:
                {
                    if (createOrReplace)
                    {
                        if (ServerCapabilities == null)
                        {
                            if (replacement == null)
                            {
                                ServerCapabilities = new ServerCapabilitiesState(this);
                            }
                            else
                            {
                                ServerCapabilities = (ServerCapabilitiesState)replacement;
                            }
                        }
                    }

                    instance = ServerCapabilities;
                    break;
                }

                case Opc.Ua.BrowseNames.ServerDiagnostics:
                {
                    if (createOrReplace)
                    {
                        if (ServerDiagnostics == null)
                        {
                            if (replacement == null)
                            {
                                ServerDiagnostics = new ServerDiagnosticsState(this);
                            }
                            else
                            {
                                ServerDiagnostics = (ServerDiagnosticsState)replacement;
                            }
                        }
                    }

                    instance = ServerDiagnostics;
                    break;
                }

                case Opc.Ua.BrowseNames.VendorServerInfo:
                {
                    if (createOrReplace)
                    {
                        if (VendorServerInfo == null)
                        {
                            if (replacement == null)
                            {
                                VendorServerInfo = new VendorServerInfoState(this);
                            }
                            else
                            {
                                VendorServerInfo = (VendorServerInfoState)replacement;
                            }
                        }
                    }

                    instance = VendorServerInfo;
                    break;
                }

                case Opc.Ua.BrowseNames.ServerRedundancy:
                {
                    if (createOrReplace)
                    {
                        if (ServerRedundancy == null)
                        {
                            if (replacement == null)
                            {
                                ServerRedundancy = new ServerRedundancyState(this);
                            }
                            else
                            {
                                ServerRedundancy = (ServerRedundancyState)replacement;
                            }
                        }
                    }

                    instance = ServerRedundancy;
                    break;
                }

                case Opc.Ua.BrowseNames.Namespaces:
                {
                    if (createOrReplace)
                    {
                        if (Namespaces == null)
                        {
                            if (replacement == null)
                            {
                                Namespaces = new NamespacesState(this);
                            }
                            else
                            {
                                Namespaces = (NamespacesState)replacement;
                            }
                        }
                    }

                    instance = Namespaces;
                    break;
                }

                case Opc.Ua.BrowseNames.GetMonitoredItems:
                {
                    if (createOrReplace)
                    {
                        if (GetMonitoredItems == null)
                        {
                            if (replacement == null)
                            {
                                GetMonitoredItems = new GetMonitoredItemsMethodState(this);
                            }
                            else
                            {
                                GetMonitoredItems = (GetMonitoredItemsMethodState)replacement;
                            }
                        }
                    }

                    instance = GetMonitoredItems;
                    break;
                }

                case Opc.Ua.BrowseNames.ResendData:
                {
                    if (createOrReplace)
                    {
                        if (ResendData == null)
                        {
                            if (replacement == null)
                            {
                                ResendData = new ResendDataMethodState(this);
                            }
                            else
                            {
                                ResendData = (ResendDataMethodState)replacement;
                            }
                        }
                    }

                    instance = ResendData;
                    break;
                }

                case Opc.Ua.BrowseNames.SetSubscriptionDurable:
                {
                    if (createOrReplace)
                    {
                        if (SetSubscriptionDurable == null)
                        {
                            if (replacement == null)
                            {
                                SetSubscriptionDurable = new SetSubscriptionDurableMethodState(this);
                            }
                            else
                            {
                                SetSubscriptionDurable = (SetSubscriptionDurableMethodState)replacement;
                            }
                        }
                    }

                    instance = SetSubscriptionDurable;
                    break;
                }

                case Opc.Ua.BrowseNames.RequestServerStateChange:
                {
                    if (createOrReplace)
                    {
                        if (RequestServerStateChange == null)
                        {
                            if (replacement == null)
                            {
                                RequestServerStateChange = new RequestServerStateChangeMethodState(this);
                            }
                            else
                            {
                                RequestServerStateChange = (RequestServerStateChangeMethodState)replacement;
                            }
                        }
                    }

                    instance = RequestServerStateChange;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string[]> m_serverArray;
        private PropertyState<string[]> m_namespaceArray;
        private PropertyState<uint> m_urisVersion;
        private ServerStatusState m_serverStatus;
        private PropertyState<byte> m_serviceLevel;
        private PropertyState<bool> m_auditing;
        private PropertyState<DateTime> m_estimatedReturnTime;
        private PropertyState<TimeZoneDataType> m_localTime;
        private ServerCapabilitiesState m_serverCapabilities;
        private ServerDiagnosticsState m_serverDiagnostics;
        private VendorServerInfoState m_vendorServerInfo;
        private ServerRedundancyState m_serverRedundancy;
        private NamespacesState m_namespaces;
        private GetMonitoredItemsMethodState m_getMonitoredItemsMethod;
        private ResendDataMethodState m_resendDataMethod;
        private SetSubscriptionDurableMethodState m_setSubscriptionDurableMethod;
        private RequestServerStateChangeMethodState m_requestServerStateChangeMethod;
        #endregion
    }
    #endif
    #endregion

    #region ServerCapabilitiesState Class
    #if (!OPCUA_EXCLUDE_ServerCapabilitiesState)
    /// <summary>
    /// Stores an instance of the ServerCapabilitiesType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ServerCapabilitiesState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ServerCapabilitiesState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ServerCapabilitiesType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (MaxArrayLength != null)
            {
                MaxArrayLength.Initialize(context, MaxArrayLength_InitializationString);
            }

            if (MaxStringLength != null)
            {
                MaxStringLength.Initialize(context, MaxStringLength_InitializationString);
            }

            if (MaxByteStringLength != null)
            {
                MaxByteStringLength.Initialize(context, MaxByteStringLength_InitializationString);
            }

            if (OperationLimits != null)
            {
                OperationLimits.Initialize(context, OperationLimits_InitializationString);
            }

            if (RoleSet != null)
            {
                RoleSet.Initialize(context, RoleSet_InitializationString);
            }
        }

        #region Initialization String
        private const string MaxArrayLength_InitializationString =
           "//////////8VYIkKAgAAAAAADgAAAE1heEFycmF5TGVuZ3RoAQAdLQAuAEQdLQAAAAf/////AQH/////" +
           "AAAAAA==";

        private const string MaxStringLength_InitializationString =
           "//////////8VYIkKAgAAAAAADwAAAE1heFN0cmluZ0xlbmd0aAEAHi0ALgBEHi0AAAAH/////wEB////" +
           "/wAAAAA=";

        private const string MaxByteStringLength_InitializationString =
           "//////////8VYIkKAgAAAAAAEwAAAE1heEJ5dGVTdHJpbmdMZW5ndGgBAG4yAC4ARG4yAAAAB/////8B" +
           "Af////8AAAAA";

        private const string OperationLimits_InitializationString =
           "//////////8EYIAKAQAAAAAADwAAAE9wZXJhdGlvbkxpbWl0cwEAHy0ALwEALC0fLQAA/////wAAAAA=";

        private const string RoleSet_InitializationString =
           "//////////8EYIAKAQAAAAAABwAAAFJvbGVTZXQBAKc/AC8BAPc8pz8AAP////8CAAAABGGCCgQAAAAA" +
           "AAcAAABBZGRSb2xlAQCoPwAvAQB9Pqg/AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3Vt" +
           "ZW50cwEAqT8ALgBEqT8AAJYCAAAAAQAqAQEXAAAACAAAAFJvbGVOYW1lAAz/////AAAAAAABACoBARsA" +
           "AAAMAAAATmFtZXNwYWNlVXJpAAz/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoC" +
           "AAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQCqPwAuAESqPwAAlgEAAAABACoBARkAAAAKAAAAUm9sZU5v" +
           "ZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAACgAAAFJlbW92" +
           "ZVJvbGUBAKs/AC8BAIA+qz8AAAEB/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQCs" +
           "PwAuAESsPwAAlgEAAAABACoBARkAAAAKAAAAUm9sZU5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAA" +
           "AAAAAAEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHgAAAFNlcnZlckNhcGFiaWxpdGllc1R5cGVJbnN0YW5jZQEA3QcBAN0H" +
           "3QcAAP////8OAAAAF2CJCgIAAAAAABIAAABTZXJ2ZXJQcm9maWxlQXJyYXkBAN4HAC4ARN4HAAAADAEA" +
           "AAABAAAAAAAAAAEB/////wAAAAAXYIkKAgAAAAAADQAAAExvY2FsZUlkQXJyYXkBAOAHAC4AROAHAAAB" +
           "ACcBAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAAAAAWAAAATWluU3VwcG9ydGVkU2FtcGxlUmF0" +
           "ZQEA4QcALgBE4QcAAAEAIgH/////AQH/////AAAAABVgiQoCAAAAAAAbAAAATWF4QnJvd3NlQ29udGlu" +
           "dWF0aW9uUG9pbnRzAQCsCgAuAESsCgAAAAX/////AQH/////AAAAABVgiQoCAAAAAAAaAAAATWF4UXVl" +
           "cnlDb250aW51YXRpb25Qb2ludHMBAK0KAC4ARK0KAAAABf////8BAf////8AAAAAFWCJCgIAAAAAABwA" +
           "AABNYXhIaXN0b3J5Q29udGludWF0aW9uUG9pbnRzAQCuCgAuAESuCgAAAAX/////AQH/////AAAAABdg" +
           "iQoCAAAAAAAUAAAAU29mdHdhcmVDZXJ0aWZpY2F0ZXMBAOkLAC4AROkLAAABAFgBAQAAAAEAAAAAAAAA" +
           "AQH/////AAAAABVgiQoCAAAAAAAOAAAATWF4QXJyYXlMZW5ndGgBAB0tAC4ARB0tAAAAB/////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAA8AAABNYXhTdHJpbmdMZW5ndGgBAB4tAC4ARB4tAAAAB/////8BAf////8A" +
           "AAAAFWCJCgIAAAAAABMAAABNYXhCeXRlU3RyaW5nTGVuZ3RoAQBuMgAuAERuMgAAAAf/////AQH/////" +
           "AAAAAARggAoBAAAAAAAPAAAAT3BlcmF0aW9uTGltaXRzAQAfLQAvAQAsLR8tAAD/////AAAAAARggAoB" +
           "AAAAAAAOAAAATW9kZWxsaW5nUnVsZXMBAOMHAC8APeMHAAD/////AAAAAARggAoBAAAAAAASAAAAQWdn" +
           "cmVnYXRlRnVuY3Rpb25zAQDCCgAvAD3CCgAA/////wAAAAAEYIAKAQAAAAAABwAAAFJvbGVTZXQBAKc/" +
           "AC8BAPc8pz8AAP////8CAAAABGGCCgQAAAAAAAcAAABBZGRSb2xlAQCoPwAvAQB9Pqg/AAABAf////8C" +
           "AAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAqT8ALgBEqT8AAJYCAAAAAQAqAQEXAAAACAAA" +
           "AFJvbGVOYW1lAAz/////AAAAAAABACoBARsAAAAMAAAATmFtZXNwYWNlVXJpAAz/////AAAAAAABACgB" +
           "AQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQCqPwAuAESq" +
           "PwAAlgEAAAABACoBARkAAAAKAAAAUm9sZU5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB" +
           "/////wAAAAAEYYIKBAAAAAAACgAAAFJlbW92ZVJvbGUBAKs/AC8BAIA+qz8AAAEB/////wEAAAAXYKkK" +
           "AgAAAAAADgAAAElucHV0QXJndW1lbnRzAQCsPwAuAESsPwAAlgEAAAABACoBARkAAAAKAAAAUm9sZU5v" +
           "ZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string[]> ServerProfileArray
        {
            get
            {
                return m_serverProfileArray;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serverProfileArray, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serverProfileArray = value;
            }
        }

        /// <remarks />
        public PropertyState<string[]> LocaleIdArray
        {
            get
            {
                return m_localeIdArray;
            }

            set
            {
                if (!Object.ReferenceEquals(m_localeIdArray, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_localeIdArray = value;
            }
        }

        /// <remarks />
        public PropertyState<double> MinSupportedSampleRate
        {
            get
            {
                return m_minSupportedSampleRate;
            }

            set
            {
                if (!Object.ReferenceEquals(m_minSupportedSampleRate, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_minSupportedSampleRate = value;
            }
        }

        /// <remarks />
        public PropertyState<ushort> MaxBrowseContinuationPoints
        {
            get
            {
                return m_maxBrowseContinuationPoints;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxBrowseContinuationPoints, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxBrowseContinuationPoints = value;
            }
        }

        /// <remarks />
        public PropertyState<ushort> MaxQueryContinuationPoints
        {
            get
            {
                return m_maxQueryContinuationPoints;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxQueryContinuationPoints, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxQueryContinuationPoints = value;
            }
        }

        /// <remarks />
        public PropertyState<ushort> MaxHistoryContinuationPoints
        {
            get
            {
                return m_maxHistoryContinuationPoints;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxHistoryContinuationPoints, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxHistoryContinuationPoints = value;
            }
        }

        /// <remarks />
        public PropertyState<SignedSoftwareCertificate[]> SoftwareCertificates
        {
            get
            {
                return m_softwareCertificates;
            }

            set
            {
                if (!Object.ReferenceEquals(m_softwareCertificates, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_softwareCertificates = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxArrayLength
        {
            get
            {
                return m_maxArrayLength;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxArrayLength, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxArrayLength = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxStringLength
        {
            get
            {
                return m_maxStringLength;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxStringLength, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxStringLength = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxByteStringLength
        {
            get
            {
                return m_maxByteStringLength;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxByteStringLength, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxByteStringLength = value;
            }
        }

        /// <remarks />
        public OperationLimitsState OperationLimits
        {
            get
            {
                return m_operationLimits;
            }

            set
            {
                if (!Object.ReferenceEquals(m_operationLimits, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_operationLimits = value;
            }
        }

        /// <remarks />
        public FolderState ModellingRules
        {
            get
            {
                return m_modellingRules;
            }

            set
            {
                if (!Object.ReferenceEquals(m_modellingRules, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_modellingRules = value;
            }
        }

        /// <remarks />
        public FolderState AggregateFunctions
        {
            get
            {
                return m_aggregateFunctions;
            }

            set
            {
                if (!Object.ReferenceEquals(m_aggregateFunctions, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_aggregateFunctions = value;
            }
        }

        /// <remarks />
        public RoleSetState RoleSet
        {
            get
            {
                return m_roleSet;
            }

            set
            {
                if (!Object.ReferenceEquals(m_roleSet, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_roleSet = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_serverProfileArray != null)
            {
                children.Add(m_serverProfileArray);
            }

            if (m_localeIdArray != null)
            {
                children.Add(m_localeIdArray);
            }

            if (m_minSupportedSampleRate != null)
            {
                children.Add(m_minSupportedSampleRate);
            }

            if (m_maxBrowseContinuationPoints != null)
            {
                children.Add(m_maxBrowseContinuationPoints);
            }

            if (m_maxQueryContinuationPoints != null)
            {
                children.Add(m_maxQueryContinuationPoints);
            }

            if (m_maxHistoryContinuationPoints != null)
            {
                children.Add(m_maxHistoryContinuationPoints);
            }

            if (m_softwareCertificates != null)
            {
                children.Add(m_softwareCertificates);
            }

            if (m_maxArrayLength != null)
            {
                children.Add(m_maxArrayLength);
            }

            if (m_maxStringLength != null)
            {
                children.Add(m_maxStringLength);
            }

            if (m_maxByteStringLength != null)
            {
                children.Add(m_maxByteStringLength);
            }

            if (m_operationLimits != null)
            {
                children.Add(m_operationLimits);
            }

            if (m_modellingRules != null)
            {
                children.Add(m_modellingRules);
            }

            if (m_aggregateFunctions != null)
            {
                children.Add(m_aggregateFunctions);
            }

            if (m_roleSet != null)
            {
                children.Add(m_roleSet);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ServerProfileArray:
                {
                    if (createOrReplace)
                    {
                        if (ServerProfileArray == null)
                        {
                            if (replacement == null)
                            {
                                ServerProfileArray = new PropertyState<string[]>(this);
                            }
                            else
                            {
                                ServerProfileArray = (PropertyState<string[]>)replacement;
                            }
                        }
                    }

                    instance = ServerProfileArray;
                    break;
                }

                case Opc.Ua.BrowseNames.LocaleIdArray:
                {
                    if (createOrReplace)
                    {
                        if (LocaleIdArray == null)
                        {
                            if (replacement == null)
                            {
                                LocaleIdArray = new PropertyState<string[]>(this);
                            }
                            else
                            {
                                LocaleIdArray = (PropertyState<string[]>)replacement;
                            }
                        }
                    }

                    instance = LocaleIdArray;
                    break;
                }

                case Opc.Ua.BrowseNames.MinSupportedSampleRate:
                {
                    if (createOrReplace)
                    {
                        if (MinSupportedSampleRate == null)
                        {
                            if (replacement == null)
                            {
                                MinSupportedSampleRate = new PropertyState<double>(this);
                            }
                            else
                            {
                                MinSupportedSampleRate = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = MinSupportedSampleRate;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxBrowseContinuationPoints:
                {
                    if (createOrReplace)
                    {
                        if (MaxBrowseContinuationPoints == null)
                        {
                            if (replacement == null)
                            {
                                MaxBrowseContinuationPoints = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                MaxBrowseContinuationPoints = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = MaxBrowseContinuationPoints;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxQueryContinuationPoints:
                {
                    if (createOrReplace)
                    {
                        if (MaxQueryContinuationPoints == null)
                        {
                            if (replacement == null)
                            {
                                MaxQueryContinuationPoints = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                MaxQueryContinuationPoints = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = MaxQueryContinuationPoints;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxHistoryContinuationPoints:
                {
                    if (createOrReplace)
                    {
                        if (MaxHistoryContinuationPoints == null)
                        {
                            if (replacement == null)
                            {
                                MaxHistoryContinuationPoints = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                MaxHistoryContinuationPoints = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = MaxHistoryContinuationPoints;
                    break;
                }

                case Opc.Ua.BrowseNames.SoftwareCertificates:
                {
                    if (createOrReplace)
                    {
                        if (SoftwareCertificates == null)
                        {
                            if (replacement == null)
                            {
                                SoftwareCertificates = new PropertyState<SignedSoftwareCertificate[]>(this);
                            }
                            else
                            {
                                SoftwareCertificates = (PropertyState<SignedSoftwareCertificate[]>)replacement;
                            }
                        }
                    }

                    instance = SoftwareCertificates;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxArrayLength:
                {
                    if (createOrReplace)
                    {
                        if (MaxArrayLength == null)
                        {
                            if (replacement == null)
                            {
                                MaxArrayLength = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxArrayLength = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxArrayLength;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxStringLength:
                {
                    if (createOrReplace)
                    {
                        if (MaxStringLength == null)
                        {
                            if (replacement == null)
                            {
                                MaxStringLength = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxStringLength = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxStringLength;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxByteStringLength:
                {
                    if (createOrReplace)
                    {
                        if (MaxByteStringLength == null)
                        {
                            if (replacement == null)
                            {
                                MaxByteStringLength = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxByteStringLength = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxByteStringLength;
                    break;
                }

                case Opc.Ua.BrowseNames.OperationLimits:
                {
                    if (createOrReplace)
                    {
                        if (OperationLimits == null)
                        {
                            if (replacement == null)
                            {
                                OperationLimits = new OperationLimitsState(this);
                            }
                            else
                            {
                                OperationLimits = (OperationLimitsState)replacement;
                            }
                        }
                    }

                    instance = OperationLimits;
                    break;
                }

                case Opc.Ua.BrowseNames.ModellingRules:
                {
                    if (createOrReplace)
                    {
                        if (ModellingRules == null)
                        {
                            if (replacement == null)
                            {
                                ModellingRules = new FolderState(this);
                            }
                            else
                            {
                                ModellingRules = (FolderState)replacement;
                            }
                        }
                    }

                    instance = ModellingRules;
                    break;
                }

                case Opc.Ua.BrowseNames.AggregateFunctions:
                {
                    if (createOrReplace)
                    {
                        if (AggregateFunctions == null)
                        {
                            if (replacement == null)
                            {
                                AggregateFunctions = new FolderState(this);
                            }
                            else
                            {
                                AggregateFunctions = (FolderState)replacement;
                            }
                        }
                    }

                    instance = AggregateFunctions;
                    break;
                }

                case Opc.Ua.BrowseNames.RoleSet:
                {
                    if (createOrReplace)
                    {
                        if (RoleSet == null)
                        {
                            if (replacement == null)
                            {
                                RoleSet = new RoleSetState(this);
                            }
                            else
                            {
                                RoleSet = (RoleSetState)replacement;
                            }
                        }
                    }

                    instance = RoleSet;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string[]> m_serverProfileArray;
        private PropertyState<string[]> m_localeIdArray;
        private PropertyState<double> m_minSupportedSampleRate;
        private PropertyState<ushort> m_maxBrowseContinuationPoints;
        private PropertyState<ushort> m_maxQueryContinuationPoints;
        private PropertyState<ushort> m_maxHistoryContinuationPoints;
        private PropertyState<SignedSoftwareCertificate[]> m_softwareCertificates;
        private PropertyState<uint> m_maxArrayLength;
        private PropertyState<uint> m_maxStringLength;
        private PropertyState<uint> m_maxByteStringLength;
        private OperationLimitsState m_operationLimits;
        private FolderState m_modellingRules;
        private FolderState m_aggregateFunctions;
        private RoleSetState m_roleSet;
        #endregion
    }
    #endif
    #endregion

    #region ServerDiagnosticsState Class
    #if (!OPCUA_EXCLUDE_ServerDiagnosticsState)
    /// <summary>
    /// Stores an instance of the ServerDiagnosticsType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ServerDiagnosticsState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ServerDiagnosticsState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ServerDiagnosticsType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (SamplingIntervalDiagnosticsArray != null)
            {
                SamplingIntervalDiagnosticsArray.Initialize(context, SamplingIntervalDiagnosticsArray_InitializationString);
            }
        }

        #region Initialization String
        private const string SamplingIntervalDiagnosticsArray_InitializationString =
           "//////////8XYIkKAgAAAAAAIAAAAFNhbXBsaW5nSW50ZXJ2YWxEaWFnbm9zdGljc0FycmF5AQDmBwAv" +
           "AQB0COYHAAABAFgDAQAAAAEAAAAAAAAAAQH/////AAAAAA==";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHQAAAFNlcnZlckRpYWdub3N0aWNzVHlwZUluc3RhbmNlAQDkBwEA5Afk" +
           "BwAA/////wUAAAAVYIkKAgAAAAAAGAAAAFNlcnZlckRpYWdub3N0aWNzU3VtbWFyeQEA5QcALwEAZgjl" +
           "BwAAAQBbA/////8BAf////8MAAAAFWCJCgIAAAAAAA8AAABTZXJ2ZXJWaWV3Q291bnQBACwMAC8APywM" +
           "AAAAB/////8BAf////8AAAAAFWCJCgIAAAAAABMAAABDdXJyZW50U2Vzc2lvbkNvdW50AQAtDAAvAD8t" +
           "DAAAAAf/////AQH/////AAAAABVgiQoCAAAAAAAVAAAAQ3VtdWxhdGVkU2Vzc2lvbkNvdW50AQAuDAAv" +
           "AD8uDAAAAAf/////AQH/////AAAAABVgiQoCAAAAAAAcAAAAU2VjdXJpdHlSZWplY3RlZFNlc3Npb25D" +
           "b3VudAEALwwALwA/LwwAAAAH/////wEB/////wAAAAAVYIkKAgAAAAAAFAAAAFJlamVjdGVkU2Vzc2lv" +
           "bkNvdW50AQAwDAAvAD8wDAAAAAf/////AQH/////AAAAABVgiQoCAAAAAAATAAAAU2Vzc2lvblRpbWVv" +
           "dXRDb3VudAEAMQwALwA/MQwAAAAH/////wEB/////wAAAAAVYIkKAgAAAAAAEQAAAFNlc3Npb25BYm9y" +
           "dENvdW50AQAyDAAvAD8yDAAAAAf/////AQH/////AAAAABVgiQoCAAAAAAAXAAAAUHVibGlzaGluZ0lu" +
           "dGVydmFsQ291bnQBADQMAC8APzQMAAAAB/////8BAf////8AAAAAFWCJCgIAAAAAABgAAABDdXJyZW50" +
           "U3Vic2NyaXB0aW9uQ291bnQBADUMAC8APzUMAAAAB/////8BAf////8AAAAAFWCJCgIAAAAAABoAAABD" +
           "dW11bGF0ZWRTdWJzY3JpcHRpb25Db3VudAEANgwALwA/NgwAAAAH/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAAHQAAAFNlY3VyaXR5UmVqZWN0ZWRSZXF1ZXN0c0NvdW50AQA3DAAvAD83DAAAAAf/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAVAAAAUmVqZWN0ZWRSZXF1ZXN0c0NvdW50AQA4DAAvAD84DAAAAAf/////AQH/" +
           "////AAAAABdgiQoCAAAAAAAgAAAAU2FtcGxpbmdJbnRlcnZhbERpYWdub3N0aWNzQXJyYXkBAOYHAC8B" +
           "AHQI5gcAAAEAWAMBAAAAAQAAAAAAAAABAf////8AAAAAF2CJCgIAAAAAABwAAABTdWJzY3JpcHRpb25E" +
           "aWFnbm9zdGljc0FycmF5AQDnBwAvAQB7COcHAAABAGoDAQAAAAEAAAAAAAAAAQH/////AAAAAARggAoB" +
           "AAAAAAAaAAAAU2Vzc2lvbnNEaWFnbm9zdGljc1N1bW1hcnkBALgKAC8BAOoHuAoAAP////8CAAAAF2CJ" +
           "CgIAAAAAABcAAABTZXNzaW9uRGlhZ25vc3RpY3NBcnJheQEAOQwALwEAlAg5DAAAAQBhAwEAAAABAAAA" +
           "AAAAAAEB/////wAAAAAXYIkKAgAAAAAAHwAAAFNlc3Npb25TZWN1cml0eURpYWdub3N0aWNzQXJyYXkB" +
           "ADoMAC8BAMMIOgwAAAEAZAMBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAsAAABFbmFibGVk" +
           "RmxhZwEA6QcALgBE6QcAAAAB/////wMD/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public ServerDiagnosticsSummaryState ServerDiagnosticsSummary
        {
            get
            {
                return m_serverDiagnosticsSummary;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serverDiagnosticsSummary, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serverDiagnosticsSummary = value;
            }
        }

        /// <remarks />
        public SamplingIntervalDiagnosticsArrayState SamplingIntervalDiagnosticsArray
        {
            get
            {
                return m_samplingIntervalDiagnosticsArray;
            }

            set
            {
                if (!Object.ReferenceEquals(m_samplingIntervalDiagnosticsArray, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_samplingIntervalDiagnosticsArray = value;
            }
        }

        /// <remarks />
        public SubscriptionDiagnosticsArrayState SubscriptionDiagnosticsArray
        {
            get
            {
                return m_subscriptionDiagnosticsArray;
            }

            set
            {
                if (!Object.ReferenceEquals(m_subscriptionDiagnosticsArray, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_subscriptionDiagnosticsArray = value;
            }
        }

        /// <remarks />
        public SessionsDiagnosticsSummaryState SessionsDiagnosticsSummary
        {
            get
            {
                return m_sessionsDiagnosticsSummary;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sessionsDiagnosticsSummary, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sessionsDiagnosticsSummary = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> EnabledFlag
        {
            get
            {
                return m_enabledFlag;
            }

            set
            {
                if (!Object.ReferenceEquals(m_enabledFlag, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_enabledFlag = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_serverDiagnosticsSummary != null)
            {
                children.Add(m_serverDiagnosticsSummary);
            }

            if (m_samplingIntervalDiagnosticsArray != null)
            {
                children.Add(m_samplingIntervalDiagnosticsArray);
            }

            if (m_subscriptionDiagnosticsArray != null)
            {
                children.Add(m_subscriptionDiagnosticsArray);
            }

            if (m_sessionsDiagnosticsSummary != null)
            {
                children.Add(m_sessionsDiagnosticsSummary);
            }

            if (m_enabledFlag != null)
            {
                children.Add(m_enabledFlag);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ServerDiagnosticsSummary:
                {
                    if (createOrReplace)
                    {
                        if (ServerDiagnosticsSummary == null)
                        {
                            if (replacement == null)
                            {
                                ServerDiagnosticsSummary = new ServerDiagnosticsSummaryState(this);
                            }
                            else
                            {
                                ServerDiagnosticsSummary = (ServerDiagnosticsSummaryState)replacement;
                            }
                        }
                    }

                    instance = ServerDiagnosticsSummary;
                    break;
                }

                case Opc.Ua.BrowseNames.SamplingIntervalDiagnosticsArray:
                {
                    if (createOrReplace)
                    {
                        if (SamplingIntervalDiagnosticsArray == null)
                        {
                            if (replacement == null)
                            {
                                SamplingIntervalDiagnosticsArray = new SamplingIntervalDiagnosticsArrayState(this);
                            }
                            else
                            {
                                SamplingIntervalDiagnosticsArray = (SamplingIntervalDiagnosticsArrayState)replacement;
                            }
                        }
                    }

                    instance = SamplingIntervalDiagnosticsArray;
                    break;
                }

                case Opc.Ua.BrowseNames.SubscriptionDiagnosticsArray:
                {
                    if (createOrReplace)
                    {
                        if (SubscriptionDiagnosticsArray == null)
                        {
                            if (replacement == null)
                            {
                                SubscriptionDiagnosticsArray = new SubscriptionDiagnosticsArrayState(this);
                            }
                            else
                            {
                                SubscriptionDiagnosticsArray = (SubscriptionDiagnosticsArrayState)replacement;
                            }
                        }
                    }

                    instance = SubscriptionDiagnosticsArray;
                    break;
                }

                case Opc.Ua.BrowseNames.SessionsDiagnosticsSummary:
                {
                    if (createOrReplace)
                    {
                        if (SessionsDiagnosticsSummary == null)
                        {
                            if (replacement == null)
                            {
                                SessionsDiagnosticsSummary = new SessionsDiagnosticsSummaryState(this);
                            }
                            else
                            {
                                SessionsDiagnosticsSummary = (SessionsDiagnosticsSummaryState)replacement;
                            }
                        }
                    }

                    instance = SessionsDiagnosticsSummary;
                    break;
                }

                case Opc.Ua.BrowseNames.EnabledFlag:
                {
                    if (createOrReplace)
                    {
                        if (EnabledFlag == null)
                        {
                            if (replacement == null)
                            {
                                EnabledFlag = new PropertyState<bool>(this);
                            }
                            else
                            {
                                EnabledFlag = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = EnabledFlag;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private ServerDiagnosticsSummaryState m_serverDiagnosticsSummary;
        private SamplingIntervalDiagnosticsArrayState m_samplingIntervalDiagnosticsArray;
        private SubscriptionDiagnosticsArrayState m_subscriptionDiagnosticsArray;
        private SessionsDiagnosticsSummaryState m_sessionsDiagnosticsSummary;
        private PropertyState<bool> m_enabledFlag;
        #endregion
    }
    #endif
    #endregion

    #region SessionsDiagnosticsSummaryState Class
    #if (!OPCUA_EXCLUDE_SessionsDiagnosticsSummaryState)
    /// <summary>
    /// Stores an instance of the SessionsDiagnosticsSummaryType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SessionsDiagnosticsSummaryState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SessionsDiagnosticsSummaryState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.SessionsDiagnosticsSummaryType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJgAAAFNlc3Npb25zRGlhZ25vc3RpY3NTdW1tYXJ5VHlwZUluc3RhbmNl" +
           "AQDqBwEA6gfqBwAA/////wIAAAAXYIkKAgAAAAAAFwAAAFNlc3Npb25EaWFnbm9zdGljc0FycmF5AQDr" +
           "BwAvAQCUCOsHAAABAGEDAQAAAAEAAAAAAAAAAQH/////AAAAABdgiQoCAAAAAAAfAAAAU2Vzc2lvblNl" +
           "Y3VyaXR5RGlhZ25vc3RpY3NBcnJheQEA7AcALwEAwwjsBwAAAQBkAwEAAAABAAAAAAAAAAEB/////wAA" +
           "AAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public SessionDiagnosticsArrayState SessionDiagnosticsArray
        {
            get
            {
                return m_sessionDiagnosticsArray;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sessionDiagnosticsArray, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sessionDiagnosticsArray = value;
            }
        }

        /// <remarks />
        public SessionSecurityDiagnosticsArrayState SessionSecurityDiagnosticsArray
        {
            get
            {
                return m_sessionSecurityDiagnosticsArray;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sessionSecurityDiagnosticsArray, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sessionSecurityDiagnosticsArray = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_sessionDiagnosticsArray != null)
            {
                children.Add(m_sessionDiagnosticsArray);
            }

            if (m_sessionSecurityDiagnosticsArray != null)
            {
                children.Add(m_sessionSecurityDiagnosticsArray);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SessionDiagnosticsArray:
                {
                    if (createOrReplace)
                    {
                        if (SessionDiagnosticsArray == null)
                        {
                            if (replacement == null)
                            {
                                SessionDiagnosticsArray = new SessionDiagnosticsArrayState(this);
                            }
                            else
                            {
                                SessionDiagnosticsArray = (SessionDiagnosticsArrayState)replacement;
                            }
                        }
                    }

                    instance = SessionDiagnosticsArray;
                    break;
                }

                case Opc.Ua.BrowseNames.SessionSecurityDiagnosticsArray:
                {
                    if (createOrReplace)
                    {
                        if (SessionSecurityDiagnosticsArray == null)
                        {
                            if (replacement == null)
                            {
                                SessionSecurityDiagnosticsArray = new SessionSecurityDiagnosticsArrayState(this);
                            }
                            else
                            {
                                SessionSecurityDiagnosticsArray = (SessionSecurityDiagnosticsArrayState)replacement;
                            }
                        }
                    }

                    instance = SessionSecurityDiagnosticsArray;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private SessionDiagnosticsArrayState m_sessionDiagnosticsArray;
        private SessionSecurityDiagnosticsArrayState m_sessionSecurityDiagnosticsArray;
        #endregion
    }
    #endif
    #endregion

    #region SessionDiagnosticsObjectState Class
    #if (!OPCUA_EXCLUDE_SessionDiagnosticsObjectState)
    /// <summary>
    /// Stores an instance of the SessionDiagnosticsObjectType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SessionDiagnosticsObjectState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SessionDiagnosticsObjectState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.SessionDiagnosticsObjectType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJAAAAFNlc3Npb25EaWFnbm9zdGljc09iamVjdFR5cGVJbnN0YW5jZQEA" +
           "7QcBAO0H7QcAAP////8DAAAAFWCJCgIAAAAAABIAAABTZXNzaW9uRGlhZ25vc3RpY3MBAO4HAC8BAJUI" +
           "7gcAAAEAYQP/////AQH/////KwAAABVgiQoCAAAAAAAJAAAAU2Vzc2lvbklkAQA7DAAvAD87DAAAABH/" +
           "////AQH/////AAAAABVgiQoCAAAAAAALAAAAU2Vzc2lvbk5hbWUBADwMAC8APzwMAAAADP////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABEAAABDbGllbnREZXNjcmlwdGlvbgEAPQwALwA/PQwAAAEANAH/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAJAAAAU2VydmVyVXJpAQA+DAAvAD8+DAAAAAz/////AQH/////AAAAABVg" +
           "iQoCAAAAAAALAAAARW5kcG9pbnRVcmwBAD8MAC8APz8MAAAADP////8BAf////8AAAAAF2CJCgIAAAAA" +
           "AAkAAABMb2NhbGVJZHMBAEAMAC8AP0AMAAABACcBAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAA" +
           "AAAUAAAAQWN0dWFsU2Vzc2lvblRpbWVvdXQBAEEMAC8AP0EMAAABACIB/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAAFgAAAE1heFJlc3BvbnNlTWVzc2FnZVNpemUBAEIMAC8AP0IMAAAAB/////8BAf////8AAAAA" +
           "FWCJCgIAAAAAABQAAABDbGllbnRDb25uZWN0aW9uVGltZQEAQwwALwA/QwwAAAEAJgH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAVAAAAQ2xpZW50TGFzdENvbnRhY3RUaW1lAQBEDAAvAD9EDAAAAQAmAf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAABkAAABDdXJyZW50U3Vic2NyaXB0aW9uc0NvdW50AQBFDAAvAD9FDAAA" +
           "AAf/////AQH/////AAAAABVgiQoCAAAAAAAaAAAAQ3VycmVudE1vbml0b3JlZEl0ZW1zQ291bnQBAEYM" +
           "AC8AP0YMAAAAB/////8BAf////8AAAAAFWCJCgIAAAAAAB0AAABDdXJyZW50UHVibGlzaFJlcXVlc3Rz" +
           "SW5RdWV1ZQEARwwALwA/RwwAAAAH/////wEB/////wAAAAAVYIkKAgAAAAAAEQAAAFRvdGFsUmVxdWVz" +
           "dENvdW50AQDCIgAvAD/CIgAAAQBnA/////8BAf////8AAAAAFWCJCgIAAAAAABgAAABVbmF1dGhvcml6" +
           "ZWRSZXF1ZXN0Q291bnQBAHMuAC8AP3MuAAAAB/////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABSZWFk" +
           "Q291bnQBAE8MAC8AP08MAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAEhpc3RvcnlSZWFk" +
           "Q291bnQBAFAMAC8AP1AMAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFdyaXRlQ291bnQB" +
           "AFEMAC8AP1EMAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAEhpc3RvcnlVcGRhdGVDb3Vu" +
           "dAEAUgwALwA/UgwAAAEAZwP/////AQH/////AAAAABVgiQoCAAAAAAAJAAAAQ2FsbENvdW50AQBTDAAv" +
           "AD9TDAAAAQBnA/////8BAf////8AAAAAFWCJCgIAAAAAABkAAABDcmVhdGVNb25pdG9yZWRJdGVtc0Nv" +
           "dW50AQBUDAAvAD9UDAAAAQBnA/////8BAf////8AAAAAFWCJCgIAAAAAABkAAABNb2RpZnlNb25pdG9y" +
           "ZWRJdGVtc0NvdW50AQBVDAAvAD9VDAAAAQBnA/////8BAf////8AAAAAFWCJCgIAAAAAABYAAABTZXRN" +
           "b25pdG9yaW5nTW9kZUNvdW50AQBWDAAvAD9WDAAAAQBnA/////8BAf////8AAAAAFWCJCgIAAAAAABIA" +
           "AABTZXRUcmlnZ2VyaW5nQ291bnQBAFcMAC8AP1cMAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "GQAAAERlbGV0ZU1vbml0b3JlZEl0ZW1zQ291bnQBAFgMAC8AP1gMAAABAGcD/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAAFwAAAENyZWF0ZVN1YnNjcmlwdGlvbkNvdW50AQBZDAAvAD9ZDAAAAQBnA/////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABcAAABNb2RpZnlTdWJzY3JpcHRpb25Db3VudAEAWgwALwA/WgwAAAEAZwP/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAWAAAAU2V0UHVibGlzaGluZ01vZGVDb3VudAEAWwwALwA/WwwA" +
           "AAEAZwP/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAUHVibGlzaENvdW50AQBcDAAvAD9cDAAAAQBn" +
           "A/////8BAf////8AAAAAFWCJCgIAAAAAAA4AAABSZXB1Ymxpc2hDb3VudAEAXQwALwA/XQwAAAEAZwP/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAaAAAAVHJhbnNmZXJTdWJzY3JpcHRpb25zQ291bnQBAF4MAC8A" +
           "P14MAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAAGAAAAERlbGV0ZVN1YnNjcmlwdGlvbnNDb3Vu" +
           "dAEAXwwALwA/XwwAAAEAZwP/////AQH/////AAAAABVgiQoCAAAAAAANAAAAQWRkTm9kZXNDb3VudAEA" +
           "YAwALwA/YAwAAAEAZwP/////AQH/////AAAAABVgiQoCAAAAAAASAAAAQWRkUmVmZXJlbmNlc0NvdW50" +
           "AQBhDAAvAD9hDAAAAQBnA/////8BAf////8AAAAAFWCJCgIAAAAAABAAAABEZWxldGVOb2Rlc0NvdW50" +
           "AQBiDAAvAD9iDAAAAQBnA/////8BAf////8AAAAAFWCJCgIAAAAAABUAAABEZWxldGVSZWZlcmVuY2Vz" +
           "Q291bnQBAGMMAC8AP2MMAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAEJyb3dzZUNvdW50" +
           "AQBkDAAvAD9kDAAAAQBnA/////8BAf////8AAAAAFWCJCgIAAAAAAA8AAABCcm93c2VOZXh0Q291bnQB" +
           "AGUMAC8AP2UMAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAAIgAAAFRyYW5zbGF0ZUJyb3dzZVBh" +
           "dGhzVG9Ob2RlSWRzQ291bnQBAGYMAC8AP2YMAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAADwAA" +
           "AFF1ZXJ5Rmlyc3RDb3VudAEAZwwALwA/ZwwAAAEAZwP/////AQH/////AAAAABVgiQoCAAAAAAAOAAAA" +
           "UXVlcnlOZXh0Q291bnQBAGgMAC8AP2gMAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAFJl" +
           "Z2lzdGVyTm9kZXNDb3VudAEAaQwALwA/aQwAAAEAZwP/////AQH/////AAAAABVgiQoCAAAAAAAUAAAA" +
           "VW5yZWdpc3Rlck5vZGVzQ291bnQBAGoMAC8AP2oMAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "GgAAAFNlc3Npb25TZWN1cml0eURpYWdub3N0aWNzAQDvBwAvAQDECO8HAAABAGQD/////wEB/////wkA" +
           "AAAVYIkKAgAAAAAACQAAAFNlc3Npb25JZAEAawwALwA/awwAAAAR/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAAFQAAAENsaWVudFVzZXJJZE9mU2Vzc2lvbgEAbAwALwA/bAwAAAAM/////wEB/////wAAAAAXYIkK" +
           "AgAAAAAAEwAAAENsaWVudFVzZXJJZEhpc3RvcnkBAG0MAC8AP20MAAAADAEAAAABAAAAAAAAAAEB////" +
           "/wAAAAAVYIkKAgAAAAAAFwAAAEF1dGhlbnRpY2F0aW9uTWVjaGFuaXNtAQBuDAAvAD9uDAAAAAz/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAIAAAARW5jb2RpbmcBAG8MAC8AP28MAAAADP////8BAf////8AAAAA" +
           "FWCJCgIAAAAAABEAAABUcmFuc3BvcnRQcm90b2NvbAEAcAwALwA/cAwAAAAM/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAADAAAAFNlY3VyaXR5TW9kZQEAcQwALwA/cQwAAAEALgH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAARAAAAU2VjdXJpdHlQb2xpY3lVcmkBAHIMAC8AP3IMAAAADP////8BAf////8AAAAAFWCJCgIA" +
           "AAAAABEAAABDbGllbnRDZXJ0aWZpY2F0ZQEAcwwALwA/cwwAAAAP/////wEB/////wAAAAAXYIkKAgAA" +
           "AAAAHAAAAFN1YnNjcmlwdGlvbkRpYWdub3N0aWNzQXJyYXkBAPAHAC8BAHsI8AcAAAEAagMBAAAAAQAA" +
           "AAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public SessionDiagnosticsVariableState SessionDiagnostics
        {
            get
            {
                return m_sessionDiagnostics;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sessionDiagnostics, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sessionDiagnostics = value;
            }
        }

        /// <remarks />
        public SessionSecurityDiagnosticsState SessionSecurityDiagnostics
        {
            get
            {
                return m_sessionSecurityDiagnostics;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sessionSecurityDiagnostics, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sessionSecurityDiagnostics = value;
            }
        }

        /// <remarks />
        public SubscriptionDiagnosticsArrayState SubscriptionDiagnosticsArray
        {
            get
            {
                return m_subscriptionDiagnosticsArray;
            }

            set
            {
                if (!Object.ReferenceEquals(m_subscriptionDiagnosticsArray, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_subscriptionDiagnosticsArray = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_sessionDiagnostics != null)
            {
                children.Add(m_sessionDiagnostics);
            }

            if (m_sessionSecurityDiagnostics != null)
            {
                children.Add(m_sessionSecurityDiagnostics);
            }

            if (m_subscriptionDiagnosticsArray != null)
            {
                children.Add(m_subscriptionDiagnosticsArray);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SessionDiagnostics:
                {
                    if (createOrReplace)
                    {
                        if (SessionDiagnostics == null)
                        {
                            if (replacement == null)
                            {
                                SessionDiagnostics = new SessionDiagnosticsVariableState(this);
                            }
                            else
                            {
                                SessionDiagnostics = (SessionDiagnosticsVariableState)replacement;
                            }
                        }
                    }

                    instance = SessionDiagnostics;
                    break;
                }

                case Opc.Ua.BrowseNames.SessionSecurityDiagnostics:
                {
                    if (createOrReplace)
                    {
                        if (SessionSecurityDiagnostics == null)
                        {
                            if (replacement == null)
                            {
                                SessionSecurityDiagnostics = new SessionSecurityDiagnosticsState(this);
                            }
                            else
                            {
                                SessionSecurityDiagnostics = (SessionSecurityDiagnosticsState)replacement;
                            }
                        }
                    }

                    instance = SessionSecurityDiagnostics;
                    break;
                }

                case Opc.Ua.BrowseNames.SubscriptionDiagnosticsArray:
                {
                    if (createOrReplace)
                    {
                        if (SubscriptionDiagnosticsArray == null)
                        {
                            if (replacement == null)
                            {
                                SubscriptionDiagnosticsArray = new SubscriptionDiagnosticsArrayState(this);
                            }
                            else
                            {
                                SubscriptionDiagnosticsArray = (SubscriptionDiagnosticsArrayState)replacement;
                            }
                        }
                    }

                    instance = SubscriptionDiagnosticsArray;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private SessionDiagnosticsVariableState m_sessionDiagnostics;
        private SessionSecurityDiagnosticsState m_sessionSecurityDiagnostics;
        private SubscriptionDiagnosticsArrayState m_subscriptionDiagnosticsArray;
        #endregion
    }
    #endif
    #endregion

    #region VendorServerInfoState Class
    #if (!OPCUA_EXCLUDE_VendorServerInfoState)
    /// <summary>
    /// Stores an instance of the VendorServerInfoType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class VendorServerInfoState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public VendorServerInfoState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.VendorServerInfoType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHAAAAFZlbmRvclNlcnZlckluZm9UeXBlSW5zdGFuY2UBAPEHAQDxB/EH" +
           "AAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region ServerRedundancyState Class
    #if (!OPCUA_EXCLUDE_ServerRedundancyState)
    /// <summary>
    /// Stores an instance of the ServerRedundancyType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ServerRedundancyState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ServerRedundancyState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ServerRedundancyType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHAAAAFNlcnZlclJlZHVuZGFuY3lUeXBlSW5zdGFuY2UBAPIHAQDyB/IH" +
           "AAD/////AQAAABVgiQoCAAAAAAARAAAAUmVkdW5kYW5jeVN1cHBvcnQBAPMHAC4ARPMHAAABAFMD////" +
           "/wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<RedundancySupport> RedundancySupport
        {
            get
            {
                return m_redundancySupport;
            }

            set
            {
                if (!Object.ReferenceEquals(m_redundancySupport, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_redundancySupport = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_redundancySupport != null)
            {
                children.Add(m_redundancySupport);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.RedundancySupport:
                {
                    if (createOrReplace)
                    {
                        if (RedundancySupport == null)
                        {
                            if (replacement == null)
                            {
                                RedundancySupport = new PropertyState<RedundancySupport>(this);
                            }
                            else
                            {
                                RedundancySupport = (PropertyState<RedundancySupport>)replacement;
                            }
                        }
                    }

                    instance = RedundancySupport;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<RedundancySupport> m_redundancySupport;
        #endregion
    }
    #endif
    #endregion

    #region TransparentRedundancyState Class
    #if (!OPCUA_EXCLUDE_TransparentRedundancyState)
    /// <summary>
    /// Stores an instance of the TransparentRedundancyType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TransparentRedundancyState : ServerRedundancyState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TransparentRedundancyState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.TransparentRedundancyType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIQAAAFRyYW5zcGFyZW50UmVkdW5kYW5jeVR5cGVJbnN0YW5jZQEA9AcB" +
           "APQH9AcAAP////8DAAAAFWCJCgIAAAAAABEAAABSZWR1bmRhbmN5U3VwcG9ydAEAdAwALgBEdAwAAAEA" +
           "UwP/////AQH/////AAAAABVgiQoCAAAAAAAPAAAAQ3VycmVudFNlcnZlcklkAQD1BwAuAET1BwAAAAz/" +
           "////AQH/////AAAAABdgiQoCAAAAAAAUAAAAUmVkdW5kYW50U2VydmVyQXJyYXkBAPYHAC4ARPYHAAAB" +
           "AFUDAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> CurrentServerId
        {
            get
            {
                return m_currentServerId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_currentServerId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_currentServerId = value;
            }
        }

        /// <remarks />
        public PropertyState<RedundantServerDataType[]> RedundantServerArray
        {
            get
            {
                return m_redundantServerArray;
            }

            set
            {
                if (!Object.ReferenceEquals(m_redundantServerArray, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_redundantServerArray = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_currentServerId != null)
            {
                children.Add(m_currentServerId);
            }

            if (m_redundantServerArray != null)
            {
                children.Add(m_redundantServerArray);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.CurrentServerId:
                {
                    if (createOrReplace)
                    {
                        if (CurrentServerId == null)
                        {
                            if (replacement == null)
                            {
                                CurrentServerId = new PropertyState<string>(this);
                            }
                            else
                            {
                                CurrentServerId = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = CurrentServerId;
                    break;
                }

                case Opc.Ua.BrowseNames.RedundantServerArray:
                {
                    if (createOrReplace)
                    {
                        if (RedundantServerArray == null)
                        {
                            if (replacement == null)
                            {
                                RedundantServerArray = new PropertyState<RedundantServerDataType[]>(this);
                            }
                            else
                            {
                                RedundantServerArray = (PropertyState<RedundantServerDataType[]>)replacement;
                            }
                        }
                    }

                    instance = RedundantServerArray;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_currentServerId;
        private PropertyState<RedundantServerDataType[]> m_redundantServerArray;
        #endregion
    }
    #endif
    #endregion

    #region NonTransparentRedundancyState Class
    #if (!OPCUA_EXCLUDE_NonTransparentRedundancyState)
    /// <summary>
    /// Stores an instance of the NonTransparentRedundancyType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class NonTransparentRedundancyState : ServerRedundancyState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public NonTransparentRedundancyState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.NonTransparentRedundancyType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJAAAAE5vblRyYW5zcGFyZW50UmVkdW5kYW5jeVR5cGVJbnN0YW5jZQEA" +
           "9wcBAPcH9wcAAP////8CAAAAFWCJCgIAAAAAABEAAABSZWR1bmRhbmN5U3VwcG9ydAEAdQwALgBEdQwA" +
           "AAEAUwP/////AQH/////AAAAABdgiQoCAAAAAAAOAAAAU2VydmVyVXJpQXJyYXkBAPgHAC4ARPgHAAAA" +
           "DAEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string[]> ServerUriArray
        {
            get
            {
                return m_serverUriArray;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serverUriArray, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serverUriArray = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_serverUriArray != null)
            {
                children.Add(m_serverUriArray);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ServerUriArray:
                {
                    if (createOrReplace)
                    {
                        if (ServerUriArray == null)
                        {
                            if (replacement == null)
                            {
                                ServerUriArray = new PropertyState<string[]>(this);
                            }
                            else
                            {
                                ServerUriArray = (PropertyState<string[]>)replacement;
                            }
                        }
                    }

                    instance = ServerUriArray;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string[]> m_serverUriArray;
        #endregion
    }
    #endif
    #endregion

    #region NonTransparentNetworkRedundancyState Class
    #if (!OPCUA_EXCLUDE_NonTransparentNetworkRedundancyState)
    /// <summary>
    /// Stores an instance of the NonTransparentNetworkRedundancyType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class NonTransparentNetworkRedundancyState : NonTransparentRedundancyState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public NonTransparentNetworkRedundancyState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.NonTransparentNetworkRedundancyType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKwAAAE5vblRyYW5zcGFyZW50TmV0d29ya1JlZHVuZGFuY3lUeXBlSW5z" +
           "dGFuY2UBAKkuAQCpLqkuAAD/////AwAAABVgiQoCAAAAAAARAAAAUmVkdW5kYW5jeVN1cHBvcnQBAKou" +
           "AC4ARKouAAABAFMD/////wEB/////wAAAAAXYIkKAgAAAAAADgAAAFNlcnZlclVyaUFycmF5AQCrLgAu" +
           "AESrLgAAAAwBAAAAAQAAAAAAAAABAf////8AAAAAF2CJCgIAAAAAABMAAABTZXJ2ZXJOZXR3b3JrR3Jv" +
           "dXBzAQCsLgAuAESsLgAAAQCoLgEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NetworkGroupDataType[]> ServerNetworkGroups
        {
            get
            {
                return m_serverNetworkGroups;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serverNetworkGroups, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serverNetworkGroups = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_serverNetworkGroups != null)
            {
                children.Add(m_serverNetworkGroups);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ServerNetworkGroups:
                {
                    if (createOrReplace)
                    {
                        if (ServerNetworkGroups == null)
                        {
                            if (replacement == null)
                            {
                                ServerNetworkGroups = new PropertyState<NetworkGroupDataType[]>(this);
                            }
                            else
                            {
                                ServerNetworkGroups = (PropertyState<NetworkGroupDataType[]>)replacement;
                            }
                        }
                    }

                    instance = ServerNetworkGroups;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NetworkGroupDataType[]> m_serverNetworkGroups;
        #endregion
    }
    #endif
    #endregion

    #region OperationLimitsState Class
    #if (!OPCUA_EXCLUDE_OperationLimitsState)
    /// <summary>
    /// Stores an instance of the OperationLimitsType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class OperationLimitsState : FolderState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public OperationLimitsState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.OperationLimitsType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (MaxNodesPerRead != null)
            {
                MaxNodesPerRead.Initialize(context, MaxNodesPerRead_InitializationString);
            }

            if (MaxNodesPerHistoryReadData != null)
            {
                MaxNodesPerHistoryReadData.Initialize(context, MaxNodesPerHistoryReadData_InitializationString);
            }

            if (MaxNodesPerHistoryReadEvents != null)
            {
                MaxNodesPerHistoryReadEvents.Initialize(context, MaxNodesPerHistoryReadEvents_InitializationString);
            }

            if (MaxNodesPerWrite != null)
            {
                MaxNodesPerWrite.Initialize(context, MaxNodesPerWrite_InitializationString);
            }

            if (MaxNodesPerHistoryUpdateData != null)
            {
                MaxNodesPerHistoryUpdateData.Initialize(context, MaxNodesPerHistoryUpdateData_InitializationString);
            }

            if (MaxNodesPerHistoryUpdateEvents != null)
            {
                MaxNodesPerHistoryUpdateEvents.Initialize(context, MaxNodesPerHistoryUpdateEvents_InitializationString);
            }

            if (MaxNodesPerMethodCall != null)
            {
                MaxNodesPerMethodCall.Initialize(context, MaxNodesPerMethodCall_InitializationString);
            }

            if (MaxNodesPerBrowse != null)
            {
                MaxNodesPerBrowse.Initialize(context, MaxNodesPerBrowse_InitializationString);
            }

            if (MaxNodesPerRegisterNodes != null)
            {
                MaxNodesPerRegisterNodes.Initialize(context, MaxNodesPerRegisterNodes_InitializationString);
            }

            if (MaxNodesPerTranslateBrowsePathsToNodeIds != null)
            {
                MaxNodesPerTranslateBrowsePathsToNodeIds.Initialize(context, MaxNodesPerTranslateBrowsePathsToNodeIds_InitializationString);
            }

            if (MaxNodesPerNodeManagement != null)
            {
                MaxNodesPerNodeManagement.Initialize(context, MaxNodesPerNodeManagement_InitializationString);
            }

            if (MaxMonitoredItemsPerCall != null)
            {
                MaxMonitoredItemsPerCall.Initialize(context, MaxMonitoredItemsPerCall_InitializationString);
            }
        }

        #region Initialization String
        private const string MaxNodesPerRead_InitializationString =
           "//////////8VYIkKAgAAAAAADwAAAE1heE5vZGVzUGVyUmVhZAEALS0ALgBELS0AAAAH/////wEB////" +
           "/wAAAAA=";

        private const string MaxNodesPerHistoryReadData_InitializationString =
           "//////////8VYIkKAgAAAAAAGgAAAE1heE5vZGVzUGVySGlzdG9yeVJlYWREYXRhAQCBLwAuAESBLwAA" +
           "AAf/////AQH/////AAAAAA==";

        private const string MaxNodesPerHistoryReadEvents_InitializationString =
           "//////////8VYIkKAgAAAAAAHAAAAE1heE5vZGVzUGVySGlzdG9yeVJlYWRFdmVudHMBAIIvAC4ARIIv" +
           "AAAAB/////8BAf////8AAAAA";

        private const string MaxNodesPerWrite_InitializationString =
           "//////////8VYIkKAgAAAAAAEAAAAE1heE5vZGVzUGVyV3JpdGUBAC8tAC4ARC8tAAAAB/////8BAf//" +
           "//8AAAAA";

        private const string MaxNodesPerHistoryUpdateData_InitializationString =
           "//////////8VYIkKAgAAAAAAHAAAAE1heE5vZGVzUGVySGlzdG9yeVVwZGF0ZURhdGEBAIMvAC4ARIMv" +
           "AAAAB/////8BAf////8AAAAA";

        private const string MaxNodesPerHistoryUpdateEvents_InitializationString =
           "//////////8VYIkKAgAAAAAAHgAAAE1heE5vZGVzUGVySGlzdG9yeVVwZGF0ZUV2ZW50cwEAhC8ALgBE" +
           "hC8AAAAH/////wEB/////wAAAAA=";

        private const string MaxNodesPerMethodCall_InitializationString =
           "//////////8VYIkKAgAAAAAAFQAAAE1heE5vZGVzUGVyTWV0aG9kQ2FsbAEAMS0ALgBEMS0AAAAH////" +
           "/wEB/////wAAAAA=";

        private const string MaxNodesPerBrowse_InitializationString =
           "//////////8VYIkKAgAAAAAAEQAAAE1heE5vZGVzUGVyQnJvd3NlAQAyLQAuAEQyLQAAAAf/////AQH/" +
           "////AAAAAA==";

        private const string MaxNodesPerRegisterNodes_InitializationString =
           "//////////8VYIkKAgAAAAAAGAAAAE1heE5vZGVzUGVyUmVnaXN0ZXJOb2RlcwEAMy0ALgBEMy0AAAAH" +
           "/////wEB/////wAAAAA=";

        private const string MaxNodesPerTranslateBrowsePathsToNodeIds_InitializationString =
           "//////////8VYIkKAgAAAAAAKAAAAE1heE5vZGVzUGVyVHJhbnNsYXRlQnJvd3NlUGF0aHNUb05vZGVJ" +
           "ZHMBADQtAC4ARDQtAAAAB/////8BAf////8AAAAA";

        private const string MaxNodesPerNodeManagement_InitializationString =
           "//////////8VYIkKAgAAAAAAGQAAAE1heE5vZGVzUGVyTm9kZU1hbmFnZW1lbnQBADUtAC4ARDUtAAAA" +
           "B/////8BAf////8AAAAA";

        private const string MaxMonitoredItemsPerCall_InitializationString =
           "//////////8VYIkKAgAAAAAAGAAAAE1heE1vbml0b3JlZEl0ZW1zUGVyQ2FsbAEANi0ALgBENi0AAAAH" +
           "/////wEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGwAAAE9wZXJhdGlvbkxpbWl0c1R5cGVJbnN0YW5jZQEALC0BACwtLC0A" +
           "AP////8MAAAAFWCJCgIAAAAAAA8AAABNYXhOb2Rlc1BlclJlYWQBAC0tAC4ARC0tAAAAB/////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABoAAABNYXhOb2Rlc1Blckhpc3RvcnlSZWFkRGF0YQEAgS8ALgBEgS8AAAAH" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAAHAAAAE1heE5vZGVzUGVySGlzdG9yeVJlYWRFdmVudHMBAIIv" +
           "AC4ARIIvAAAAB/////8BAf////8AAAAAFWCJCgIAAAAAABAAAABNYXhOb2Rlc1BlcldyaXRlAQAvLQAu" +
           "AEQvLQAAAAf/////AQH/////AAAAABVgiQoCAAAAAAAcAAAATWF4Tm9kZXNQZXJIaXN0b3J5VXBkYXRl" +
           "RGF0YQEAgy8ALgBEgy8AAAAH/////wEB/////wAAAAAVYIkKAgAAAAAAHgAAAE1heE5vZGVzUGVySGlz" +
           "dG9yeVVwZGF0ZUV2ZW50cwEAhC8ALgBEhC8AAAAH/////wEB/////wAAAAAVYIkKAgAAAAAAFQAAAE1h" +
           "eE5vZGVzUGVyTWV0aG9kQ2FsbAEAMS0ALgBEMS0AAAAH/////wEB/////wAAAAAVYIkKAgAAAAAAEQAA" +
           "AE1heE5vZGVzUGVyQnJvd3NlAQAyLQAuAEQyLQAAAAf/////AQH/////AAAAABVgiQoCAAAAAAAYAAAA" +
           "TWF4Tm9kZXNQZXJSZWdpc3Rlck5vZGVzAQAzLQAuAEQzLQAAAAf/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAoAAAATWF4Tm9kZXNQZXJUcmFuc2xhdGVCcm93c2VQYXRoc1RvTm9kZUlkcwEANC0ALgBENC0AAAAH" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAAGQAAAE1heE5vZGVzUGVyTm9kZU1hbmFnZW1lbnQBADUtAC4A" +
           "RDUtAAAAB/////8BAf////8AAAAAFWCJCgIAAAAAABgAAABNYXhNb25pdG9yZWRJdGVtc1BlckNhbGwB" +
           "ADYtAC4ARDYtAAAAB/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<uint> MaxNodesPerRead
        {
            get
            {
                return m_maxNodesPerRead;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxNodesPerRead, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxNodesPerRead = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxNodesPerHistoryReadData
        {
            get
            {
                return m_maxNodesPerHistoryReadData;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxNodesPerHistoryReadData, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxNodesPerHistoryReadData = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxNodesPerHistoryReadEvents
        {
            get
            {
                return m_maxNodesPerHistoryReadEvents;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxNodesPerHistoryReadEvents, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxNodesPerHistoryReadEvents = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxNodesPerWrite
        {
            get
            {
                return m_maxNodesPerWrite;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxNodesPerWrite, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxNodesPerWrite = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxNodesPerHistoryUpdateData
        {
            get
            {
                return m_maxNodesPerHistoryUpdateData;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxNodesPerHistoryUpdateData, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxNodesPerHistoryUpdateData = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxNodesPerHistoryUpdateEvents
        {
            get
            {
                return m_maxNodesPerHistoryUpdateEvents;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxNodesPerHistoryUpdateEvents, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxNodesPerHistoryUpdateEvents = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxNodesPerMethodCall
        {
            get
            {
                return m_maxNodesPerMethodCall;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxNodesPerMethodCall, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxNodesPerMethodCall = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxNodesPerBrowse
        {
            get
            {
                return m_maxNodesPerBrowse;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxNodesPerBrowse, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxNodesPerBrowse = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxNodesPerRegisterNodes
        {
            get
            {
                return m_maxNodesPerRegisterNodes;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxNodesPerRegisterNodes, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxNodesPerRegisterNodes = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxNodesPerTranslateBrowsePathsToNodeIds
        {
            get
            {
                return m_maxNodesPerTranslateBrowsePathsToNodeIds;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxNodesPerTranslateBrowsePathsToNodeIds, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxNodesPerTranslateBrowsePathsToNodeIds = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxNodesPerNodeManagement
        {
            get
            {
                return m_maxNodesPerNodeManagement;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxNodesPerNodeManagement, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxNodesPerNodeManagement = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxMonitoredItemsPerCall
        {
            get
            {
                return m_maxMonitoredItemsPerCall;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxMonitoredItemsPerCall, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxMonitoredItemsPerCall = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_maxNodesPerRead != null)
            {
                children.Add(m_maxNodesPerRead);
            }

            if (m_maxNodesPerHistoryReadData != null)
            {
                children.Add(m_maxNodesPerHistoryReadData);
            }

            if (m_maxNodesPerHistoryReadEvents != null)
            {
                children.Add(m_maxNodesPerHistoryReadEvents);
            }

            if (m_maxNodesPerWrite != null)
            {
                children.Add(m_maxNodesPerWrite);
            }

            if (m_maxNodesPerHistoryUpdateData != null)
            {
                children.Add(m_maxNodesPerHistoryUpdateData);
            }

            if (m_maxNodesPerHistoryUpdateEvents != null)
            {
                children.Add(m_maxNodesPerHistoryUpdateEvents);
            }

            if (m_maxNodesPerMethodCall != null)
            {
                children.Add(m_maxNodesPerMethodCall);
            }

            if (m_maxNodesPerBrowse != null)
            {
                children.Add(m_maxNodesPerBrowse);
            }

            if (m_maxNodesPerRegisterNodes != null)
            {
                children.Add(m_maxNodesPerRegisterNodes);
            }

            if (m_maxNodesPerTranslateBrowsePathsToNodeIds != null)
            {
                children.Add(m_maxNodesPerTranslateBrowsePathsToNodeIds);
            }

            if (m_maxNodesPerNodeManagement != null)
            {
                children.Add(m_maxNodesPerNodeManagement);
            }

            if (m_maxMonitoredItemsPerCall != null)
            {
                children.Add(m_maxMonitoredItemsPerCall);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.MaxNodesPerRead:
                {
                    if (createOrReplace)
                    {
                        if (MaxNodesPerRead == null)
                        {
                            if (replacement == null)
                            {
                                MaxNodesPerRead = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxNodesPerRead = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxNodesPerRead;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxNodesPerHistoryReadData:
                {
                    if (createOrReplace)
                    {
                        if (MaxNodesPerHistoryReadData == null)
                        {
                            if (replacement == null)
                            {
                                MaxNodesPerHistoryReadData = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxNodesPerHistoryReadData = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxNodesPerHistoryReadData;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxNodesPerHistoryReadEvents:
                {
                    if (createOrReplace)
                    {
                        if (MaxNodesPerHistoryReadEvents == null)
                        {
                            if (replacement == null)
                            {
                                MaxNodesPerHistoryReadEvents = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxNodesPerHistoryReadEvents = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxNodesPerHistoryReadEvents;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxNodesPerWrite:
                {
                    if (createOrReplace)
                    {
                        if (MaxNodesPerWrite == null)
                        {
                            if (replacement == null)
                            {
                                MaxNodesPerWrite = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxNodesPerWrite = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxNodesPerWrite;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxNodesPerHistoryUpdateData:
                {
                    if (createOrReplace)
                    {
                        if (MaxNodesPerHistoryUpdateData == null)
                        {
                            if (replacement == null)
                            {
                                MaxNodesPerHistoryUpdateData = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxNodesPerHistoryUpdateData = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxNodesPerHistoryUpdateData;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxNodesPerHistoryUpdateEvents:
                {
                    if (createOrReplace)
                    {
                        if (MaxNodesPerHistoryUpdateEvents == null)
                        {
                            if (replacement == null)
                            {
                                MaxNodesPerHistoryUpdateEvents = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxNodesPerHistoryUpdateEvents = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxNodesPerHistoryUpdateEvents;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxNodesPerMethodCall:
                {
                    if (createOrReplace)
                    {
                        if (MaxNodesPerMethodCall == null)
                        {
                            if (replacement == null)
                            {
                                MaxNodesPerMethodCall = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxNodesPerMethodCall = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxNodesPerMethodCall;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxNodesPerBrowse:
                {
                    if (createOrReplace)
                    {
                        if (MaxNodesPerBrowse == null)
                        {
                            if (replacement == null)
                            {
                                MaxNodesPerBrowse = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxNodesPerBrowse = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxNodesPerBrowse;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxNodesPerRegisterNodes:
                {
                    if (createOrReplace)
                    {
                        if (MaxNodesPerRegisterNodes == null)
                        {
                            if (replacement == null)
                            {
                                MaxNodesPerRegisterNodes = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxNodesPerRegisterNodes = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxNodesPerRegisterNodes;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxNodesPerTranslateBrowsePathsToNodeIds:
                {
                    if (createOrReplace)
                    {
                        if (MaxNodesPerTranslateBrowsePathsToNodeIds == null)
                        {
                            if (replacement == null)
                            {
                                MaxNodesPerTranslateBrowsePathsToNodeIds = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxNodesPerTranslateBrowsePathsToNodeIds = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxNodesPerTranslateBrowsePathsToNodeIds;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxNodesPerNodeManagement:
                {
                    if (createOrReplace)
                    {
                        if (MaxNodesPerNodeManagement == null)
                        {
                            if (replacement == null)
                            {
                                MaxNodesPerNodeManagement = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxNodesPerNodeManagement = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxNodesPerNodeManagement;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxMonitoredItemsPerCall:
                {
                    if (createOrReplace)
                    {
                        if (MaxMonitoredItemsPerCall == null)
                        {
                            if (replacement == null)
                            {
                                MaxMonitoredItemsPerCall = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxMonitoredItemsPerCall = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxMonitoredItemsPerCall;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<uint> m_maxNodesPerRead;
        private PropertyState<uint> m_maxNodesPerHistoryReadData;
        private PropertyState<uint> m_maxNodesPerHistoryReadEvents;
        private PropertyState<uint> m_maxNodesPerWrite;
        private PropertyState<uint> m_maxNodesPerHistoryUpdateData;
        private PropertyState<uint> m_maxNodesPerHistoryUpdateEvents;
        private PropertyState<uint> m_maxNodesPerMethodCall;
        private PropertyState<uint> m_maxNodesPerBrowse;
        private PropertyState<uint> m_maxNodesPerRegisterNodes;
        private PropertyState<uint> m_maxNodesPerTranslateBrowsePathsToNodeIds;
        private PropertyState<uint> m_maxNodesPerNodeManagement;
        private PropertyState<uint> m_maxMonitoredItemsPerCall;
        #endregion
    }
    #endif
    #endregion

    #region FileState Class
    #if (!OPCUA_EXCLUDE_FileState)
    /// <summary>
    /// Stores an instance of the FileType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class FileState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public FileState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.FileType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (MimeType != null)
            {
                MimeType.Initialize(context, MimeType_InitializationString);
            }

            if (MaxByteStringLength != null)
            {
                MaxByteStringLength.Initialize(context, MaxByteStringLength_InitializationString);
            }
        }

        #region Initialization String
        private const string MimeType_InitializationString =
           "//////////8VYIkKAgAAAAAACAAAAE1pbWVUeXBlAQAdNAAuAEQdNAAAAAz/////AQH/////AAAAAA==";

        private const string MaxByteStringLength_InitializationString =
           "//////////8VYIkKAgAAAAAAEwAAAE1heEJ5dGVTdHJpbmdMZW5ndGgBALReAC4ARLReAAAAB/////8B" +
           "Af////8AAAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAEAAAAEZpbGVUeXBlSW5zdGFuY2UBADctAQA3LTctAAD/////DAAAABVg" +
           "iQoCAAAAAAAEAAAAU2l6ZQEAOC0ALgBEOC0AAAAJ/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFdy" +
           "aXRhYmxlAQCOMQAuAESOMQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAVXNlcldyaXRhYmxl" +
           "AQCPMQAuAESPMQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAJAAAAT3BlbkNvdW50AQA7LQAuAEQ7" +
           "LQAAAAX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAATWltZVR5cGUBAB00AC4ARB00AAAADP////8B" +
           "Af////8AAAAAFWCJCgIAAAAAABMAAABNYXhCeXRlU3RyaW5nTGVuZ3RoAQC0XgAuAES0XgAAAAf/////" +
           "AQH/////AAAAAARhggoEAAAAAAAEAAAAT3BlbgEAPC0ALwEAPC08LQAAAQH/////AgAAABdgqQoCAAAA" +
           "AAAOAAAASW5wdXRBcmd1bWVudHMBAD0tAC4ARD0tAACWAQAAAAEAKgEBEwAAAAQAAABNb2RlAAP/////" +
           "AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRz" +
           "AQA+LQAuAEQ+LQAAlgEAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAoAQEAAAAB" +
           "AAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAABQAAAENsb3NlAQA/LQAvAQA/LT8tAAABAf////8BAAAA" +
           "F2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAQC0ALgBEQC0AAJYBAAAAAQAqAQEZAAAACgAAAEZp" +
           "bGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAQAAABS" +
           "ZWFkAQBBLQAvAQBBLUEtAAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAQi0A" +
           "LgBEQi0AAJYCAAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKgEBFQAAAAYAAABM" +
           "ZW5ndGgABv////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRw" +
           "dXRBcmd1bWVudHMBAEMtAC4AREMtAACWAQAAAAEAKgEBEwAAAAQAAABEYXRhAA//////AAAAAAABACgB" +
           "AQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAAFAAAAV3JpdGUBAEQtAC8BAEQtRC0AAAEB////" +
           "/wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBFLQAuAERFLQAAlgIAAAABACoBARkAAAAK" +
           "AAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAqAQETAAAABAAAAERhdGEAD/////8AAAAAAAEAKAEBAAAA" +
           "AQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAsAAABHZXRQb3NpdGlvbgEARi0ALwEARi1GLQAAAQH/" +
           "////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAEctAC4AREctAACWAQAAAAEAKgEBGQAA" +
           "AAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAA" +
           "AAAPAAAAT3V0cHV0QXJndW1lbnRzAQBILQAuAERILQAAlgEAAAABACoBARcAAAAIAAAAUG9zaXRpb24A" +
           "Cf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAsAAABTZXRQb3NpdGlv" +
           "bgEASS0ALwEASS1JLQAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAEotAC4A" +
           "REotAACWAgAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACoBARcAAAAIAAAAUG9z" +
           "aXRpb24ACf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<ulong> Size
        {
            get
            {
                return m_size;
            }

            set
            {
                if (!Object.ReferenceEquals(m_size, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_size = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> Writable
        {
            get
            {
                return m_writable;
            }

            set
            {
                if (!Object.ReferenceEquals(m_writable, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_writable = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> UserWritable
        {
            get
            {
                return m_userWritable;
            }

            set
            {
                if (!Object.ReferenceEquals(m_userWritable, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_userWritable = value;
            }
        }

        /// <remarks />
        public PropertyState<ushort> OpenCount
        {
            get
            {
                return m_openCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_openCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_openCount = value;
            }
        }

        /// <remarks />
        public PropertyState<string> MimeType
        {
            get
            {
                return m_mimeType;
            }

            set
            {
                if (!Object.ReferenceEquals(m_mimeType, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_mimeType = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxByteStringLength
        {
            get
            {
                return m_maxByteStringLength;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxByteStringLength, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxByteStringLength = value;
            }
        }

        /// <remarks />
        public OpenMethodState Open
        {
            get
            {
                return m_openMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_openMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_openMethod = value;
            }
        }

        /// <remarks />
        public CloseMethodState Close
        {
            get
            {
                return m_closeMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_closeMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_closeMethod = value;
            }
        }

        /// <remarks />
        public ReadMethodState Read
        {
            get
            {
                return m_readMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_readMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_readMethod = value;
            }
        }

        /// <remarks />
        public WriteMethodState Write
        {
            get
            {
                return m_writeMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_writeMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_writeMethod = value;
            }
        }

        /// <remarks />
        public GetPositionMethodState GetPosition
        {
            get
            {
                return m_getPositionMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_getPositionMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_getPositionMethod = value;
            }
        }

        /// <remarks />
        public SetPositionMethodState SetPosition
        {
            get
            {
                return m_setPositionMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_setPositionMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_setPositionMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_size != null)
            {
                children.Add(m_size);
            }

            if (m_writable != null)
            {
                children.Add(m_writable);
            }

            if (m_userWritable != null)
            {
                children.Add(m_userWritable);
            }

            if (m_openCount != null)
            {
                children.Add(m_openCount);
            }

            if (m_mimeType != null)
            {
                children.Add(m_mimeType);
            }

            if (m_maxByteStringLength != null)
            {
                children.Add(m_maxByteStringLength);
            }

            if (m_openMethod != null)
            {
                children.Add(m_openMethod);
            }

            if (m_closeMethod != null)
            {
                children.Add(m_closeMethod);
            }

            if (m_readMethod != null)
            {
                children.Add(m_readMethod);
            }

            if (m_writeMethod != null)
            {
                children.Add(m_writeMethod);
            }

            if (m_getPositionMethod != null)
            {
                children.Add(m_getPositionMethod);
            }

            if (m_setPositionMethod != null)
            {
                children.Add(m_setPositionMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Size:
                {
                    if (createOrReplace)
                    {
                        if (Size == null)
                        {
                            if (replacement == null)
                            {
                                Size = new PropertyState<ulong>(this);
                            }
                            else
                            {
                                Size = (PropertyState<ulong>)replacement;
                            }
                        }
                    }

                    instance = Size;
                    break;
                }

                case Opc.Ua.BrowseNames.Writable:
                {
                    if (createOrReplace)
                    {
                        if (Writable == null)
                        {
                            if (replacement == null)
                            {
                                Writable = new PropertyState<bool>(this);
                            }
                            else
                            {
                                Writable = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = Writable;
                    break;
                }

                case Opc.Ua.BrowseNames.UserWritable:
                {
                    if (createOrReplace)
                    {
                        if (UserWritable == null)
                        {
                            if (replacement == null)
                            {
                                UserWritable = new PropertyState<bool>(this);
                            }
                            else
                            {
                                UserWritable = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = UserWritable;
                    break;
                }

                case Opc.Ua.BrowseNames.OpenCount:
                {
                    if (createOrReplace)
                    {
                        if (OpenCount == null)
                        {
                            if (replacement == null)
                            {
                                OpenCount = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                OpenCount = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = OpenCount;
                    break;
                }

                case Opc.Ua.BrowseNames.MimeType:
                {
                    if (createOrReplace)
                    {
                        if (MimeType == null)
                        {
                            if (replacement == null)
                            {
                                MimeType = new PropertyState<string>(this);
                            }
                            else
                            {
                                MimeType = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = MimeType;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxByteStringLength:
                {
                    if (createOrReplace)
                    {
                        if (MaxByteStringLength == null)
                        {
                            if (replacement == null)
                            {
                                MaxByteStringLength = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxByteStringLength = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxByteStringLength;
                    break;
                }

                case Opc.Ua.BrowseNames.Open:
                {
                    if (createOrReplace)
                    {
                        if (Open == null)
                        {
                            if (replacement == null)
                            {
                                Open = new OpenMethodState(this);
                            }
                            else
                            {
                                Open = (OpenMethodState)replacement;
                            }
                        }
                    }

                    instance = Open;
                    break;
                }

                case Opc.Ua.BrowseNames.Close:
                {
                    if (createOrReplace)
                    {
                        if (Close == null)
                        {
                            if (replacement == null)
                            {
                                Close = new CloseMethodState(this);
                            }
                            else
                            {
                                Close = (CloseMethodState)replacement;
                            }
                        }
                    }

                    instance = Close;
                    break;
                }

                case Opc.Ua.BrowseNames.Read:
                {
                    if (createOrReplace)
                    {
                        if (Read == null)
                        {
                            if (replacement == null)
                            {
                                Read = new ReadMethodState(this);
                            }
                            else
                            {
                                Read = (ReadMethodState)replacement;
                            }
                        }
                    }

                    instance = Read;
                    break;
                }

                case Opc.Ua.BrowseNames.Write:
                {
                    if (createOrReplace)
                    {
                        if (Write == null)
                        {
                            if (replacement == null)
                            {
                                Write = new WriteMethodState(this);
                            }
                            else
                            {
                                Write = (WriteMethodState)replacement;
                            }
                        }
                    }

                    instance = Write;
                    break;
                }

                case Opc.Ua.BrowseNames.GetPosition:
                {
                    if (createOrReplace)
                    {
                        if (GetPosition == null)
                        {
                            if (replacement == null)
                            {
                                GetPosition = new GetPositionMethodState(this);
                            }
                            else
                            {
                                GetPosition = (GetPositionMethodState)replacement;
                            }
                        }
                    }

                    instance = GetPosition;
                    break;
                }

                case Opc.Ua.BrowseNames.SetPosition:
                {
                    if (createOrReplace)
                    {
                        if (SetPosition == null)
                        {
                            if (replacement == null)
                            {
                                SetPosition = new SetPositionMethodState(this);
                            }
                            else
                            {
                                SetPosition = (SetPositionMethodState)replacement;
                            }
                        }
                    }

                    instance = SetPosition;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<ulong> m_size;
        private PropertyState<bool> m_writable;
        private PropertyState<bool> m_userWritable;
        private PropertyState<ushort> m_openCount;
        private PropertyState<string> m_mimeType;
        private PropertyState<uint> m_maxByteStringLength;
        private OpenMethodState m_openMethod;
        private CloseMethodState m_closeMethod;
        private ReadMethodState m_readMethod;
        private WriteMethodState m_writeMethod;
        private GetPositionMethodState m_getPositionMethod;
        private SetPositionMethodState m_setPositionMethod;
        #endregion
    }
    #endif
    #endregion

    #region AddressSpaceFileState Class
    #if (!OPCUA_EXCLUDE_AddressSpaceFileState)
    /// <summary>
    /// Stores an instance of the AddressSpaceFileType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AddressSpaceFileState : FileState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AddressSpaceFileState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AddressSpaceFileType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (ExportNamespace != null)
            {
                ExportNamespace.Initialize(context, ExportNamespace_InitializationString);
            }
        }

        #region Initialization String
        private const string ExportNamespace_InitializationString =
           "//////////8EYYIKBAAAAAAADwAAAEV4cG9ydE5hbWVzcGFjZQEAXy0ALwEAXy1fLQAAAQH/////AAAA" +
           "AA==";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHAAAAEFkZHJlc3NTcGFjZUZpbGVUeXBlSW5zdGFuY2UBAEstAQBLLUst" +
           "AAD/////CwAAABVgiQoCAAAAAAAEAAAAU2l6ZQEATC0ALgBETC0AAAAJ/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACAAAAFdyaXRhYmxlAQCQMQAuAESQMQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAA" +
           "VXNlcldyaXRhYmxlAQCRMQAuAESRMQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAJAAAAT3BlbkNv" +
           "dW50AQBPLQAuAERPLQAAAAX/////AQH/////AAAAAARhggoEAAAAAAAEAAAAT3BlbgEAUC0ALwEAPC1Q" +
           "LQAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAFEtAC4ARFEtAACWAQAAAAEA" +
           "KgEBEwAAAAQAAABNb2RlAAP/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAA" +
           "AAAPAAAAT3V0cHV0QXJndW1lbnRzAQBSLQAuAERSLQAAlgEAAAABACoBARkAAAAKAAAARmlsZUhhbmRs" +
           "ZQAH/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAABQAAAENsb3NlAQBT" +
           "LQAvAQA/LVMtAAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAVC0ALgBEVC0A" +
           "AJYBAAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf//" +
           "//8AAAAABGGCCgQAAAAAAAQAAABSZWFkAQBVLQAvAQBBLVUtAAABAf////8CAAAAF2CpCgIAAAAAAA4A" +
           "AABJbnB1dEFyZ3VtZW50cwEAVi0ALgBEVi0AAJYCAAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB///" +
           "//8AAAAAAAEAKgEBFQAAAAYAAABMZW5ndGgABv////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8A" +
           "AAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAFctAC4ARFctAACWAQAAAAEAKgEBEwAAAAQA" +
           "AABEYXRhAA//////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAAFAAAAV3Jp" +
           "dGUBAFgtAC8BAEQtWC0AAAEB/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBZLQAu" +
           "AERZLQAAlgIAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAqAQETAAAABAAAAERh" +
           "dGEAD/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAsAAABHZXRQb3Np" +
           "dGlvbgEAWi0ALwEARi1aLQAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAFst" +
           "AC4ARFstAACWAQAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACgBAQAAAAEAAAAA" +
           "AAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQBcLQAuAERcLQAAlgEAAAAB" +
           "ACoBARcAAAAIAAAAUG9zaXRpb24ACf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGC" +
           "CgQAAAAAAAsAAABTZXRQb3NpdGlvbgEAXS0ALwEASS1dLQAAAQH/////AQAAABdgqQoCAAAAAAAOAAAA" +
           "SW5wdXRBcmd1bWVudHMBAF4tAC4ARF4tAACWAgAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////" +
           "AAAAAAABACoBARcAAAAIAAAAUG9zaXRpb24ACf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8A" +
           "AAAABGGCCgQAAAAAAA8AAABFeHBvcnROYW1lc3BhY2UBAF8tAC8BAF8tXy0AAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public MethodState ExportNamespace
        {
            get
            {
                return m_exportNamespaceMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_exportNamespaceMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_exportNamespaceMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_exportNamespaceMethod != null)
            {
                children.Add(m_exportNamespaceMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ExportNamespace:
                {
                    if (createOrReplace)
                    {
                        if (ExportNamespace == null)
                        {
                            if (replacement == null)
                            {
                                ExportNamespace = new MethodState(this);
                            }
                            else
                            {
                                ExportNamespace = (MethodState)replacement;
                            }
                        }
                    }

                    instance = ExportNamespace;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private MethodState m_exportNamespaceMethod;
        #endregion
    }
    #endif
    #endregion

    #region NamespaceMetadataState Class
    #if (!OPCUA_EXCLUDE_NamespaceMetadataState)
    /// <summary>
    /// Stores an instance of the NamespaceMetadataType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class NamespaceMetadataState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public NamespaceMetadataState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.NamespaceMetadataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (NamespaceFile != null)
            {
                NamespaceFile.Initialize(context, NamespaceFile_InitializationString);
            }

            if (DefaultRolePermissions != null)
            {
                DefaultRolePermissions.Initialize(context, DefaultRolePermissions_InitializationString);
            }

            if (DefaultUserRolePermissions != null)
            {
                DefaultUserRolePermissions.Initialize(context, DefaultUserRolePermissions_InitializationString);
            }

            if (DefaultAccessRestrictions != null)
            {
                DefaultAccessRestrictions.Initialize(context, DefaultAccessRestrictions_InitializationString);
            }
        }

        #region Initialization String
        private const string NamespaceFile_InitializationString =
           "//////////8EYIAKAQAAAAAADQAAAE5hbWVzcGFjZUZpbGUBAGgtAC8BAEstaC0AAP////8KAAAAFWCJ" +
           "CgIAAAAAAAQAAABTaXplAQBpLQAuAERpLQAAAAn/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAV3Jp" +
           "dGFibGUBAJIxAC4ARJIxAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABVc2VyV3JpdGFibGUB" +
           "AJMxAC4ARJMxAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABPcGVuQ291bnQBAGwtAC4ARGwt" +
           "AAAABf////8BAf////8AAAAABGGCCgQAAAAAAAQAAABPcGVuAQBtLQAvAQA8LW0tAAABAf////8CAAAA" +
           "F2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAbi0ALgBEbi0AAJYBAAAAAQAqAQETAAAABAAAAE1v" +
           "ZGUAA/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRB" +
           "cmd1bWVudHMBAG8tAC4ARG8tAACWAQAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAAB" +
           "ACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAAFAAAAQ2xvc2UBAHAtAC8BAD8tcC0AAAEB" +
           "/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBxLQAuAERxLQAAlgEAAAABACoBARkA" +
           "AAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAA" +
           "AAAABAAAAFJlYWQBAHItAC8BAEEtci0AAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1l" +
           "bnRzAQBzLQAuAERzLQAAlgIAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAqAQEV" +
           "AAAABgAAAExlbmd0aAAG/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAA" +
           "DwAAAE91dHB1dEFyZ3VtZW50cwEAdC0ALgBEdC0AAJYBAAAAAQAqAQETAAAABAAAAERhdGEAD/////8A" +
           "AAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAUAAABXcml0ZQEAdS0ALwEARC11" +
           "LQAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAHYtAC4ARHYtAACWAgAAAAEA" +
           "KgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACoBARMAAAAEAAAARGF0YQAP/////wAAAAAA" +
           "AQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAACwAAAEdldFBvc2l0aW9uAQB3LQAvAQBG" +
           "LXctAAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAeC0ALgBEeC0AAJYBAAAA" +
           "AQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA" +
           "F2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAHktAC4ARHktAACWAQAAAAEAKgEBFwAAAAgAAABQ" +
           "b3NpdGlvbgAJ/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAACwAAAFNl" +
           "dFBvc2l0aW9uAQB6LQAvAQBJLXotAAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50" +
           "cwEAey0ALgBEey0AAJYCAAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKgEBFwAA" +
           "AAgAAABQb3NpdGlvbgAJ/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string DefaultRolePermissions_InitializationString =
           "//////////8XYIkKAgAAAAAAFgAAAERlZmF1bHRSb2xlUGVybWlzc2lvbnMBAAk/AC4ARAk/AAAAYAEA" +
           "AAABAAAAAAAAAAEB/////wAAAAA=";

        private const string DefaultUserRolePermissions_InitializationString =
           "//////////8XYIkKAgAAAAAAGgAAAERlZmF1bHRVc2VyUm9sZVBlcm1pc3Npb25zAQAKPwAuAEQKPwAA" +
           "AGABAAAAAQAAAAAAAAABAf////8AAAAA";

        private const string DefaultAccessRestrictions_InitializationString =
           "//////////8VYIkKAgAAAAAAGQAAAERlZmF1bHRBY2Nlc3NSZXN0cmljdGlvbnMBAAs/AC4ARAs/AAAA" +
           "X/////8BAf////8AAAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHQAAAE5hbWVzcGFjZU1ldGFkYXRhVHlwZUluc3RhbmNlAQBgLQEAYC1g" +
           "LQAA/////wsAAAAVYIkKAgAAAAAADAAAAE5hbWVzcGFjZVVyaQEAYS0ALgBEYS0AAAAM/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAAEAAAAE5hbWVzcGFjZVZlcnNpb24BAGItAC4ARGItAAAADP////8BAf////8A" +
           "AAAAFWCJCgIAAAAAABgAAABOYW1lc3BhY2VQdWJsaWNhdGlvbkRhdGUBAGMtAC4ARGMtAAAADf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAABEAAABJc05hbWVzcGFjZVN1YnNldAEAZC0ALgBEZC0AAAAB/////wEB" +
           "/////wAAAAAXYIkKAgAAAAAAEQAAAFN0YXRpY05vZGVJZFR5cGVzAQBlLQAuAERlLQAAAQAAAQEAAAAB" +
           "AAAAAAAAAAEB/////wAAAAAXYIkKAgAAAAAAGAAAAFN0YXRpY051bWVyaWNOb2RlSWRSYW5nZQEAZi0A" +
           "LgBEZi0AAAEAIwEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAABkAAABTdGF0aWNTdHJpbmdO" +
           "b2RlSWRQYXR0ZXJuAQBnLQAuAERnLQAAAAz/////AQH/////AAAAAARggAoBAAAAAAANAAAATmFtZXNw" +
           "YWNlRmlsZQEAaC0ALwEASy1oLQAA/////woAAAAVYIkKAgAAAAAABAAAAFNpemUBAGktAC4ARGktAAAA" +
           "Cf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABXcml0YWJsZQEAkjEALgBEkjEAAAAB/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAADAAAAFVzZXJXcml0YWJsZQEAkzEALgBEkzEAAAAB/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACQAAAE9wZW5Db3VudAEAbC0ALgBEbC0AAAAF/////wEB/////wAAAAAEYYIKBAAAAAAA" +
           "BAAAAE9wZW4BAG0tAC8BADwtbS0AAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRz" +
           "AQBuLQAuAERuLQAAlgEAAAABACoBARMAAAAEAAAATW9kZQAD/////wAAAAAAAQAoAQEAAAABAAAAAAAA" +
           "AAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEAby0ALgBEby0AAJYBAAAAAQAq" +
           "AQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGC" +
           "CgQAAAAAAAUAAABDbG9zZQEAcC0ALwEAPy1wLQAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRB" +
           "cmd1bWVudHMBAHEtAC4ARHEtAACWAQAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAAB" +
           "ACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAAEAAAAUmVhZAEAci0ALwEAQS1yLQAAAQH/" +
           "////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAHMtAC4ARHMtAACWAgAAAAEAKgEBGQAA" +
           "AAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACoBARUAAAAGAAAATGVuZ3RoAAb/////AAAAAAABACgB" +
           "AQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQB0LQAuAER0" +
           "LQAAlgEAAAABACoBARMAAAAEAAAARGF0YQAP/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAA" +
           "AAAEYYIKBAAAAAAABQAAAFdyaXRlAQB1LQAvAQBELXUtAAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJ" +
           "bnB1dEFyZ3VtZW50cwEAdi0ALgBEdi0AAJYCAAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8A" +
           "AAAAAAEAKgEBEwAAAAQAAABEYXRhAA//////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARh" +
           "ggoEAAAAAAALAAAAR2V0UG9zaXRpb24BAHctAC8BAEYtdy0AAAEB/////wIAAAAXYKkKAgAAAAAADgAA" +
           "AElucHV0QXJndW1lbnRzAQB4LQAuAER4LQAAlgEAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH////" +
           "/wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50" +
           "cwEAeS0ALgBEeS0AAJYBAAAAAQAqAQEXAAAACAAAAFBvc2l0aW9uAAn/////AAAAAAABACgBAQAAAAEA" +
           "AAAAAAAAAQH/////AAAAAARhggoEAAAAAAALAAAAU2V0UG9zaXRpb24BAHotAC8BAEktei0AAAEB////" +
           "/wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQB7LQAuAER7LQAAlgIAAAABACoBARkAAAAK" +
           "AAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAqAQEXAAAACAAAAFBvc2l0aW9uAAn/////AAAAAAABACgB" +
           "AQAAAAEAAAAAAAAAAQH/////AAAAABdgiQoCAAAAAAAWAAAARGVmYXVsdFJvbGVQZXJtaXNzaW9ucwEA" +
           "CT8ALgBECT8AAABgAQAAAAEAAAAAAAAAAQH/////AAAAABdgiQoCAAAAAAAaAAAARGVmYXVsdFVzZXJS" +
           "b2xlUGVybWlzc2lvbnMBAAo/AC4ARAo/AAAAYAEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAA" +
           "GQAAAERlZmF1bHRBY2Nlc3NSZXN0cmljdGlvbnMBAAs/AC4ARAs/AAAAX/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> NamespaceUri
        {
            get
            {
                return m_namespaceUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_namespaceUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_namespaceUri = value;
            }
        }

        /// <remarks />
        public PropertyState<string> NamespaceVersion
        {
            get
            {
                return m_namespaceVersion;
            }

            set
            {
                if (!Object.ReferenceEquals(m_namespaceVersion, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_namespaceVersion = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> NamespacePublicationDate
        {
            get
            {
                return m_namespacePublicationDate;
            }

            set
            {
                if (!Object.ReferenceEquals(m_namespacePublicationDate, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_namespacePublicationDate = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> IsNamespaceSubset
        {
            get
            {
                return m_isNamespaceSubset;
            }

            set
            {
                if (!Object.ReferenceEquals(m_isNamespaceSubset, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_isNamespaceSubset = value;
            }
        }

        /// <remarks />
        public PropertyState<IdType[]> StaticNodeIdTypes
        {
            get
            {
                return m_staticNodeIdTypes;
            }

            set
            {
                if (!Object.ReferenceEquals(m_staticNodeIdTypes, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_staticNodeIdTypes = value;
            }
        }

        /// <remarks />
        public PropertyState<string[]> StaticNumericNodeIdRange
        {
            get
            {
                return m_staticNumericNodeIdRange;
            }

            set
            {
                if (!Object.ReferenceEquals(m_staticNumericNodeIdRange, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_staticNumericNodeIdRange = value;
            }
        }

        /// <remarks />
        public PropertyState<string> StaticStringNodeIdPattern
        {
            get
            {
                return m_staticStringNodeIdPattern;
            }

            set
            {
                if (!Object.ReferenceEquals(m_staticStringNodeIdPattern, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_staticStringNodeIdPattern = value;
            }
        }

        /// <remarks />
        public AddressSpaceFileState NamespaceFile
        {
            get
            {
                return m_namespaceFile;
            }

            set
            {
                if (!Object.ReferenceEquals(m_namespaceFile, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_namespaceFile = value;
            }
        }

        /// <remarks />
        public PropertyState<RolePermissionType[]> DefaultRolePermissions
        {
            get
            {
                return m_defaultRolePermissions;
            }

            set
            {
                if (!Object.ReferenceEquals(m_defaultRolePermissions, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_defaultRolePermissions = value;
            }
        }

        /// <remarks />
        public PropertyState<RolePermissionType[]> DefaultUserRolePermissions
        {
            get
            {
                return m_defaultUserRolePermissions;
            }

            set
            {
                if (!Object.ReferenceEquals(m_defaultUserRolePermissions, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_defaultUserRolePermissions = value;
            }
        }

        /// <remarks />
        public PropertyState<ushort> DefaultAccessRestrictions
        {
            get
            {
                return m_defaultAccessRestrictions;
            }

            set
            {
                if (!Object.ReferenceEquals(m_defaultAccessRestrictions, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_defaultAccessRestrictions = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_namespaceUri != null)
            {
                children.Add(m_namespaceUri);
            }

            if (m_namespaceVersion != null)
            {
                children.Add(m_namespaceVersion);
            }

            if (m_namespacePublicationDate != null)
            {
                children.Add(m_namespacePublicationDate);
            }

            if (m_isNamespaceSubset != null)
            {
                children.Add(m_isNamespaceSubset);
            }

            if (m_staticNodeIdTypes != null)
            {
                children.Add(m_staticNodeIdTypes);
            }

            if (m_staticNumericNodeIdRange != null)
            {
                children.Add(m_staticNumericNodeIdRange);
            }

            if (m_staticStringNodeIdPattern != null)
            {
                children.Add(m_staticStringNodeIdPattern);
            }

            if (m_namespaceFile != null)
            {
                children.Add(m_namespaceFile);
            }

            if (m_defaultRolePermissions != null)
            {
                children.Add(m_defaultRolePermissions);
            }

            if (m_defaultUserRolePermissions != null)
            {
                children.Add(m_defaultUserRolePermissions);
            }

            if (m_defaultAccessRestrictions != null)
            {
                children.Add(m_defaultAccessRestrictions);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.NamespaceUri:
                {
                    if (createOrReplace)
                    {
                        if (NamespaceUri == null)
                        {
                            if (replacement == null)
                            {
                                NamespaceUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                NamespaceUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = NamespaceUri;
                    break;
                }

                case Opc.Ua.BrowseNames.NamespaceVersion:
                {
                    if (createOrReplace)
                    {
                        if (NamespaceVersion == null)
                        {
                            if (replacement == null)
                            {
                                NamespaceVersion = new PropertyState<string>(this);
                            }
                            else
                            {
                                NamespaceVersion = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = NamespaceVersion;
                    break;
                }

                case Opc.Ua.BrowseNames.NamespacePublicationDate:
                {
                    if (createOrReplace)
                    {
                        if (NamespacePublicationDate == null)
                        {
                            if (replacement == null)
                            {
                                NamespacePublicationDate = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                NamespacePublicationDate = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = NamespacePublicationDate;
                    break;
                }

                case Opc.Ua.BrowseNames.IsNamespaceSubset:
                {
                    if (createOrReplace)
                    {
                        if (IsNamespaceSubset == null)
                        {
                            if (replacement == null)
                            {
                                IsNamespaceSubset = new PropertyState<bool>(this);
                            }
                            else
                            {
                                IsNamespaceSubset = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = IsNamespaceSubset;
                    break;
                }

                case Opc.Ua.BrowseNames.StaticNodeIdTypes:
                {
                    if (createOrReplace)
                    {
                        if (StaticNodeIdTypes == null)
                        {
                            if (replacement == null)
                            {
                                StaticNodeIdTypes = new PropertyState<IdType[]>(this);
                            }
                            else
                            {
                                StaticNodeIdTypes = (PropertyState<IdType[]>)replacement;
                            }
                        }
                    }

                    instance = StaticNodeIdTypes;
                    break;
                }

                case Opc.Ua.BrowseNames.StaticNumericNodeIdRange:
                {
                    if (createOrReplace)
                    {
                        if (StaticNumericNodeIdRange == null)
                        {
                            if (replacement == null)
                            {
                                StaticNumericNodeIdRange = new PropertyState<string[]>(this);
                            }
                            else
                            {
                                StaticNumericNodeIdRange = (PropertyState<string[]>)replacement;
                            }
                        }
                    }

                    instance = StaticNumericNodeIdRange;
                    break;
                }

                case Opc.Ua.BrowseNames.StaticStringNodeIdPattern:
                {
                    if (createOrReplace)
                    {
                        if (StaticStringNodeIdPattern == null)
                        {
                            if (replacement == null)
                            {
                                StaticStringNodeIdPattern = new PropertyState<string>(this);
                            }
                            else
                            {
                                StaticStringNodeIdPattern = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = StaticStringNodeIdPattern;
                    break;
                }

                case Opc.Ua.BrowseNames.NamespaceFile:
                {
                    if (createOrReplace)
                    {
                        if (NamespaceFile == null)
                        {
                            if (replacement == null)
                            {
                                NamespaceFile = new AddressSpaceFileState(this);
                            }
                            else
                            {
                                NamespaceFile = (AddressSpaceFileState)replacement;
                            }
                        }
                    }

                    instance = NamespaceFile;
                    break;
                }

                case Opc.Ua.BrowseNames.DefaultRolePermissions:
                {
                    if (createOrReplace)
                    {
                        if (DefaultRolePermissions == null)
                        {
                            if (replacement == null)
                            {
                                DefaultRolePermissions = new PropertyState<RolePermissionType[]>(this);
                            }
                            else
                            {
                                DefaultRolePermissions = (PropertyState<RolePermissionType[]>)replacement;
                            }
                        }
                    }

                    instance = DefaultRolePermissions;
                    break;
                }

                case Opc.Ua.BrowseNames.DefaultUserRolePermissions:
                {
                    if (createOrReplace)
                    {
                        if (DefaultUserRolePermissions == null)
                        {
                            if (replacement == null)
                            {
                                DefaultUserRolePermissions = new PropertyState<RolePermissionType[]>(this);
                            }
                            else
                            {
                                DefaultUserRolePermissions = (PropertyState<RolePermissionType[]>)replacement;
                            }
                        }
                    }

                    instance = DefaultUserRolePermissions;
                    break;
                }

                case Opc.Ua.BrowseNames.DefaultAccessRestrictions:
                {
                    if (createOrReplace)
                    {
                        if (DefaultAccessRestrictions == null)
                        {
                            if (replacement == null)
                            {
                                DefaultAccessRestrictions = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                DefaultAccessRestrictions = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = DefaultAccessRestrictions;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_namespaceUri;
        private PropertyState<string> m_namespaceVersion;
        private PropertyState<DateTime> m_namespacePublicationDate;
        private PropertyState<bool> m_isNamespaceSubset;
        private PropertyState<IdType[]> m_staticNodeIdTypes;
        private PropertyState<string[]> m_staticNumericNodeIdRange;
        private PropertyState<string> m_staticStringNodeIdPattern;
        private AddressSpaceFileState m_namespaceFile;
        private PropertyState<RolePermissionType[]> m_defaultRolePermissions;
        private PropertyState<RolePermissionType[]> m_defaultUserRolePermissions;
        private PropertyState<ushort> m_defaultAccessRestrictions;
        #endregion
    }
    #endif
    #endregion

    #region NamespacesState Class
    #if (!OPCUA_EXCLUDE_NamespacesState)
    /// <summary>
    /// Stores an instance of the NamespacesType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class NamespacesState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public NamespacesState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.NamespacesType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFgAAAE5hbWVzcGFjZXNUeXBlSW5zdGFuY2UBAH0tAQB9LX0tAAD/////" +
           "AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region BaseEventState Class
    #if (!OPCUA_EXCLUDE_BaseEventState)
    /// <summary>
    /// Stores an instance of the BaseEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class BaseEventState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public BaseEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.BaseEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (LocalTime != null)
            {
                LocalTime.Initialize(context, LocalTime_InitializationString);
            }
        }

        #region Initialization String
        private const string LocalTime_InitializationString =
           "//////////8VYIkKAgAAAAAACQAAAExvY2FsVGltZQEAdgwALgBEdgwAAAEA0CL/////AQH/////AAAA" +
           "AA==";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFQAAAEJhc2VFdmVudFR5cGVJbnN0YW5jZQEA+QcBAPkH+QcAAP////8J" +
           "AAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQD6BwAuAET6BwAAAA//////AQH/////AAAAABVgiQoCAAAA" +
           "AAAJAAAARXZlbnRUeXBlAQD7BwAuAET7BwAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAAU291" +
           "cmNlTm9kZQEA/AcALgBE/AcAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFNvdXJjZU5hbWUB" +
           "AP0HAC4ARP0HAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQD+BwAuAET+BwAAAQAm" +
           "Af////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEA/wcALgBE/wcAAAEAJgH/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAJAAAATG9jYWxUaW1lAQB2DAAuAER2DAAAAQDQIv////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQACCAAuAEQCCAAAABX/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAIAAAAU2V2ZXJpdHkBAAMIAC4ARAMIAAAABf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<byte[]> EventId
        {
            get
            {
                return m_eventId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_eventId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_eventId = value;
            }
        }

        /// <remarks />
        public PropertyState<NodeId> EventType
        {
            get
            {
                return m_eventType;
            }

            set
            {
                if (!Object.ReferenceEquals(m_eventType, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_eventType = value;
            }
        }

        /// <remarks />
        public PropertyState<NodeId> SourceNode
        {
            get
            {
                return m_sourceNode;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sourceNode, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sourceNode = value;
            }
        }

        /// <remarks />
        public PropertyState<string> SourceName
        {
            get
            {
                return m_sourceName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sourceName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sourceName = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> Time
        {
            get
            {
                return m_time;
            }

            set
            {
                if (!Object.ReferenceEquals(m_time, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_time = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> ReceiveTime
        {
            get
            {
                return m_receiveTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_receiveTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_receiveTime = value;
            }
        }

        /// <remarks />
        public PropertyState<TimeZoneDataType> LocalTime
        {
            get
            {
                return m_localTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_localTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_localTime = value;
            }
        }

        /// <remarks />
        public PropertyState<LocalizedText> Message
        {
            get
            {
                return m_message;
            }

            set
            {
                if (!Object.ReferenceEquals(m_message, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_message = value;
            }
        }

        /// <remarks />
        public PropertyState<ushort> Severity
        {
            get
            {
                return m_severity;
            }

            set
            {
                if (!Object.ReferenceEquals(m_severity, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_severity = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_eventId != null)
            {
                children.Add(m_eventId);
            }

            if (m_eventType != null)
            {
                children.Add(m_eventType);
            }

            if (m_sourceNode != null)
            {
                children.Add(m_sourceNode);
            }

            if (m_sourceName != null)
            {
                children.Add(m_sourceName);
            }

            if (m_time != null)
            {
                children.Add(m_time);
            }

            if (m_receiveTime != null)
            {
                children.Add(m_receiveTime);
            }

            if (m_localTime != null)
            {
                children.Add(m_localTime);
            }

            if (m_message != null)
            {
                children.Add(m_message);
            }

            if (m_severity != null)
            {
                children.Add(m_severity);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.EventId:
                {
                    if (createOrReplace)
                    {
                        if (EventId == null)
                        {
                            if (replacement == null)
                            {
                                EventId = new PropertyState<byte[]>(this);
                            }
                            else
                            {
                                EventId = (PropertyState<byte[]>)replacement;
                            }
                        }
                    }

                    instance = EventId;
                    break;
                }

                case Opc.Ua.BrowseNames.EventType:
                {
                    if (createOrReplace)
                    {
                        if (EventType == null)
                        {
                            if (replacement == null)
                            {
                                EventType = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                EventType = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = EventType;
                    break;
                }

                case Opc.Ua.BrowseNames.SourceNode:
                {
                    if (createOrReplace)
                    {
                        if (SourceNode == null)
                        {
                            if (replacement == null)
                            {
                                SourceNode = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                SourceNode = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = SourceNode;
                    break;
                }

                case Opc.Ua.BrowseNames.SourceName:
                {
                    if (createOrReplace)
                    {
                        if (SourceName == null)
                        {
                            if (replacement == null)
                            {
                                SourceName = new PropertyState<string>(this);
                            }
                            else
                            {
                                SourceName = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = SourceName;
                    break;
                }

                case Opc.Ua.BrowseNames.Time:
                {
                    if (createOrReplace)
                    {
                        if (Time == null)
                        {
                            if (replacement == null)
                            {
                                Time = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                Time = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = Time;
                    break;
                }

                case Opc.Ua.BrowseNames.ReceiveTime:
                {
                    if (createOrReplace)
                    {
                        if (ReceiveTime == null)
                        {
                            if (replacement == null)
                            {
                                ReceiveTime = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                ReceiveTime = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = ReceiveTime;
                    break;
                }

                case Opc.Ua.BrowseNames.LocalTime:
                {
                    if (createOrReplace)
                    {
                        if (LocalTime == null)
                        {
                            if (replacement == null)
                            {
                                LocalTime = new PropertyState<TimeZoneDataType>(this);
                            }
                            else
                            {
                                LocalTime = (PropertyState<TimeZoneDataType>)replacement;
                            }
                        }
                    }

                    instance = LocalTime;
                    break;
                }

                case Opc.Ua.BrowseNames.Message:
                {
                    if (createOrReplace)
                    {
                        if (Message == null)
                        {
                            if (replacement == null)
                            {
                                Message = new PropertyState<LocalizedText>(this);
                            }
                            else
                            {
                                Message = (PropertyState<LocalizedText>)replacement;
                            }
                        }
                    }

                    instance = Message;
                    break;
                }

                case Opc.Ua.BrowseNames.Severity:
                {
                    if (createOrReplace)
                    {
                        if (Severity == null)
                        {
                            if (replacement == null)
                            {
                                Severity = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                Severity = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = Severity;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<byte[]> m_eventId;
        private PropertyState<NodeId> m_eventType;
        private PropertyState<NodeId> m_sourceNode;
        private PropertyState<string> m_sourceName;
        private PropertyState<DateTime> m_time;
        private PropertyState<DateTime> m_receiveTime;
        private PropertyState<TimeZoneDataType> m_localTime;
        private PropertyState<LocalizedText> m_message;
        private PropertyState<ushort> m_severity;
        #endregion
    }
    #endif
    #endregion

    #region AuditEventState Class
    #if (!OPCUA_EXCLUDE_AuditEventState)
    /// <summary>
    /// Stores an instance of the AuditEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditEventState : BaseEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFgAAAEF1ZGl0RXZlbnRUeXBlSW5zdGFuY2UBAAQIAQAECAQIAAD/////" +
           "DQAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEAgAwALgBEgAwAAAAP/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACQAAAEV2ZW50VHlwZQEAgQwALgBEgQwAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFNv" +
           "dXJjZU5vZGUBAIIMAC4ARIIMAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABTb3VyY2VOYW1l" +
           "AQCDDAAuAESDDAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGltZQEAhAwALgBEhAwAAAEA" +
           "JgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBAIUMAC4ARIUMAAABACYB////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAIcMAC4ARIcMAAAAFf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAgAAABTZXZlcml0eQEAiAwALgBEiAwAAAAF/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "DwAAAEFjdGlvblRpbWVTdGFtcAEABQgALgBEBQgAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAG" +
           "AAAAU3RhdHVzAQAGCAAuAEQGCAAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2VydmVySWQB" +
           "AAcIAC4ARAcIAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABIAAABDbGllbnRBdWRpdEVudHJ5SWQB" +
           "AAgIAC4ARAgIAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGllbnRVc2VySWQBAAkIAC4A" +
           "RAkIAAAADP////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<DateTime> ActionTimeStamp
        {
            get
            {
                return m_actionTimeStamp;
            }

            set
            {
                if (!Object.ReferenceEquals(m_actionTimeStamp, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_actionTimeStamp = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> Status
        {
            get
            {
                return m_status;
            }

            set
            {
                if (!Object.ReferenceEquals(m_status, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_status = value;
            }
        }

        /// <remarks />
        public PropertyState<string> ServerId
        {
            get
            {
                return m_serverId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serverId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serverId = value;
            }
        }

        /// <remarks />
        public PropertyState<string> ClientAuditEntryId
        {
            get
            {
                return m_clientAuditEntryId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_clientAuditEntryId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_clientAuditEntryId = value;
            }
        }

        /// <remarks />
        public PropertyState<string> ClientUserId
        {
            get
            {
                return m_clientUserId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_clientUserId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_clientUserId = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_actionTimeStamp != null)
            {
                children.Add(m_actionTimeStamp);
            }

            if (m_status != null)
            {
                children.Add(m_status);
            }

            if (m_serverId != null)
            {
                children.Add(m_serverId);
            }

            if (m_clientAuditEntryId != null)
            {
                children.Add(m_clientAuditEntryId);
            }

            if (m_clientUserId != null)
            {
                children.Add(m_clientUserId);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ActionTimeStamp:
                {
                    if (createOrReplace)
                    {
                        if (ActionTimeStamp == null)
                        {
                            if (replacement == null)
                            {
                                ActionTimeStamp = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                ActionTimeStamp = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = ActionTimeStamp;
                    break;
                }

                case Opc.Ua.BrowseNames.Status:
                {
                    if (createOrReplace)
                    {
                        if (Status == null)
                        {
                            if (replacement == null)
                            {
                                Status = new PropertyState<bool>(this);
                            }
                            else
                            {
                                Status = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = Status;
                    break;
                }

                case Opc.Ua.BrowseNames.ServerId:
                {
                    if (createOrReplace)
                    {
                        if (ServerId == null)
                        {
                            if (replacement == null)
                            {
                                ServerId = new PropertyState<string>(this);
                            }
                            else
                            {
                                ServerId = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ServerId;
                    break;
                }

                case Opc.Ua.BrowseNames.ClientAuditEntryId:
                {
                    if (createOrReplace)
                    {
                        if (ClientAuditEntryId == null)
                        {
                            if (replacement == null)
                            {
                                ClientAuditEntryId = new PropertyState<string>(this);
                            }
                            else
                            {
                                ClientAuditEntryId = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ClientAuditEntryId;
                    break;
                }

                case Opc.Ua.BrowseNames.ClientUserId:
                {
                    if (createOrReplace)
                    {
                        if (ClientUserId == null)
                        {
                            if (replacement == null)
                            {
                                ClientUserId = new PropertyState<string>(this);
                            }
                            else
                            {
                                ClientUserId = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ClientUserId;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<DateTime> m_actionTimeStamp;
        private PropertyState<bool> m_status;
        private PropertyState<string> m_serverId;
        private PropertyState<string> m_clientAuditEntryId;
        private PropertyState<string> m_clientUserId;
        #endregion
    }
    #endif
    #endregion

    #region AuditSecurityEventState Class
    #if (!OPCUA_EXCLUDE_AuditSecurityEventState)
    /// <summary>
    /// Stores an instance of the AuditSecurityEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditSecurityEventState : AuditEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditSecurityEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditSecurityEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (StatusCodeId != null)
            {
                StatusCodeId.Initialize(context, StatusCodeId_InitializationString);
            }
        }

        #region Initialization String
        private const string StatusCodeId_InitializationString =
           "//////////8VYIkKAgAAAAAADAAAAFN0YXR1c0NvZGVJZAEAz0QALgBEz0QAAAAT/////wEB/////wAA" +
           "AAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHgAAAEF1ZGl0U2VjdXJpdHlFdmVudFR5cGVJbnN0YW5jZQEACggBAAoI" +
           "CggAAP////8OAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQCJDAAuAESJDAAAAA//////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQCKDAAuAESKDAAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAKAAAAU291cmNlTm9kZQEAiwwALgBEiwwAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFNv" +
           "dXJjZU5hbWUBAIwMAC4ARIwMAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQCNDAAu" +
           "AESNDAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEAjgwALgBEjgwA" +
           "AAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAkAwALgBEkAwAAAAV/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQCRDAAuAESRDAAAAAX/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQCSDAAuAESSDAAAAQAmAf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAYAAABTdGF0dXMBAJMMAC4ARJMMAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABT" +
           "ZXJ2ZXJJZAEAlAwALgBElAwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAENsaWVudEF1ZGl0" +
           "RW50cnlJZAEAlQwALgBElQwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENsaWVudFVzZXJJ" +
           "ZAEAlgwALgBElgwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAFN0YXR1c0NvZGVJZAEAz0QA" +
           "LgBEz0QAAAAT/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<StatusCode> StatusCodeId
        {
            get
            {
                return m_statusCodeId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_statusCodeId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_statusCodeId = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_statusCodeId != null)
            {
                children.Add(m_statusCodeId);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.StatusCodeId:
                {
                    if (createOrReplace)
                    {
                        if (StatusCodeId == null)
                        {
                            if (replacement == null)
                            {
                                StatusCodeId = new PropertyState<StatusCode>(this);
                            }
                            else
                            {
                                StatusCodeId = (PropertyState<StatusCode>)replacement;
                            }
                        }
                    }

                    instance = StatusCodeId;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<StatusCode> m_statusCodeId;
        #endregion
    }
    #endif
    #endregion

    #region AuditChannelEventState Class
    #if (!OPCUA_EXCLUDE_AuditChannelEventState)
    /// <summary>
    /// Stores an instance of the AuditChannelEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditChannelEventState : AuditSecurityEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditChannelEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditChannelEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHQAAAEF1ZGl0Q2hhbm5lbEV2ZW50VHlwZUluc3RhbmNlAQALCAEACwgL" +
           "CAAA/////w4AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAJcMAC4ARJcMAAAAD/////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAJgMAC4ARJgMAAAAEf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAoAAABTb3VyY2VOb2RlAQCZDAAuAESZDAAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAAU291" +
           "cmNlTmFtZQEAmgwALgBEmgwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUBAJsMAC4A" +
           "RJsMAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQCcDAAuAEScDAAA" +
           "AQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQCeDAAuAESeDAAAABX/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAJ8MAC4ARJ8MAAAABf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABAKAMAC4ARKAMAAABACYB/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAABgAAAFN0YXR1cwEAoQwALgBEoQwAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNl" +
           "cnZlcklkAQCiDAAuAESiDAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAAQ2xpZW50QXVkaXRF" +
           "bnRyeUlkAQCjDAAuAESjDAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50VXNlcklk" +
           "AQCkDAAuAESkDAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAPAAAAU2VjdXJlQ2hhbm5lbElkAQC5" +
           "CgAuAES5CgAAAAz/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> SecureChannelId
        {
            get
            {
                return m_secureChannelId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_secureChannelId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_secureChannelId = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_secureChannelId != null)
            {
                children.Add(m_secureChannelId);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SecureChannelId:
                {
                    if (createOrReplace)
                    {
                        if (SecureChannelId == null)
                        {
                            if (replacement == null)
                            {
                                SecureChannelId = new PropertyState<string>(this);
                            }
                            else
                            {
                                SecureChannelId = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = SecureChannelId;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_secureChannelId;
        #endregion
    }
    #endif
    #endregion

    #region AuditOpenSecureChannelEventState Class
    #if (!OPCUA_EXCLUDE_AuditOpenSecureChannelEventState)
    /// <summary>
    /// Stores an instance of the AuditOpenSecureChannelEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditOpenSecureChannelEventState : AuditChannelEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditOpenSecureChannelEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditOpenSecureChannelEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJwAAAEF1ZGl0T3BlblNlY3VyZUNoYW5uZWxFdmVudFR5cGVJbnN0YW5j" +
           "ZQEADAgBAAwIDAgAAP////8UAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQClDAAuAESlDAAAAA//////" +
           "AQH/////AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQCmDAAuAESmDAAAABH/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAKAAAAU291cmNlTm9kZQEApwwALgBEpwwAAAAR/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACgAAAFNvdXJjZU5hbWUBAKgMAC4ARKgMAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABU" +
           "aW1lAQCpDAAuAESpDAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEA" +
           "qgwALgBEqgwAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEArAwALgBErAwA" +
           "AAAV/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQCtDAAuAEStDAAAAAX/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQCuDAAuAESuDAAAAQAmAf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAYAAABTdGF0dXMBAK8MAC4ARK8MAAAAAf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAgAAABTZXJ2ZXJJZAEAsAwALgBEsAwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAENs" +
           "aWVudEF1ZGl0RW50cnlJZAEAsQwALgBEsQwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENs" +
           "aWVudFVzZXJJZAEAsgwALgBEsgwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADwAAAFNlY3VyZUNo" +
           "YW5uZWxJZAEAswwALgBEswwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEQAAAENsaWVudENlcnRp" +
           "ZmljYXRlAQANCAAuAEQNCAAAAA//////AQH/////AAAAABVgiQoCAAAAAAAbAAAAQ2xpZW50Q2VydGlm" +
           "aWNhdGVUaHVtYnByaW50AQC6CgAuAES6CgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVx" +
           "dWVzdFR5cGUBAA4IAC4ARA4IAAABADsB/////wEB/////wAAAAAVYIkKAgAAAAAAEQAAAFNlY3VyaXR5" +
           "UG9saWN5VXJpAQAPCAAuAEQPCAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAU2VjdXJpdHlN" +
           "b2RlAQARCAAuAEQRCAAAAQAuAf////8BAf////8AAAAAFWCJCgIAAAAAABEAAABSZXF1ZXN0ZWRMaWZl" +
           "dGltZQEAEggALgBEEggAAAEAIgH/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<byte[]> ClientCertificate
        {
            get
            {
                return m_clientCertificate;
            }

            set
            {
                if (!Object.ReferenceEquals(m_clientCertificate, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_clientCertificate = value;
            }
        }

        /// <remarks />
        public PropertyState<string> ClientCertificateThumbprint
        {
            get
            {
                return m_clientCertificateThumbprint;
            }

            set
            {
                if (!Object.ReferenceEquals(m_clientCertificateThumbprint, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_clientCertificateThumbprint = value;
            }
        }

        /// <remarks />
        public PropertyState<SecurityTokenRequestType> RequestType
        {
            get
            {
                return m_requestType;
            }

            set
            {
                if (!Object.ReferenceEquals(m_requestType, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_requestType = value;
            }
        }

        /// <remarks />
        public PropertyState<string> SecurityPolicyUri
        {
            get
            {
                return m_securityPolicyUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_securityPolicyUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_securityPolicyUri = value;
            }
        }

        /// <remarks />
        public PropertyState<MessageSecurityMode> SecurityMode
        {
            get
            {
                return m_securityMode;
            }

            set
            {
                if (!Object.ReferenceEquals(m_securityMode, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_securityMode = value;
            }
        }

        /// <remarks />
        public PropertyState<double> RequestedLifetime
        {
            get
            {
                return m_requestedLifetime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_requestedLifetime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_requestedLifetime = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_clientCertificate != null)
            {
                children.Add(m_clientCertificate);
            }

            if (m_clientCertificateThumbprint != null)
            {
                children.Add(m_clientCertificateThumbprint);
            }

            if (m_requestType != null)
            {
                children.Add(m_requestType);
            }

            if (m_securityPolicyUri != null)
            {
                children.Add(m_securityPolicyUri);
            }

            if (m_securityMode != null)
            {
                children.Add(m_securityMode);
            }

            if (m_requestedLifetime != null)
            {
                children.Add(m_requestedLifetime);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ClientCertificate:
                {
                    if (createOrReplace)
                    {
                        if (ClientCertificate == null)
                        {
                            if (replacement == null)
                            {
                                ClientCertificate = new PropertyState<byte[]>(this);
                            }
                            else
                            {
                                ClientCertificate = (PropertyState<byte[]>)replacement;
                            }
                        }
                    }

                    instance = ClientCertificate;
                    break;
                }

                case Opc.Ua.BrowseNames.ClientCertificateThumbprint:
                {
                    if (createOrReplace)
                    {
                        if (ClientCertificateThumbprint == null)
                        {
                            if (replacement == null)
                            {
                                ClientCertificateThumbprint = new PropertyState<string>(this);
                            }
                            else
                            {
                                ClientCertificateThumbprint = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ClientCertificateThumbprint;
                    break;
                }

                case Opc.Ua.BrowseNames.RequestType:
                {
                    if (createOrReplace)
                    {
                        if (RequestType == null)
                        {
                            if (replacement == null)
                            {
                                RequestType = new PropertyState<SecurityTokenRequestType>(this);
                            }
                            else
                            {
                                RequestType = (PropertyState<SecurityTokenRequestType>)replacement;
                            }
                        }
                    }

                    instance = RequestType;
                    break;
                }

                case Opc.Ua.BrowseNames.SecurityPolicyUri:
                {
                    if (createOrReplace)
                    {
                        if (SecurityPolicyUri == null)
                        {
                            if (replacement == null)
                            {
                                SecurityPolicyUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                SecurityPolicyUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = SecurityPolicyUri;
                    break;
                }

                case Opc.Ua.BrowseNames.SecurityMode:
                {
                    if (createOrReplace)
                    {
                        if (SecurityMode == null)
                        {
                            if (replacement == null)
                            {
                                SecurityMode = new PropertyState<MessageSecurityMode>(this);
                            }
                            else
                            {
                                SecurityMode = (PropertyState<MessageSecurityMode>)replacement;
                            }
                        }
                    }

                    instance = SecurityMode;
                    break;
                }

                case Opc.Ua.BrowseNames.RequestedLifetime:
                {
                    if (createOrReplace)
                    {
                        if (RequestedLifetime == null)
                        {
                            if (replacement == null)
                            {
                                RequestedLifetime = new PropertyState<double>(this);
                            }
                            else
                            {
                                RequestedLifetime = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = RequestedLifetime;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<byte[]> m_clientCertificate;
        private PropertyState<string> m_clientCertificateThumbprint;
        private PropertyState<SecurityTokenRequestType> m_requestType;
        private PropertyState<string> m_securityPolicyUri;
        private PropertyState<MessageSecurityMode> m_securityMode;
        private PropertyState<double> m_requestedLifetime;
        #endregion
    }
    #endif
    #endregion

    #region AuditSessionEventState Class
    #if (!OPCUA_EXCLUDE_AuditSessionEventState)
    /// <summary>
    /// Stores an instance of the AuditSessionEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditSessionEventState : AuditSecurityEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditSessionEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditSessionEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHQAAAEF1ZGl0U2Vzc2lvbkV2ZW50VHlwZUluc3RhbmNlAQAVCAEAFQgV" +
           "CAAA/////w4AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBALQMAC4ARLQMAAAAD/////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAkAAABFdmVudFR5cGUBALUMAC4ARLUMAAAAEf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAoAAABTb3VyY2VOb2RlAQC2DAAuAES2DAAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAAU291" +
           "cmNlTmFtZQEAtwwALgBEtwwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUBALgMAC4A" +
           "RLgMAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQC5DAAuAES5DAAA" +
           "AQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQC7DAAuAES7DAAAABX/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBALwMAC4ARLwMAAAABf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABAL0MAC4ARL0MAAABACYB/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAABgAAAFN0YXR1cwEAvgwALgBEvgwAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNl" +
           "cnZlcklkAQC/DAAuAES/DAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAAQ2xpZW50QXVkaXRF" +
           "bnRyeUlkAQDADAAuAETADAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50VXNlcklk" +
           "AQDBDAAuAETBDAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAJAAAAU2Vzc2lvbklkAQAWCAAuAEQW" +
           "CAAAABH/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> SessionId
        {
            get
            {
                return m_sessionId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sessionId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sessionId = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_sessionId != null)
            {
                children.Add(m_sessionId);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SessionId:
                {
                    if (createOrReplace)
                    {
                        if (SessionId == null)
                        {
                            if (replacement == null)
                            {
                                SessionId = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                SessionId = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = SessionId;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_sessionId;
        #endregion
    }
    #endif
    #endregion

    #region AuditCreateSessionEventState Class
    #if (!OPCUA_EXCLUDE_AuditCreateSessionEventState)
    /// <summary>
    /// Stores an instance of the AuditCreateSessionEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditCreateSessionEventState : AuditSessionEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditCreateSessionEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditCreateSessionEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIwAAAEF1ZGl0Q3JlYXRlU2Vzc2lvbkV2ZW50VHlwZUluc3RhbmNlAQAX" +
           "CAEAFwgXCAAA/////xIAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAMIMAC4ARMIMAAAAD/////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAMMMAC4ARMMMAAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABTb3VyY2VOb2RlAQDEDAAuAETEDAAAABH/////AQH/////AAAAABVgiQoCAAAAAAAK" +
           "AAAAU291cmNlTmFtZQEAxQwALgBExQwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUB" +
           "AMYMAC4ARMYMAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQDHDAAu" +
           "AETHDAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQDJDAAuAETJDAAAABX/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAMoMAC4ARMoMAAAABf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABAMsMAC4ARMsMAAABACYB/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAABgAAAFN0YXR1cwEAzAwALgBEzAwAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "CAAAAFNlcnZlcklkAQDNDAAuAETNDAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAAQ2xpZW50" +
           "QXVkaXRFbnRyeUlkAQDODAAuAETODAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50" +
           "VXNlcklkAQDPDAAuAETPDAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAJAAAAU2Vzc2lvbklkAQBN" +
           "OAAuAERNOAAAABH/////AQH/////AAAAABVgiQoCAAAAAAAPAAAAU2VjdXJlQ2hhbm5lbElkAQAYCAAu" +
           "AEQYCAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAARAAAAQ2xpZW50Q2VydGlmaWNhdGUBABkIAC4A" +
           "RBkIAAAAD/////8BAf////8AAAAAFWCJCgIAAAAAABsAAABDbGllbnRDZXJ0aWZpY2F0ZVRodW1icHJp" +
           "bnQBALsKAC4ARLsKAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABUAAABSZXZpc2VkU2Vzc2lvblRp" +
           "bWVvdXQBABoIAC4ARBoIAAABACIB/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> SecureChannelId
        {
            get
            {
                return m_secureChannelId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_secureChannelId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_secureChannelId = value;
            }
        }

        /// <remarks />
        public PropertyState<byte[]> ClientCertificate
        {
            get
            {
                return m_clientCertificate;
            }

            set
            {
                if (!Object.ReferenceEquals(m_clientCertificate, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_clientCertificate = value;
            }
        }

        /// <remarks />
        public PropertyState<string> ClientCertificateThumbprint
        {
            get
            {
                return m_clientCertificateThumbprint;
            }

            set
            {
                if (!Object.ReferenceEquals(m_clientCertificateThumbprint, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_clientCertificateThumbprint = value;
            }
        }

        /// <remarks />
        public PropertyState<double> RevisedSessionTimeout
        {
            get
            {
                return m_revisedSessionTimeout;
            }

            set
            {
                if (!Object.ReferenceEquals(m_revisedSessionTimeout, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_revisedSessionTimeout = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_secureChannelId != null)
            {
                children.Add(m_secureChannelId);
            }

            if (m_clientCertificate != null)
            {
                children.Add(m_clientCertificate);
            }

            if (m_clientCertificateThumbprint != null)
            {
                children.Add(m_clientCertificateThumbprint);
            }

            if (m_revisedSessionTimeout != null)
            {
                children.Add(m_revisedSessionTimeout);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SecureChannelId:
                {
                    if (createOrReplace)
                    {
                        if (SecureChannelId == null)
                        {
                            if (replacement == null)
                            {
                                SecureChannelId = new PropertyState<string>(this);
                            }
                            else
                            {
                                SecureChannelId = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = SecureChannelId;
                    break;
                }

                case Opc.Ua.BrowseNames.ClientCertificate:
                {
                    if (createOrReplace)
                    {
                        if (ClientCertificate == null)
                        {
                            if (replacement == null)
                            {
                                ClientCertificate = new PropertyState<byte[]>(this);
                            }
                            else
                            {
                                ClientCertificate = (PropertyState<byte[]>)replacement;
                            }
                        }
                    }

                    instance = ClientCertificate;
                    break;
                }

                case Opc.Ua.BrowseNames.ClientCertificateThumbprint:
                {
                    if (createOrReplace)
                    {
                        if (ClientCertificateThumbprint == null)
                        {
                            if (replacement == null)
                            {
                                ClientCertificateThumbprint = new PropertyState<string>(this);
                            }
                            else
                            {
                                ClientCertificateThumbprint = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ClientCertificateThumbprint;
                    break;
                }

                case Opc.Ua.BrowseNames.RevisedSessionTimeout:
                {
                    if (createOrReplace)
                    {
                        if (RevisedSessionTimeout == null)
                        {
                            if (replacement == null)
                            {
                                RevisedSessionTimeout = new PropertyState<double>(this);
                            }
                            else
                            {
                                RevisedSessionTimeout = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = RevisedSessionTimeout;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_secureChannelId;
        private PropertyState<byte[]> m_clientCertificate;
        private PropertyState<string> m_clientCertificateThumbprint;
        private PropertyState<double> m_revisedSessionTimeout;
        #endregion
    }
    #endif
    #endregion

    #region AuditUrlMismatchEventState Class
    #if (!OPCUA_EXCLUDE_AuditUrlMismatchEventState)
    /// <summary>
    /// Stores an instance of the AuditUrlMismatchEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditUrlMismatchEventState : AuditCreateSessionEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditUrlMismatchEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditUrlMismatchEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIQAAAEF1ZGl0VXJsTWlzbWF0Y2hFdmVudFR5cGVJbnN0YW5jZQEAvAoB" +
           "ALwKvAoAAP////8TAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQDRDAAuAETRDAAAAA//////AQH/////" +
           "AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQDSDAAuAETSDAAAABH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAKAAAAU291cmNlTm9kZQEA0wwALgBE0wwAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAA" +
           "AFNvdXJjZU5hbWUBANQMAC4ARNQMAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQDV" +
           "DAAuAETVDAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEA1gwALgBE" +
           "1gwAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEA2AwALgBE2AwAAAAV////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQDZDAAuAETZDAAAAAX/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQDaDAAuAETaDAAAAQAmAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAYAAABTdGF0dXMBANsMAC4ARNsMAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAgA" +
           "AABTZXJ2ZXJJZAEA3AwALgBE3AwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAENsaWVudEF1" +
           "ZGl0RW50cnlJZAEA3QwALgBE3QwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENsaWVudFVz" +
           "ZXJJZAEA3gwALgBE3gwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACQAAAFNlc3Npb25JZAEATjgA" +
           "LgBETjgAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAADwAAAFNlY3VyZUNoYW5uZWxJZAEA4AwALgBE" +
           "4AwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEQAAAENsaWVudENlcnRpZmljYXRlAQDhDAAuAETh" +
           "DAAAAA//////AQH/////AAAAABVgiQoCAAAAAAAbAAAAQ2xpZW50Q2VydGlmaWNhdGVUaHVtYnByaW50" +
           "AQDiDAAuAETiDAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAVAAAAUmV2aXNlZFNlc3Npb25UaW1l" +
           "b3V0AQDjDAAuAETjDAAAAQAiAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABFbmRwb2ludFVybAEA" +
           "vQoALgBEvQoAAAAM/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> EndpointUrl
        {
            get
            {
                return m_endpointUrl;
            }

            set
            {
                if (!Object.ReferenceEquals(m_endpointUrl, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_endpointUrl = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_endpointUrl != null)
            {
                children.Add(m_endpointUrl);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.EndpointUrl:
                {
                    if (createOrReplace)
                    {
                        if (EndpointUrl == null)
                        {
                            if (replacement == null)
                            {
                                EndpointUrl = new PropertyState<string>(this);
                            }
                            else
                            {
                                EndpointUrl = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = EndpointUrl;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_endpointUrl;
        #endregion
    }
    #endif
    #endregion

    #region AuditActivateSessionEventState Class
    #if (!OPCUA_EXCLUDE_AuditActivateSessionEventState)
    /// <summary>
    /// Stores an instance of the AuditActivateSessionEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditActivateSessionEventState : AuditSessionEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditActivateSessionEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditActivateSessionEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJQAAAEF1ZGl0QWN0aXZhdGVTZXNzaW9uRXZlbnRUeXBlSW5zdGFuY2UB" +
           "ABsIAQAbCBsIAAD/////EQAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEA5AwALgBE5AwAAAAP/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEA5QwALgBE5QwAAAAR/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACgAAAFNvdXJjZU5vZGUBAOYMAC4AROYMAAAAEf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAoAAABTb3VyY2VOYW1lAQDnDAAuAETnDAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGlt" +
           "ZQEA6AwALgBE6AwAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBAOkM" +
           "AC4AROkMAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAOsMAC4AROsMAAAA" +
           "Ff////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEA7AwALgBE7AwAAAAF/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAADwAAAEFjdGlvblRpbWVTdGFtcAEA7QwALgBE7QwAAAEAJgH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAGAAAAU3RhdHVzAQDuDAAuAETuDAAAAAH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAIAAAAU2VydmVySWQBAO8MAC4ARO8MAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABIAAABDbGll" +
           "bnRBdWRpdEVudHJ5SWQBAPAMAC4ARPAMAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGll" +
           "bnRVc2VySWQBAPEMAC4ARPEMAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABTZXNzaW9uSWQB" +
           "APIMAC4ARPIMAAAAEf////8BAf////8AAAAAF2CJCgIAAAAAABoAAABDbGllbnRTb2Z0d2FyZUNlcnRp" +
           "ZmljYXRlcwEAHAgALgBEHAgAAAEAWAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAABEAAABV" +
           "c2VySWRlbnRpdHlUb2tlbgEAHQgALgBEHQgAAAEAPAH/////AQH/////AAAAABVgiQoCAAAAAAAPAAAA" +
           "U2VjdXJlQ2hhbm5lbElkAQDdLAAuAETdLAAAAAz/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<SignedSoftwareCertificate[]> ClientSoftwareCertificates
        {
            get
            {
                return m_clientSoftwareCertificates;
            }

            set
            {
                if (!Object.ReferenceEquals(m_clientSoftwareCertificates, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_clientSoftwareCertificates = value;
            }
        }

        /// <remarks />
        public PropertyState<UserIdentityToken> UserIdentityToken
        {
            get
            {
                return m_userIdentityToken;
            }

            set
            {
                if (!Object.ReferenceEquals(m_userIdentityToken, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_userIdentityToken = value;
            }
        }

        /// <remarks />
        public PropertyState<string> SecureChannelId
        {
            get
            {
                return m_secureChannelId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_secureChannelId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_secureChannelId = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_clientSoftwareCertificates != null)
            {
                children.Add(m_clientSoftwareCertificates);
            }

            if (m_userIdentityToken != null)
            {
                children.Add(m_userIdentityToken);
            }

            if (m_secureChannelId != null)
            {
                children.Add(m_secureChannelId);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ClientSoftwareCertificates:
                {
                    if (createOrReplace)
                    {
                        if (ClientSoftwareCertificates == null)
                        {
                            if (replacement == null)
                            {
                                ClientSoftwareCertificates = new PropertyState<SignedSoftwareCertificate[]>(this);
                            }
                            else
                            {
                                ClientSoftwareCertificates = (PropertyState<SignedSoftwareCertificate[]>)replacement;
                            }
                        }
                    }

                    instance = ClientSoftwareCertificates;
                    break;
                }

                case Opc.Ua.BrowseNames.UserIdentityToken:
                {
                    if (createOrReplace)
                    {
                        if (UserIdentityToken == null)
                        {
                            if (replacement == null)
                            {
                                UserIdentityToken = new PropertyState<UserIdentityToken>(this);
                            }
                            else
                            {
                                UserIdentityToken = (PropertyState<UserIdentityToken>)replacement;
                            }
                        }
                    }

                    instance = UserIdentityToken;
                    break;
                }

                case Opc.Ua.BrowseNames.SecureChannelId:
                {
                    if (createOrReplace)
                    {
                        if (SecureChannelId == null)
                        {
                            if (replacement == null)
                            {
                                SecureChannelId = new PropertyState<string>(this);
                            }
                            else
                            {
                                SecureChannelId = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = SecureChannelId;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<SignedSoftwareCertificate[]> m_clientSoftwareCertificates;
        private PropertyState<UserIdentityToken> m_userIdentityToken;
        private PropertyState<string> m_secureChannelId;
        #endregion
    }
    #endif
    #endregion

    #region AuditCancelEventState Class
    #if (!OPCUA_EXCLUDE_AuditCancelEventState)
    /// <summary>
    /// Stores an instance of the AuditCancelEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditCancelEventState : AuditSessionEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditCancelEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditCancelEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHAAAAEF1ZGl0Q2FuY2VsRXZlbnRUeXBlSW5zdGFuY2UBAB4IAQAeCB4I" +
           "AAD/////DwAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEA8wwALgBE8wwAAAAP/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACQAAAEV2ZW50VHlwZQEA9AwALgBE9AwAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "CgAAAFNvdXJjZU5vZGUBAPUMAC4ARPUMAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABTb3Vy" +
           "Y2VOYW1lAQD2DAAuAET2DAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGltZQEA9wwALgBE" +
           "9wwAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBAPgMAC4ARPgMAAAB" +
           "ACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAPoMAC4ARPoMAAAAFf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEA+wwALgBE+wwAAAAF/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAADwAAAEFjdGlvblRpbWVTdGFtcAEA/AwALgBE/AwAAAEAJgH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAGAAAAU3RhdHVzAQD9DAAuAET9DAAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2Vy" +
           "dmVySWQBAP4MAC4ARP4MAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABIAAABDbGllbnRBdWRpdEVu" +
           "dHJ5SWQBAP8MAC4ARP8MAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGllbnRVc2VySWQB" +
           "AAANAC4ARAANAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABTZXNzaW9uSWQBAAENAC4ARAEN" +
           "AAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAA0AAABSZXF1ZXN0SGFuZGxlAQAfCAAuAEQfCAAAAAf/" +
           "////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<uint> RequestHandle
        {
            get
            {
                return m_requestHandle;
            }

            set
            {
                if (!Object.ReferenceEquals(m_requestHandle, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_requestHandle = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_requestHandle != null)
            {
                children.Add(m_requestHandle);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.RequestHandle:
                {
                    if (createOrReplace)
                    {
                        if (RequestHandle == null)
                        {
                            if (replacement == null)
                            {
                                RequestHandle = new PropertyState<uint>(this);
                            }
                            else
                            {
                                RequestHandle = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = RequestHandle;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<uint> m_requestHandle;
        #endregion
    }
    #endif
    #endregion

    #region AuditCertificateEventState Class
    #if (!OPCUA_EXCLUDE_AuditCertificateEventState)
    /// <summary>
    /// Stores an instance of the AuditCertificateEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditCertificateEventState : AuditSecurityEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditCertificateEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditCertificateEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIQAAAEF1ZGl0Q2VydGlmaWNhdGVFdmVudFR5cGVJbnN0YW5jZQEAIAgB" +
           "ACAIIAgAAP////8OAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQACDQAuAEQCDQAAAA//////AQH/////" +
           "AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQADDQAuAEQDDQAAABH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAKAAAAU291cmNlTm9kZQEABA0ALgBEBA0AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAA" +
           "AFNvdXJjZU5hbWUBAAUNAC4ARAUNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQAG" +
           "DQAuAEQGDQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEABw0ALgBE" +
           "Bw0AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEACQ0ALgBECQ0AAAAV////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQAKDQAuAEQKDQAAAAX/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQALDQAuAEQLDQAAAQAmAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAYAAABTdGF0dXMBAAwNAC4ARAwNAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAgA" +
           "AABTZXJ2ZXJJZAEADQ0ALgBEDQ0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAENsaWVudEF1" +
           "ZGl0RW50cnlJZAEADg0ALgBEDg0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENsaWVudFVz" +
           "ZXJJZAEADw0ALgBEDw0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAENlcnRpZmljYXRlAQAh" +
           "CAAuAEQhCAAAAA//////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<byte[]> Certificate
        {
            get
            {
                return m_certificate;
            }

            set
            {
                if (!Object.ReferenceEquals(m_certificate, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_certificate = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_certificate != null)
            {
                children.Add(m_certificate);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Certificate:
                {
                    if (createOrReplace)
                    {
                        if (Certificate == null)
                        {
                            if (replacement == null)
                            {
                                Certificate = new PropertyState<byte[]>(this);
                            }
                            else
                            {
                                Certificate = (PropertyState<byte[]>)replacement;
                            }
                        }
                    }

                    instance = Certificate;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<byte[]> m_certificate;
        #endregion
    }
    #endif
    #endregion

    #region AuditCertificateDataMismatchEventState Class
    #if (!OPCUA_EXCLUDE_AuditCertificateDataMismatchEventState)
    /// <summary>
    /// Stores an instance of the AuditCertificateDataMismatchEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditCertificateDataMismatchEventState : AuditCertificateEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditCertificateDataMismatchEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditCertificateDataMismatchEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAALQAAAEF1ZGl0Q2VydGlmaWNhdGVEYXRhTWlzbWF0Y2hFdmVudFR5cGVJ" +
           "bnN0YW5jZQEAIggBACIIIggAAP////8QAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQAQDQAuAEQQDQAA" +
           "AA//////AQH/////AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQARDQAuAEQRDQAAABH/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAKAAAAU291cmNlTm9kZQEAEg0ALgBEEg0AAAAR/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACgAAAFNvdXJjZU5hbWUBABMNAC4ARBMNAAAADP////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAQAAABUaW1lAQAUDQAuAEQUDQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZl" +
           "VGltZQEAFQ0ALgBEFQ0AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAFw0A" +
           "LgBEFw0AAAAV/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQAYDQAuAEQYDQAAAAX/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQAZDQAuAEQZDQAAAQAmAf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAYAAABTdGF0dXMBABoNAC4ARBoNAAAAAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAgAAABTZXJ2ZXJJZAEAGw0ALgBEGw0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "EgAAAENsaWVudEF1ZGl0RW50cnlJZAEAHA0ALgBEHA0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "DAAAAENsaWVudFVzZXJJZAEAHQ0ALgBEHQ0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAENl" +
           "cnRpZmljYXRlAQAeDQAuAEQeDQAAAA//////AQH/////AAAAABVgiQoCAAAAAAAPAAAASW52YWxpZEhv" +
           "c3RuYW1lAQAjCAAuAEQjCAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAKAAAASW52YWxpZFVyaQEA" +
           "JAgALgBEJAgAAAAM/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> InvalidHostname
        {
            get
            {
                return m_invalidHostname;
            }

            set
            {
                if (!Object.ReferenceEquals(m_invalidHostname, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_invalidHostname = value;
            }
        }

        /// <remarks />
        public PropertyState<string> InvalidUri
        {
            get
            {
                return m_invalidUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_invalidUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_invalidUri = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_invalidHostname != null)
            {
                children.Add(m_invalidHostname);
            }

            if (m_invalidUri != null)
            {
                children.Add(m_invalidUri);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.InvalidHostname:
                {
                    if (createOrReplace)
                    {
                        if (InvalidHostname == null)
                        {
                            if (replacement == null)
                            {
                                InvalidHostname = new PropertyState<string>(this);
                            }
                            else
                            {
                                InvalidHostname = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = InvalidHostname;
                    break;
                }

                case Opc.Ua.BrowseNames.InvalidUri:
                {
                    if (createOrReplace)
                    {
                        if (InvalidUri == null)
                        {
                            if (replacement == null)
                            {
                                InvalidUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                InvalidUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = InvalidUri;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_invalidHostname;
        private PropertyState<string> m_invalidUri;
        #endregion
    }
    #endif
    #endregion

    #region AuditCertificateExpiredEventState Class
    #if (!OPCUA_EXCLUDE_AuditCertificateExpiredEventState)
    /// <summary>
    /// Stores an instance of the AuditCertificateExpiredEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditCertificateExpiredEventState : AuditCertificateEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditCertificateExpiredEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditCertificateExpiredEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKAAAAEF1ZGl0Q2VydGlmaWNhdGVFeHBpcmVkRXZlbnRUeXBlSW5zdGFu" +
           "Y2UBACUIAQAlCCUIAAD/////DgAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEAHw0ALgBEHw0AAAAP////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEAIA0ALgBEIA0AAAAR/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACgAAAFNvdXJjZU5vZGUBACENAC4ARCENAAAAEf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAoAAABTb3VyY2VOYW1lAQAiDQAuAEQiDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAA" +
           "VGltZQEAIw0ALgBEIw0AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUB" +
           "ACQNAC4ARCQNAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBACYNAC4ARCYN" +
           "AAAAFf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAJw0ALgBEJw0AAAAF/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAADwAAAEFjdGlvblRpbWVTdGFtcAEAKA0ALgBEKA0AAAEAJgH/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAGAAAAU3RhdHVzAQApDQAuAEQpDQAAAAH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAIAAAAU2VydmVySWQBACoNAC4ARCoNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABIAAABD" +
           "bGllbnRBdWRpdEVudHJ5SWQBACsNAC4ARCsNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABD" +
           "bGllbnRVc2VySWQBACwNAC4ARCwNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABDZXJ0aWZp" +
           "Y2F0ZQEALQ0ALgBELQ0AAAAP/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AuditCertificateInvalidEventState Class
    #if (!OPCUA_EXCLUDE_AuditCertificateInvalidEventState)
    /// <summary>
    /// Stores an instance of the AuditCertificateInvalidEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditCertificateInvalidEventState : AuditCertificateEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditCertificateInvalidEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditCertificateInvalidEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKAAAAEF1ZGl0Q2VydGlmaWNhdGVJbnZhbGlkRXZlbnRUeXBlSW5zdGFu" +
           "Y2UBACYIAQAmCCYIAAD/////DgAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEALg0ALgBELg0AAAAP////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEALw0ALgBELw0AAAAR/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACgAAAFNvdXJjZU5vZGUBADANAC4ARDANAAAAEf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAoAAABTb3VyY2VOYW1lAQAxDQAuAEQxDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAA" +
           "VGltZQEAMg0ALgBEMg0AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUB" +
           "ADMNAC4ARDMNAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBADUNAC4ARDUN" +
           "AAAAFf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEANg0ALgBENg0AAAAF/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAADwAAAEFjdGlvblRpbWVTdGFtcAEANw0ALgBENw0AAAEAJgH/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAGAAAAU3RhdHVzAQA4DQAuAEQ4DQAAAAH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAIAAAAU2VydmVySWQBADkNAC4ARDkNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABIAAABD" +
           "bGllbnRBdWRpdEVudHJ5SWQBADoNAC4ARDoNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABD" +
           "bGllbnRVc2VySWQBADsNAC4ARDsNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABDZXJ0aWZp" +
           "Y2F0ZQEAPA0ALgBEPA0AAAAP/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AuditCertificateUntrustedEventState Class
    #if (!OPCUA_EXCLUDE_AuditCertificateUntrustedEventState)
    /// <summary>
    /// Stores an instance of the AuditCertificateUntrustedEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditCertificateUntrustedEventState : AuditCertificateEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditCertificateUntrustedEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditCertificateUntrustedEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKgAAAEF1ZGl0Q2VydGlmaWNhdGVVbnRydXN0ZWRFdmVudFR5cGVJbnN0" +
           "YW5jZQEAJwgBACcIJwgAAP////8OAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQA9DQAuAEQ9DQAAAA//" +
           "////AQH/////AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQA+DQAuAEQ+DQAAABH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAKAAAAU291cmNlTm9kZQEAPw0ALgBEPw0AAAAR/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACgAAAFNvdXJjZU5hbWUBAEANAC4AREANAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQA" +
           "AABUaW1lAQBBDQAuAERBDQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGlt" +
           "ZQEAQg0ALgBEQg0AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEARA0ALgBE" +
           "RA0AAAAV/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQBFDQAuAERFDQAAAAX/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQBGDQAuAERGDQAAAQAmAf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAYAAABTdGF0dXMBAEcNAC4AREcNAAAAAf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAgAAABTZXJ2ZXJJZAEASA0ALgBESA0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAA" +
           "AENsaWVudEF1ZGl0RW50cnlJZAEASQ0ALgBESQ0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAA" +
           "AENsaWVudFVzZXJJZAEASg0ALgBESg0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAENlcnRp" +
           "ZmljYXRlAQBLDQAuAERLDQAAAA//////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AuditCertificateRevokedEventState Class
    #if (!OPCUA_EXCLUDE_AuditCertificateRevokedEventState)
    /// <summary>
    /// Stores an instance of the AuditCertificateRevokedEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditCertificateRevokedEventState : AuditCertificateEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditCertificateRevokedEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditCertificateRevokedEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKAAAAEF1ZGl0Q2VydGlmaWNhdGVSZXZva2VkRXZlbnRUeXBlSW5zdGFu" +
           "Y2UBACgIAQAoCCgIAAD/////DgAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEATA0ALgBETA0AAAAP////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEATQ0ALgBETQ0AAAAR/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACgAAAFNvdXJjZU5vZGUBAE4NAC4ARE4NAAAAEf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAoAAABTb3VyY2VOYW1lAQBPDQAuAERPDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAA" +
           "VGltZQEAUA0ALgBEUA0AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUB" +
           "AFENAC4ARFENAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAFMNAC4ARFMN" +
           "AAAAFf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAVA0ALgBEVA0AAAAF/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAADwAAAEFjdGlvblRpbWVTdGFtcAEAVQ0ALgBEVQ0AAAEAJgH/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAGAAAAU3RhdHVzAQBWDQAuAERWDQAAAAH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAIAAAAU2VydmVySWQBAFcNAC4ARFcNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABIAAABD" +
           "bGllbnRBdWRpdEVudHJ5SWQBAFgNAC4ARFgNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABD" +
           "bGllbnRVc2VySWQBAFkNAC4ARFkNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABDZXJ0aWZp" +
           "Y2F0ZQEAWg0ALgBEWg0AAAAP/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AuditCertificateMismatchEventState Class
    #if (!OPCUA_EXCLUDE_AuditCertificateMismatchEventState)
    /// <summary>
    /// Stores an instance of the AuditCertificateMismatchEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditCertificateMismatchEventState : AuditCertificateEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditCertificateMismatchEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditCertificateMismatchEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKQAAAEF1ZGl0Q2VydGlmaWNhdGVNaXNtYXRjaEV2ZW50VHlwZUluc3Rh" +
           "bmNlAQApCAEAKQgpCAAA/////w4AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAFsNAC4ARFsNAAAAD///" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAFwNAC4ARFwNAAAAEf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQBdDQAuAERdDQAAABH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAKAAAAU291cmNlTmFtZQEAXg0ALgBEXg0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAA" +
           "AFRpbWUBAF8NAC4ARF8NAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1l" +
           "AQBgDQAuAERgDQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQBiDQAuAERi" +
           "DQAAABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAGMNAC4ARGMNAAAABf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABAGQNAC4ARGQNAAABACYB/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAABgAAAFN0YXR1cwEAZQ0ALgBEZQ0AAAAB/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACAAAAFNlcnZlcklkAQBmDQAuAERmDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAA" +
           "Q2xpZW50QXVkaXRFbnRyeUlkAQBnDQAuAERnDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAA" +
           "Q2xpZW50VXNlcklkAQBoDQAuAERoDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAALAAAAQ2VydGlm" +
           "aWNhdGUBAGkNAC4ARGkNAAAAD/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AuditNodeManagementEventState Class
    #if (!OPCUA_EXCLUDE_AuditNodeManagementEventState)
    /// <summary>
    /// Stores an instance of the AuditNodeManagementEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditNodeManagementEventState : AuditEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditNodeManagementEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditNodeManagementEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJAAAAEF1ZGl0Tm9kZU1hbmFnZW1lbnRFdmVudFR5cGVJbnN0YW5jZQEA" +
           "KggBACoIKggAAP////8NAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQBqDQAuAERqDQAAAA//////AQH/" +
           "////AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQBrDQAuAERrDQAAABH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAKAAAAU291cmNlTm9kZQEAbA0ALgBEbA0AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "CgAAAFNvdXJjZU5hbWUBAG0NAC4ARG0NAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1l" +
           "AQBuDQAuAERuDQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEAbw0A" +
           "LgBEbw0AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAcQ0ALgBEcQ0AAAAV" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQByDQAuAERyDQAAAAX/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQBzDQAuAERzDQAAAQAmAf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAAYAAABTdGF0dXMBAHQNAC4ARHQNAAAAAf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAgAAABTZXJ2ZXJJZAEAdQ0ALgBEdQ0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAENsaWVu" +
           "dEF1ZGl0RW50cnlJZAEAdg0ALgBEdg0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENsaWVu" +
           "dFVzZXJJZAEAdw0ALgBEdw0AAAAM/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AuditAddNodesEventState Class
    #if (!OPCUA_EXCLUDE_AuditAddNodesEventState)
    /// <summary>
    /// Stores an instance of the AuditAddNodesEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditAddNodesEventState : AuditNodeManagementEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditAddNodesEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditAddNodesEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHgAAAEF1ZGl0QWRkTm9kZXNFdmVudFR5cGVJbnN0YW5jZQEAKwgBACsI" +
           "KwgAAP////8OAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQB4DQAuAER4DQAAAA//////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQB5DQAuAER5DQAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAKAAAAU291cmNlTm9kZQEAeg0ALgBEeg0AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFNv" +
           "dXJjZU5hbWUBAHsNAC4ARHsNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQB8DQAu" +
           "AER8DQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEAfQ0ALgBEfQ0A" +
           "AAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAfw0ALgBEfw0AAAAV/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQCADQAuAESADQAAAAX/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQCBDQAuAESBDQAAAQAmAf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAYAAABTdGF0dXMBAIINAC4ARIINAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABT" +
           "ZXJ2ZXJJZAEAgw0ALgBEgw0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAENsaWVudEF1ZGl0" +
           "RW50cnlJZAEAhA0ALgBEhA0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENsaWVudFVzZXJJ" +
           "ZAEAhQ0ALgBEhQ0AAAAM/////wEB/////wAAAAAXYIkKAgAAAAAACgAAAE5vZGVzVG9BZGQBACwIAC4A" +
           "RCwIAAABAHgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<AddNodesItem[]> NodesToAdd
        {
            get
            {
                return m_nodesToAdd;
            }

            set
            {
                if (!Object.ReferenceEquals(m_nodesToAdd, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_nodesToAdd = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_nodesToAdd != null)
            {
                children.Add(m_nodesToAdd);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.NodesToAdd:
                {
                    if (createOrReplace)
                    {
                        if (NodesToAdd == null)
                        {
                            if (replacement == null)
                            {
                                NodesToAdd = new PropertyState<AddNodesItem[]>(this);
                            }
                            else
                            {
                                NodesToAdd = (PropertyState<AddNodesItem[]>)replacement;
                            }
                        }
                    }

                    instance = NodesToAdd;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<AddNodesItem[]> m_nodesToAdd;
        #endregion
    }
    #endif
    #endregion

    #region AuditDeleteNodesEventState Class
    #if (!OPCUA_EXCLUDE_AuditDeleteNodesEventState)
    /// <summary>
    /// Stores an instance of the AuditDeleteNodesEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditDeleteNodesEventState : AuditNodeManagementEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditDeleteNodesEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditDeleteNodesEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIQAAAEF1ZGl0RGVsZXRlTm9kZXNFdmVudFR5cGVJbnN0YW5jZQEALQgB" +
           "AC0ILQgAAP////8OAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQCGDQAuAESGDQAAAA//////AQH/////" +
           "AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQCHDQAuAESHDQAAABH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAKAAAAU291cmNlTm9kZQEAiA0ALgBEiA0AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAA" +
           "AFNvdXJjZU5hbWUBAIkNAC4ARIkNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQCK" +
           "DQAuAESKDQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEAiw0ALgBE" +
           "iw0AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAjQ0ALgBEjQ0AAAAV////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQCODQAuAESODQAAAAX/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQCPDQAuAESPDQAAAQAmAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAYAAABTdGF0dXMBAJANAC4ARJANAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAgA" +
           "AABTZXJ2ZXJJZAEAkQ0ALgBEkQ0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAENsaWVudEF1" +
           "ZGl0RW50cnlJZAEAkg0ALgBEkg0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENsaWVudFVz" +
           "ZXJJZAEAkw0ALgBEkw0AAAAM/////wEB/////wAAAAAXYIkKAgAAAAAADQAAAE5vZGVzVG9EZWxldGUB" +
           "AC4IAC4ARC4IAAABAH4BAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<DeleteNodesItem[]> NodesToDelete
        {
            get
            {
                return m_nodesToDelete;
            }

            set
            {
                if (!Object.ReferenceEquals(m_nodesToDelete, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_nodesToDelete = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_nodesToDelete != null)
            {
                children.Add(m_nodesToDelete);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.NodesToDelete:
                {
                    if (createOrReplace)
                    {
                        if (NodesToDelete == null)
                        {
                            if (replacement == null)
                            {
                                NodesToDelete = new PropertyState<DeleteNodesItem[]>(this);
                            }
                            else
                            {
                                NodesToDelete = (PropertyState<DeleteNodesItem[]>)replacement;
                            }
                        }
                    }

                    instance = NodesToDelete;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<DeleteNodesItem[]> m_nodesToDelete;
        #endregion
    }
    #endif
    #endregion

    #region AuditAddReferencesEventState Class
    #if (!OPCUA_EXCLUDE_AuditAddReferencesEventState)
    /// <summary>
    /// Stores an instance of the AuditAddReferencesEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditAddReferencesEventState : AuditNodeManagementEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditAddReferencesEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditAddReferencesEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIwAAAEF1ZGl0QWRkUmVmZXJlbmNlc0V2ZW50VHlwZUluc3RhbmNlAQAv" +
           "CAEALwgvCAAA/////w4AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAJQNAC4ARJQNAAAAD/////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAJUNAC4ARJUNAAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABTb3VyY2VOb2RlAQCWDQAuAESWDQAAABH/////AQH/////AAAAABVgiQoCAAAAAAAK" +
           "AAAAU291cmNlTmFtZQEAlw0ALgBElw0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUB" +
           "AJgNAC4ARJgNAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQCZDQAu" +
           "AESZDQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQCbDQAuAESbDQAAABX/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAJwNAC4ARJwNAAAABf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABAJ0NAC4ARJ0NAAABACYB/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAABgAAAFN0YXR1cwEAng0ALgBEng0AAAAB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "CAAAAFNlcnZlcklkAQCfDQAuAESfDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAAQ2xpZW50" +
           "QXVkaXRFbnRyeUlkAQCgDQAuAESgDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50" +
           "VXNlcklkAQChDQAuAEShDQAAAAz/////AQH/////AAAAABdgiQoCAAAAAAAPAAAAUmVmZXJlbmNlc1Rv" +
           "QWRkAQAwCAAuAEQwCAAAAQB7AQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<AddReferencesItem[]> ReferencesToAdd
        {
            get
            {
                return m_referencesToAdd;
            }

            set
            {
                if (!Object.ReferenceEquals(m_referencesToAdd, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_referencesToAdd = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_referencesToAdd != null)
            {
                children.Add(m_referencesToAdd);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ReferencesToAdd:
                {
                    if (createOrReplace)
                    {
                        if (ReferencesToAdd == null)
                        {
                            if (replacement == null)
                            {
                                ReferencesToAdd = new PropertyState<AddReferencesItem[]>(this);
                            }
                            else
                            {
                                ReferencesToAdd = (PropertyState<AddReferencesItem[]>)replacement;
                            }
                        }
                    }

                    instance = ReferencesToAdd;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<AddReferencesItem[]> m_referencesToAdd;
        #endregion
    }
    #endif
    #endregion

    #region AuditDeleteReferencesEventState Class
    #if (!OPCUA_EXCLUDE_AuditDeleteReferencesEventState)
    /// <summary>
    /// Stores an instance of the AuditDeleteReferencesEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditDeleteReferencesEventState : AuditNodeManagementEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditDeleteReferencesEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditDeleteReferencesEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJgAAAEF1ZGl0RGVsZXRlUmVmZXJlbmNlc0V2ZW50VHlwZUluc3RhbmNl" +
           "AQAxCAEAMQgxCAAA/////w4AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAKINAC4ARKINAAAAD/////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAKMNAC4ARKMNAAAAEf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQCkDQAuAESkDQAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAKAAAAU291cmNlTmFtZQEApQ0ALgBEpQ0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRp" +
           "bWUBAKYNAC4ARKYNAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQCn" +
           "DQAuAESnDQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQCpDQAuAESpDQAA" +
           "ABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAKoNAC4ARKoNAAAABf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABAKsNAC4ARKsNAAABACYB/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAABgAAAFN0YXR1cwEArA0ALgBErA0AAAAB/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACAAAAFNlcnZlcklkAQCtDQAuAEStDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAAQ2xp" +
           "ZW50QXVkaXRFbnRyeUlkAQCuDQAuAESuDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xp" +
           "ZW50VXNlcklkAQCvDQAuAESvDQAAAAz/////AQH/////AAAAABdgiQoCAAAAAAASAAAAUmVmZXJlbmNl" +
           "c1RvRGVsZXRlAQAyCAAuAEQyCAAAAQCBAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<DeleteReferencesItem[]> ReferencesToDelete
        {
            get
            {
                return m_referencesToDelete;
            }

            set
            {
                if (!Object.ReferenceEquals(m_referencesToDelete, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_referencesToDelete = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_referencesToDelete != null)
            {
                children.Add(m_referencesToDelete);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ReferencesToDelete:
                {
                    if (createOrReplace)
                    {
                        if (ReferencesToDelete == null)
                        {
                            if (replacement == null)
                            {
                                ReferencesToDelete = new PropertyState<DeleteReferencesItem[]>(this);
                            }
                            else
                            {
                                ReferencesToDelete = (PropertyState<DeleteReferencesItem[]>)replacement;
                            }
                        }
                    }

                    instance = ReferencesToDelete;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<DeleteReferencesItem[]> m_referencesToDelete;
        #endregion
    }
    #endif
    #endregion

    #region AuditUpdateEventState Class
    #if (!OPCUA_EXCLUDE_AuditUpdateEventState)
    /// <summary>
    /// Stores an instance of the AuditUpdateEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditUpdateEventState : AuditEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditUpdateEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditUpdateEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHAAAAEF1ZGl0VXBkYXRlRXZlbnRUeXBlSW5zdGFuY2UBADMIAQAzCDMI" +
           "AAD/////DQAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEAsA0ALgBEsA0AAAAP/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACQAAAEV2ZW50VHlwZQEAsQ0ALgBEsQ0AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "CgAAAFNvdXJjZU5vZGUBALINAC4ARLINAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABTb3Vy" +
           "Y2VOYW1lAQCzDQAuAESzDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGltZQEAtA0ALgBE" +
           "tA0AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBALUNAC4ARLUNAAAB" +
           "ACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBALcNAC4ARLcNAAAAFf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAuA0ALgBEuA0AAAAF/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAADwAAAEFjdGlvblRpbWVTdGFtcAEAuQ0ALgBEuQ0AAAEAJgH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAGAAAAU3RhdHVzAQC6DQAuAES6DQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2Vy" +
           "dmVySWQBALsNAC4ARLsNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABIAAABDbGllbnRBdWRpdEVu" +
           "dHJ5SWQBALwNAC4ARLwNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGllbnRVc2VySWQB" +
           "AL0NAC4ARL0NAAAADP////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AuditWriteUpdateEventState Class
    #if (!OPCUA_EXCLUDE_AuditWriteUpdateEventState)
    /// <summary>
    /// Stores an instance of the AuditWriteUpdateEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditWriteUpdateEventState : AuditUpdateEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditWriteUpdateEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditWriteUpdateEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIQAAAEF1ZGl0V3JpdGVVcGRhdGVFdmVudFR5cGVJbnN0YW5jZQEANAgB" +
           "ADQINAgAAP////8RAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQC+DQAuAES+DQAAAA//////AQH/////" +
           "AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQC/DQAuAES/DQAAABH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAKAAAAU291cmNlTm9kZQEAwA0ALgBEwA0AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAA" +
           "AFNvdXJjZU5hbWUBAMENAC4ARMENAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQDC" +
           "DQAuAETCDQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEAww0ALgBE" +
           "ww0AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAxQ0ALgBExQ0AAAAV////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQDGDQAuAETGDQAAAAX/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQDHDQAuAETHDQAAAQAmAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAYAAABTdGF0dXMBAMgNAC4ARMgNAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAgA" +
           "AABTZXJ2ZXJJZAEAyQ0ALgBEyQ0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAENsaWVudEF1" +
           "ZGl0RW50cnlJZAEAyg0ALgBEyg0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENsaWVudFVz" +
           "ZXJJZAEAyw0ALgBEyw0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAEF0dHJpYnV0ZUlkAQC+" +
           "CgAuAES+CgAAAAf/////AQH/////AAAAABVgiQoCAAAAAAAKAAAASW5kZXhSYW5nZQEANQgALgBENQgA" +
           "AAEAIwH/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAT2xkVmFsdWUBADYIAC4ARDYIAAAAGP////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAgAAABOZXdWYWx1ZQEANwgALgBENwgAAAAY/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<uint> AttributeId
        {
            get
            {
                return m_attributeId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_attributeId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_attributeId = value;
            }
        }

        /// <remarks />
        public PropertyState<string> IndexRange
        {
            get
            {
                return m_indexRange;
            }

            set
            {
                if (!Object.ReferenceEquals(m_indexRange, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_indexRange = value;
            }
        }

        /// <remarks />
        public PropertyState OldValue
        {
            get
            {
                return m_oldValue;
            }

            set
            {
                if (!Object.ReferenceEquals(m_oldValue, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_oldValue = value;
            }
        }

        /// <remarks />
        public PropertyState NewValue
        {
            get
            {
                return m_newValue;
            }

            set
            {
                if (!Object.ReferenceEquals(m_newValue, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_newValue = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_attributeId != null)
            {
                children.Add(m_attributeId);
            }

            if (m_indexRange != null)
            {
                children.Add(m_indexRange);
            }

            if (m_oldValue != null)
            {
                children.Add(m_oldValue);
            }

            if (m_newValue != null)
            {
                children.Add(m_newValue);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.AttributeId:
                {
                    if (createOrReplace)
                    {
                        if (AttributeId == null)
                        {
                            if (replacement == null)
                            {
                                AttributeId = new PropertyState<uint>(this);
                            }
                            else
                            {
                                AttributeId = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = AttributeId;
                    break;
                }

                case Opc.Ua.BrowseNames.IndexRange:
                {
                    if (createOrReplace)
                    {
                        if (IndexRange == null)
                        {
                            if (replacement == null)
                            {
                                IndexRange = new PropertyState<string>(this);
                            }
                            else
                            {
                                IndexRange = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = IndexRange;
                    break;
                }

                case Opc.Ua.BrowseNames.OldValue:
                {
                    if (createOrReplace)
                    {
                        if (OldValue == null)
                        {
                            if (replacement == null)
                            {
                                OldValue = new PropertyState(this);
                            }
                            else
                            {
                                OldValue = (PropertyState)replacement;
                            }
                        }
                    }

                    instance = OldValue;
                    break;
                }

                case Opc.Ua.BrowseNames.NewValue:
                {
                    if (createOrReplace)
                    {
                        if (NewValue == null)
                        {
                            if (replacement == null)
                            {
                                NewValue = new PropertyState(this);
                            }
                            else
                            {
                                NewValue = (PropertyState)replacement;
                            }
                        }
                    }

                    instance = NewValue;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<uint> m_attributeId;
        private PropertyState<string> m_indexRange;
        private PropertyState m_oldValue;
        private PropertyState m_newValue;
        #endregion
    }
    #endif
    #endregion

    #region AuditHistoryUpdateEventState Class
    #if (!OPCUA_EXCLUDE_AuditHistoryUpdateEventState)
    /// <summary>
    /// Stores an instance of the AuditHistoryUpdateEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditHistoryUpdateEventState : AuditUpdateEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditHistoryUpdateEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditHistoryUpdateEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIwAAAEF1ZGl0SGlzdG9yeVVwZGF0ZUV2ZW50VHlwZUluc3RhbmNlAQA4" +
           "CAEAOAg4CAAA/////w4AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAMwNAC4ARMwNAAAAD/////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAM0NAC4ARM0NAAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABTb3VyY2VOb2RlAQDODQAuAETODQAAABH/////AQH/////AAAAABVgiQoCAAAAAAAK" +
           "AAAAU291cmNlTmFtZQEAzw0ALgBEzw0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUB" +
           "ANANAC4ARNANAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQDRDQAu" +
           "AETRDQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQDTDQAuAETTDQAAABX/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBANQNAC4ARNQNAAAABf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABANUNAC4ARNUNAAABACYB/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAABgAAAFN0YXR1cwEA1g0ALgBE1g0AAAAB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "CAAAAFNlcnZlcklkAQDXDQAuAETXDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAAQ2xpZW50" +
           "QXVkaXRFbnRyeUlkAQDYDQAuAETYDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50" +
           "VXNlcklkAQDZDQAuAETZDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAATAAAAUGFyYW1ldGVyRGF0" +
           "YVR5cGVJZAEAvwoALgBEvwoAAAAR/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> ParameterDataTypeId
        {
            get
            {
                return m_parameterDataTypeId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_parameterDataTypeId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_parameterDataTypeId = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_parameterDataTypeId != null)
            {
                children.Add(m_parameterDataTypeId);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ParameterDataTypeId:
                {
                    if (createOrReplace)
                    {
                        if (ParameterDataTypeId == null)
                        {
                            if (replacement == null)
                            {
                                ParameterDataTypeId = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                ParameterDataTypeId = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = ParameterDataTypeId;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_parameterDataTypeId;
        #endregion
    }
    #endif
    #endregion

    #region AuditUpdateMethodEventState Class
    #if (!OPCUA_EXCLUDE_AuditUpdateMethodEventState)
    /// <summary>
    /// Stores an instance of the AuditUpdateMethodEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditUpdateMethodEventState : AuditEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditUpdateMethodEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditUpdateMethodEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIgAAAEF1ZGl0VXBkYXRlTWV0aG9kRXZlbnRUeXBlSW5zdGFuY2UBAE8I" +
           "AQBPCE8IAAD/////DwAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEANw4ALgBENw4AAAAP/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEAOA4ALgBEOA4AAAAR/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACgAAAFNvdXJjZU5vZGUBADkOAC4ARDkOAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoA" +
           "AABTb3VyY2VOYW1lAQA6DgAuAEQ6DgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGltZQEA" +
           "Ow4ALgBEOw4AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBADwOAC4A" +
           "RDwOAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAD4OAC4ARD4OAAAAFf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAPw4ALgBEPw4AAAAF/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAADwAAAEFjdGlvblRpbWVTdGFtcAEAQA4ALgBEQA4AAAEAJgH/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAGAAAAU3RhdHVzAQBBDgAuAERBDgAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAI" +
           "AAAAU2VydmVySWQBAEIOAC4AREIOAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABIAAABDbGllbnRB" +
           "dWRpdEVudHJ5SWQBAEMOAC4AREMOAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGllbnRV" +
           "c2VySWQBAEQOAC4AREQOAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABNZXRob2RJZAEAUAgA" +
           "LgBEUAgAAAAR/////wEB/////wAAAAAXYIkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBRCAAuAERR" +
           "CAAAABgBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> MethodId
        {
            get
            {
                return m_methodId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_methodId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_methodId = value;
            }
        }

        /// <remarks />
        public PropertyState<object[]> InputArguments
        {
            get
            {
                return m_inputArguments;
            }

            set
            {
                if (!Object.ReferenceEquals(m_inputArguments, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_inputArguments = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_methodId != null)
            {
                children.Add(m_methodId);
            }

            if (m_inputArguments != null)
            {
                children.Add(m_inputArguments);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.MethodId:
                {
                    if (createOrReplace)
                    {
                        if (MethodId == null)
                        {
                            if (replacement == null)
                            {
                                MethodId = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                MethodId = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = MethodId;
                    break;
                }

                case Opc.Ua.BrowseNames.InputArguments:
                {
                    if (createOrReplace)
                    {
                        if (InputArguments == null)
                        {
                            if (replacement == null)
                            {
                                InputArguments = new PropertyState<object[]>(this);
                            }
                            else
                            {
                                InputArguments = (PropertyState<object[]>)replacement;
                            }
                        }
                    }

                    instance = InputArguments;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_methodId;
        private PropertyState<object[]> m_inputArguments;
        #endregion
    }
    #endif
    #endregion

    #region SystemEventState Class
    #if (!OPCUA_EXCLUDE_SystemEventState)
    /// <summary>
    /// Stores an instance of the SystemEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SystemEventState : BaseEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SystemEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.SystemEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFwAAAFN5c3RlbUV2ZW50VHlwZUluc3RhbmNlAQBSCAEAUghSCAAA////" +
           "/wgAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAEUOAC4AREUOAAAAD/////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAkAAABFdmVudFR5cGUBAEYOAC4AREYOAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABT" +
           "b3VyY2VOb2RlAQBHDgAuAERHDgAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAAU291cmNlTmFt" +
           "ZQEASA4ALgBESA4AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUBAEkOAC4AREkOAAAB" +
           "ACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQBKDgAuAERKDgAAAQAmAf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQBMDgAuAERMDgAAABX/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAE0OAC4ARE0OAAAABf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region DeviceFailureEventState Class
    #if (!OPCUA_EXCLUDE_DeviceFailureEventState)
    /// <summary>
    /// Stores an instance of the DeviceFailureEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DeviceFailureEventState : SystemEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DeviceFailureEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.DeviceFailureEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHgAAAERldmljZUZhaWx1cmVFdmVudFR5cGVJbnN0YW5jZQEAUwgBAFMI" +
           "UwgAAP////8IAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQBODgAuAERODgAAAA//////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQBPDgAuAERPDgAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAKAAAAU291cmNlTm9kZQEAUA4ALgBEUA4AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFNv" +
           "dXJjZU5hbWUBAFEOAC4ARFEOAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQBSDgAu" +
           "AERSDgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEAUw4ALgBEUw4A" +
           "AAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAVQ4ALgBEVQ4AAAAV/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQBWDgAuAERWDgAAAAX/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region SystemStatusChangeEventState Class
    #if (!OPCUA_EXCLUDE_SystemStatusChangeEventState)
    /// <summary>
    /// Stores an instance of the SystemStatusChangeEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SystemStatusChangeEventState : SystemEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SystemStatusChangeEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.SystemStatusChangeEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIwAAAFN5c3RlbVN0YXR1c0NoYW5nZUV2ZW50VHlwZUluc3RhbmNlAQC2" +
           "LAEAtiy2LAAA/////wkAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBALcsAC4ARLcsAAAAD/////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBALgsAC4ARLgsAAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABTb3VyY2VOb2RlAQC5LAAuAES5LAAAABH/////AQH/////AAAAABVgiQoCAAAAAAAK" +
           "AAAAU291cmNlTmFtZQEAuiwALgBEuiwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUB" +
           "ALssAC4ARLssAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQC8LAAu" +
           "AES8LAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQC+LAAuAES+LAAAABX/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAL8sAC4ARL8sAAAABf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAAsAAABTeXN0ZW1TdGF0ZQEAsC0ALgBEsC0AAAEAVAP/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<ServerState> SystemState
        {
            get
            {
                return m_systemState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_systemState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_systemState = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_systemState != null)
            {
                children.Add(m_systemState);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SystemState:
                {
                    if (createOrReplace)
                    {
                        if (SystemState == null)
                        {
                            if (replacement == null)
                            {
                                SystemState = new PropertyState<ServerState>(this);
                            }
                            else
                            {
                                SystemState = (PropertyState<ServerState>)replacement;
                            }
                        }
                    }

                    instance = SystemState;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<ServerState> m_systemState;
        #endregion
    }
    #endif
    #endregion

    #region BaseModelChangeEventState Class
    #if (!OPCUA_EXCLUDE_BaseModelChangeEventState)
    /// <summary>
    /// Stores an instance of the BaseModelChangeEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class BaseModelChangeEventState : BaseEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public BaseModelChangeEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.BaseModelChangeEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIAAAAEJhc2VNb2RlbENoYW5nZUV2ZW50VHlwZUluc3RhbmNlAQBUCAEA" +
           "VAhUCAAA/////wgAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAFcOAC4ARFcOAAAAD/////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAFgOAC4ARFgOAAAAEf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAoAAABTb3VyY2VOb2RlAQBZDgAuAERZDgAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAA" +
           "U291cmNlTmFtZQEAWg4ALgBEWg4AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUBAFsO" +
           "AC4ARFsOAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQBcDgAuAERc" +
           "DgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQBeDgAuAEReDgAAABX/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAF8OAC4ARF8OAAAABf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region GeneralModelChangeEventState Class
    #if (!OPCUA_EXCLUDE_GeneralModelChangeEventState)
    /// <summary>
    /// Stores an instance of the GeneralModelChangeEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class GeneralModelChangeEventState : BaseModelChangeEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public GeneralModelChangeEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.GeneralModelChangeEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIwAAAEdlbmVyYWxNb2RlbENoYW5nZUV2ZW50VHlwZUluc3RhbmNlAQBV" +
           "CAEAVQhVCAAA/////wkAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAGAOAC4ARGAOAAAAD/////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAGEOAC4ARGEOAAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABTb3VyY2VOb2RlAQBiDgAuAERiDgAAABH/////AQH/////AAAAABVgiQoCAAAAAAAK" +
           "AAAAU291cmNlTmFtZQEAYw4ALgBEYw4AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUB" +
           "AGQOAC4ARGQOAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQBlDgAu" +
           "AERlDgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQBnDgAuAERnDgAAABX/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAGgOAC4ARGgOAAAABf////8BAf////8A" +
           "AAAAF2CJCgIAAAAAAAcAAABDaGFuZ2VzAQBWCAAuAERWCAAAAQBtAwEAAAABAAAAAAAAAAEB/////wAA" +
           "AAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<ModelChangeStructureDataType[]> Changes
        {
            get
            {
                return m_changes;
            }

            set
            {
                if (!Object.ReferenceEquals(m_changes, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_changes = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_changes != null)
            {
                children.Add(m_changes);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Changes:
                {
                    if (createOrReplace)
                    {
                        if (Changes == null)
                        {
                            if (replacement == null)
                            {
                                Changes = new PropertyState<ModelChangeStructureDataType[]>(this);
                            }
                            else
                            {
                                Changes = (PropertyState<ModelChangeStructureDataType[]>)replacement;
                            }
                        }
                    }

                    instance = Changes;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<ModelChangeStructureDataType[]> m_changes;
        #endregion
    }
    #endif
    #endregion

    #region SemanticChangeEventState Class
    #if (!OPCUA_EXCLUDE_SemanticChangeEventState)
    /// <summary>
    /// Stores an instance of the SemanticChangeEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SemanticChangeEventState : BaseEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SemanticChangeEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.SemanticChangeEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHwAAAFNlbWFudGljQ2hhbmdlRXZlbnRUeXBlSW5zdGFuY2UBALIKAQCy" +
           "CrIKAAD/////CQAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEAaQ4ALgBEaQ4AAAAP/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEAag4ALgBEag4AAAAR/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACgAAAFNvdXJjZU5vZGUBAGsOAC4ARGsOAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABT" +
           "b3VyY2VOYW1lAQBsDgAuAERsDgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGltZQEAbQ4A" +
           "LgBEbQ4AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBAG4OAC4ARG4O" +
           "AAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAHAOAC4ARHAOAAAAFf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAcQ4ALgBEcQ4AAAAF/////wEB/////wAAAAAX" +
           "YIkKAgAAAAAABwAAAENoYW5nZXMBALMKAC4ARLMKAAABAIEDAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<SemanticChangeStructureDataType[]> Changes
        {
            get
            {
                return m_changes;
            }

            set
            {
                if (!Object.ReferenceEquals(m_changes, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_changes = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_changes != null)
            {
                children.Add(m_changes);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Changes:
                {
                    if (createOrReplace)
                    {
                        if (Changes == null)
                        {
                            if (replacement == null)
                            {
                                Changes = new PropertyState<SemanticChangeStructureDataType[]>(this);
                            }
                            else
                            {
                                Changes = (PropertyState<SemanticChangeStructureDataType[]>)replacement;
                            }
                        }
                    }

                    instance = Changes;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<SemanticChangeStructureDataType[]> m_changes;
        #endregion
    }
    #endif
    #endregion

    #region EventQueueOverflowEventState Class
    #if (!OPCUA_EXCLUDE_EventQueueOverflowEventState)
    /// <summary>
    /// Stores an instance of the EventQueueOverflowEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class EventQueueOverflowEventState : BaseEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public EventQueueOverflowEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.EventQueueOverflowEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIwAAAEV2ZW50UXVldWVPdmVyZmxvd0V2ZW50VHlwZUluc3RhbmNlAQDb" +
           "CwEA2wvbCwAA/////wgAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAHcMAC4ARHcMAAAAD/////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAHgMAC4ARHgMAAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABTb3VyY2VOb2RlAQB5DAAuAER5DAAAABH/////AQH/////AAAAABVgiQoCAAAAAAAK" +
           "AAAAU291cmNlTmFtZQEAegwALgBEegwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUB" +
           "AHsMAC4ARHsMAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQB8DAAu" +
           "AER8DAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQB+DAAuAER+DAAAABX/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAH8MAC4ARH8MAAAABf////8BAf////8A" +
           "AAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region ProgressEventState Class
    #if (!OPCUA_EXCLUDE_ProgressEventState)
    /// <summary>
    /// Stores an instance of the ProgressEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ProgressEventState : BaseEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ProgressEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ProgressEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGQAAAFByb2dyZXNzRXZlbnRUeXBlSW5zdGFuY2UBAKwsAQCsLKwsAAD/" +
           "////CgAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEArSwALgBErSwAAAAP/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACQAAAEV2ZW50VHlwZQEAriwALgBEriwAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAA" +
           "AFNvdXJjZU5vZGUBAK8sAC4ARK8sAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABTb3VyY2VO" +
           "YW1lAQCwLAAuAESwLAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGltZQEAsSwALgBEsSwA" +
           "AAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBALIsAC4ARLIsAAABACYB" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBALQsAC4ARLQsAAAAFf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAtSwALgBEtSwAAAAF/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAABwAAAENvbnRleHQBANYwAC4ARNYwAAAAGP////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABQcm9n" +
           "cmVzcwEA1zAALgBE1zAAAAAF/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState Context
        {
            get
            {
                return m_context;
            }

            set
            {
                if (!Object.ReferenceEquals(m_context, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_context = value;
            }
        }

        /// <remarks />
        public PropertyState<ushort> Progress
        {
            get
            {
                return m_progress;
            }

            set
            {
                if (!Object.ReferenceEquals(m_progress, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_progress = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_context != null)
            {
                children.Add(m_context);
            }

            if (m_progress != null)
            {
                children.Add(m_progress);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Context:
                {
                    if (createOrReplace)
                    {
                        if (Context == null)
                        {
                            if (replacement == null)
                            {
                                Context = new PropertyState(this);
                            }
                            else
                            {
                                Context = (PropertyState)replacement;
                            }
                        }
                    }

                    instance = Context;
                    break;
                }

                case Opc.Ua.BrowseNames.Progress:
                {
                    if (createOrReplace)
                    {
                        if (Progress == null)
                        {
                            if (replacement == null)
                            {
                                Progress = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                Progress = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = Progress;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState m_context;
        private PropertyState<ushort> m_progress;
        #endregion
    }
    #endif
    #endregion

    #region AggregateFunctionState Class
    #if (!OPCUA_EXCLUDE_AggregateFunctionState)
    /// <summary>
    /// Stores an instance of the AggregateFunctionType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AggregateFunctionState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AggregateFunctionState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AggregateFunctionType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHQAAAEFnZ3JlZ2F0ZUZ1bmN0aW9uVHlwZUluc3RhbmNlAQAkCQEAJAkk" +
           "CQAA/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region ServerVendorCapabilityState Class
    #if (!OPCUA_EXCLUDE_ServerVendorCapabilityState)
    /// <summary>
    /// Stores an instance of the ServerVendorCapabilityType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ServerVendorCapabilityState : BaseDataVariableState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ServerVendorCapabilityState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.ServerVendorCapabilityType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.BaseDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAIgAAAFNlcnZlclZlbmRvckNhcGFiaWxpdHlUeXBlSW5zdGFuY2UBAFkI" +
           "AQBZCFkIAAAAGP////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }

    #region ServerVendorCapabilityState<T> Class
    /// <summary>
    /// A typed version of the ServerVendorCapabilityType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class ServerVendorCapabilityState<T> : ServerVendorCapabilityState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public ServerVendorCapabilityState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region ServerStatusState Class
    #if (!OPCUA_EXCLUDE_ServerStatusState)
    /// <summary>
    /// Stores an instance of the ServerStatusType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ServerStatusState : BaseDataVariableState<ServerStatusDataType>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ServerStatusState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.ServerStatusType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.ServerStatusDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAGAAAAFNlcnZlclN0YXR1c1R5cGVJbnN0YW5jZQEAWggBAFoIWggAAAEA" +
           "XgP/////AQH/////BgAAABVgiQoCAAAAAAAJAAAAU3RhcnRUaW1lAQBbCAAvAD9bCAAAAQAmAf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAsAAABDdXJyZW50VGltZQEAXAgALwA/XAgAAAEAJgH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAFAAAAU3RhdGUBAF0IAC8AP10IAAABAFQD/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACQAAAEJ1aWxkSW5mbwEAXggALwEA6wteCAAAAQBSAf////8BAf////8GAAAAFXCJCgIAAAAAAAoA" +
           "AABQcm9kdWN0VXJpAQByDgAvAD9yDgAAAAz/////AQEAAAAAAECPQP////8AAAAAFXCJCgIAAAAAABAA" +
           "AABNYW51ZmFjdHVyZXJOYW1lAQBzDgAvAD9zDgAAAAz/////AQEAAAAAAECPQP////8AAAAAFXCJCgIA" +
           "AAAAAAsAAABQcm9kdWN0TmFtZQEAdA4ALwA/dA4AAAAM/////wEBAAAAAABAj0D/////AAAAABVwiQoC" +
           "AAAAAAAPAAAAU29mdHdhcmVWZXJzaW9uAQB1DgAvAD91DgAAAAz/////AQEAAAAAAECPQP////8AAAAA" +
           "FXCJCgIAAAAAAAsAAABCdWlsZE51bWJlcgEAdg4ALwA/dg4AAAAM/////wEBAAAAAABAj0D/////AAAA" +
           "ABVwiQoCAAAAAAAJAAAAQnVpbGREYXRlAQB3DgAvAD93DgAAAQAmAf////8BAQAAAAAAQI9A/////wAA" +
           "AAAVYIkKAgAAAAAAEwAAAFNlY29uZHNUaWxsU2h1dGRvd24BAMAKAC8AP8AKAAAAB/////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAA4AAABTaHV0ZG93blJlYXNvbgEAwQoALwA/wQoAAAAV/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<DateTime> StartTime
        {
            get
            {
                return m_startTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_startTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_startTime = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<DateTime> CurrentTime
        {
            get
            {
                return m_currentTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_currentTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_currentTime = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServerState> State
        {
            get
            {
                return m_state;
            }

            set
            {
                if (!Object.ReferenceEquals(m_state, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_state = value;
            }
        }

        /// <remarks />
        public BuildInfoVariableState BuildInfo
        {
            get
            {
                return m_buildInfo;
            }

            set
            {
                if (!Object.ReferenceEquals(m_buildInfo, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_buildInfo = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> SecondsTillShutdown
        {
            get
            {
                return m_secondsTillShutdown;
            }

            set
            {
                if (!Object.ReferenceEquals(m_secondsTillShutdown, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_secondsTillShutdown = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<LocalizedText> ShutdownReason
        {
            get
            {
                return m_shutdownReason;
            }

            set
            {
                if (!Object.ReferenceEquals(m_shutdownReason, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_shutdownReason = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_startTime != null)
            {
                children.Add(m_startTime);
            }

            if (m_currentTime != null)
            {
                children.Add(m_currentTime);
            }

            if (m_state != null)
            {
                children.Add(m_state);
            }

            if (m_buildInfo != null)
            {
                children.Add(m_buildInfo);
            }

            if (m_secondsTillShutdown != null)
            {
                children.Add(m_secondsTillShutdown);
            }

            if (m_shutdownReason != null)
            {
                children.Add(m_shutdownReason);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.StartTime:
                {
                    if (createOrReplace)
                    {
                        if (StartTime == null)
                        {
                            if (replacement == null)
                            {
                                StartTime = new BaseDataVariableState<DateTime>(this);
                            }
                            else
                            {
                                StartTime = (BaseDataVariableState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = StartTime;
                    break;
                }

                case Opc.Ua.BrowseNames.CurrentTime:
                {
                    if (createOrReplace)
                    {
                        if (CurrentTime == null)
                        {
                            if (replacement == null)
                            {
                                CurrentTime = new BaseDataVariableState<DateTime>(this);
                            }
                            else
                            {
                                CurrentTime = (BaseDataVariableState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = CurrentTime;
                    break;
                }

                case Opc.Ua.BrowseNames.State:
                {
                    if (createOrReplace)
                    {
                        if (State == null)
                        {
                            if (replacement == null)
                            {
                                State = new BaseDataVariableState<ServerState>(this);
                            }
                            else
                            {
                                State = (BaseDataVariableState<ServerState>)replacement;
                            }
                        }
                    }

                    instance = State;
                    break;
                }

                case Opc.Ua.BrowseNames.BuildInfo:
                {
                    if (createOrReplace)
                    {
                        if (BuildInfo == null)
                        {
                            if (replacement == null)
                            {
                                BuildInfo = new BuildInfoVariableState(this);
                            }
                            else
                            {
                                BuildInfo = (BuildInfoVariableState)replacement;
                            }
                        }
                    }

                    instance = BuildInfo;
                    break;
                }

                case Opc.Ua.BrowseNames.SecondsTillShutdown:
                {
                    if (createOrReplace)
                    {
                        if (SecondsTillShutdown == null)
                        {
                            if (replacement == null)
                            {
                                SecondsTillShutdown = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                SecondsTillShutdown = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = SecondsTillShutdown;
                    break;
                }

                case Opc.Ua.BrowseNames.ShutdownReason:
                {
                    if (createOrReplace)
                    {
                        if (ShutdownReason == null)
                        {
                            if (replacement == null)
                            {
                                ShutdownReason = new BaseDataVariableState<LocalizedText>(this);
                            }
                            else
                            {
                                ShutdownReason = (BaseDataVariableState<LocalizedText>)replacement;
                            }
                        }
                    }

                    instance = ShutdownReason;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<DateTime> m_startTime;
        private BaseDataVariableState<DateTime> m_currentTime;
        private BaseDataVariableState<ServerState> m_state;
        private BuildInfoVariableState m_buildInfo;
        private BaseDataVariableState<uint> m_secondsTillShutdown;
        private BaseDataVariableState<LocalizedText> m_shutdownReason;
        #endregion
    }

    #region ServerStatusValue Class
    /// <summary>
    /// A typed version of the _BrowseName_ variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class ServerStatusValue : BaseVariableValue
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public ServerStatusValue(ServerStatusState variable, ServerStatusDataType value, object dataLock) : base(dataLock)
        {
            m_value = value;

            if (m_value == null)
            {
                m_value = new ServerStatusDataType();
            }

            Initialize(variable);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The variable that the value belongs to.
        /// </summary>
        public ServerStatusState Variable
        {
            get { return m_variable; }
        }

        /// <summary>
        /// The value of the variable.
        /// </summary>
        public ServerStatusDataType Value
        {
            get { return m_value;  }
            set { m_value = value; }
        }
        #endregion

        #region Private Methods
        /// <summary>
        /// Initializes the object.
        /// </summary>
        private void Initialize(ServerStatusState variable)
        {
            lock (Lock)
            {
                m_variable = variable;

                variable.Value = m_value;

                variable.OnReadValue = OnReadValue;
                variable.OnSimpleWriteValue = OnWriteValue;

                BaseVariableState instance = null;
                List<BaseInstanceState> updateList = new List<BaseInstanceState>();
                updateList.Add(variable);

                instance = m_variable.StartTime;
                instance.OnReadValue = OnRead_StartTime;
                instance.OnSimpleWriteValue = OnWrite_StartTime;
                updateList.Add(instance);
                instance = m_variable.CurrentTime;
                instance.OnReadValue = OnRead_CurrentTime;
                instance.OnSimpleWriteValue = OnWrite_CurrentTime;
                updateList.Add(instance);
                instance = m_variable.State;
                instance.OnReadValue = OnRead_State;
                instance.OnSimpleWriteValue = OnWrite_State;
                updateList.Add(instance);
                instance = m_variable.BuildInfo;
                instance.OnReadValue = OnRead_BuildInfo;
                instance.OnSimpleWriteValue = OnWrite_BuildInfo;
                updateList.Add(instance);
                instance = m_variable.BuildInfo.ProductUri;
                instance.OnReadValue = OnRead_BuildInfo_ProductUri;
                instance.OnSimpleWriteValue = OnWrite_BuildInfo_ProductUri;
                updateList.Add(instance);
                instance = m_variable.BuildInfo.ManufacturerName;
                instance.OnReadValue = OnRead_BuildInfo_ManufacturerName;
                instance.OnSimpleWriteValue = OnWrite_BuildInfo_ManufacturerName;
                updateList.Add(instance);
                instance = m_variable.BuildInfo.ProductName;
                instance.OnReadValue = OnRead_BuildInfo_ProductName;
                instance.OnSimpleWriteValue = OnWrite_BuildInfo_ProductName;
                updateList.Add(instance);
                instance = m_variable.BuildInfo.SoftwareVersion;
                instance.OnReadValue = OnRead_BuildInfo_SoftwareVersion;
                instance.OnSimpleWriteValue = OnWrite_BuildInfo_SoftwareVersion;
                updateList.Add(instance);
                instance = m_variable.BuildInfo.BuildNumber;
                instance.OnReadValue = OnRead_BuildInfo_BuildNumber;
                instance.OnSimpleWriteValue = OnWrite_BuildInfo_BuildNumber;
                updateList.Add(instance);
                instance = m_variable.BuildInfo.BuildDate;
                instance.OnReadValue = OnRead_BuildInfo_BuildDate;
                instance.OnSimpleWriteValue = OnWrite_BuildInfo_BuildDate;
                updateList.Add(instance);
                instance = m_variable.SecondsTillShutdown;
                instance.OnReadValue = OnRead_SecondsTillShutdown;
                instance.OnSimpleWriteValue = OnWrite_SecondsTillShutdown;
                updateList.Add(instance);
                instance = m_variable.ShutdownReason;
                instance.OnReadValue = OnRead_ShutdownReason;
                instance.OnSimpleWriteValue = OnWrite_ShutdownReason;
                updateList.Add(instance);

                SetUpdateList(updateList);
            }
        }

        /// <summary>
        /// Reads the value of the variable.
        /// </summary>
        protected ServiceResult OnReadValue(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable.
        /// </summary>
        private ServiceResult OnWriteValue(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value = (ServerStatusDataType)Write(value);
            }

            return ServiceResult.Good;
        }

        #region StartTime Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_StartTime(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.StartTime;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_StartTime(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.StartTime = (DateTime)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CurrentTime Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CurrentTime(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CurrentTime;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CurrentTime(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CurrentTime = (DateTime)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region State Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_State(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.State;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_State(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.State = (ServerState)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region BuildInfo Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_BuildInfo(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.BuildInfo;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_BuildInfo(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.BuildInfo = (BuildInfo)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region BuildInfo_ProductUri Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_BuildInfo_ProductUri(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.BuildInfo.ProductUri;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_BuildInfo_ProductUri(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.BuildInfo.ProductUri = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region BuildInfo_ManufacturerName Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_BuildInfo_ManufacturerName(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.BuildInfo.ManufacturerName;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_BuildInfo_ManufacturerName(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.BuildInfo.ManufacturerName = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region BuildInfo_ProductName Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_BuildInfo_ProductName(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.BuildInfo.ProductName;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_BuildInfo_ProductName(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.BuildInfo.ProductName = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region BuildInfo_SoftwareVersion Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_BuildInfo_SoftwareVersion(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.BuildInfo.SoftwareVersion;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_BuildInfo_SoftwareVersion(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.BuildInfo.SoftwareVersion = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region BuildInfo_BuildNumber Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_BuildInfo_BuildNumber(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.BuildInfo.BuildNumber;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_BuildInfo_BuildNumber(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.BuildInfo.BuildNumber = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region BuildInfo_BuildDate Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_BuildInfo_BuildDate(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.BuildInfo.BuildDate;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_BuildInfo_BuildDate(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.BuildInfo.BuildDate = (DateTime)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region SecondsTillShutdown Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SecondsTillShutdown(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SecondsTillShutdown;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SecondsTillShutdown(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SecondsTillShutdown = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region ShutdownReason Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ShutdownReason(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ShutdownReason;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ShutdownReason(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ShutdownReason = (LocalizedText)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion
        #endregion

        #region Private Fields
        private ServerStatusDataType m_value;
        private ServerStatusState m_variable;
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region BuildInfoVariableState Class
    #if (!OPCUA_EXCLUDE_BuildInfoVariableState)
    /// <summary>
    /// Stores an instance of the BuildInfoType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class BuildInfoVariableState : BaseDataVariableState<BuildInfo>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public BuildInfoVariableState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.BuildInfoType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.BuildInfo, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAFQAAAEJ1aWxkSW5mb1R5cGVJbnN0YW5jZQEA6wsBAOsL6wsAAAEAUgH/" +
           "////AQH/////BgAAABVwiQoCAAAAAAAKAAAAUHJvZHVjdFVyaQEA7AsALwA/7AsAAAAM/////wEBAAAA" +
           "AABAj0D/////AAAAABVwiQoCAAAAAAAQAAAATWFudWZhY3R1cmVyTmFtZQEA7QsALwA/7QsAAAAM////" +
           "/wEBAAAAAABAj0D/////AAAAABVwiQoCAAAAAAALAAAAUHJvZHVjdE5hbWUBAO4LAC8AP+4LAAAADP//" +
           "//8BAQAAAAAAQI9A/////wAAAAAVcIkKAgAAAAAADwAAAFNvZnR3YXJlVmVyc2lvbgEA7wsALwA/7wsA" +
           "AAAM/////wEBAAAAAABAj0D/////AAAAABVwiQoCAAAAAAALAAAAQnVpbGROdW1iZXIBAPALAC8AP/AL" +
           "AAAADP////8BAQAAAAAAQI9A/////wAAAAAVcIkKAgAAAAAACQAAAEJ1aWxkRGF0ZQEA8QsALwA/8QsA" +
           "AAEAJgH/////AQEAAAAAAECPQP////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<string> ProductUri
        {
            get
            {
                return m_productUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_productUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_productUri = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> ManufacturerName
        {
            get
            {
                return m_manufacturerName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_manufacturerName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_manufacturerName = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> ProductName
        {
            get
            {
                return m_productName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_productName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_productName = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> SoftwareVersion
        {
            get
            {
                return m_softwareVersion;
            }

            set
            {
                if (!Object.ReferenceEquals(m_softwareVersion, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_softwareVersion = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> BuildNumber
        {
            get
            {
                return m_buildNumber;
            }

            set
            {
                if (!Object.ReferenceEquals(m_buildNumber, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_buildNumber = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<DateTime> BuildDate
        {
            get
            {
                return m_buildDate;
            }

            set
            {
                if (!Object.ReferenceEquals(m_buildDate, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_buildDate = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_productUri != null)
            {
                children.Add(m_productUri);
            }

            if (m_manufacturerName != null)
            {
                children.Add(m_manufacturerName);
            }

            if (m_productName != null)
            {
                children.Add(m_productName);
            }

            if (m_softwareVersion != null)
            {
                children.Add(m_softwareVersion);
            }

            if (m_buildNumber != null)
            {
                children.Add(m_buildNumber);
            }

            if (m_buildDate != null)
            {
                children.Add(m_buildDate);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ProductUri:
                {
                    if (createOrReplace)
                    {
                        if (ProductUri == null)
                        {
                            if (replacement == null)
                            {
                                ProductUri = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                ProductUri = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = ProductUri;
                    break;
                }

                case Opc.Ua.BrowseNames.ManufacturerName:
                {
                    if (createOrReplace)
                    {
                        if (ManufacturerName == null)
                        {
                            if (replacement == null)
                            {
                                ManufacturerName = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                ManufacturerName = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = ManufacturerName;
                    break;
                }

                case Opc.Ua.BrowseNames.ProductName:
                {
                    if (createOrReplace)
                    {
                        if (ProductName == null)
                        {
                            if (replacement == null)
                            {
                                ProductName = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                ProductName = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = ProductName;
                    break;
                }

                case Opc.Ua.BrowseNames.SoftwareVersion:
                {
                    if (createOrReplace)
                    {
                        if (SoftwareVersion == null)
                        {
                            if (replacement == null)
                            {
                                SoftwareVersion = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                SoftwareVersion = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = SoftwareVersion;
                    break;
                }

                case Opc.Ua.BrowseNames.BuildNumber:
                {
                    if (createOrReplace)
                    {
                        if (BuildNumber == null)
                        {
                            if (replacement == null)
                            {
                                BuildNumber = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                BuildNumber = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = BuildNumber;
                    break;
                }

                case Opc.Ua.BrowseNames.BuildDate:
                {
                    if (createOrReplace)
                    {
                        if (BuildDate == null)
                        {
                            if (replacement == null)
                            {
                                BuildDate = new BaseDataVariableState<DateTime>(this);
                            }
                            else
                            {
                                BuildDate = (BaseDataVariableState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = BuildDate;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<string> m_productUri;
        private BaseDataVariableState<string> m_manufacturerName;
        private BaseDataVariableState<string> m_productName;
        private BaseDataVariableState<string> m_softwareVersion;
        private BaseDataVariableState<string> m_buildNumber;
        private BaseDataVariableState<DateTime> m_buildDate;
        #endregion
    }

    #region BuildInfoVariableValue Class
    /// <summary>
    /// A typed version of the _BrowseName_ variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class BuildInfoVariableValue : BaseVariableValue
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public BuildInfoVariableValue(BuildInfoVariableState variable, BuildInfo value, object dataLock) : base(dataLock)
        {
            m_value = value;

            if (m_value == null)
            {
                m_value = new BuildInfo();
            }

            Initialize(variable);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The variable that the value belongs to.
        /// </summary>
        public BuildInfoVariableState Variable
        {
            get { return m_variable; }
        }

        /// <summary>
        /// The value of the variable.
        /// </summary>
        public BuildInfo Value
        {
            get { return m_value;  }
            set { m_value = value; }
        }
        #endregion

        #region Private Methods
        /// <summary>
        /// Initializes the object.
        /// </summary>
        private void Initialize(BuildInfoVariableState variable)
        {
            lock (Lock)
            {
                m_variable = variable;

                variable.Value = m_value;

                variable.OnReadValue = OnReadValue;
                variable.OnSimpleWriteValue = OnWriteValue;

                BaseVariableState instance = null;
                List<BaseInstanceState> updateList = new List<BaseInstanceState>();
                updateList.Add(variable);

                instance = m_variable.ProductUri;
                instance.OnReadValue = OnRead_ProductUri;
                instance.OnSimpleWriteValue = OnWrite_ProductUri;
                updateList.Add(instance);
                instance = m_variable.ManufacturerName;
                instance.OnReadValue = OnRead_ManufacturerName;
                instance.OnSimpleWriteValue = OnWrite_ManufacturerName;
                updateList.Add(instance);
                instance = m_variable.ProductName;
                instance.OnReadValue = OnRead_ProductName;
                instance.OnSimpleWriteValue = OnWrite_ProductName;
                updateList.Add(instance);
                instance = m_variable.SoftwareVersion;
                instance.OnReadValue = OnRead_SoftwareVersion;
                instance.OnSimpleWriteValue = OnWrite_SoftwareVersion;
                updateList.Add(instance);
                instance = m_variable.BuildNumber;
                instance.OnReadValue = OnRead_BuildNumber;
                instance.OnSimpleWriteValue = OnWrite_BuildNumber;
                updateList.Add(instance);
                instance = m_variable.BuildDate;
                instance.OnReadValue = OnRead_BuildDate;
                instance.OnSimpleWriteValue = OnWrite_BuildDate;
                updateList.Add(instance);

                SetUpdateList(updateList);
            }
        }

        /// <summary>
        /// Reads the value of the variable.
        /// </summary>
        protected ServiceResult OnReadValue(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable.
        /// </summary>
        private ServiceResult OnWriteValue(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value = (BuildInfo)Write(value);
            }

            return ServiceResult.Good;
        }

        #region ProductUri Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ProductUri(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ProductUri;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ProductUri(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ProductUri = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region ManufacturerName Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ManufacturerName(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ManufacturerName;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ManufacturerName(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ManufacturerName = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region ProductName Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ProductName(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ProductName;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ProductName(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ProductName = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region SoftwareVersion Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SoftwareVersion(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SoftwareVersion;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SoftwareVersion(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SoftwareVersion = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region BuildNumber Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_BuildNumber(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.BuildNumber;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_BuildNumber(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.BuildNumber = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region BuildDate Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_BuildDate(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.BuildDate;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_BuildDate(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.BuildDate = (DateTime)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion
        #endregion

        #region Private Fields
        private BuildInfo m_value;
        private BuildInfoVariableState m_variable;
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region ServerDiagnosticsSummaryState Class
    #if (!OPCUA_EXCLUDE_ServerDiagnosticsSummaryState)
    /// <summary>
    /// Stores an instance of the ServerDiagnosticsSummaryType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ServerDiagnosticsSummaryState : BaseDataVariableState<ServerDiagnosticsSummaryDataType>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ServerDiagnosticsSummaryState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.ServerDiagnosticsSummaryType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.ServerDiagnosticsSummaryDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAJAAAAFNlcnZlckRpYWdub3N0aWNzU3VtbWFyeVR5cGVJbnN0YW5jZQEA" +
           "ZggBAGYIZggAAAEAWwP/////AQH/////DAAAABVgiQoCAAAAAAAPAAAAU2VydmVyVmlld0NvdW50AQBn" +
           "CAAvAD9nCAAAAAf/////AQH/////AAAAABVgiQoCAAAAAAATAAAAQ3VycmVudFNlc3Npb25Db3VudAEA" +
           "aAgALwA/aAgAAAAH/////wEB/////wAAAAAVYIkKAgAAAAAAFQAAAEN1bXVsYXRlZFNlc3Npb25Db3Vu" +
           "dAEAaQgALwA/aQgAAAAH/////wEB/////wAAAAAVYIkKAgAAAAAAHAAAAFNlY3VyaXR5UmVqZWN0ZWRT" +
           "ZXNzaW9uQ291bnQBAGoIAC8AP2oIAAAAB/////8BAf////8AAAAAFWCJCgIAAAAAABQAAABSZWplY3Rl" +
           "ZFNlc3Npb25Db3VudAEAawgALwA/awgAAAAH/////wEB/////wAAAAAVYIkKAgAAAAAAEwAAAFNlc3Np" +
           "b25UaW1lb3V0Q291bnQBAGwIAC8AP2wIAAAAB/////8BAf////8AAAAAFWCJCgIAAAAAABEAAABTZXNz" +
           "aW9uQWJvcnRDb3VudAEAbQgALwA/bQgAAAAH/////wEB/////wAAAAAVYIkKAgAAAAAAFwAAAFB1Ymxp" +
           "c2hpbmdJbnRlcnZhbENvdW50AQBvCAAvAD9vCAAAAAf/////AQH/////AAAAABVgiQoCAAAAAAAYAAAA" +
           "Q3VycmVudFN1YnNjcmlwdGlvbkNvdW50AQBwCAAvAD9wCAAAAAf/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAaAAAAQ3VtdWxhdGVkU3Vic2NyaXB0aW9uQ291bnQBAHEIAC8AP3EIAAAAB/////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAB0AAABTZWN1cml0eVJlamVjdGVkUmVxdWVzdHNDb3VudAEAcggALwA/cggAAAAH////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAAFQAAAFJlamVjdGVkUmVxdWVzdHNDb3VudAEAcwgALwA/cwgAAAAH" +
           "/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<uint> ServerViewCount
        {
            get
            {
                return m_serverViewCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serverViewCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serverViewCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> CurrentSessionCount
        {
            get
            {
                return m_currentSessionCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_currentSessionCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_currentSessionCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> CumulatedSessionCount
        {
            get
            {
                return m_cumulatedSessionCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_cumulatedSessionCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_cumulatedSessionCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> SecurityRejectedSessionCount
        {
            get
            {
                return m_securityRejectedSessionCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_securityRejectedSessionCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_securityRejectedSessionCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> RejectedSessionCount
        {
            get
            {
                return m_rejectedSessionCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_rejectedSessionCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_rejectedSessionCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> SessionTimeoutCount
        {
            get
            {
                return m_sessionTimeoutCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sessionTimeoutCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sessionTimeoutCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> SessionAbortCount
        {
            get
            {
                return m_sessionAbortCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sessionAbortCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sessionAbortCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> PublishingIntervalCount
        {
            get
            {
                return m_publishingIntervalCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_publishingIntervalCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_publishingIntervalCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> CurrentSubscriptionCount
        {
            get
            {
                return m_currentSubscriptionCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_currentSubscriptionCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_currentSubscriptionCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> CumulatedSubscriptionCount
        {
            get
            {
                return m_cumulatedSubscriptionCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_cumulatedSubscriptionCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_cumulatedSubscriptionCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> SecurityRejectedRequestsCount
        {
            get
            {
                return m_securityRejectedRequestsCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_securityRejectedRequestsCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_securityRejectedRequestsCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> RejectedRequestsCount
        {
            get
            {
                return m_rejectedRequestsCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_rejectedRequestsCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_rejectedRequestsCount = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_serverViewCount != null)
            {
                children.Add(m_serverViewCount);
            }

            if (m_currentSessionCount != null)
            {
                children.Add(m_currentSessionCount);
            }

            if (m_cumulatedSessionCount != null)
            {
                children.Add(m_cumulatedSessionCount);
            }

            if (m_securityRejectedSessionCount != null)
            {
                children.Add(m_securityRejectedSessionCount);
            }

            if (m_rejectedSessionCount != null)
            {
                children.Add(m_rejectedSessionCount);
            }

            if (m_sessionTimeoutCount != null)
            {
                children.Add(m_sessionTimeoutCount);
            }

            if (m_sessionAbortCount != null)
            {
                children.Add(m_sessionAbortCount);
            }

            if (m_publishingIntervalCount != null)
            {
                children.Add(m_publishingIntervalCount);
            }

            if (m_currentSubscriptionCount != null)
            {
                children.Add(m_currentSubscriptionCount);
            }

            if (m_cumulatedSubscriptionCount != null)
            {
                children.Add(m_cumulatedSubscriptionCount);
            }

            if (m_securityRejectedRequestsCount != null)
            {
                children.Add(m_securityRejectedRequestsCount);
            }

            if (m_rejectedRequestsCount != null)
            {
                children.Add(m_rejectedRequestsCount);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ServerViewCount:
                {
                    if (createOrReplace)
                    {
                        if (ServerViewCount == null)
                        {
                            if (replacement == null)
                            {
                                ServerViewCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                ServerViewCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = ServerViewCount;
                    break;
                }

                case Opc.Ua.BrowseNames.CurrentSessionCount:
                {
                    if (createOrReplace)
                    {
                        if (CurrentSessionCount == null)
                        {
                            if (replacement == null)
                            {
                                CurrentSessionCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                CurrentSessionCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = CurrentSessionCount;
                    break;
                }

                case Opc.Ua.BrowseNames.CumulatedSessionCount:
                {
                    if (createOrReplace)
                    {
                        if (CumulatedSessionCount == null)
                        {
                            if (replacement == null)
                            {
                                CumulatedSessionCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                CumulatedSessionCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = CumulatedSessionCount;
                    break;
                }

                case Opc.Ua.BrowseNames.SecurityRejectedSessionCount:
                {
                    if (createOrReplace)
                    {
                        if (SecurityRejectedSessionCount == null)
                        {
                            if (replacement == null)
                            {
                                SecurityRejectedSessionCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                SecurityRejectedSessionCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = SecurityRejectedSessionCount;
                    break;
                }

                case Opc.Ua.BrowseNames.RejectedSessionCount:
                {
                    if (createOrReplace)
                    {
                        if (RejectedSessionCount == null)
                        {
                            if (replacement == null)
                            {
                                RejectedSessionCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                RejectedSessionCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = RejectedSessionCount;
                    break;
                }

                case Opc.Ua.BrowseNames.SessionTimeoutCount:
                {
                    if (createOrReplace)
                    {
                        if (SessionTimeoutCount == null)
                        {
                            if (replacement == null)
                            {
                                SessionTimeoutCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                SessionTimeoutCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = SessionTimeoutCount;
                    break;
                }

                case Opc.Ua.BrowseNames.SessionAbortCount:
                {
                    if (createOrReplace)
                    {
                        if (SessionAbortCount == null)
                        {
                            if (replacement == null)
                            {
                                SessionAbortCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                SessionAbortCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = SessionAbortCount;
                    break;
                }

                case Opc.Ua.BrowseNames.PublishingIntervalCount:
                {
                    if (createOrReplace)
                    {
                        if (PublishingIntervalCount == null)
                        {
                            if (replacement == null)
                            {
                                PublishingIntervalCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                PublishingIntervalCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = PublishingIntervalCount;
                    break;
                }

                case Opc.Ua.BrowseNames.CurrentSubscriptionCount:
                {
                    if (createOrReplace)
                    {
                        if (CurrentSubscriptionCount == null)
                        {
                            if (replacement == null)
                            {
                                CurrentSubscriptionCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                CurrentSubscriptionCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = CurrentSubscriptionCount;
                    break;
                }

                case Opc.Ua.BrowseNames.CumulatedSubscriptionCount:
                {
                    if (createOrReplace)
                    {
                        if (CumulatedSubscriptionCount == null)
                        {
                            if (replacement == null)
                            {
                                CumulatedSubscriptionCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                CumulatedSubscriptionCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = CumulatedSubscriptionCount;
                    break;
                }

                case Opc.Ua.BrowseNames.SecurityRejectedRequestsCount:
                {
                    if (createOrReplace)
                    {
                        if (SecurityRejectedRequestsCount == null)
                        {
                            if (replacement == null)
                            {
                                SecurityRejectedRequestsCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                SecurityRejectedRequestsCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = SecurityRejectedRequestsCount;
                    break;
                }

                case Opc.Ua.BrowseNames.RejectedRequestsCount:
                {
                    if (createOrReplace)
                    {
                        if (RejectedRequestsCount == null)
                        {
                            if (replacement == null)
                            {
                                RejectedRequestsCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                RejectedRequestsCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = RejectedRequestsCount;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<uint> m_serverViewCount;
        private BaseDataVariableState<uint> m_currentSessionCount;
        private BaseDataVariableState<uint> m_cumulatedSessionCount;
        private BaseDataVariableState<uint> m_securityRejectedSessionCount;
        private BaseDataVariableState<uint> m_rejectedSessionCount;
        private BaseDataVariableState<uint> m_sessionTimeoutCount;
        private BaseDataVariableState<uint> m_sessionAbortCount;
        private BaseDataVariableState<uint> m_publishingIntervalCount;
        private BaseDataVariableState<uint> m_currentSubscriptionCount;
        private BaseDataVariableState<uint> m_cumulatedSubscriptionCount;
        private BaseDataVariableState<uint> m_securityRejectedRequestsCount;
        private BaseDataVariableState<uint> m_rejectedRequestsCount;
        #endregion
    }

    #region ServerDiagnosticsSummaryValue Class
    /// <summary>
    /// A typed version of the _BrowseName_ variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class ServerDiagnosticsSummaryValue : BaseVariableValue
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public ServerDiagnosticsSummaryValue(ServerDiagnosticsSummaryState variable, ServerDiagnosticsSummaryDataType value, object dataLock) : base(dataLock)
        {
            m_value = value;

            if (m_value == null)
            {
                m_value = new ServerDiagnosticsSummaryDataType();
            }

            Initialize(variable);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The variable that the value belongs to.
        /// </summary>
        public ServerDiagnosticsSummaryState Variable
        {
            get { return m_variable; }
        }

        /// <summary>
        /// The value of the variable.
        /// </summary>
        public ServerDiagnosticsSummaryDataType Value
        {
            get { return m_value;  }
            set { m_value = value; }
        }
        #endregion

        #region Private Methods
        /// <summary>
        /// Initializes the object.
        /// </summary>
        private void Initialize(ServerDiagnosticsSummaryState variable)
        {
            lock (Lock)
            {
                m_variable = variable;

                variable.Value = m_value;

                variable.OnReadValue = OnReadValue;
                variable.OnSimpleWriteValue = OnWriteValue;

                BaseVariableState instance = null;
                List<BaseInstanceState> updateList = new List<BaseInstanceState>();
                updateList.Add(variable);

                instance = m_variable.ServerViewCount;
                instance.OnReadValue = OnRead_ServerViewCount;
                instance.OnSimpleWriteValue = OnWrite_ServerViewCount;
                updateList.Add(instance);
                instance = m_variable.CurrentSessionCount;
                instance.OnReadValue = OnRead_CurrentSessionCount;
                instance.OnSimpleWriteValue = OnWrite_CurrentSessionCount;
                updateList.Add(instance);
                instance = m_variable.CumulatedSessionCount;
                instance.OnReadValue = OnRead_CumulatedSessionCount;
                instance.OnSimpleWriteValue = OnWrite_CumulatedSessionCount;
                updateList.Add(instance);
                instance = m_variable.SecurityRejectedSessionCount;
                instance.OnReadValue = OnRead_SecurityRejectedSessionCount;
                instance.OnSimpleWriteValue = OnWrite_SecurityRejectedSessionCount;
                updateList.Add(instance);
                instance = m_variable.RejectedSessionCount;
                instance.OnReadValue = OnRead_RejectedSessionCount;
                instance.OnSimpleWriteValue = OnWrite_RejectedSessionCount;
                updateList.Add(instance);
                instance = m_variable.SessionTimeoutCount;
                instance.OnReadValue = OnRead_SessionTimeoutCount;
                instance.OnSimpleWriteValue = OnWrite_SessionTimeoutCount;
                updateList.Add(instance);
                instance = m_variable.SessionAbortCount;
                instance.OnReadValue = OnRead_SessionAbortCount;
                instance.OnSimpleWriteValue = OnWrite_SessionAbortCount;
                updateList.Add(instance);
                instance = m_variable.CurrentSubscriptionCount;
                instance.OnReadValue = OnRead_CurrentSubscriptionCount;
                instance.OnSimpleWriteValue = OnWrite_CurrentSubscriptionCount;
                updateList.Add(instance);
                instance = m_variable.CumulatedSubscriptionCount;
                instance.OnReadValue = OnRead_CumulatedSubscriptionCount;
                instance.OnSimpleWriteValue = OnWrite_CumulatedSubscriptionCount;
                updateList.Add(instance);
                instance = m_variable.PublishingIntervalCount;
                instance.OnReadValue = OnRead_PublishingIntervalCount;
                instance.OnSimpleWriteValue = OnWrite_PublishingIntervalCount;
                updateList.Add(instance);
                instance = m_variable.SecurityRejectedRequestsCount;
                instance.OnReadValue = OnRead_SecurityRejectedRequestsCount;
                instance.OnSimpleWriteValue = OnWrite_SecurityRejectedRequestsCount;
                updateList.Add(instance);
                instance = m_variable.RejectedRequestsCount;
                instance.OnReadValue = OnRead_RejectedRequestsCount;
                instance.OnSimpleWriteValue = OnWrite_RejectedRequestsCount;
                updateList.Add(instance);

                SetUpdateList(updateList);
            }
        }

        /// <summary>
        /// Reads the value of the variable.
        /// </summary>
        protected ServiceResult OnReadValue(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable.
        /// </summary>
        private ServiceResult OnWriteValue(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value = (ServerDiagnosticsSummaryDataType)Write(value);
            }

            return ServiceResult.Good;
        }

        #region ServerViewCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ServerViewCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ServerViewCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ServerViewCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ServerViewCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CurrentSessionCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CurrentSessionCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CurrentSessionCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CurrentSessionCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CurrentSessionCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CumulatedSessionCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CumulatedSessionCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CumulatedSessionCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CumulatedSessionCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CumulatedSessionCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region SecurityRejectedSessionCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SecurityRejectedSessionCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SecurityRejectedSessionCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SecurityRejectedSessionCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SecurityRejectedSessionCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region RejectedSessionCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_RejectedSessionCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.RejectedSessionCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_RejectedSessionCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.RejectedSessionCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region SessionTimeoutCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SessionTimeoutCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SessionTimeoutCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SessionTimeoutCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SessionTimeoutCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region SessionAbortCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SessionAbortCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SessionAbortCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SessionAbortCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SessionAbortCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CurrentSubscriptionCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CurrentSubscriptionCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CurrentSubscriptionCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CurrentSubscriptionCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CurrentSubscriptionCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CumulatedSubscriptionCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CumulatedSubscriptionCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CumulatedSubscriptionCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CumulatedSubscriptionCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CumulatedSubscriptionCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region PublishingIntervalCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_PublishingIntervalCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.PublishingIntervalCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_PublishingIntervalCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.PublishingIntervalCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region SecurityRejectedRequestsCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SecurityRejectedRequestsCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SecurityRejectedRequestsCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SecurityRejectedRequestsCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SecurityRejectedRequestsCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region RejectedRequestsCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_RejectedRequestsCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.RejectedRequestsCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_RejectedRequestsCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.RejectedRequestsCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion
        #endregion

        #region Private Fields
        private ServerDiagnosticsSummaryDataType m_value;
        private ServerDiagnosticsSummaryState m_variable;
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region SamplingIntervalDiagnosticsArrayState Class
    #if (!OPCUA_EXCLUDE_SamplingIntervalDiagnosticsArrayState)
    /// <summary>
    /// Stores an instance of the SamplingIntervalDiagnosticsArrayType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SamplingIntervalDiagnosticsArrayState : BaseDataVariableState<SamplingIntervalDiagnosticsDataType[]>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SamplingIntervalDiagnosticsArrayState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.SamplingIntervalDiagnosticsArrayType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.SamplingIntervalDiagnosticsDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.OneDimension;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8XYIkCAgAAAAAALAAAAFNhbXBsaW5nSW50ZXJ2YWxEaWFnbm9zdGljc0FycmF5VHlwZUlu" +
           "c3RhbmNlAQB0CAEAdAh0CAAAAQBYAwEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region SamplingIntervalDiagnosticsState Class
    #if (!OPCUA_EXCLUDE_SamplingIntervalDiagnosticsState)
    /// <summary>
    /// Stores an instance of the SamplingIntervalDiagnosticsType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SamplingIntervalDiagnosticsState : BaseDataVariableState<SamplingIntervalDiagnosticsDataType>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SamplingIntervalDiagnosticsState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.SamplingIntervalDiagnosticsType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.SamplingIntervalDiagnosticsDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAJwAAAFNhbXBsaW5nSW50ZXJ2YWxEaWFnbm9zdGljc1R5cGVJbnN0YW5j" +
           "ZQEAdQgBAHUIdQgAAAEAWAP/////AQH/////BAAAABVgiQoCAAAAAAAQAAAAU2FtcGxpbmdJbnRlcnZh" +
           "bAEAdggALwA/dggAAAEAIgH/////AQH/////AAAAABVgiQoCAAAAAAAaAAAAU2FtcGxlZE1vbml0b3Jl" +
           "ZEl0ZW1zQ291bnQBALEtAC8AP7EtAAAAB/////8BAf////8AAAAAFWCJCgIAAAAAAB0AAABNYXhTYW1w" +
           "bGVkTW9uaXRvcmVkSXRlbXNDb3VudAEAsi0ALwA/si0AAAAH/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "IwAAAERpc2FibGVkTW9uaXRvcmVkSXRlbXNTYW1wbGluZ0NvdW50AQCzLQAvAD+zLQAAAAf/////AQH/" +
           "////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<double> SamplingInterval
        {
            get
            {
                return m_samplingInterval;
            }

            set
            {
                if (!Object.ReferenceEquals(m_samplingInterval, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_samplingInterval = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> SampledMonitoredItemsCount
        {
            get
            {
                return m_sampledMonitoredItemsCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sampledMonitoredItemsCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sampledMonitoredItemsCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> MaxSampledMonitoredItemsCount
        {
            get
            {
                return m_maxSampledMonitoredItemsCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxSampledMonitoredItemsCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxSampledMonitoredItemsCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> DisabledMonitoredItemsSamplingCount
        {
            get
            {
                return m_disabledMonitoredItemsSamplingCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_disabledMonitoredItemsSamplingCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_disabledMonitoredItemsSamplingCount = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_samplingInterval != null)
            {
                children.Add(m_samplingInterval);
            }

            if (m_sampledMonitoredItemsCount != null)
            {
                children.Add(m_sampledMonitoredItemsCount);
            }

            if (m_maxSampledMonitoredItemsCount != null)
            {
                children.Add(m_maxSampledMonitoredItemsCount);
            }

            if (m_disabledMonitoredItemsSamplingCount != null)
            {
                children.Add(m_disabledMonitoredItemsSamplingCount);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SamplingInterval:
                {
                    if (createOrReplace)
                    {
                        if (SamplingInterval == null)
                        {
                            if (replacement == null)
                            {
                                SamplingInterval = new BaseDataVariableState<double>(this);
                            }
                            else
                            {
                                SamplingInterval = (BaseDataVariableState<double>)replacement;
                            }
                        }
                    }

                    instance = SamplingInterval;
                    break;
                }

                case Opc.Ua.BrowseNames.SampledMonitoredItemsCount:
                {
                    if (createOrReplace)
                    {
                        if (SampledMonitoredItemsCount == null)
                        {
                            if (replacement == null)
                            {
                                SampledMonitoredItemsCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                SampledMonitoredItemsCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = SampledMonitoredItemsCount;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxSampledMonitoredItemsCount:
                {
                    if (createOrReplace)
                    {
                        if (MaxSampledMonitoredItemsCount == null)
                        {
                            if (replacement == null)
                            {
                                MaxSampledMonitoredItemsCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                MaxSampledMonitoredItemsCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxSampledMonitoredItemsCount;
                    break;
                }

                case Opc.Ua.BrowseNames.DisabledMonitoredItemsSamplingCount:
                {
                    if (createOrReplace)
                    {
                        if (DisabledMonitoredItemsSamplingCount == null)
                        {
                            if (replacement == null)
                            {
                                DisabledMonitoredItemsSamplingCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                DisabledMonitoredItemsSamplingCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = DisabledMonitoredItemsSamplingCount;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<double> m_samplingInterval;
        private BaseDataVariableState<uint> m_sampledMonitoredItemsCount;
        private BaseDataVariableState<uint> m_maxSampledMonitoredItemsCount;
        private BaseDataVariableState<uint> m_disabledMonitoredItemsSamplingCount;
        #endregion
    }

    #region SamplingIntervalDiagnosticsValue Class
    /// <summary>
    /// A typed version of the _BrowseName_ variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class SamplingIntervalDiagnosticsValue : BaseVariableValue
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public SamplingIntervalDiagnosticsValue(SamplingIntervalDiagnosticsState variable, SamplingIntervalDiagnosticsDataType value, object dataLock) : base(dataLock)
        {
            m_value = value;

            if (m_value == null)
            {
                m_value = new SamplingIntervalDiagnosticsDataType();
            }

            Initialize(variable);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The variable that the value belongs to.
        /// </summary>
        public SamplingIntervalDiagnosticsState Variable
        {
            get { return m_variable; }
        }

        /// <summary>
        /// The value of the variable.
        /// </summary>
        public SamplingIntervalDiagnosticsDataType Value
        {
            get { return m_value;  }
            set { m_value = value; }
        }
        #endregion

        #region Private Methods
        /// <summary>
        /// Initializes the object.
        /// </summary>
        private void Initialize(SamplingIntervalDiagnosticsState variable)
        {
            lock (Lock)
            {
                m_variable = variable;

                variable.Value = m_value;

                variable.OnReadValue = OnReadValue;
                variable.OnSimpleWriteValue = OnWriteValue;

                BaseVariableState instance = null;
                List<BaseInstanceState> updateList = new List<BaseInstanceState>();
                updateList.Add(variable);

                instance = m_variable.SamplingInterval;
                instance.OnReadValue = OnRead_SamplingInterval;
                instance.OnSimpleWriteValue = OnWrite_SamplingInterval;
                updateList.Add(instance);

                SetUpdateList(updateList);
            }
        }

        /// <summary>
        /// Reads the value of the variable.
        /// </summary>
        protected ServiceResult OnReadValue(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable.
        /// </summary>
        private ServiceResult OnWriteValue(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value = (SamplingIntervalDiagnosticsDataType)Write(value);
            }

            return ServiceResult.Good;
        }

        #region SamplingInterval Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SamplingInterval(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SamplingInterval;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SamplingInterval(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SamplingInterval = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion
        #endregion

        #region Private Fields
        private SamplingIntervalDiagnosticsDataType m_value;
        private SamplingIntervalDiagnosticsState m_variable;
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region SubscriptionDiagnosticsArrayState Class
    #if (!OPCUA_EXCLUDE_SubscriptionDiagnosticsArrayState)
    /// <summary>
    /// Stores an instance of the SubscriptionDiagnosticsArrayType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SubscriptionDiagnosticsArrayState : BaseDataVariableState<SubscriptionDiagnosticsDataType[]>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SubscriptionDiagnosticsArrayState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.SubscriptionDiagnosticsArrayType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.SubscriptionDiagnosticsDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.OneDimension;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8XYIkCAgAAAAAAKAAAAFN1YnNjcmlwdGlvbkRpYWdub3N0aWNzQXJyYXlUeXBlSW5zdGFu" +
           "Y2UBAHsIAQB7CHsIAAABAGoDAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region SubscriptionDiagnosticsState Class
    #if (!OPCUA_EXCLUDE_SubscriptionDiagnosticsState)
    /// <summary>
    /// Stores an instance of the SubscriptionDiagnosticsType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SubscriptionDiagnosticsState : BaseDataVariableState<SubscriptionDiagnosticsDataType>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SubscriptionDiagnosticsState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.SubscriptionDiagnosticsType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.SubscriptionDiagnosticsDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAIwAAAFN1YnNjcmlwdGlvbkRpYWdub3N0aWNzVHlwZUluc3RhbmNlAQB8" +
           "CAEAfAh8CAAAAQBqA/////8BAf////8fAAAAFWCJCgIAAAAAAAkAAABTZXNzaW9uSWQBAH0IAC8AP30I" +
           "AAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAA4AAABTdWJzY3JpcHRpb25JZAEAfggALwA/fggAAAAH" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFByaW9yaXR5AQB/CAAvAD9/CAAAAAP/////AQH/////" +
           "AAAAABVgiQoCAAAAAAASAAAAUHVibGlzaGluZ0ludGVydmFsAQCACAAvAD+ACAAAAQAiAf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABEAAABNYXhLZWVwQWxpdmVDb3VudAEAgQgALwA/gQgAAAAH/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAAEAAAAE1heExpZmV0aW1lQ291bnQBALgiAC8AP7giAAAAB/////8BAf////8A" +
           "AAAAFWCJCgIAAAAAABoAAABNYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaAEAgwgALwA/gwgAAAAH////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAAEQAAAFB1Ymxpc2hpbmdFbmFibGVkAQCECAAvAD+ECAAAAAH/////" +
           "AQH/////AAAAABVgiQoCAAAAAAALAAAATW9kaWZ5Q291bnQBAIUIAC8AP4UIAAAAB/////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAAsAAABFbmFibGVDb3VudAEAhggALwA/hggAAAAH/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAADAAAAERpc2FibGVDb3VudAEAhwgALwA/hwgAAAAH/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "FQAAAFJlcHVibGlzaFJlcXVlc3RDb3VudAEAiAgALwA/iAgAAAAH/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAAHAAAAFJlcHVibGlzaE1lc3NhZ2VSZXF1ZXN0Q291bnQBAIkIAC8AP4kIAAAAB/////8BAf////8A" +
           "AAAAFWCJCgIAAAAAABUAAABSZXB1Ymxpc2hNZXNzYWdlQ291bnQBAIoIAC8AP4oIAAAAB/////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABQAAABUcmFuc2ZlclJlcXVlc3RDb3VudAEAiwgALwA/iwgAAAAH/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAAGwAAAFRyYW5zZmVycmVkVG9BbHRDbGllbnRDb3VudAEAjAgALwA/jAgA" +
           "AAAH/////wEB/////wAAAAAVYIkKAgAAAAAAHAAAAFRyYW5zZmVycmVkVG9TYW1lQ2xpZW50Q291bnQB" +
           "AI0IAC8AP40IAAAAB/////8BAf////8AAAAAFWCJCgIAAAAAABMAAABQdWJsaXNoUmVxdWVzdENvdW50" +
           "AQCOCAAvAD+OCAAAAAf/////AQH/////AAAAABVgiQoCAAAAAAAcAAAARGF0YUNoYW5nZU5vdGlmaWNh" +
           "dGlvbnNDb3VudAEAjwgALwA/jwgAAAAH/////wEB/////wAAAAAVYIkKAgAAAAAAFwAAAEV2ZW50Tm90" +
           "aWZpY2F0aW9uc0NvdW50AQC2CwAvAD+2CwAAAAf/////AQH/////AAAAABVgiQoCAAAAAAASAAAATm90" +
           "aWZpY2F0aW9uc0NvdW50AQCRCAAvAD+RCAAAAAf/////AQH/////AAAAABVgiQoCAAAAAAAXAAAATGF0" +
           "ZVB1Ymxpc2hSZXF1ZXN0Q291bnQBALkiAC8AP7kiAAAAB/////8BAf////8AAAAAFWCJCgIAAAAAABUA" +
           "AABDdXJyZW50S2VlcEFsaXZlQ291bnQBALoiAC8AP7oiAAAAB/////8BAf////8AAAAAFWCJCgIAAAAA" +
           "ABQAAABDdXJyZW50TGlmZXRpbWVDb3VudAEAuyIALwA/uyIAAAAH/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAAGgAAAFVuYWNrbm93bGVkZ2VkTWVzc2FnZUNvdW50AQC8IgAvAD+8IgAAAAf/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAVAAAARGlzY2FyZGVkTWVzc2FnZUNvdW50AQC9IgAvAD+9IgAAAAf/////AQH/////" +
           "AAAAABVgiQoCAAAAAAASAAAATW9uaXRvcmVkSXRlbUNvdW50AQC+IgAvAD++IgAAAAf/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAaAAAARGlzYWJsZWRNb25pdG9yZWRJdGVtQ291bnQBAL8iAC8AP78iAAAAB///" +
           "//8BAf////8AAAAAFWCJCgIAAAAAABwAAABNb25pdG9yaW5nUXVldWVPdmVyZmxvd0NvdW50AQDAIgAv" +
           "AD/AIgAAAAf/////AQH/////AAAAABVgiQoCAAAAAAASAAAATmV4dFNlcXVlbmNlTnVtYmVyAQDBIgAv" +
           "AD/BIgAAAAf/////AQH/////AAAAABVgiQoCAAAAAAAXAAAARXZlbnRRdWV1ZU92ZXJmbG93Q291bnQB" +
           "AMYiAC8AP8YiAAAAB/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<NodeId> SessionId
        {
            get
            {
                return m_sessionId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sessionId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sessionId = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> SubscriptionId
        {
            get
            {
                return m_subscriptionId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_subscriptionId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_subscriptionId = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<byte> Priority
        {
            get
            {
                return m_priority;
            }

            set
            {
                if (!Object.ReferenceEquals(m_priority, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_priority = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<double> PublishingInterval
        {
            get
            {
                return m_publishingInterval;
            }

            set
            {
                if (!Object.ReferenceEquals(m_publishingInterval, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_publishingInterval = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> MaxKeepAliveCount
        {
            get
            {
                return m_maxKeepAliveCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxKeepAliveCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxKeepAliveCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> MaxLifetimeCount
        {
            get
            {
                return m_maxLifetimeCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxLifetimeCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxLifetimeCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> MaxNotificationsPerPublish
        {
            get
            {
                return m_maxNotificationsPerPublish;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxNotificationsPerPublish, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxNotificationsPerPublish = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<bool> PublishingEnabled
        {
            get
            {
                return m_publishingEnabled;
            }

            set
            {
                if (!Object.ReferenceEquals(m_publishingEnabled, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_publishingEnabled = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> ModifyCount
        {
            get
            {
                return m_modifyCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_modifyCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_modifyCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> EnableCount
        {
            get
            {
                return m_enableCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_enableCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_enableCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> DisableCount
        {
            get
            {
                return m_disableCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_disableCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_disableCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> RepublishRequestCount
        {
            get
            {
                return m_republishRequestCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_republishRequestCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_republishRequestCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> RepublishMessageRequestCount
        {
            get
            {
                return m_republishMessageRequestCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_republishMessageRequestCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_republishMessageRequestCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> RepublishMessageCount
        {
            get
            {
                return m_republishMessageCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_republishMessageCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_republishMessageCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> TransferRequestCount
        {
            get
            {
                return m_transferRequestCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transferRequestCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transferRequestCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> TransferredToAltClientCount
        {
            get
            {
                return m_transferredToAltClientCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transferredToAltClientCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transferredToAltClientCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> TransferredToSameClientCount
        {
            get
            {
                return m_transferredToSameClientCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transferredToSameClientCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transferredToSameClientCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> PublishRequestCount
        {
            get
            {
                return m_publishRequestCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_publishRequestCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_publishRequestCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> DataChangeNotificationsCount
        {
            get
            {
                return m_dataChangeNotificationsCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataChangeNotificationsCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataChangeNotificationsCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> EventNotificationsCount
        {
            get
            {
                return m_eventNotificationsCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_eventNotificationsCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_eventNotificationsCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> NotificationsCount
        {
            get
            {
                return m_notificationsCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_notificationsCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_notificationsCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> LatePublishRequestCount
        {
            get
            {
                return m_latePublishRequestCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_latePublishRequestCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_latePublishRequestCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> CurrentKeepAliveCount
        {
            get
            {
                return m_currentKeepAliveCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_currentKeepAliveCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_currentKeepAliveCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> CurrentLifetimeCount
        {
            get
            {
                return m_currentLifetimeCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_currentLifetimeCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_currentLifetimeCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> UnacknowledgedMessageCount
        {
            get
            {
                return m_unacknowledgedMessageCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_unacknowledgedMessageCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_unacknowledgedMessageCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> DiscardedMessageCount
        {
            get
            {
                return m_discardedMessageCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_discardedMessageCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_discardedMessageCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> MonitoredItemCount
        {
            get
            {
                return m_monitoredItemCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_monitoredItemCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_monitoredItemCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> DisabledMonitoredItemCount
        {
            get
            {
                return m_disabledMonitoredItemCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_disabledMonitoredItemCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_disabledMonitoredItemCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> MonitoringQueueOverflowCount
        {
            get
            {
                return m_monitoringQueueOverflowCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_monitoringQueueOverflowCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_monitoringQueueOverflowCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> NextSequenceNumber
        {
            get
            {
                return m_nextSequenceNumber;
            }

            set
            {
                if (!Object.ReferenceEquals(m_nextSequenceNumber, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_nextSequenceNumber = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> EventQueueOverflowCount
        {
            get
            {
                return m_eventQueueOverflowCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_eventQueueOverflowCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_eventQueueOverflowCount = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_sessionId != null)
            {
                children.Add(m_sessionId);
            }

            if (m_subscriptionId != null)
            {
                children.Add(m_subscriptionId);
            }

            if (m_priority != null)
            {
                children.Add(m_priority);
            }

            if (m_publishingInterval != null)
            {
                children.Add(m_publishingInterval);
            }

            if (m_maxKeepAliveCount != null)
            {
                children.Add(m_maxKeepAliveCount);
            }

            if (m_maxLifetimeCount != null)
            {
                children.Add(m_maxLifetimeCount);
            }

            if (m_maxNotificationsPerPublish != null)
            {
                children.Add(m_maxNotificationsPerPublish);
            }

            if (m_publishingEnabled != null)
            {
                children.Add(m_publishingEnabled);
            }

            if (m_modifyCount != null)
            {
                children.Add(m_modifyCount);
            }

            if (m_enableCount != null)
            {
                children.Add(m_enableCount);
            }

            if (m_disableCount != null)
            {
                children.Add(m_disableCount);
            }

            if (m_republishRequestCount != null)
            {
                children.Add(m_republishRequestCount);
            }

            if (m_republishMessageRequestCount != null)
            {
                children.Add(m_republishMessageRequestCount);
            }

            if (m_republishMessageCount != null)
            {
                children.Add(m_republishMessageCount);
            }

            if (m_transferRequestCount != null)
            {
                children.Add(m_transferRequestCount);
            }

            if (m_transferredToAltClientCount != null)
            {
                children.Add(m_transferredToAltClientCount);
            }

            if (m_transferredToSameClientCount != null)
            {
                children.Add(m_transferredToSameClientCount);
            }

            if (m_publishRequestCount != null)
            {
                children.Add(m_publishRequestCount);
            }

            if (m_dataChangeNotificationsCount != null)
            {
                children.Add(m_dataChangeNotificationsCount);
            }

            if (m_eventNotificationsCount != null)
            {
                children.Add(m_eventNotificationsCount);
            }

            if (m_notificationsCount != null)
            {
                children.Add(m_notificationsCount);
            }

            if (m_latePublishRequestCount != null)
            {
                children.Add(m_latePublishRequestCount);
            }

            if (m_currentKeepAliveCount != null)
            {
                children.Add(m_currentKeepAliveCount);
            }

            if (m_currentLifetimeCount != null)
            {
                children.Add(m_currentLifetimeCount);
            }

            if (m_unacknowledgedMessageCount != null)
            {
                children.Add(m_unacknowledgedMessageCount);
            }

            if (m_discardedMessageCount != null)
            {
                children.Add(m_discardedMessageCount);
            }

            if (m_monitoredItemCount != null)
            {
                children.Add(m_monitoredItemCount);
            }

            if (m_disabledMonitoredItemCount != null)
            {
                children.Add(m_disabledMonitoredItemCount);
            }

            if (m_monitoringQueueOverflowCount != null)
            {
                children.Add(m_monitoringQueueOverflowCount);
            }

            if (m_nextSequenceNumber != null)
            {
                children.Add(m_nextSequenceNumber);
            }

            if (m_eventQueueOverflowCount != null)
            {
                children.Add(m_eventQueueOverflowCount);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SessionId:
                {
                    if (createOrReplace)
                    {
                        if (SessionId == null)
                        {
                            if (replacement == null)
                            {
                                SessionId = new BaseDataVariableState<NodeId>(this);
                            }
                            else
                            {
                                SessionId = (BaseDataVariableState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = SessionId;
                    break;
                }

                case Opc.Ua.BrowseNames.SubscriptionId:
                {
                    if (createOrReplace)
                    {
                        if (SubscriptionId == null)
                        {
                            if (replacement == null)
                            {
                                SubscriptionId = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                SubscriptionId = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = SubscriptionId;
                    break;
                }

                case Opc.Ua.BrowseNames.Priority:
                {
                    if (createOrReplace)
                    {
                        if (Priority == null)
                        {
                            if (replacement == null)
                            {
                                Priority = new BaseDataVariableState<byte>(this);
                            }
                            else
                            {
                                Priority = (BaseDataVariableState<byte>)replacement;
                            }
                        }
                    }

                    instance = Priority;
                    break;
                }

                case Opc.Ua.BrowseNames.PublishingInterval:
                {
                    if (createOrReplace)
                    {
                        if (PublishingInterval == null)
                        {
                            if (replacement == null)
                            {
                                PublishingInterval = new BaseDataVariableState<double>(this);
                            }
                            else
                            {
                                PublishingInterval = (BaseDataVariableState<double>)replacement;
                            }
                        }
                    }

                    instance = PublishingInterval;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxKeepAliveCount:
                {
                    if (createOrReplace)
                    {
                        if (MaxKeepAliveCount == null)
                        {
                            if (replacement == null)
                            {
                                MaxKeepAliveCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                MaxKeepAliveCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxKeepAliveCount;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxLifetimeCount:
                {
                    if (createOrReplace)
                    {
                        if (MaxLifetimeCount == null)
                        {
                            if (replacement == null)
                            {
                                MaxLifetimeCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                MaxLifetimeCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxLifetimeCount;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxNotificationsPerPublish:
                {
                    if (createOrReplace)
                    {
                        if (MaxNotificationsPerPublish == null)
                        {
                            if (replacement == null)
                            {
                                MaxNotificationsPerPublish = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                MaxNotificationsPerPublish = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxNotificationsPerPublish;
                    break;
                }

                case Opc.Ua.BrowseNames.PublishingEnabled:
                {
                    if (createOrReplace)
                    {
                        if (PublishingEnabled == null)
                        {
                            if (replacement == null)
                            {
                                PublishingEnabled = new BaseDataVariableState<bool>(this);
                            }
                            else
                            {
                                PublishingEnabled = (BaseDataVariableState<bool>)replacement;
                            }
                        }
                    }

                    instance = PublishingEnabled;
                    break;
                }

                case Opc.Ua.BrowseNames.ModifyCount:
                {
                    if (createOrReplace)
                    {
                        if (ModifyCount == null)
                        {
                            if (replacement == null)
                            {
                                ModifyCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                ModifyCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = ModifyCount;
                    break;
                }

                case Opc.Ua.BrowseNames.EnableCount:
                {
                    if (createOrReplace)
                    {
                        if (EnableCount == null)
                        {
                            if (replacement == null)
                            {
                                EnableCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                EnableCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = EnableCount;
                    break;
                }

                case Opc.Ua.BrowseNames.DisableCount:
                {
                    if (createOrReplace)
                    {
                        if (DisableCount == null)
                        {
                            if (replacement == null)
                            {
                                DisableCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                DisableCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = DisableCount;
                    break;
                }

                case Opc.Ua.BrowseNames.RepublishRequestCount:
                {
                    if (createOrReplace)
                    {
                        if (RepublishRequestCount == null)
                        {
                            if (replacement == null)
                            {
                                RepublishRequestCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                RepublishRequestCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = RepublishRequestCount;
                    break;
                }

                case Opc.Ua.BrowseNames.RepublishMessageRequestCount:
                {
                    if (createOrReplace)
                    {
                        if (RepublishMessageRequestCount == null)
                        {
                            if (replacement == null)
                            {
                                RepublishMessageRequestCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                RepublishMessageRequestCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = RepublishMessageRequestCount;
                    break;
                }

                case Opc.Ua.BrowseNames.RepublishMessageCount:
                {
                    if (createOrReplace)
                    {
                        if (RepublishMessageCount == null)
                        {
                            if (replacement == null)
                            {
                                RepublishMessageCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                RepublishMessageCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = RepublishMessageCount;
                    break;
                }

                case Opc.Ua.BrowseNames.TransferRequestCount:
                {
                    if (createOrReplace)
                    {
                        if (TransferRequestCount == null)
                        {
                            if (replacement == null)
                            {
                                TransferRequestCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                TransferRequestCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = TransferRequestCount;
                    break;
                }

                case Opc.Ua.BrowseNames.TransferredToAltClientCount:
                {
                    if (createOrReplace)
                    {
                        if (TransferredToAltClientCount == null)
                        {
                            if (replacement == null)
                            {
                                TransferredToAltClientCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                TransferredToAltClientCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = TransferredToAltClientCount;
                    break;
                }

                case Opc.Ua.BrowseNames.TransferredToSameClientCount:
                {
                    if (createOrReplace)
                    {
                        if (TransferredToSameClientCount == null)
                        {
                            if (replacement == null)
                            {
                                TransferredToSameClientCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                TransferredToSameClientCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = TransferredToSameClientCount;
                    break;
                }

                case Opc.Ua.BrowseNames.PublishRequestCount:
                {
                    if (createOrReplace)
                    {
                        if (PublishRequestCount == null)
                        {
                            if (replacement == null)
                            {
                                PublishRequestCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                PublishRequestCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = PublishRequestCount;
                    break;
                }

                case Opc.Ua.BrowseNames.DataChangeNotificationsCount:
                {
                    if (createOrReplace)
                    {
                        if (DataChangeNotificationsCount == null)
                        {
                            if (replacement == null)
                            {
                                DataChangeNotificationsCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                DataChangeNotificationsCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = DataChangeNotificationsCount;
                    break;
                }

                case Opc.Ua.BrowseNames.EventNotificationsCount:
                {
                    if (createOrReplace)
                    {
                        if (EventNotificationsCount == null)
                        {
                            if (replacement == null)
                            {
                                EventNotificationsCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                EventNotificationsCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = EventNotificationsCount;
                    break;
                }

                case Opc.Ua.BrowseNames.NotificationsCount:
                {
                    if (createOrReplace)
                    {
                        if (NotificationsCount == null)
                        {
                            if (replacement == null)
                            {
                                NotificationsCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                NotificationsCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = NotificationsCount;
                    break;
                }

                case Opc.Ua.BrowseNames.LatePublishRequestCount:
                {
                    if (createOrReplace)
                    {
                        if (LatePublishRequestCount == null)
                        {
                            if (replacement == null)
                            {
                                LatePublishRequestCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                LatePublishRequestCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = LatePublishRequestCount;
                    break;
                }

                case Opc.Ua.BrowseNames.CurrentKeepAliveCount:
                {
                    if (createOrReplace)
                    {
                        if (CurrentKeepAliveCount == null)
                        {
                            if (replacement == null)
                            {
                                CurrentKeepAliveCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                CurrentKeepAliveCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = CurrentKeepAliveCount;
                    break;
                }

                case Opc.Ua.BrowseNames.CurrentLifetimeCount:
                {
                    if (createOrReplace)
                    {
                        if (CurrentLifetimeCount == null)
                        {
                            if (replacement == null)
                            {
                                CurrentLifetimeCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                CurrentLifetimeCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = CurrentLifetimeCount;
                    break;
                }

                case Opc.Ua.BrowseNames.UnacknowledgedMessageCount:
                {
                    if (createOrReplace)
                    {
                        if (UnacknowledgedMessageCount == null)
                        {
                            if (replacement == null)
                            {
                                UnacknowledgedMessageCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                UnacknowledgedMessageCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = UnacknowledgedMessageCount;
                    break;
                }

                case Opc.Ua.BrowseNames.DiscardedMessageCount:
                {
                    if (createOrReplace)
                    {
                        if (DiscardedMessageCount == null)
                        {
                            if (replacement == null)
                            {
                                DiscardedMessageCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                DiscardedMessageCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = DiscardedMessageCount;
                    break;
                }

                case Opc.Ua.BrowseNames.MonitoredItemCount:
                {
                    if (createOrReplace)
                    {
                        if (MonitoredItemCount == null)
                        {
                            if (replacement == null)
                            {
                                MonitoredItemCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                MonitoredItemCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = MonitoredItemCount;
                    break;
                }

                case Opc.Ua.BrowseNames.DisabledMonitoredItemCount:
                {
                    if (createOrReplace)
                    {
                        if (DisabledMonitoredItemCount == null)
                        {
                            if (replacement == null)
                            {
                                DisabledMonitoredItemCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                DisabledMonitoredItemCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = DisabledMonitoredItemCount;
                    break;
                }

                case Opc.Ua.BrowseNames.MonitoringQueueOverflowCount:
                {
                    if (createOrReplace)
                    {
                        if (MonitoringQueueOverflowCount == null)
                        {
                            if (replacement == null)
                            {
                                MonitoringQueueOverflowCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                MonitoringQueueOverflowCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = MonitoringQueueOverflowCount;
                    break;
                }

                case Opc.Ua.BrowseNames.NextSequenceNumber:
                {
                    if (createOrReplace)
                    {
                        if (NextSequenceNumber == null)
                        {
                            if (replacement == null)
                            {
                                NextSequenceNumber = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                NextSequenceNumber = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = NextSequenceNumber;
                    break;
                }

                case Opc.Ua.BrowseNames.EventQueueOverflowCount:
                {
                    if (createOrReplace)
                    {
                        if (EventQueueOverflowCount == null)
                        {
                            if (replacement == null)
                            {
                                EventQueueOverflowCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                EventQueueOverflowCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = EventQueueOverflowCount;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<NodeId> m_sessionId;
        private BaseDataVariableState<uint> m_subscriptionId;
        private BaseDataVariableState<byte> m_priority;
        private BaseDataVariableState<double> m_publishingInterval;
        private BaseDataVariableState<uint> m_maxKeepAliveCount;
        private BaseDataVariableState<uint> m_maxLifetimeCount;
        private BaseDataVariableState<uint> m_maxNotificationsPerPublish;
        private BaseDataVariableState<bool> m_publishingEnabled;
        private BaseDataVariableState<uint> m_modifyCount;
        private BaseDataVariableState<uint> m_enableCount;
        private BaseDataVariableState<uint> m_disableCount;
        private BaseDataVariableState<uint> m_republishRequestCount;
        private BaseDataVariableState<uint> m_republishMessageRequestCount;
        private BaseDataVariableState<uint> m_republishMessageCount;
        private BaseDataVariableState<uint> m_transferRequestCount;
        private BaseDataVariableState<uint> m_transferredToAltClientCount;
        private BaseDataVariableState<uint> m_transferredToSameClientCount;
        private BaseDataVariableState<uint> m_publishRequestCount;
        private BaseDataVariableState<uint> m_dataChangeNotificationsCount;
        private BaseDataVariableState<uint> m_eventNotificationsCount;
        private BaseDataVariableState<uint> m_notificationsCount;
        private BaseDataVariableState<uint> m_latePublishRequestCount;
        private BaseDataVariableState<uint> m_currentKeepAliveCount;
        private BaseDataVariableState<uint> m_currentLifetimeCount;
        private BaseDataVariableState<uint> m_unacknowledgedMessageCount;
        private BaseDataVariableState<uint> m_discardedMessageCount;
        private BaseDataVariableState<uint> m_monitoredItemCount;
        private BaseDataVariableState<uint> m_disabledMonitoredItemCount;
        private BaseDataVariableState<uint> m_monitoringQueueOverflowCount;
        private BaseDataVariableState<uint> m_nextSequenceNumber;
        private BaseDataVariableState<uint> m_eventQueueOverflowCount;
        #endregion
    }

    #region SubscriptionDiagnosticsValue Class
    /// <summary>
    /// A typed version of the _BrowseName_ variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class SubscriptionDiagnosticsValue : BaseVariableValue
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public SubscriptionDiagnosticsValue(SubscriptionDiagnosticsState variable, SubscriptionDiagnosticsDataType value, object dataLock) : base(dataLock)
        {
            m_value = value;

            if (m_value == null)
            {
                m_value = new SubscriptionDiagnosticsDataType();
            }

            Initialize(variable);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The variable that the value belongs to.
        /// </summary>
        public SubscriptionDiagnosticsState Variable
        {
            get { return m_variable; }
        }

        /// <summary>
        /// The value of the variable.
        /// </summary>
        public SubscriptionDiagnosticsDataType Value
        {
            get { return m_value;  }
            set { m_value = value; }
        }
        #endregion

        #region Private Methods
        /// <summary>
        /// Initializes the object.
        /// </summary>
        private void Initialize(SubscriptionDiagnosticsState variable)
        {
            lock (Lock)
            {
                m_variable = variable;

                variable.Value = m_value;

                variable.OnReadValue = OnReadValue;
                variable.OnSimpleWriteValue = OnWriteValue;

                BaseVariableState instance = null;
                List<BaseInstanceState> updateList = new List<BaseInstanceState>();
                updateList.Add(variable);

                instance = m_variable.SessionId;
                instance.OnReadValue = OnRead_SessionId;
                instance.OnSimpleWriteValue = OnWrite_SessionId;
                updateList.Add(instance);
                instance = m_variable.SubscriptionId;
                instance.OnReadValue = OnRead_SubscriptionId;
                instance.OnSimpleWriteValue = OnWrite_SubscriptionId;
                updateList.Add(instance);
                instance = m_variable.Priority;
                instance.OnReadValue = OnRead_Priority;
                instance.OnSimpleWriteValue = OnWrite_Priority;
                updateList.Add(instance);
                instance = m_variable.PublishingInterval;
                instance.OnReadValue = OnRead_PublishingInterval;
                instance.OnSimpleWriteValue = OnWrite_PublishingInterval;
                updateList.Add(instance);
                instance = m_variable.MaxKeepAliveCount;
                instance.OnReadValue = OnRead_MaxKeepAliveCount;
                instance.OnSimpleWriteValue = OnWrite_MaxKeepAliveCount;
                updateList.Add(instance);
                instance = m_variable.MaxLifetimeCount;
                instance.OnReadValue = OnRead_MaxLifetimeCount;
                instance.OnSimpleWriteValue = OnWrite_MaxLifetimeCount;
                updateList.Add(instance);
                instance = m_variable.MaxNotificationsPerPublish;
                instance.OnReadValue = OnRead_MaxNotificationsPerPublish;
                instance.OnSimpleWriteValue = OnWrite_MaxNotificationsPerPublish;
                updateList.Add(instance);
                instance = m_variable.PublishingEnabled;
                instance.OnReadValue = OnRead_PublishingEnabled;
                instance.OnSimpleWriteValue = OnWrite_PublishingEnabled;
                updateList.Add(instance);
                instance = m_variable.ModifyCount;
                instance.OnReadValue = OnRead_ModifyCount;
                instance.OnSimpleWriteValue = OnWrite_ModifyCount;
                updateList.Add(instance);
                instance = m_variable.EnableCount;
                instance.OnReadValue = OnRead_EnableCount;
                instance.OnSimpleWriteValue = OnWrite_EnableCount;
                updateList.Add(instance);
                instance = m_variable.DisableCount;
                instance.OnReadValue = OnRead_DisableCount;
                instance.OnSimpleWriteValue = OnWrite_DisableCount;
                updateList.Add(instance);
                instance = m_variable.RepublishRequestCount;
                instance.OnReadValue = OnRead_RepublishRequestCount;
                instance.OnSimpleWriteValue = OnWrite_RepublishRequestCount;
                updateList.Add(instance);
                instance = m_variable.RepublishMessageRequestCount;
                instance.OnReadValue = OnRead_RepublishMessageRequestCount;
                instance.OnSimpleWriteValue = OnWrite_RepublishMessageRequestCount;
                updateList.Add(instance);
                instance = m_variable.RepublishMessageCount;
                instance.OnReadValue = OnRead_RepublishMessageCount;
                instance.OnSimpleWriteValue = OnWrite_RepublishMessageCount;
                updateList.Add(instance);
                instance = m_variable.TransferRequestCount;
                instance.OnReadValue = OnRead_TransferRequestCount;
                instance.OnSimpleWriteValue = OnWrite_TransferRequestCount;
                updateList.Add(instance);
                instance = m_variable.TransferredToAltClientCount;
                instance.OnReadValue = OnRead_TransferredToAltClientCount;
                instance.OnSimpleWriteValue = OnWrite_TransferredToAltClientCount;
                updateList.Add(instance);
                instance = m_variable.TransferredToSameClientCount;
                instance.OnReadValue = OnRead_TransferredToSameClientCount;
                instance.OnSimpleWriteValue = OnWrite_TransferredToSameClientCount;
                updateList.Add(instance);
                instance = m_variable.PublishRequestCount;
                instance.OnReadValue = OnRead_PublishRequestCount;
                instance.OnSimpleWriteValue = OnWrite_PublishRequestCount;
                updateList.Add(instance);
                instance = m_variable.DataChangeNotificationsCount;
                instance.OnReadValue = OnRead_DataChangeNotificationsCount;
                instance.OnSimpleWriteValue = OnWrite_DataChangeNotificationsCount;
                updateList.Add(instance);
                instance = m_variable.EventNotificationsCount;
                instance.OnReadValue = OnRead_EventNotificationsCount;
                instance.OnSimpleWriteValue = OnWrite_EventNotificationsCount;
                updateList.Add(instance);
                instance = m_variable.NotificationsCount;
                instance.OnReadValue = OnRead_NotificationsCount;
                instance.OnSimpleWriteValue = OnWrite_NotificationsCount;
                updateList.Add(instance);
                instance = m_variable.LatePublishRequestCount;
                instance.OnReadValue = OnRead_LatePublishRequestCount;
                instance.OnSimpleWriteValue = OnWrite_LatePublishRequestCount;
                updateList.Add(instance);
                instance = m_variable.CurrentKeepAliveCount;
                instance.OnReadValue = OnRead_CurrentKeepAliveCount;
                instance.OnSimpleWriteValue = OnWrite_CurrentKeepAliveCount;
                updateList.Add(instance);
                instance = m_variable.CurrentLifetimeCount;
                instance.OnReadValue = OnRead_CurrentLifetimeCount;
                instance.OnSimpleWriteValue = OnWrite_CurrentLifetimeCount;
                updateList.Add(instance);
                instance = m_variable.UnacknowledgedMessageCount;
                instance.OnReadValue = OnRead_UnacknowledgedMessageCount;
                instance.OnSimpleWriteValue = OnWrite_UnacknowledgedMessageCount;
                updateList.Add(instance);
                instance = m_variable.DiscardedMessageCount;
                instance.OnReadValue = OnRead_DiscardedMessageCount;
                instance.OnSimpleWriteValue = OnWrite_DiscardedMessageCount;
                updateList.Add(instance);
                instance = m_variable.MonitoredItemCount;
                instance.OnReadValue = OnRead_MonitoredItemCount;
                instance.OnSimpleWriteValue = OnWrite_MonitoredItemCount;
                updateList.Add(instance);
                instance = m_variable.DisabledMonitoredItemCount;
                instance.OnReadValue = OnRead_DisabledMonitoredItemCount;
                instance.OnSimpleWriteValue = OnWrite_DisabledMonitoredItemCount;
                updateList.Add(instance);
                instance = m_variable.MonitoringQueueOverflowCount;
                instance.OnReadValue = OnRead_MonitoringQueueOverflowCount;
                instance.OnSimpleWriteValue = OnWrite_MonitoringQueueOverflowCount;
                updateList.Add(instance);
                instance = m_variable.NextSequenceNumber;
                instance.OnReadValue = OnRead_NextSequenceNumber;
                instance.OnSimpleWriteValue = OnWrite_NextSequenceNumber;
                updateList.Add(instance);

                SetUpdateList(updateList);
            }
        }

        /// <summary>
        /// Reads the value of the variable.
        /// </summary>
        protected ServiceResult OnReadValue(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable.
        /// </summary>
        private ServiceResult OnWriteValue(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value = (SubscriptionDiagnosticsDataType)Write(value);
            }

            return ServiceResult.Good;
        }

        #region SessionId Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SessionId(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SessionId;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SessionId(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SessionId = (NodeId)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region SubscriptionId Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SubscriptionId(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SubscriptionId;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SubscriptionId(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SubscriptionId = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region Priority Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_Priority(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.Priority;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_Priority(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.Priority = (byte)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region PublishingInterval Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_PublishingInterval(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.PublishingInterval;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_PublishingInterval(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.PublishingInterval = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region MaxKeepAliveCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_MaxKeepAliveCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.MaxKeepAliveCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_MaxKeepAliveCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.MaxKeepAliveCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region MaxLifetimeCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_MaxLifetimeCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.MaxLifetimeCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_MaxLifetimeCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.MaxLifetimeCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region MaxNotificationsPerPublish Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_MaxNotificationsPerPublish(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.MaxNotificationsPerPublish;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_MaxNotificationsPerPublish(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.MaxNotificationsPerPublish = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region PublishingEnabled Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_PublishingEnabled(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.PublishingEnabled;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_PublishingEnabled(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.PublishingEnabled = (bool)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region ModifyCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ModifyCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ModifyCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ModifyCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ModifyCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region EnableCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_EnableCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.EnableCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_EnableCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.EnableCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region DisableCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_DisableCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.DisableCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_DisableCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.DisableCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region RepublishRequestCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_RepublishRequestCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.RepublishRequestCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_RepublishRequestCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.RepublishRequestCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region RepublishMessageRequestCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_RepublishMessageRequestCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.RepublishMessageRequestCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_RepublishMessageRequestCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.RepublishMessageRequestCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region RepublishMessageCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_RepublishMessageCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.RepublishMessageCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_RepublishMessageCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.RepublishMessageCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region TransferRequestCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_TransferRequestCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.TransferRequestCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_TransferRequestCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.TransferRequestCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region TransferredToAltClientCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_TransferredToAltClientCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.TransferredToAltClientCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_TransferredToAltClientCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.TransferredToAltClientCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region TransferredToSameClientCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_TransferredToSameClientCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.TransferredToSameClientCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_TransferredToSameClientCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.TransferredToSameClientCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region PublishRequestCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_PublishRequestCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.PublishRequestCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_PublishRequestCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.PublishRequestCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region DataChangeNotificationsCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_DataChangeNotificationsCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.DataChangeNotificationsCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_DataChangeNotificationsCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.DataChangeNotificationsCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region EventNotificationsCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_EventNotificationsCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.EventNotificationsCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_EventNotificationsCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.EventNotificationsCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region NotificationsCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_NotificationsCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.NotificationsCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_NotificationsCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.NotificationsCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LatePublishRequestCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LatePublishRequestCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LatePublishRequestCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LatePublishRequestCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LatePublishRequestCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CurrentKeepAliveCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CurrentKeepAliveCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CurrentKeepAliveCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CurrentKeepAliveCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CurrentKeepAliveCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CurrentLifetimeCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CurrentLifetimeCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CurrentLifetimeCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CurrentLifetimeCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CurrentLifetimeCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region UnacknowledgedMessageCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_UnacknowledgedMessageCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.UnacknowledgedMessageCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_UnacknowledgedMessageCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.UnacknowledgedMessageCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region DiscardedMessageCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_DiscardedMessageCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.DiscardedMessageCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_DiscardedMessageCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.DiscardedMessageCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region MonitoredItemCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_MonitoredItemCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.MonitoredItemCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_MonitoredItemCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.MonitoredItemCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region DisabledMonitoredItemCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_DisabledMonitoredItemCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.DisabledMonitoredItemCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_DisabledMonitoredItemCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.DisabledMonitoredItemCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region MonitoringQueueOverflowCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_MonitoringQueueOverflowCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.MonitoringQueueOverflowCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_MonitoringQueueOverflowCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.MonitoringQueueOverflowCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region NextSequenceNumber Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_NextSequenceNumber(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.NextSequenceNumber;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_NextSequenceNumber(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.NextSequenceNumber = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion
        #endregion

        #region Private Fields
        private SubscriptionDiagnosticsDataType m_value;
        private SubscriptionDiagnosticsState m_variable;
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region SessionDiagnosticsArrayState Class
    #if (!OPCUA_EXCLUDE_SessionDiagnosticsArrayState)
    /// <summary>
    /// Stores an instance of the SessionDiagnosticsArrayType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SessionDiagnosticsArrayState : BaseDataVariableState<SessionDiagnosticsDataType[]>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SessionDiagnosticsArrayState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.SessionDiagnosticsArrayType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.SessionDiagnosticsDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.OneDimension;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8XYIkCAgAAAAAAIwAAAFNlc3Npb25EaWFnbm9zdGljc0FycmF5VHlwZUluc3RhbmNlAQCU" +
           "CAEAlAiUCAAAAQBhAwEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region SessionDiagnosticsVariableState Class
    #if (!OPCUA_EXCLUDE_SessionDiagnosticsVariableState)
    /// <summary>
    /// Stores an instance of the SessionDiagnosticsVariableType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SessionDiagnosticsVariableState : BaseDataVariableState<SessionDiagnosticsDataType>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SessionDiagnosticsVariableState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.SessionDiagnosticsVariableType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.SessionDiagnosticsDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAJgAAAFNlc3Npb25EaWFnbm9zdGljc1ZhcmlhYmxlVHlwZUluc3RhbmNl" +
           "AQCVCAEAlQiVCAAAAQBhA/////8BAf////8rAAAAFWCJCgIAAAAAAAkAAABTZXNzaW9uSWQBAJYIAC8A" +
           "P5YIAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABTZXNzaW9uTmFtZQEAlwgALwA/lwgAAAAM" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAAEQAAAENsaWVudERlc2NyaXB0aW9uAQCYCAAvAD+YCAAAAQA0" +
           "Af////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABTZXJ2ZXJVcmkBAJkIAC8AP5kIAAAADP////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAsAAABFbmRwb2ludFVybAEAmggALwA/mggAAAAM/////wEB/////wAAAAAX" +
           "YIkKAgAAAAAACQAAAExvY2FsZUlkcwEAmwgALwA/mwgAAAEAJwEBAAAAAQAAAAAAAAABAf////8AAAAA" +
           "FWCJCgIAAAAAABQAAABBY3R1YWxTZXNzaW9uVGltZW91dAEAnAgALwA/nAgAAAEAIgH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAWAAAATWF4UmVzcG9uc2VNZXNzYWdlU2l6ZQEA6gsALwA/6gsAAAAH/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAAFAAAAENsaWVudENvbm5lY3Rpb25UaW1lAQCdCAAvAD+dCAAAAQAmAf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAABUAAABDbGllbnRMYXN0Q29udGFjdFRpbWUBAJ4IAC8AP54IAAAB" +
           "ACYB/////wEB/////wAAAAAVYIkKAgAAAAAAGQAAAEN1cnJlbnRTdWJzY3JpcHRpb25zQ291bnQBAJ8I" +
           "AC8AP58IAAAAB/////8BAf////8AAAAAFWCJCgIAAAAAABoAAABDdXJyZW50TW9uaXRvcmVkSXRlbXND" +
           "b3VudAEAoAgALwA/oAgAAAAH/////wEB/////wAAAAAVYIkKAgAAAAAAHQAAAEN1cnJlbnRQdWJsaXNo" +
           "UmVxdWVzdHNJblF1ZXVlAQChCAAvAD+hCAAAAAf/////AQH/////AAAAABVgiQoCAAAAAAARAAAAVG90" +
           "YWxSZXF1ZXN0Q291bnQBAMQiAC8AP8QiAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAAGAAAAFVu" +
           "YXV0aG9yaXplZFJlcXVlc3RDb3VudAEAdC4ALwA/dC4AAAAH/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "CQAAAFJlYWRDb3VudAEAqQgALwA/qQgAAAEAZwP/////AQH/////AAAAABVgiQoCAAAAAAAQAAAASGlz" +
           "dG9yeVJlYWRDb3VudAEAqggALwA/qggAAAEAZwP/////AQH/////AAAAABVgiQoCAAAAAAAKAAAAV3Jp" +
           "dGVDb3VudAEAqwgALwA/qwgAAAEAZwP/////AQH/////AAAAABVgiQoCAAAAAAASAAAASGlzdG9yeVVw" +
           "ZGF0ZUNvdW50AQCsCAAvAD+sCAAAAQBnA/////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABDYWxsQ291" +
           "bnQBAK0IAC8AP60IAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAAGQAAAENyZWF0ZU1vbml0b3Jl" +
           "ZEl0ZW1zQ291bnQBAK4IAC8AP64IAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAAGQAAAE1vZGlm" +
           "eU1vbml0b3JlZEl0ZW1zQ291bnQBAK8IAC8AP68IAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "FgAAAFNldE1vbml0b3JpbmdNb2RlQ291bnQBALAIAC8AP7AIAAABAGcD/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAAEgAAAFNldFRyaWdnZXJpbmdDb3VudAEAsQgALwA/sQgAAAEAZwP/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAZAAAARGVsZXRlTW9uaXRvcmVkSXRlbXNDb3VudAEAsggALwA/sggAAAEAZwP/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAXAAAAQ3JlYXRlU3Vic2NyaXB0aW9uQ291bnQBALMIAC8AP7MIAAABAGcD" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAAFwAAAE1vZGlmeVN1YnNjcmlwdGlvbkNvdW50AQC0CAAvAD+0" +
           "CAAAAQBnA/////8BAf////8AAAAAFWCJCgIAAAAAABYAAABTZXRQdWJsaXNoaW5nTW9kZUNvdW50AQC1" +
           "CAAvAD+1CAAAAQBnA/////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABQdWJsaXNoQ291bnQBALYIAC8A" +
           "P7YIAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAFJlcHVibGlzaENvdW50AQC3CAAvAD+3" +
           "CAAAAQBnA/////8BAf////8AAAAAFWCJCgIAAAAAABoAAABUcmFuc2ZlclN1YnNjcmlwdGlvbnNDb3Vu" +
           "dAEAuAgALwA/uAgAAAEAZwP/////AQH/////AAAAABVgiQoCAAAAAAAYAAAARGVsZXRlU3Vic2NyaXB0" +
           "aW9uc0NvdW50AQC5CAAvAD+5CAAAAQBnA/////8BAf////8AAAAAFWCJCgIAAAAAAA0AAABBZGROb2Rl" +
           "c0NvdW50AQC6CAAvAD+6CAAAAQBnA/////8BAf////8AAAAAFWCJCgIAAAAAABIAAABBZGRSZWZlcmVu" +
           "Y2VzQ291bnQBALsIAC8AP7sIAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAERlbGV0ZU5v" +
           "ZGVzQ291bnQBALwIAC8AP7wIAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAAFQAAAERlbGV0ZVJl" +
           "ZmVyZW5jZXNDb3VudAEAvQgALwA/vQgAAAEAZwP/////AQH/////AAAAABVgiQoCAAAAAAALAAAAQnJv" +
           "d3NlQ291bnQBAL4IAC8AP74IAAABAGcD/////wEB/////wAAAAAVYIkKAgAAAAAADwAAAEJyb3dzZU5l" +
           "eHRDb3VudAEAvwgALwA/vwgAAAEAZwP/////AQH/////AAAAABVgiQoCAAAAAAAiAAAAVHJhbnNsYXRl" +
           "QnJvd3NlUGF0aHNUb05vZGVJZHNDb3VudAEAwAgALwA/wAgAAAEAZwP/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAPAAAAUXVlcnlGaXJzdENvdW50AQDBCAAvAD/BCAAAAQBnA/////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAA4AAABRdWVyeU5leHRDb3VudAEAwggALwA/wggAAAEAZwP/////AQH/////AAAAABVgiQoCAAAA" +
           "AAASAAAAUmVnaXN0ZXJOb2Rlc0NvdW50AQCqCgAvAD+qCgAAAQBnA/////8BAf////8AAAAAFWCJCgIA" +
           "AAAAABQAAABVbnJlZ2lzdGVyTm9kZXNDb3VudAEAqwoALwA/qwoAAAEAZwP/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<NodeId> SessionId
        {
            get
            {
                return m_sessionId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sessionId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sessionId = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> SessionName
        {
            get
            {
                return m_sessionName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sessionName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sessionName = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ApplicationDescription> ClientDescription
        {
            get
            {
                return m_clientDescription;
            }

            set
            {
                if (!Object.ReferenceEquals(m_clientDescription, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_clientDescription = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> ServerUri
        {
            get
            {
                return m_serverUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serverUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serverUri = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> EndpointUrl
        {
            get
            {
                return m_endpointUrl;
            }

            set
            {
                if (!Object.ReferenceEquals(m_endpointUrl, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_endpointUrl = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string[]> LocaleIds
        {
            get
            {
                return m_localeIds;
            }

            set
            {
                if (!Object.ReferenceEquals(m_localeIds, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_localeIds = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<double> ActualSessionTimeout
        {
            get
            {
                return m_actualSessionTimeout;
            }

            set
            {
                if (!Object.ReferenceEquals(m_actualSessionTimeout, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_actualSessionTimeout = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> MaxResponseMessageSize
        {
            get
            {
                return m_maxResponseMessageSize;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxResponseMessageSize, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxResponseMessageSize = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<DateTime> ClientConnectionTime
        {
            get
            {
                return m_clientConnectionTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_clientConnectionTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_clientConnectionTime = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<DateTime> ClientLastContactTime
        {
            get
            {
                return m_clientLastContactTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_clientLastContactTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_clientLastContactTime = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> CurrentSubscriptionsCount
        {
            get
            {
                return m_currentSubscriptionsCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_currentSubscriptionsCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_currentSubscriptionsCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> CurrentMonitoredItemsCount
        {
            get
            {
                return m_currentMonitoredItemsCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_currentMonitoredItemsCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_currentMonitoredItemsCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> CurrentPublishRequestsInQueue
        {
            get
            {
                return m_currentPublishRequestsInQueue;
            }

            set
            {
                if (!Object.ReferenceEquals(m_currentPublishRequestsInQueue, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_currentPublishRequestsInQueue = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> TotalRequestCount
        {
            get
            {
                return m_totalRequestCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_totalRequestCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_totalRequestCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> UnauthorizedRequestCount
        {
            get
            {
                return m_unauthorizedRequestCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_unauthorizedRequestCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_unauthorizedRequestCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> ReadCount
        {
            get
            {
                return m_readCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_readCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_readCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> HistoryReadCount
        {
            get
            {
                return m_historyReadCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_historyReadCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_historyReadCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> WriteCount
        {
            get
            {
                return m_writeCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_writeCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_writeCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> HistoryUpdateCount
        {
            get
            {
                return m_historyUpdateCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_historyUpdateCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_historyUpdateCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> CallCount
        {
            get
            {
                return m_callCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_callCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_callCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> CreateMonitoredItemsCount
        {
            get
            {
                return m_createMonitoredItemsCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_createMonitoredItemsCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_createMonitoredItemsCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> ModifyMonitoredItemsCount
        {
            get
            {
                return m_modifyMonitoredItemsCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_modifyMonitoredItemsCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_modifyMonitoredItemsCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> SetMonitoringModeCount
        {
            get
            {
                return m_setMonitoringModeCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_setMonitoringModeCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_setMonitoringModeCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> SetTriggeringCount
        {
            get
            {
                return m_setTriggeringCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_setTriggeringCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_setTriggeringCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> DeleteMonitoredItemsCount
        {
            get
            {
                return m_deleteMonitoredItemsCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_deleteMonitoredItemsCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_deleteMonitoredItemsCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> CreateSubscriptionCount
        {
            get
            {
                return m_createSubscriptionCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_createSubscriptionCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_createSubscriptionCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> ModifySubscriptionCount
        {
            get
            {
                return m_modifySubscriptionCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_modifySubscriptionCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_modifySubscriptionCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> SetPublishingModeCount
        {
            get
            {
                return m_setPublishingModeCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_setPublishingModeCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_setPublishingModeCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> PublishCount
        {
            get
            {
                return m_publishCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_publishCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_publishCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> RepublishCount
        {
            get
            {
                return m_republishCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_republishCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_republishCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> TransferSubscriptionsCount
        {
            get
            {
                return m_transferSubscriptionsCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transferSubscriptionsCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transferSubscriptionsCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> DeleteSubscriptionsCount
        {
            get
            {
                return m_deleteSubscriptionsCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_deleteSubscriptionsCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_deleteSubscriptionsCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> AddNodesCount
        {
            get
            {
                return m_addNodesCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addNodesCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addNodesCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> AddReferencesCount
        {
            get
            {
                return m_addReferencesCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addReferencesCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addReferencesCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> DeleteNodesCount
        {
            get
            {
                return m_deleteNodesCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_deleteNodesCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_deleteNodesCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> DeleteReferencesCount
        {
            get
            {
                return m_deleteReferencesCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_deleteReferencesCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_deleteReferencesCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> BrowseCount
        {
            get
            {
                return m_browseCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_browseCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_browseCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> BrowseNextCount
        {
            get
            {
                return m_browseNextCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_browseNextCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_browseNextCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> TranslateBrowsePathsToNodeIdsCount
        {
            get
            {
                return m_translateBrowsePathsToNodeIdsCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_translateBrowsePathsToNodeIdsCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_translateBrowsePathsToNodeIdsCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> QueryFirstCount
        {
            get
            {
                return m_queryFirstCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_queryFirstCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_queryFirstCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> QueryNextCount
        {
            get
            {
                return m_queryNextCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_queryNextCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_queryNextCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> RegisterNodesCount
        {
            get
            {
                return m_registerNodesCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_registerNodesCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_registerNodesCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ServiceCounterDataType> UnregisterNodesCount
        {
            get
            {
                return m_unregisterNodesCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_unregisterNodesCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_unregisterNodesCount = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_sessionId != null)
            {
                children.Add(m_sessionId);
            }

            if (m_sessionName != null)
            {
                children.Add(m_sessionName);
            }

            if (m_clientDescription != null)
            {
                children.Add(m_clientDescription);
            }

            if (m_serverUri != null)
            {
                children.Add(m_serverUri);
            }

            if (m_endpointUrl != null)
            {
                children.Add(m_endpointUrl);
            }

            if (m_localeIds != null)
            {
                children.Add(m_localeIds);
            }

            if (m_actualSessionTimeout != null)
            {
                children.Add(m_actualSessionTimeout);
            }

            if (m_maxResponseMessageSize != null)
            {
                children.Add(m_maxResponseMessageSize);
            }

            if (m_clientConnectionTime != null)
            {
                children.Add(m_clientConnectionTime);
            }

            if (m_clientLastContactTime != null)
            {
                children.Add(m_clientLastContactTime);
            }

            if (m_currentSubscriptionsCount != null)
            {
                children.Add(m_currentSubscriptionsCount);
            }

            if (m_currentMonitoredItemsCount != null)
            {
                children.Add(m_currentMonitoredItemsCount);
            }

            if (m_currentPublishRequestsInQueue != null)
            {
                children.Add(m_currentPublishRequestsInQueue);
            }

            if (m_totalRequestCount != null)
            {
                children.Add(m_totalRequestCount);
            }

            if (m_unauthorizedRequestCount != null)
            {
                children.Add(m_unauthorizedRequestCount);
            }

            if (m_readCount != null)
            {
                children.Add(m_readCount);
            }

            if (m_historyReadCount != null)
            {
                children.Add(m_historyReadCount);
            }

            if (m_writeCount != null)
            {
                children.Add(m_writeCount);
            }

            if (m_historyUpdateCount != null)
            {
                children.Add(m_historyUpdateCount);
            }

            if (m_callCount != null)
            {
                children.Add(m_callCount);
            }

            if (m_createMonitoredItemsCount != null)
            {
                children.Add(m_createMonitoredItemsCount);
            }

            if (m_modifyMonitoredItemsCount != null)
            {
                children.Add(m_modifyMonitoredItemsCount);
            }

            if (m_setMonitoringModeCount != null)
            {
                children.Add(m_setMonitoringModeCount);
            }

            if (m_setTriggeringCount != null)
            {
                children.Add(m_setTriggeringCount);
            }

            if (m_deleteMonitoredItemsCount != null)
            {
                children.Add(m_deleteMonitoredItemsCount);
            }

            if (m_createSubscriptionCount != null)
            {
                children.Add(m_createSubscriptionCount);
            }

            if (m_modifySubscriptionCount != null)
            {
                children.Add(m_modifySubscriptionCount);
            }

            if (m_setPublishingModeCount != null)
            {
                children.Add(m_setPublishingModeCount);
            }

            if (m_publishCount != null)
            {
                children.Add(m_publishCount);
            }

            if (m_republishCount != null)
            {
                children.Add(m_republishCount);
            }

            if (m_transferSubscriptionsCount != null)
            {
                children.Add(m_transferSubscriptionsCount);
            }

            if (m_deleteSubscriptionsCount != null)
            {
                children.Add(m_deleteSubscriptionsCount);
            }

            if (m_addNodesCount != null)
            {
                children.Add(m_addNodesCount);
            }

            if (m_addReferencesCount != null)
            {
                children.Add(m_addReferencesCount);
            }

            if (m_deleteNodesCount != null)
            {
                children.Add(m_deleteNodesCount);
            }

            if (m_deleteReferencesCount != null)
            {
                children.Add(m_deleteReferencesCount);
            }

            if (m_browseCount != null)
            {
                children.Add(m_browseCount);
            }

            if (m_browseNextCount != null)
            {
                children.Add(m_browseNextCount);
            }

            if (m_translateBrowsePathsToNodeIdsCount != null)
            {
                children.Add(m_translateBrowsePathsToNodeIdsCount);
            }

            if (m_queryFirstCount != null)
            {
                children.Add(m_queryFirstCount);
            }

            if (m_queryNextCount != null)
            {
                children.Add(m_queryNextCount);
            }

            if (m_registerNodesCount != null)
            {
                children.Add(m_registerNodesCount);
            }

            if (m_unregisterNodesCount != null)
            {
                children.Add(m_unregisterNodesCount);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SessionId:
                {
                    if (createOrReplace)
                    {
                        if (SessionId == null)
                        {
                            if (replacement == null)
                            {
                                SessionId = new BaseDataVariableState<NodeId>(this);
                            }
                            else
                            {
                                SessionId = (BaseDataVariableState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = SessionId;
                    break;
                }

                case Opc.Ua.BrowseNames.SessionName:
                {
                    if (createOrReplace)
                    {
                        if (SessionName == null)
                        {
                            if (replacement == null)
                            {
                                SessionName = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                SessionName = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = SessionName;
                    break;
                }

                case Opc.Ua.BrowseNames.ClientDescription:
                {
                    if (createOrReplace)
                    {
                        if (ClientDescription == null)
                        {
                            if (replacement == null)
                            {
                                ClientDescription = new BaseDataVariableState<ApplicationDescription>(this);
                            }
                            else
                            {
                                ClientDescription = (BaseDataVariableState<ApplicationDescription>)replacement;
                            }
                        }
                    }

                    instance = ClientDescription;
                    break;
                }

                case Opc.Ua.BrowseNames.ServerUri:
                {
                    if (createOrReplace)
                    {
                        if (ServerUri == null)
                        {
                            if (replacement == null)
                            {
                                ServerUri = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                ServerUri = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = ServerUri;
                    break;
                }

                case Opc.Ua.BrowseNames.EndpointUrl:
                {
                    if (createOrReplace)
                    {
                        if (EndpointUrl == null)
                        {
                            if (replacement == null)
                            {
                                EndpointUrl = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                EndpointUrl = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = EndpointUrl;
                    break;
                }

                case Opc.Ua.BrowseNames.LocaleIds:
                {
                    if (createOrReplace)
                    {
                        if (LocaleIds == null)
                        {
                            if (replacement == null)
                            {
                                LocaleIds = new BaseDataVariableState<string[]>(this);
                            }
                            else
                            {
                                LocaleIds = (BaseDataVariableState<string[]>)replacement;
                            }
                        }
                    }

                    instance = LocaleIds;
                    break;
                }

                case Opc.Ua.BrowseNames.ActualSessionTimeout:
                {
                    if (createOrReplace)
                    {
                        if (ActualSessionTimeout == null)
                        {
                            if (replacement == null)
                            {
                                ActualSessionTimeout = new BaseDataVariableState<double>(this);
                            }
                            else
                            {
                                ActualSessionTimeout = (BaseDataVariableState<double>)replacement;
                            }
                        }
                    }

                    instance = ActualSessionTimeout;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxResponseMessageSize:
                {
                    if (createOrReplace)
                    {
                        if (MaxResponseMessageSize == null)
                        {
                            if (replacement == null)
                            {
                                MaxResponseMessageSize = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                MaxResponseMessageSize = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxResponseMessageSize;
                    break;
                }

                case Opc.Ua.BrowseNames.ClientConnectionTime:
                {
                    if (createOrReplace)
                    {
                        if (ClientConnectionTime == null)
                        {
                            if (replacement == null)
                            {
                                ClientConnectionTime = new BaseDataVariableState<DateTime>(this);
                            }
                            else
                            {
                                ClientConnectionTime = (BaseDataVariableState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = ClientConnectionTime;
                    break;
                }

                case Opc.Ua.BrowseNames.ClientLastContactTime:
                {
                    if (createOrReplace)
                    {
                        if (ClientLastContactTime == null)
                        {
                            if (replacement == null)
                            {
                                ClientLastContactTime = new BaseDataVariableState<DateTime>(this);
                            }
                            else
                            {
                                ClientLastContactTime = (BaseDataVariableState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = ClientLastContactTime;
                    break;
                }

                case Opc.Ua.BrowseNames.CurrentSubscriptionsCount:
                {
                    if (createOrReplace)
                    {
                        if (CurrentSubscriptionsCount == null)
                        {
                            if (replacement == null)
                            {
                                CurrentSubscriptionsCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                CurrentSubscriptionsCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = CurrentSubscriptionsCount;
                    break;
                }

                case Opc.Ua.BrowseNames.CurrentMonitoredItemsCount:
                {
                    if (createOrReplace)
                    {
                        if (CurrentMonitoredItemsCount == null)
                        {
                            if (replacement == null)
                            {
                                CurrentMonitoredItemsCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                CurrentMonitoredItemsCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = CurrentMonitoredItemsCount;
                    break;
                }

                case Opc.Ua.BrowseNames.CurrentPublishRequestsInQueue:
                {
                    if (createOrReplace)
                    {
                        if (CurrentPublishRequestsInQueue == null)
                        {
                            if (replacement == null)
                            {
                                CurrentPublishRequestsInQueue = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                CurrentPublishRequestsInQueue = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = CurrentPublishRequestsInQueue;
                    break;
                }

                case Opc.Ua.BrowseNames.TotalRequestCount:
                {
                    if (createOrReplace)
                    {
                        if (TotalRequestCount == null)
                        {
                            if (replacement == null)
                            {
                                TotalRequestCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                TotalRequestCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = TotalRequestCount;
                    break;
                }

                case Opc.Ua.BrowseNames.UnauthorizedRequestCount:
                {
                    if (createOrReplace)
                    {
                        if (UnauthorizedRequestCount == null)
                        {
                            if (replacement == null)
                            {
                                UnauthorizedRequestCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                UnauthorizedRequestCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = UnauthorizedRequestCount;
                    break;
                }

                case Opc.Ua.BrowseNames.ReadCount:
                {
                    if (createOrReplace)
                    {
                        if (ReadCount == null)
                        {
                            if (replacement == null)
                            {
                                ReadCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                ReadCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = ReadCount;
                    break;
                }

                case Opc.Ua.BrowseNames.HistoryReadCount:
                {
                    if (createOrReplace)
                    {
                        if (HistoryReadCount == null)
                        {
                            if (replacement == null)
                            {
                                HistoryReadCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                HistoryReadCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = HistoryReadCount;
                    break;
                }

                case Opc.Ua.BrowseNames.WriteCount:
                {
                    if (createOrReplace)
                    {
                        if (WriteCount == null)
                        {
                            if (replacement == null)
                            {
                                WriteCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                WriteCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = WriteCount;
                    break;
                }

                case Opc.Ua.BrowseNames.HistoryUpdateCount:
                {
                    if (createOrReplace)
                    {
                        if (HistoryUpdateCount == null)
                        {
                            if (replacement == null)
                            {
                                HistoryUpdateCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                HistoryUpdateCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = HistoryUpdateCount;
                    break;
                }

                case Opc.Ua.BrowseNames.CallCount:
                {
                    if (createOrReplace)
                    {
                        if (CallCount == null)
                        {
                            if (replacement == null)
                            {
                                CallCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                CallCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = CallCount;
                    break;
                }

                case Opc.Ua.BrowseNames.CreateMonitoredItemsCount:
                {
                    if (createOrReplace)
                    {
                        if (CreateMonitoredItemsCount == null)
                        {
                            if (replacement == null)
                            {
                                CreateMonitoredItemsCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                CreateMonitoredItemsCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = CreateMonitoredItemsCount;
                    break;
                }

                case Opc.Ua.BrowseNames.ModifyMonitoredItemsCount:
                {
                    if (createOrReplace)
                    {
                        if (ModifyMonitoredItemsCount == null)
                        {
                            if (replacement == null)
                            {
                                ModifyMonitoredItemsCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                ModifyMonitoredItemsCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = ModifyMonitoredItemsCount;
                    break;
                }

                case Opc.Ua.BrowseNames.SetMonitoringModeCount:
                {
                    if (createOrReplace)
                    {
                        if (SetMonitoringModeCount == null)
                        {
                            if (replacement == null)
                            {
                                SetMonitoringModeCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                SetMonitoringModeCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = SetMonitoringModeCount;
                    break;
                }

                case Opc.Ua.BrowseNames.SetTriggeringCount:
                {
                    if (createOrReplace)
                    {
                        if (SetTriggeringCount == null)
                        {
                            if (replacement == null)
                            {
                                SetTriggeringCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                SetTriggeringCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = SetTriggeringCount;
                    break;
                }

                case Opc.Ua.BrowseNames.DeleteMonitoredItemsCount:
                {
                    if (createOrReplace)
                    {
                        if (DeleteMonitoredItemsCount == null)
                        {
                            if (replacement == null)
                            {
                                DeleteMonitoredItemsCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                DeleteMonitoredItemsCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = DeleteMonitoredItemsCount;
                    break;
                }

                case Opc.Ua.BrowseNames.CreateSubscriptionCount:
                {
                    if (createOrReplace)
                    {
                        if (CreateSubscriptionCount == null)
                        {
                            if (replacement == null)
                            {
                                CreateSubscriptionCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                CreateSubscriptionCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = CreateSubscriptionCount;
                    break;
                }

                case Opc.Ua.BrowseNames.ModifySubscriptionCount:
                {
                    if (createOrReplace)
                    {
                        if (ModifySubscriptionCount == null)
                        {
                            if (replacement == null)
                            {
                                ModifySubscriptionCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                ModifySubscriptionCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = ModifySubscriptionCount;
                    break;
                }

                case Opc.Ua.BrowseNames.SetPublishingModeCount:
                {
                    if (createOrReplace)
                    {
                        if (SetPublishingModeCount == null)
                        {
                            if (replacement == null)
                            {
                                SetPublishingModeCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                SetPublishingModeCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = SetPublishingModeCount;
                    break;
                }

                case Opc.Ua.BrowseNames.PublishCount:
                {
                    if (createOrReplace)
                    {
                        if (PublishCount == null)
                        {
                            if (replacement == null)
                            {
                                PublishCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                PublishCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = PublishCount;
                    break;
                }

                case Opc.Ua.BrowseNames.RepublishCount:
                {
                    if (createOrReplace)
                    {
                        if (RepublishCount == null)
                        {
                            if (replacement == null)
                            {
                                RepublishCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                RepublishCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = RepublishCount;
                    break;
                }

                case Opc.Ua.BrowseNames.TransferSubscriptionsCount:
                {
                    if (createOrReplace)
                    {
                        if (TransferSubscriptionsCount == null)
                        {
                            if (replacement == null)
                            {
                                TransferSubscriptionsCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                TransferSubscriptionsCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = TransferSubscriptionsCount;
                    break;
                }

                case Opc.Ua.BrowseNames.DeleteSubscriptionsCount:
                {
                    if (createOrReplace)
                    {
                        if (DeleteSubscriptionsCount == null)
                        {
                            if (replacement == null)
                            {
                                DeleteSubscriptionsCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                DeleteSubscriptionsCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = DeleteSubscriptionsCount;
                    break;
                }

                case Opc.Ua.BrowseNames.AddNodesCount:
                {
                    if (createOrReplace)
                    {
                        if (AddNodesCount == null)
                        {
                            if (replacement == null)
                            {
                                AddNodesCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                AddNodesCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = AddNodesCount;
                    break;
                }

                case Opc.Ua.BrowseNames.AddReferencesCount:
                {
                    if (createOrReplace)
                    {
                        if (AddReferencesCount == null)
                        {
                            if (replacement == null)
                            {
                                AddReferencesCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                AddReferencesCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = AddReferencesCount;
                    break;
                }

                case Opc.Ua.BrowseNames.DeleteNodesCount:
                {
                    if (createOrReplace)
                    {
                        if (DeleteNodesCount == null)
                        {
                            if (replacement == null)
                            {
                                DeleteNodesCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                DeleteNodesCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = DeleteNodesCount;
                    break;
                }

                case Opc.Ua.BrowseNames.DeleteReferencesCount:
                {
                    if (createOrReplace)
                    {
                        if (DeleteReferencesCount == null)
                        {
                            if (replacement == null)
                            {
                                DeleteReferencesCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                DeleteReferencesCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = DeleteReferencesCount;
                    break;
                }

                case Opc.Ua.BrowseNames.BrowseCount:
                {
                    if (createOrReplace)
                    {
                        if (BrowseCount == null)
                        {
                            if (replacement == null)
                            {
                                BrowseCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                BrowseCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = BrowseCount;
                    break;
                }

                case Opc.Ua.BrowseNames.BrowseNextCount:
                {
                    if (createOrReplace)
                    {
                        if (BrowseNextCount == null)
                        {
                            if (replacement == null)
                            {
                                BrowseNextCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                BrowseNextCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = BrowseNextCount;
                    break;
                }

                case Opc.Ua.BrowseNames.TranslateBrowsePathsToNodeIdsCount:
                {
                    if (createOrReplace)
                    {
                        if (TranslateBrowsePathsToNodeIdsCount == null)
                        {
                            if (replacement == null)
                            {
                                TranslateBrowsePathsToNodeIdsCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                TranslateBrowsePathsToNodeIdsCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = TranslateBrowsePathsToNodeIdsCount;
                    break;
                }

                case Opc.Ua.BrowseNames.QueryFirstCount:
                {
                    if (createOrReplace)
                    {
                        if (QueryFirstCount == null)
                        {
                            if (replacement == null)
                            {
                                QueryFirstCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                QueryFirstCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = QueryFirstCount;
                    break;
                }

                case Opc.Ua.BrowseNames.QueryNextCount:
                {
                    if (createOrReplace)
                    {
                        if (QueryNextCount == null)
                        {
                            if (replacement == null)
                            {
                                QueryNextCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                QueryNextCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = QueryNextCount;
                    break;
                }

                case Opc.Ua.BrowseNames.RegisterNodesCount:
                {
                    if (createOrReplace)
                    {
                        if (RegisterNodesCount == null)
                        {
                            if (replacement == null)
                            {
                                RegisterNodesCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                RegisterNodesCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = RegisterNodesCount;
                    break;
                }

                case Opc.Ua.BrowseNames.UnregisterNodesCount:
                {
                    if (createOrReplace)
                    {
                        if (UnregisterNodesCount == null)
                        {
                            if (replacement == null)
                            {
                                UnregisterNodesCount = new BaseDataVariableState<ServiceCounterDataType>(this);
                            }
                            else
                            {
                                UnregisterNodesCount = (BaseDataVariableState<ServiceCounterDataType>)replacement;
                            }
                        }
                    }

                    instance = UnregisterNodesCount;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<NodeId> m_sessionId;
        private BaseDataVariableState<string> m_sessionName;
        private BaseDataVariableState<ApplicationDescription> m_clientDescription;
        private BaseDataVariableState<string> m_serverUri;
        private BaseDataVariableState<string> m_endpointUrl;
        private BaseDataVariableState<string[]> m_localeIds;
        private BaseDataVariableState<double> m_actualSessionTimeout;
        private BaseDataVariableState<uint> m_maxResponseMessageSize;
        private BaseDataVariableState<DateTime> m_clientConnectionTime;
        private BaseDataVariableState<DateTime> m_clientLastContactTime;
        private BaseDataVariableState<uint> m_currentSubscriptionsCount;
        private BaseDataVariableState<uint> m_currentMonitoredItemsCount;
        private BaseDataVariableState<uint> m_currentPublishRequestsInQueue;
        private BaseDataVariableState<ServiceCounterDataType> m_totalRequestCount;
        private BaseDataVariableState<uint> m_unauthorizedRequestCount;
        private BaseDataVariableState<ServiceCounterDataType> m_readCount;
        private BaseDataVariableState<ServiceCounterDataType> m_historyReadCount;
        private BaseDataVariableState<ServiceCounterDataType> m_writeCount;
        private BaseDataVariableState<ServiceCounterDataType> m_historyUpdateCount;
        private BaseDataVariableState<ServiceCounterDataType> m_callCount;
        private BaseDataVariableState<ServiceCounterDataType> m_createMonitoredItemsCount;
        private BaseDataVariableState<ServiceCounterDataType> m_modifyMonitoredItemsCount;
        private BaseDataVariableState<ServiceCounterDataType> m_setMonitoringModeCount;
        private BaseDataVariableState<ServiceCounterDataType> m_setTriggeringCount;
        private BaseDataVariableState<ServiceCounterDataType> m_deleteMonitoredItemsCount;
        private BaseDataVariableState<ServiceCounterDataType> m_createSubscriptionCount;
        private BaseDataVariableState<ServiceCounterDataType> m_modifySubscriptionCount;
        private BaseDataVariableState<ServiceCounterDataType> m_setPublishingModeCount;
        private BaseDataVariableState<ServiceCounterDataType> m_publishCount;
        private BaseDataVariableState<ServiceCounterDataType> m_republishCount;
        private BaseDataVariableState<ServiceCounterDataType> m_transferSubscriptionsCount;
        private BaseDataVariableState<ServiceCounterDataType> m_deleteSubscriptionsCount;
        private BaseDataVariableState<ServiceCounterDataType> m_addNodesCount;
        private BaseDataVariableState<ServiceCounterDataType> m_addReferencesCount;
        private BaseDataVariableState<ServiceCounterDataType> m_deleteNodesCount;
        private BaseDataVariableState<ServiceCounterDataType> m_deleteReferencesCount;
        private BaseDataVariableState<ServiceCounterDataType> m_browseCount;
        private BaseDataVariableState<ServiceCounterDataType> m_browseNextCount;
        private BaseDataVariableState<ServiceCounterDataType> m_translateBrowsePathsToNodeIdsCount;
        private BaseDataVariableState<ServiceCounterDataType> m_queryFirstCount;
        private BaseDataVariableState<ServiceCounterDataType> m_queryNextCount;
        private BaseDataVariableState<ServiceCounterDataType> m_registerNodesCount;
        private BaseDataVariableState<ServiceCounterDataType> m_unregisterNodesCount;
        #endregion
    }

    #region SessionDiagnosticsVariableValue Class
    /// <summary>
    /// A typed version of the _BrowseName_ variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class SessionDiagnosticsVariableValue : BaseVariableValue
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public SessionDiagnosticsVariableValue(SessionDiagnosticsVariableState variable, SessionDiagnosticsDataType value, object dataLock) : base(dataLock)
        {
            m_value = value;

            if (m_value == null)
            {
                m_value = new SessionDiagnosticsDataType();
            }

            Initialize(variable);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The variable that the value belongs to.
        /// </summary>
        public SessionDiagnosticsVariableState Variable
        {
            get { return m_variable; }
        }

        /// <summary>
        /// The value of the variable.
        /// </summary>
        public SessionDiagnosticsDataType Value
        {
            get { return m_value;  }
            set { m_value = value; }
        }
        #endregion

        #region Private Methods
        /// <summary>
        /// Initializes the object.
        /// </summary>
        private void Initialize(SessionDiagnosticsVariableState variable)
        {
            lock (Lock)
            {
                m_variable = variable;

                variable.Value = m_value;

                variable.OnReadValue = OnReadValue;
                variable.OnSimpleWriteValue = OnWriteValue;

                BaseVariableState instance = null;
                List<BaseInstanceState> updateList = new List<BaseInstanceState>();
                updateList.Add(variable);

                instance = m_variable.SessionId;
                instance.OnReadValue = OnRead_SessionId;
                instance.OnSimpleWriteValue = OnWrite_SessionId;
                updateList.Add(instance);
                instance = m_variable.SessionName;
                instance.OnReadValue = OnRead_SessionName;
                instance.OnSimpleWriteValue = OnWrite_SessionName;
                updateList.Add(instance);
                instance = m_variable.ClientDescription;
                instance.OnReadValue = OnRead_ClientDescription;
                instance.OnSimpleWriteValue = OnWrite_ClientDescription;
                updateList.Add(instance);
                instance = m_variable.ServerUri;
                instance.OnReadValue = OnRead_ServerUri;
                instance.OnSimpleWriteValue = OnWrite_ServerUri;
                updateList.Add(instance);
                instance = m_variable.EndpointUrl;
                instance.OnReadValue = OnRead_EndpointUrl;
                instance.OnSimpleWriteValue = OnWrite_EndpointUrl;
                updateList.Add(instance);
                instance = m_variable.LocaleIds;
                instance.OnReadValue = OnRead_LocaleIds;
                instance.OnSimpleWriteValue = OnWrite_LocaleIds;
                updateList.Add(instance);
                instance = m_variable.ActualSessionTimeout;
                instance.OnReadValue = OnRead_ActualSessionTimeout;
                instance.OnSimpleWriteValue = OnWrite_ActualSessionTimeout;
                updateList.Add(instance);
                instance = m_variable.MaxResponseMessageSize;
                instance.OnReadValue = OnRead_MaxResponseMessageSize;
                instance.OnSimpleWriteValue = OnWrite_MaxResponseMessageSize;
                updateList.Add(instance);
                instance = m_variable.ClientConnectionTime;
                instance.OnReadValue = OnRead_ClientConnectionTime;
                instance.OnSimpleWriteValue = OnWrite_ClientConnectionTime;
                updateList.Add(instance);
                instance = m_variable.ClientLastContactTime;
                instance.OnReadValue = OnRead_ClientLastContactTime;
                instance.OnSimpleWriteValue = OnWrite_ClientLastContactTime;
                updateList.Add(instance);
                instance = m_variable.CurrentSubscriptionsCount;
                instance.OnReadValue = OnRead_CurrentSubscriptionsCount;
                instance.OnSimpleWriteValue = OnWrite_CurrentSubscriptionsCount;
                updateList.Add(instance);
                instance = m_variable.CurrentMonitoredItemsCount;
                instance.OnReadValue = OnRead_CurrentMonitoredItemsCount;
                instance.OnSimpleWriteValue = OnWrite_CurrentMonitoredItemsCount;
                updateList.Add(instance);
                instance = m_variable.CurrentPublishRequestsInQueue;
                instance.OnReadValue = OnRead_CurrentPublishRequestsInQueue;
                instance.OnSimpleWriteValue = OnWrite_CurrentPublishRequestsInQueue;
                updateList.Add(instance);
                instance = m_variable.TotalRequestCount;
                instance.OnReadValue = OnRead_TotalRequestCount;
                instance.OnSimpleWriteValue = OnWrite_TotalRequestCount;
                updateList.Add(instance);
                instance = m_variable.UnauthorizedRequestCount;
                instance.OnReadValue = OnRead_UnauthorizedRequestCount;
                instance.OnSimpleWriteValue = OnWrite_UnauthorizedRequestCount;
                updateList.Add(instance);
                instance = m_variable.ReadCount;
                instance.OnReadValue = OnRead_ReadCount;
                instance.OnSimpleWriteValue = OnWrite_ReadCount;
                updateList.Add(instance);
                instance = m_variable.HistoryReadCount;
                instance.OnReadValue = OnRead_HistoryReadCount;
                instance.OnSimpleWriteValue = OnWrite_HistoryReadCount;
                updateList.Add(instance);
                instance = m_variable.WriteCount;
                instance.OnReadValue = OnRead_WriteCount;
                instance.OnSimpleWriteValue = OnWrite_WriteCount;
                updateList.Add(instance);
                instance = m_variable.HistoryUpdateCount;
                instance.OnReadValue = OnRead_HistoryUpdateCount;
                instance.OnSimpleWriteValue = OnWrite_HistoryUpdateCount;
                updateList.Add(instance);
                instance = m_variable.CallCount;
                instance.OnReadValue = OnRead_CallCount;
                instance.OnSimpleWriteValue = OnWrite_CallCount;
                updateList.Add(instance);
                instance = m_variable.CreateMonitoredItemsCount;
                instance.OnReadValue = OnRead_CreateMonitoredItemsCount;
                instance.OnSimpleWriteValue = OnWrite_CreateMonitoredItemsCount;
                updateList.Add(instance);
                instance = m_variable.ModifyMonitoredItemsCount;
                instance.OnReadValue = OnRead_ModifyMonitoredItemsCount;
                instance.OnSimpleWriteValue = OnWrite_ModifyMonitoredItemsCount;
                updateList.Add(instance);
                instance = m_variable.SetMonitoringModeCount;
                instance.OnReadValue = OnRead_SetMonitoringModeCount;
                instance.OnSimpleWriteValue = OnWrite_SetMonitoringModeCount;
                updateList.Add(instance);
                instance = m_variable.SetTriggeringCount;
                instance.OnReadValue = OnRead_SetTriggeringCount;
                instance.OnSimpleWriteValue = OnWrite_SetTriggeringCount;
                updateList.Add(instance);
                instance = m_variable.DeleteMonitoredItemsCount;
                instance.OnReadValue = OnRead_DeleteMonitoredItemsCount;
                instance.OnSimpleWriteValue = OnWrite_DeleteMonitoredItemsCount;
                updateList.Add(instance);
                instance = m_variable.CreateSubscriptionCount;
                instance.OnReadValue = OnRead_CreateSubscriptionCount;
                instance.OnSimpleWriteValue = OnWrite_CreateSubscriptionCount;
                updateList.Add(instance);
                instance = m_variable.ModifySubscriptionCount;
                instance.OnReadValue = OnRead_ModifySubscriptionCount;
                instance.OnSimpleWriteValue = OnWrite_ModifySubscriptionCount;
                updateList.Add(instance);
                instance = m_variable.SetPublishingModeCount;
                instance.OnReadValue = OnRead_SetPublishingModeCount;
                instance.OnSimpleWriteValue = OnWrite_SetPublishingModeCount;
                updateList.Add(instance);
                instance = m_variable.PublishCount;
                instance.OnReadValue = OnRead_PublishCount;
                instance.OnSimpleWriteValue = OnWrite_PublishCount;
                updateList.Add(instance);
                instance = m_variable.RepublishCount;
                instance.OnReadValue = OnRead_RepublishCount;
                instance.OnSimpleWriteValue = OnWrite_RepublishCount;
                updateList.Add(instance);
                instance = m_variable.TransferSubscriptionsCount;
                instance.OnReadValue = OnRead_TransferSubscriptionsCount;
                instance.OnSimpleWriteValue = OnWrite_TransferSubscriptionsCount;
                updateList.Add(instance);
                instance = m_variable.DeleteSubscriptionsCount;
                instance.OnReadValue = OnRead_DeleteSubscriptionsCount;
                instance.OnSimpleWriteValue = OnWrite_DeleteSubscriptionsCount;
                updateList.Add(instance);
                instance = m_variable.AddNodesCount;
                instance.OnReadValue = OnRead_AddNodesCount;
                instance.OnSimpleWriteValue = OnWrite_AddNodesCount;
                updateList.Add(instance);
                instance = m_variable.AddReferencesCount;
                instance.OnReadValue = OnRead_AddReferencesCount;
                instance.OnSimpleWriteValue = OnWrite_AddReferencesCount;
                updateList.Add(instance);
                instance = m_variable.DeleteNodesCount;
                instance.OnReadValue = OnRead_DeleteNodesCount;
                instance.OnSimpleWriteValue = OnWrite_DeleteNodesCount;
                updateList.Add(instance);
                instance = m_variable.DeleteReferencesCount;
                instance.OnReadValue = OnRead_DeleteReferencesCount;
                instance.OnSimpleWriteValue = OnWrite_DeleteReferencesCount;
                updateList.Add(instance);
                instance = m_variable.BrowseCount;
                instance.OnReadValue = OnRead_BrowseCount;
                instance.OnSimpleWriteValue = OnWrite_BrowseCount;
                updateList.Add(instance);
                instance = m_variable.BrowseNextCount;
                instance.OnReadValue = OnRead_BrowseNextCount;
                instance.OnSimpleWriteValue = OnWrite_BrowseNextCount;
                updateList.Add(instance);
                instance = m_variable.TranslateBrowsePathsToNodeIdsCount;
                instance.OnReadValue = OnRead_TranslateBrowsePathsToNodeIdsCount;
                instance.OnSimpleWriteValue = OnWrite_TranslateBrowsePathsToNodeIdsCount;
                updateList.Add(instance);
                instance = m_variable.QueryFirstCount;
                instance.OnReadValue = OnRead_QueryFirstCount;
                instance.OnSimpleWriteValue = OnWrite_QueryFirstCount;
                updateList.Add(instance);
                instance = m_variable.QueryNextCount;
                instance.OnReadValue = OnRead_QueryNextCount;
                instance.OnSimpleWriteValue = OnWrite_QueryNextCount;
                updateList.Add(instance);
                instance = m_variable.RegisterNodesCount;
                instance.OnReadValue = OnRead_RegisterNodesCount;
                instance.OnSimpleWriteValue = OnWrite_RegisterNodesCount;
                updateList.Add(instance);
                instance = m_variable.UnregisterNodesCount;
                instance.OnReadValue = OnRead_UnregisterNodesCount;
                instance.OnSimpleWriteValue = OnWrite_UnregisterNodesCount;
                updateList.Add(instance);

                SetUpdateList(updateList);
            }
        }

        /// <summary>
        /// Reads the value of the variable.
        /// </summary>
        protected ServiceResult OnReadValue(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable.
        /// </summary>
        private ServiceResult OnWriteValue(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value = (SessionDiagnosticsDataType)Write(value);
            }

            return ServiceResult.Good;
        }

        #region SessionId Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SessionId(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SessionId;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SessionId(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SessionId = (NodeId)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region SessionName Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SessionName(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SessionName;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SessionName(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SessionName = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region ClientDescription Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ClientDescription(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ClientDescription;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ClientDescription(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ClientDescription = (ApplicationDescription)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region ServerUri Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ServerUri(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ServerUri;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ServerUri(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ServerUri = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region EndpointUrl Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_EndpointUrl(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.EndpointUrl;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_EndpointUrl(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.EndpointUrl = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LocaleIds Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LocaleIds(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LocaleIds;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LocaleIds(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LocaleIds = (StringCollection)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region ActualSessionTimeout Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ActualSessionTimeout(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ActualSessionTimeout;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ActualSessionTimeout(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ActualSessionTimeout = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region MaxResponseMessageSize Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_MaxResponseMessageSize(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.MaxResponseMessageSize;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_MaxResponseMessageSize(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.MaxResponseMessageSize = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region ClientConnectionTime Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ClientConnectionTime(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ClientConnectionTime;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ClientConnectionTime(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ClientConnectionTime = (DateTime)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region ClientLastContactTime Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ClientLastContactTime(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ClientLastContactTime;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ClientLastContactTime(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ClientLastContactTime = (DateTime)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CurrentSubscriptionsCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CurrentSubscriptionsCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CurrentSubscriptionsCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CurrentSubscriptionsCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CurrentSubscriptionsCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CurrentMonitoredItemsCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CurrentMonitoredItemsCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CurrentMonitoredItemsCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CurrentMonitoredItemsCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CurrentMonitoredItemsCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CurrentPublishRequestsInQueue Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CurrentPublishRequestsInQueue(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CurrentPublishRequestsInQueue;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CurrentPublishRequestsInQueue(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CurrentPublishRequestsInQueue = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region TotalRequestCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_TotalRequestCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.TotalRequestCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_TotalRequestCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.TotalRequestCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region UnauthorizedRequestCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_UnauthorizedRequestCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.UnauthorizedRequestCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_UnauthorizedRequestCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.UnauthorizedRequestCount = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region ReadCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ReadCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ReadCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ReadCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ReadCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region HistoryReadCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_HistoryReadCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.HistoryReadCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_HistoryReadCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.HistoryReadCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region WriteCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_WriteCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.WriteCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_WriteCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.WriteCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region HistoryUpdateCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_HistoryUpdateCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.HistoryUpdateCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_HistoryUpdateCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.HistoryUpdateCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CallCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CallCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CallCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CallCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CallCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CreateMonitoredItemsCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CreateMonitoredItemsCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CreateMonitoredItemsCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CreateMonitoredItemsCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CreateMonitoredItemsCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region ModifyMonitoredItemsCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ModifyMonitoredItemsCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ModifyMonitoredItemsCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ModifyMonitoredItemsCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ModifyMonitoredItemsCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region SetMonitoringModeCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SetMonitoringModeCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SetMonitoringModeCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SetMonitoringModeCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SetMonitoringModeCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region SetTriggeringCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SetTriggeringCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SetTriggeringCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SetTriggeringCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SetTriggeringCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region DeleteMonitoredItemsCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_DeleteMonitoredItemsCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.DeleteMonitoredItemsCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_DeleteMonitoredItemsCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.DeleteMonitoredItemsCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CreateSubscriptionCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CreateSubscriptionCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CreateSubscriptionCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CreateSubscriptionCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CreateSubscriptionCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region ModifySubscriptionCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ModifySubscriptionCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ModifySubscriptionCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ModifySubscriptionCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ModifySubscriptionCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region SetPublishingModeCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SetPublishingModeCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SetPublishingModeCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SetPublishingModeCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SetPublishingModeCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region PublishCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_PublishCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.PublishCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_PublishCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.PublishCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region RepublishCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_RepublishCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.RepublishCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_RepublishCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.RepublishCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region TransferSubscriptionsCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_TransferSubscriptionsCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.TransferSubscriptionsCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_TransferSubscriptionsCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.TransferSubscriptionsCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region DeleteSubscriptionsCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_DeleteSubscriptionsCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.DeleteSubscriptionsCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_DeleteSubscriptionsCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.DeleteSubscriptionsCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region AddNodesCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_AddNodesCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.AddNodesCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_AddNodesCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.AddNodesCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region AddReferencesCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_AddReferencesCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.AddReferencesCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_AddReferencesCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.AddReferencesCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region DeleteNodesCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_DeleteNodesCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.DeleteNodesCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_DeleteNodesCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.DeleteNodesCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region DeleteReferencesCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_DeleteReferencesCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.DeleteReferencesCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_DeleteReferencesCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.DeleteReferencesCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region BrowseCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_BrowseCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.BrowseCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_BrowseCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.BrowseCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region BrowseNextCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_BrowseNextCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.BrowseNextCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_BrowseNextCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.BrowseNextCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region TranslateBrowsePathsToNodeIdsCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_TranslateBrowsePathsToNodeIdsCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.TranslateBrowsePathsToNodeIdsCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_TranslateBrowsePathsToNodeIdsCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.TranslateBrowsePathsToNodeIdsCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region QueryFirstCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_QueryFirstCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.QueryFirstCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_QueryFirstCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.QueryFirstCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region QueryNextCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_QueryNextCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.QueryNextCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_QueryNextCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.QueryNextCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region RegisterNodesCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_RegisterNodesCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.RegisterNodesCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_RegisterNodesCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.RegisterNodesCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region UnregisterNodesCount Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_UnregisterNodesCount(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.UnregisterNodesCount;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_UnregisterNodesCount(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.UnregisterNodesCount = (ServiceCounterDataType)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion
        #endregion

        #region Private Fields
        private SessionDiagnosticsDataType m_value;
        private SessionDiagnosticsVariableState m_variable;
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region SessionSecurityDiagnosticsArrayState Class
    #if (!OPCUA_EXCLUDE_SessionSecurityDiagnosticsArrayState)
    /// <summary>
    /// Stores an instance of the SessionSecurityDiagnosticsArrayType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SessionSecurityDiagnosticsArrayState : BaseDataVariableState<SessionSecurityDiagnosticsDataType[]>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SessionSecurityDiagnosticsArrayState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.SessionSecurityDiagnosticsArrayType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.SessionSecurityDiagnosticsDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.OneDimension;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8XYIkCAgAAAAAAKwAAAFNlc3Npb25TZWN1cml0eURpYWdub3N0aWNzQXJyYXlUeXBlSW5z" +
           "dGFuY2UBAMMIAQDDCMMIAAABAGQDAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region SessionSecurityDiagnosticsState Class
    #if (!OPCUA_EXCLUDE_SessionSecurityDiagnosticsState)
    /// <summary>
    /// Stores an instance of the SessionSecurityDiagnosticsType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SessionSecurityDiagnosticsState : BaseDataVariableState<SessionSecurityDiagnosticsDataType>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SessionSecurityDiagnosticsState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.SessionSecurityDiagnosticsType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.SessionSecurityDiagnosticsDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAJgAAAFNlc3Npb25TZWN1cml0eURpYWdub3N0aWNzVHlwZUluc3RhbmNl" +
           "AQDECAEAxAjECAAAAQBkA/////8BAf////8JAAAAFWCJCgIAAAAAAAkAAABTZXNzaW9uSWQBAMUIAC8A" +
           "P8UIAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAABUAAABDbGllbnRVc2VySWRPZlNlc3Npb24BAMYI" +
           "AC8AP8YIAAAADP////8BAf////8AAAAAF2CJCgIAAAAAABMAAABDbGllbnRVc2VySWRIaXN0b3J5AQDH" +
           "CAAvAD/HCAAAAAwBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAABcAAABBdXRoZW50aWNhdGlv" +
           "bk1lY2hhbmlzbQEAyAgALwA/yAgAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAEVuY29kaW5n" +
           "AQDJCAAvAD/JCAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAARAAAAVHJhbnNwb3J0UHJvdG9jb2wB" +
           "AMoIAC8AP8oIAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABTZWN1cml0eU1vZGUBAMsIAC8A" +
           "P8sIAAABAC4B/////wEB/////wAAAAAVYIkKAgAAAAAAEQAAAFNlY3VyaXR5UG9saWN5VXJpAQDMCAAv" +
           "AD/MCAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAARAAAAQ2xpZW50Q2VydGlmaWNhdGUBAPILAC8A" +
           "P/ILAAAAD/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<NodeId> SessionId
        {
            get
            {
                return m_sessionId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sessionId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sessionId = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> ClientUserIdOfSession
        {
            get
            {
                return m_clientUserIdOfSession;
            }

            set
            {
                if (!Object.ReferenceEquals(m_clientUserIdOfSession, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_clientUserIdOfSession = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string[]> ClientUserIdHistory
        {
            get
            {
                return m_clientUserIdHistory;
            }

            set
            {
                if (!Object.ReferenceEquals(m_clientUserIdHistory, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_clientUserIdHistory = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> AuthenticationMechanism
        {
            get
            {
                return m_authenticationMechanism;
            }

            set
            {
                if (!Object.ReferenceEquals(m_authenticationMechanism, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_authenticationMechanism = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> Encoding
        {
            get
            {
                return m_encoding;
            }

            set
            {
                if (!Object.ReferenceEquals(m_encoding, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_encoding = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> TransportProtocol
        {
            get
            {
                return m_transportProtocol;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transportProtocol, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transportProtocol = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<MessageSecurityMode> SecurityMode
        {
            get
            {
                return m_securityMode;
            }

            set
            {
                if (!Object.ReferenceEquals(m_securityMode, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_securityMode = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> SecurityPolicyUri
        {
            get
            {
                return m_securityPolicyUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_securityPolicyUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_securityPolicyUri = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<byte[]> ClientCertificate
        {
            get
            {
                return m_clientCertificate;
            }

            set
            {
                if (!Object.ReferenceEquals(m_clientCertificate, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_clientCertificate = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_sessionId != null)
            {
                children.Add(m_sessionId);
            }

            if (m_clientUserIdOfSession != null)
            {
                children.Add(m_clientUserIdOfSession);
            }

            if (m_clientUserIdHistory != null)
            {
                children.Add(m_clientUserIdHistory);
            }

            if (m_authenticationMechanism != null)
            {
                children.Add(m_authenticationMechanism);
            }

            if (m_encoding != null)
            {
                children.Add(m_encoding);
            }

            if (m_transportProtocol != null)
            {
                children.Add(m_transportProtocol);
            }

            if (m_securityMode != null)
            {
                children.Add(m_securityMode);
            }

            if (m_securityPolicyUri != null)
            {
                children.Add(m_securityPolicyUri);
            }

            if (m_clientCertificate != null)
            {
                children.Add(m_clientCertificate);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SessionId:
                {
                    if (createOrReplace)
                    {
                        if (SessionId == null)
                        {
                            if (replacement == null)
                            {
                                SessionId = new BaseDataVariableState<NodeId>(this);
                            }
                            else
                            {
                                SessionId = (BaseDataVariableState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = SessionId;
                    break;
                }

                case Opc.Ua.BrowseNames.ClientUserIdOfSession:
                {
                    if (createOrReplace)
                    {
                        if (ClientUserIdOfSession == null)
                        {
                            if (replacement == null)
                            {
                                ClientUserIdOfSession = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                ClientUserIdOfSession = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = ClientUserIdOfSession;
                    break;
                }

                case Opc.Ua.BrowseNames.ClientUserIdHistory:
                {
                    if (createOrReplace)
                    {
                        if (ClientUserIdHistory == null)
                        {
                            if (replacement == null)
                            {
                                ClientUserIdHistory = new BaseDataVariableState<string[]>(this);
                            }
                            else
                            {
                                ClientUserIdHistory = (BaseDataVariableState<string[]>)replacement;
                            }
                        }
                    }

                    instance = ClientUserIdHistory;
                    break;
                }

                case Opc.Ua.BrowseNames.AuthenticationMechanism:
                {
                    if (createOrReplace)
                    {
                        if (AuthenticationMechanism == null)
                        {
                            if (replacement == null)
                            {
                                AuthenticationMechanism = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                AuthenticationMechanism = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = AuthenticationMechanism;
                    break;
                }

                case Opc.Ua.BrowseNames.Encoding:
                {
                    if (createOrReplace)
                    {
                        if (Encoding == null)
                        {
                            if (replacement == null)
                            {
                                Encoding = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                Encoding = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = Encoding;
                    break;
                }

                case Opc.Ua.BrowseNames.TransportProtocol:
                {
                    if (createOrReplace)
                    {
                        if (TransportProtocol == null)
                        {
                            if (replacement == null)
                            {
                                TransportProtocol = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                TransportProtocol = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = TransportProtocol;
                    break;
                }

                case Opc.Ua.BrowseNames.SecurityMode:
                {
                    if (createOrReplace)
                    {
                        if (SecurityMode == null)
                        {
                            if (replacement == null)
                            {
                                SecurityMode = new BaseDataVariableState<MessageSecurityMode>(this);
                            }
                            else
                            {
                                SecurityMode = (BaseDataVariableState<MessageSecurityMode>)replacement;
                            }
                        }
                    }

                    instance = SecurityMode;
                    break;
                }

                case Opc.Ua.BrowseNames.SecurityPolicyUri:
                {
                    if (createOrReplace)
                    {
                        if (SecurityPolicyUri == null)
                        {
                            if (replacement == null)
                            {
                                SecurityPolicyUri = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                SecurityPolicyUri = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = SecurityPolicyUri;
                    break;
                }

                case Opc.Ua.BrowseNames.ClientCertificate:
                {
                    if (createOrReplace)
                    {
                        if (ClientCertificate == null)
                        {
                            if (replacement == null)
                            {
                                ClientCertificate = new BaseDataVariableState<byte[]>(this);
                            }
                            else
                            {
                                ClientCertificate = (BaseDataVariableState<byte[]>)replacement;
                            }
                        }
                    }

                    instance = ClientCertificate;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<NodeId> m_sessionId;
        private BaseDataVariableState<string> m_clientUserIdOfSession;
        private BaseDataVariableState<string[]> m_clientUserIdHistory;
        private BaseDataVariableState<string> m_authenticationMechanism;
        private BaseDataVariableState<string> m_encoding;
        private BaseDataVariableState<string> m_transportProtocol;
        private BaseDataVariableState<MessageSecurityMode> m_securityMode;
        private BaseDataVariableState<string> m_securityPolicyUri;
        private BaseDataVariableState<byte[]> m_clientCertificate;
        #endregion
    }

    #region SessionSecurityDiagnosticsValue Class
    /// <summary>
    /// A typed version of the _BrowseName_ variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class SessionSecurityDiagnosticsValue : BaseVariableValue
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public SessionSecurityDiagnosticsValue(SessionSecurityDiagnosticsState variable, SessionSecurityDiagnosticsDataType value, object dataLock) : base(dataLock)
        {
            m_value = value;

            if (m_value == null)
            {
                m_value = new SessionSecurityDiagnosticsDataType();
            }

            Initialize(variable);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The variable that the value belongs to.
        /// </summary>
        public SessionSecurityDiagnosticsState Variable
        {
            get { return m_variable; }
        }

        /// <summary>
        /// The value of the variable.
        /// </summary>
        public SessionSecurityDiagnosticsDataType Value
        {
            get { return m_value;  }
            set { m_value = value; }
        }
        #endregion

        #region Private Methods
        /// <summary>
        /// Initializes the object.
        /// </summary>
        private void Initialize(SessionSecurityDiagnosticsState variable)
        {
            lock (Lock)
            {
                m_variable = variable;

                variable.Value = m_value;

                variable.OnReadValue = OnReadValue;
                variable.OnSimpleWriteValue = OnWriteValue;

                BaseVariableState instance = null;
                List<BaseInstanceState> updateList = new List<BaseInstanceState>();
                updateList.Add(variable);

                instance = m_variable.SessionId;
                instance.OnReadValue = OnRead_SessionId;
                instance.OnSimpleWriteValue = OnWrite_SessionId;
                updateList.Add(instance);
                instance = m_variable.ClientUserIdOfSession;
                instance.OnReadValue = OnRead_ClientUserIdOfSession;
                instance.OnSimpleWriteValue = OnWrite_ClientUserIdOfSession;
                updateList.Add(instance);
                instance = m_variable.ClientUserIdHistory;
                instance.OnReadValue = OnRead_ClientUserIdHistory;
                instance.OnSimpleWriteValue = OnWrite_ClientUserIdHistory;
                updateList.Add(instance);
                instance = m_variable.AuthenticationMechanism;
                instance.OnReadValue = OnRead_AuthenticationMechanism;
                instance.OnSimpleWriteValue = OnWrite_AuthenticationMechanism;
                updateList.Add(instance);
                instance = m_variable.Encoding;
                instance.OnReadValue = OnRead_Encoding;
                instance.OnSimpleWriteValue = OnWrite_Encoding;
                updateList.Add(instance);
                instance = m_variable.TransportProtocol;
                instance.OnReadValue = OnRead_TransportProtocol;
                instance.OnSimpleWriteValue = OnWrite_TransportProtocol;
                updateList.Add(instance);
                instance = m_variable.SecurityMode;
                instance.OnReadValue = OnRead_SecurityMode;
                instance.OnSimpleWriteValue = OnWrite_SecurityMode;
                updateList.Add(instance);
                instance = m_variable.SecurityPolicyUri;
                instance.OnReadValue = OnRead_SecurityPolicyUri;
                instance.OnSimpleWriteValue = OnWrite_SecurityPolicyUri;
                updateList.Add(instance);
                instance = m_variable.ClientCertificate;
                instance.OnReadValue = OnRead_ClientCertificate;
                instance.OnSimpleWriteValue = OnWrite_ClientCertificate;
                updateList.Add(instance);

                SetUpdateList(updateList);
            }
        }

        /// <summary>
        /// Reads the value of the variable.
        /// </summary>
        protected ServiceResult OnReadValue(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable.
        /// </summary>
        private ServiceResult OnWriteValue(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value = (SessionSecurityDiagnosticsDataType)Write(value);
            }

            return ServiceResult.Good;
        }

        #region SessionId Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SessionId(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SessionId;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SessionId(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SessionId = (NodeId)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region ClientUserIdOfSession Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ClientUserIdOfSession(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ClientUserIdOfSession;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ClientUserIdOfSession(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ClientUserIdOfSession = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region ClientUserIdHistory Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ClientUserIdHistory(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ClientUserIdHistory;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ClientUserIdHistory(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ClientUserIdHistory = (StringCollection)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region AuthenticationMechanism Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_AuthenticationMechanism(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.AuthenticationMechanism;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_AuthenticationMechanism(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.AuthenticationMechanism = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region Encoding Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_Encoding(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.Encoding;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_Encoding(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.Encoding = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region TransportProtocol Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_TransportProtocol(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.TransportProtocol;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_TransportProtocol(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.TransportProtocol = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region SecurityMode Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SecurityMode(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SecurityMode;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SecurityMode(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SecurityMode = (MessageSecurityMode)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region SecurityPolicyUri Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_SecurityPolicyUri(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.SecurityPolicyUri;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_SecurityPolicyUri(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.SecurityPolicyUri = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region ClientCertificate Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_ClientCertificate(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.ClientCertificate;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_ClientCertificate(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.ClientCertificate = (byte[])Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion
        #endregion

        #region Private Fields
        private SessionSecurityDiagnosticsDataType m_value;
        private SessionSecurityDiagnosticsState m_variable;
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region OptionSetState Class
    #if (!OPCUA_EXCLUDE_OptionSetState)
    /// <summary>
    /// Stores an instance of the OptionSetType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class OptionSetState : BaseDataVariableState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public OptionSetState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.OptionSetType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.BaseDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (BitMask != null)
            {
                BitMask.Initialize(context, BitMask_InitializationString);
            }
        }

        #region Initialization String
        private const string BitMask_InitializationString =
           "//////////8XYIkKAgAAAAAABwAAAEJpdE1hc2sBALUtAC4ARLUtAAAAAQEAAAABAAAAAAAAAAEB////" +
           "/wAAAAA=";

        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAFQAAAE9wdGlvblNldFR5cGVJbnN0YW5jZQEA3ywBAN8s3ywAAAAY////" +
           "/wEB/////wIAAAAXYIkKAgAAAAAADwAAAE9wdGlvblNldFZhbHVlcwEA4CwALgBE4CwAAAAVAQAAAAEA" +
           "AAAAAAAAAQH/////AAAAABdgiQoCAAAAAAAHAAAAQml0TWFzawEAtS0ALgBEtS0AAAABAQAAAAEAAAAA" +
           "AAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<LocalizedText[]> OptionSetValues
        {
            get
            {
                return m_optionSetValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_optionSetValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_optionSetValues = value;
            }
        }

        /// <remarks />
        public PropertyState<bool[]> BitMask
        {
            get
            {
                return m_bitMask;
            }

            set
            {
                if (!Object.ReferenceEquals(m_bitMask, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_bitMask = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_optionSetValues != null)
            {
                children.Add(m_optionSetValues);
            }

            if (m_bitMask != null)
            {
                children.Add(m_bitMask);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.OptionSetValues:
                {
                    if (createOrReplace)
                    {
                        if (OptionSetValues == null)
                        {
                            if (replacement == null)
                            {
                                OptionSetValues = new PropertyState<LocalizedText[]>(this);
                            }
                            else
                            {
                                OptionSetValues = (PropertyState<LocalizedText[]>)replacement;
                            }
                        }
                    }

                    instance = OptionSetValues;
                    break;
                }

                case Opc.Ua.BrowseNames.BitMask:
                {
                    if (createOrReplace)
                    {
                        if (BitMask == null)
                        {
                            if (replacement == null)
                            {
                                BitMask = new PropertyState<bool[]>(this);
                            }
                            else
                            {
                                BitMask = (PropertyState<bool[]>)replacement;
                            }
                        }
                    }

                    instance = BitMask;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<LocalizedText[]> m_optionSetValues;
        private PropertyState<bool[]> m_bitMask;
        #endregion
    }

    #region OptionSetState<T> Class
    /// <summary>
    /// A typed version of the OptionSetType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class OptionSetState<T> : OptionSetState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public OptionSetState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region SelectionListState Class
    #if (!OPCUA_EXCLUDE_SelectionListState)
    /// <summary>
    /// Stores an instance of the SelectionListType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SelectionListState : BaseDataVariableState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SelectionListState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.SelectionListType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.BaseDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Any;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (SelectionDescriptions != null)
            {
                SelectionDescriptions.Initialize(context, SelectionDescriptions_InitializationString);
            }

            if (RestrictToList != null)
            {
                RestrictToList.Initialize(context, RestrictToList_InitializationString);
            }
        }

        #region Initialization String
        private const string SelectionDescriptions_InitializationString =
           "//////////8XYIkKAgAAAAAAFQAAAFNlbGVjdGlvbkRlc2NyaXB0aW9ucwEA4UQALgBE4UQAAAAVAQAA" +
           "AAEAAAAAAAAAAQH/////AAAAAA==";

        private const string RestrictToList_InitializationString =
           "//////////8VYIkKAgAAAAAADgAAAFJlc3RyaWN0VG9MaXN0AQC4PwAuAES4PwAAAAH/////AQH/////" +
           "AAAAAA==";

        private const string InitializationString =
           "//////////8VYIECAgAAAAAAGQAAAFNlbGVjdGlvbkxpc3RUeXBlSW5zdGFuY2UBALU/AQC1P7U/AAAA" +
           "GAEB/////wMAAAAXYIkKAgAAAAAACgAAAFNlbGVjdGlvbnMBAOBEAC4AROBEAAAAGAEAAAABAAAAAAAA" +
           "AAEB/////wAAAAAXYIkKAgAAAAAAFQAAAFNlbGVjdGlvbkRlc2NyaXB0aW9ucwEA4UQALgBE4UQAAAAV" +
           "AQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAAAAAOAAAAUmVzdHJpY3RUb0xpc3QBALg/AC4ARLg/" +
           "AAAAAf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<object[]> Selections
        {
            get
            {
                return m_selections;
            }

            set
            {
                if (!Object.ReferenceEquals(m_selections, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_selections = value;
            }
        }

        /// <remarks />
        public PropertyState<LocalizedText[]> SelectionDescriptions
        {
            get
            {
                return m_selectionDescriptions;
            }

            set
            {
                if (!Object.ReferenceEquals(m_selectionDescriptions, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_selectionDescriptions = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> RestrictToList
        {
            get
            {
                return m_restrictToList;
            }

            set
            {
                if (!Object.ReferenceEquals(m_restrictToList, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_restrictToList = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_selections != null)
            {
                children.Add(m_selections);
            }

            if (m_selectionDescriptions != null)
            {
                children.Add(m_selectionDescriptions);
            }

            if (m_restrictToList != null)
            {
                children.Add(m_restrictToList);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Selections:
                {
                    if (createOrReplace)
                    {
                        if (Selections == null)
                        {
                            if (replacement == null)
                            {
                                Selections = new PropertyState<object[]>(this);
                            }
                            else
                            {
                                Selections = (PropertyState<object[]>)replacement;
                            }
                        }
                    }

                    instance = Selections;
                    break;
                }

                case Opc.Ua.BrowseNames.SelectionDescriptions:
                {
                    if (createOrReplace)
                    {
                        if (SelectionDescriptions == null)
                        {
                            if (replacement == null)
                            {
                                SelectionDescriptions = new PropertyState<LocalizedText[]>(this);
                            }
                            else
                            {
                                SelectionDescriptions = (PropertyState<LocalizedText[]>)replacement;
                            }
                        }
                    }

                    instance = SelectionDescriptions;
                    break;
                }

                case Opc.Ua.BrowseNames.RestrictToList:
                {
                    if (createOrReplace)
                    {
                        if (RestrictToList == null)
                        {
                            if (replacement == null)
                            {
                                RestrictToList = new PropertyState<bool>(this);
                            }
                            else
                            {
                                RestrictToList = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = RestrictToList;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<object[]> m_selections;
        private PropertyState<LocalizedText[]> m_selectionDescriptions;
        private PropertyState<bool> m_restrictToList;
        #endregion
    }

    #region SelectionListState<T> Class
    /// <summary>
    /// A typed version of the SelectionListType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class SelectionListState<T> : SelectionListState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public SelectionListState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region AudioVariableState Class
    #if (!OPCUA_EXCLUDE_AudioVariableState)
    /// <summary>
    /// Stores an instance of the AudioVariableType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AudioVariableState : BaseDataVariableState<byte[]>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AudioVariableState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.AudioVariableType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.AudioDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (ListId != null)
            {
                ListId.Initialize(context, ListId_InitializationString);
            }

            if (AgencyId != null)
            {
                AgencyId.Initialize(context, AgencyId_InitializationString);
            }

            if (VersionId != null)
            {
                VersionId.Initialize(context, VersionId_InitializationString);
            }
        }

        #region Initialization String
        private const string ListId_InitializationString =
           "//////////8VYIkKAgAAAAAABgAAAExpc3RJZAEAREYALgBEREYAAAAM/////wEB/////wAAAAA=";

        private const string AgencyId_InitializationString =
           "//////////8VYIkKAgAAAAAACAAAAEFnZW5jeUlkAQBFRgAuAERFRgAAAAz/////AQH/////AAAAAA==";

        private const string VersionId_InitializationString =
           "//////////8VYIkKAgAAAAAACQAAAFZlcnNpb25JZAEARkYALgBERkYAAAAM/////wEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAGQAAAEF1ZGlvVmFyaWFibGVUeXBlSW5zdGFuY2UBAEJGAQBCRkJGAAAB" +
           "ALM//////wEB/////wMAAAAVYIkKAgAAAAAABgAAAExpc3RJZAEAREYALgBEREYAAAAM/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAACAAAAEFnZW5jeUlkAQBFRgAuAERFRgAAAAz/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAJAAAAVmVyc2lvbklkAQBGRgAuAERGRgAAAAz/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> ListId
        {
            get
            {
                return m_listId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_listId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_listId = value;
            }
        }

        /// <remarks />
        public PropertyState<string> AgencyId
        {
            get
            {
                return m_agencyId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_agencyId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_agencyId = value;
            }
        }

        /// <remarks />
        public PropertyState<string> VersionId
        {
            get
            {
                return m_versionId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_versionId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_versionId = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_listId != null)
            {
                children.Add(m_listId);
            }

            if (m_agencyId != null)
            {
                children.Add(m_agencyId);
            }

            if (m_versionId != null)
            {
                children.Add(m_versionId);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ListId:
                {
                    if (createOrReplace)
                    {
                        if (ListId == null)
                        {
                            if (replacement == null)
                            {
                                ListId = new PropertyState<string>(this);
                            }
                            else
                            {
                                ListId = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ListId;
                    break;
                }

                case Opc.Ua.BrowseNames.AgencyId:
                {
                    if (createOrReplace)
                    {
                        if (AgencyId == null)
                        {
                            if (replacement == null)
                            {
                                AgencyId = new PropertyState<string>(this);
                            }
                            else
                            {
                                AgencyId = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = AgencyId;
                    break;
                }

                case Opc.Ua.BrowseNames.VersionId:
                {
                    if (createOrReplace)
                    {
                        if (VersionId == null)
                        {
                            if (replacement == null)
                            {
                                VersionId = new PropertyState<string>(this);
                            }
                            else
                            {
                                VersionId = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = VersionId;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_listId;
        private PropertyState<string> m_agencyId;
        private PropertyState<string> m_versionId;
        #endregion
    }
    #endif
    #endregion

    #region GetMonitoredItemsMethodState Class
    #if (!OPCUA_EXCLUDE_GetMonitoredItemsMethodState)
    /// <summary>
    /// Stores an instance of the GetMonitoredItemsMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class GetMonitoredItemsMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public GetMonitoredItemsMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new GetMonitoredItemsMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGwAAAEdldE1vbml0b3JlZEl0ZW1zTWV0aG9kVHlwZQEA5ywALwEA5yzn" +
           "LAAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAOgsAC4AROgsAACWAQAAAAEA" +
           "KgEBHQAAAA4AAABTdWJzY3JpcHRpb25JZAAH/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAA" +
           "AAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEA6SwALgBE6SwAAJYCAAAAAQAqAQEgAAAADQAA" +
           "AFNlcnZlckhhbmRsZXMABwEAAAABAAAAAAAAAAABACoBASAAAAANAAAAQ2xpZW50SGFuZGxlcwAHAQAA" +
           "AAEAAAAAAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public GetMonitoredItemsMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            uint subscriptionId = (uint)_inputArguments[0];

            uint[] serverHandles = (uint[])_outputArguments[0];
            uint[] clientHandles = (uint[])_outputArguments[1];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    subscriptionId,
                    ref serverHandles,
                    ref clientHandles);
            }

            _outputArguments[0] = serverHandles;
            _outputArguments[1] = clientHandles;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult GetMonitoredItemsMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        uint subscriptionId,
        ref uint[] serverHandles,
        ref uint[] clientHandles);
    #endif
    #endregion

    #region ResendDataMethodState Class
    #if (!OPCUA_EXCLUDE_ResendDataMethodState)
    /// <summary>
    /// Stores an instance of the ResendDataMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ResendDataMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ResendDataMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new ResendDataMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAFAAAAFJlc2VuZERhdGFNZXRob2RUeXBlAQBLMgAvAQBLMksyAAABAf//" +
           "//8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEATDIALgBETDIAAJYBAAAAAQAqAQEdAAAA" +
           "DgAAAFN1YnNjcmlwdGlvbklkAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public ResendDataMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            uint subscriptionId = (uint)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    subscriptionId);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult ResendDataMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        uint subscriptionId);
    #endif
    #endregion

    #region SetSubscriptionDurableMethodState Class
    #if (!OPCUA_EXCLUDE_SetSubscriptionDurableMethodState)
    /// <summary>
    /// Stores an instance of the SetSubscriptionDurableMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SetSubscriptionDurableMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SetSubscriptionDurableMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new SetSubscriptionDurableMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAIAAAAFNldFN1YnNjcmlwdGlvbkR1cmFibGVNZXRob2RUeXBlAQDQMQAv" +
           "AQDQMdAxAAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA0TEALgBE0TEAAJYC" +
           "AAAAAQAqAQEdAAAADgAAAFN1YnNjcmlwdGlvbklkAAf/////AAAAAAABACoBAR4AAAAPAAAATGlmZXRp" +
           "bWVJbkhvdXJzAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAA" +
           "T3V0cHV0QXJndW1lbnRzAQDSMQAuAETSMQAAlgEAAAABACoBASUAAAAWAAAAUmV2aXNlZExpZmV0aW1l" +
           "SW5Ib3VycwAH/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public SetSubscriptionDurableMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            uint subscriptionId = (uint)_inputArguments[0];
            uint lifetimeInHours = (uint)_inputArguments[1];

            uint revisedLifetimeInHours = (uint)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    subscriptionId,
                    lifetimeInHours,
                    ref revisedLifetimeInHours);
            }

            _outputArguments[0] = revisedLifetimeInHours;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult SetSubscriptionDurableMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        uint subscriptionId,
        uint lifetimeInHours,
        ref uint revisedLifetimeInHours);
    #endif
    #endregion

    #region RequestServerStateChangeMethodState Class
    #if (!OPCUA_EXCLUDE_RequestServerStateChangeMethodState)
    /// <summary>
    /// Stores an instance of the RequestServerStateChangeMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RequestServerStateChangeMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RequestServerStateChangeMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new RequestServerStateChangeMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAIgAAAFJlcXVlc3RTZXJ2ZXJTdGF0ZUNoYW5nZU1ldGhvZFR5cGUBAFgy" +
           "AC8BAFgyWDIAAAEB/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBZMgAuAERZMgAA" +
           "lgUAAAABACoBARYAAAAFAAAAU3RhdGUBAFQD/////wAAAAAAAQAqAQEiAAAAEwAAAEVzdGltYXRlZFJl" +
           "dHVyblRpbWUADf////8AAAAAAAEAKgEBIgAAABMAAABTZWNvbmRzVGlsbFNodXRkb3duAAf/////AAAA" +
           "AAABACoBARUAAAAGAAAAUmVhc29uABX/////AAAAAAABACoBARYAAAAHAAAAUmVzdGFydAAB/////wAA" +
           "AAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public RequestServerStateChangeMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            ServerState state = (ServerState)_inputArguments[0];
            DateTime estimatedReturnTime = (DateTime)_inputArguments[1];
            uint secondsTillShutdown = (uint)_inputArguments[2];
            LocalizedText reason = (LocalizedText)_inputArguments[3];
            bool restart = (bool)_inputArguments[4];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    state,
                    estimatedReturnTime,
                    secondsTillShutdown,
                    reason,
                    restart);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult RequestServerStateChangeMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        ServerState state,
        DateTime estimatedReturnTime,
        uint secondsTillShutdown,
        LocalizedText reason,
        bool restart);
    #endif
    #endregion

    #region StateMachineState Class
    #if (!OPCUA_EXCLUDE_StateMachineState)
    /// <summary>
    /// Stores an instance of the StateMachineType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class StateMachineState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public StateMachineState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.StateMachineType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (LastTransition != null)
            {
                LastTransition.Initialize(context, LastTransition_InitializationString);
            }
        }

        #region Initialization String
        private const string LastTransition_InitializationString =
           "//////////8VYIkKAgAAAAAADgAAAExhc3RUcmFuc2l0aW9uAQDSCgAvAQDKCtIKAAAAFf////8BAf//" +
           "//8BAAAAFWCJCgIAAAAAAAIAAABJZAEAjA4ALgBEjA4AAAAY/////wEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGAAAAFN0YXRlTWFjaGluZVR5cGVJbnN0YW5jZQEA+wgBAPsI+wgAAP//" +
           "//8CAAAAFWCJCgIAAAAAAAwAAABDdXJyZW50U3RhdGUBANEKAC8BAMMK0QoAAAAV/////wEB/////wEA" +
           "AAAVYIkKAgAAAAAAAgAAAElkAQCIDgAuAESIDgAAABj/////AQH/////AAAAABVgiQoCAAAAAAAOAAAA" +
           "TGFzdFRyYW5zaXRpb24BANIKAC8BAMoK0goAAAAV/////wEB/////wEAAAAVYIkKAgAAAAAAAgAAAElk" +
           "AQCMDgAuAESMDgAAABj/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public StateVariableState CurrentState
        {
            get
            {
                return m_currentState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_currentState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_currentState = value;
            }
        }

        /// <remarks />
        public TransitionVariableState LastTransition
        {
            get
            {
                return m_lastTransition;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastTransition, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastTransition = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_currentState != null)
            {
                children.Add(m_currentState);
            }

            if (m_lastTransition != null)
            {
                children.Add(m_lastTransition);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.CurrentState:
                {
                    if (createOrReplace)
                    {
                        if (CurrentState == null)
                        {
                            if (replacement == null)
                            {
                                CurrentState = new StateVariableState(this);
                            }
                            else
                            {
                                CurrentState = (StateVariableState)replacement;
                            }
                        }
                    }

                    instance = CurrentState;
                    break;
                }

                case Opc.Ua.BrowseNames.LastTransition:
                {
                    if (createOrReplace)
                    {
                        if (LastTransition == null)
                        {
                            if (replacement == null)
                            {
                                LastTransition = new TransitionVariableState(this);
                            }
                            else
                            {
                                LastTransition = (TransitionVariableState)replacement;
                            }
                        }
                    }

                    instance = LastTransition;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private StateVariableState m_currentState;
        private TransitionVariableState m_lastTransition;
        #endregion
    }
    #endif
    #endregion

    #region StateVariableState Class
    #if (!OPCUA_EXCLUDE_StateVariableState)
    /// <summary>
    /// Stores an instance of the StateVariableType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class StateVariableState : BaseDataVariableState<LocalizedText>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public StateVariableState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.StateVariableType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.LocalizedText, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (Name != null)
            {
                Name.Initialize(context, Name_InitializationString);
            }

            if (Number != null)
            {
                Number.Initialize(context, Number_InitializationString);
            }

            if (EffectiveDisplayName != null)
            {
                EffectiveDisplayName.Initialize(context, EffectiveDisplayName_InitializationString);
            }
        }

        #region Initialization String
        private const string Name_InitializationString =
           "//////////8VYIkKAgAAAAAABAAAAE5hbWUBAMUKAC4ARMUKAAAAFP////8BAf////8AAAAA";

        private const string Number_InitializationString =
           "//////////8VYIkKAgAAAAAABgAAAE51bWJlcgEAxgoALgBExgoAAAAH/////wEB/////wAAAAA=";

        private const string EffectiveDisplayName_InitializationString =
           "//////////8VYIkKAgAAAAAAFAAAAEVmZmVjdGl2ZURpc3BsYXlOYW1lAQDHCgAuAETHCgAAABX/////" +
           "AQH/////AAAAAA==";

        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAGQAAAFN0YXRlVmFyaWFibGVUeXBlSW5zdGFuY2UBAMMKAQDDCsMKAAAA" +
           "Ff////8BAf////8EAAAAFWCJCgIAAAAAAAIAAABJZAEAxAoALgBExAoAAAAY/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAABAAAAE5hbWUBAMUKAC4ARMUKAAAAFP////8BAf////8AAAAAFWCJCgIAAAAAAAYAAABO" +
           "dW1iZXIBAMYKAC4ARMYKAAAAB/////8BAf////8AAAAAFWCJCgIAAAAAABQAAABFZmZlY3RpdmVEaXNw" +
           "bGF5TmFtZQEAxwoALgBExwoAAAAV/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState Id
        {
            get
            {
                return m_id;
            }

            set
            {
                if (!Object.ReferenceEquals(m_id, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_id = value;
            }
        }

        /// <remarks />
        public PropertyState<QualifiedName> Name
        {
            get
            {
                return m_name;
            }

            set
            {
                if (!Object.ReferenceEquals(m_name, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_name = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> Number
        {
            get
            {
                return m_number;
            }

            set
            {
                if (!Object.ReferenceEquals(m_number, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_number = value;
            }
        }

        /// <remarks />
        public PropertyState<LocalizedText> EffectiveDisplayName
        {
            get
            {
                return m_effectiveDisplayName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_effectiveDisplayName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_effectiveDisplayName = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_id != null)
            {
                children.Add(m_id);
            }

            if (m_name != null)
            {
                children.Add(m_name);
            }

            if (m_number != null)
            {
                children.Add(m_number);
            }

            if (m_effectiveDisplayName != null)
            {
                children.Add(m_effectiveDisplayName);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Id:
                {
                    if (createOrReplace)
                    {
                        if (Id == null)
                        {
                            if (replacement == null)
                            {
                                Id = new PropertyState(this);
                            }
                            else
                            {
                                Id = (PropertyState)replacement;
                            }
                        }
                    }

                    instance = Id;
                    break;
                }

                case Opc.Ua.BrowseNames.Name:
                {
                    if (createOrReplace)
                    {
                        if (Name == null)
                        {
                            if (replacement == null)
                            {
                                Name = new PropertyState<QualifiedName>(this);
                            }
                            else
                            {
                                Name = (PropertyState<QualifiedName>)replacement;
                            }
                        }
                    }

                    instance = Name;
                    break;
                }

                case Opc.Ua.BrowseNames.Number:
                {
                    if (createOrReplace)
                    {
                        if (Number == null)
                        {
                            if (replacement == null)
                            {
                                Number = new PropertyState<uint>(this);
                            }
                            else
                            {
                                Number = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = Number;
                    break;
                }

                case Opc.Ua.BrowseNames.EffectiveDisplayName:
                {
                    if (createOrReplace)
                    {
                        if (EffectiveDisplayName == null)
                        {
                            if (replacement == null)
                            {
                                EffectiveDisplayName = new PropertyState<LocalizedText>(this);
                            }
                            else
                            {
                                EffectiveDisplayName = (PropertyState<LocalizedText>)replacement;
                            }
                        }
                    }

                    instance = EffectiveDisplayName;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState m_id;
        private PropertyState<QualifiedName> m_name;
        private PropertyState<uint> m_number;
        private PropertyState<LocalizedText> m_effectiveDisplayName;
        #endregion
    }
    #endif
    #endregion

    #region TransitionVariableState Class
    #if (!OPCUA_EXCLUDE_TransitionVariableState)
    /// <summary>
    /// Stores an instance of the TransitionVariableType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TransitionVariableState : BaseDataVariableState<LocalizedText>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TransitionVariableState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.TransitionVariableType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.LocalizedText, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (Name != null)
            {
                Name.Initialize(context, Name_InitializationString);
            }

            if (Number != null)
            {
                Number.Initialize(context, Number_InitializationString);
            }

            if (TransitionTime != null)
            {
                TransitionTime.Initialize(context, TransitionTime_InitializationString);
            }

            if (EffectiveTransitionTime != null)
            {
                EffectiveTransitionTime.Initialize(context, EffectiveTransitionTime_InitializationString);
            }
        }

        #region Initialization String
        private const string Name_InitializationString =
           "//////////8VYIkKAgAAAAAABAAAAE5hbWUBAMwKAC4ARMwKAAAAFP////8BAf////8AAAAA";

        private const string Number_InitializationString =
           "//////////8VYIkKAgAAAAAABgAAAE51bWJlcgEAzQoALgBEzQoAAAAH/////wEB/////wAAAAA=";

        private const string TransitionTime_InitializationString =
           "//////////8VYIkKAgAAAAAADgAAAFRyYW5zaXRpb25UaW1lAQDOCgAuAETOCgAAAQAmAf////8BAf//" +
           "//8AAAAA";

        private const string EffectiveTransitionTime_InitializationString =
           "//////////8VYIkKAgAAAAAAFwAAAEVmZmVjdGl2ZVRyYW5zaXRpb25UaW1lAQDALAAuAETALAAAAQAm" +
           "Af////8BAf////8AAAAA";

        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAHgAAAFRyYW5zaXRpb25WYXJpYWJsZVR5cGVJbnN0YW5jZQEAygoBAMoK" +
           "ygoAAAAV/////wEB/////wUAAAAVYIkKAgAAAAAAAgAAAElkAQDLCgAuAETLCgAAABj/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAEAAAATmFtZQEAzAoALgBEzAoAAAAU/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "BgAAAE51bWJlcgEAzQoALgBEzQoAAAAH/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAFRyYW5zaXRp" +
           "b25UaW1lAQDOCgAuAETOCgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAABcAAABFZmZlY3RpdmVU" +
           "cmFuc2l0aW9uVGltZQEAwCwALgBEwCwAAAEAJgH/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState Id
        {
            get
            {
                return m_id;
            }

            set
            {
                if (!Object.ReferenceEquals(m_id, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_id = value;
            }
        }

        /// <remarks />
        public PropertyState<QualifiedName> Name
        {
            get
            {
                return m_name;
            }

            set
            {
                if (!Object.ReferenceEquals(m_name, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_name = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> Number
        {
            get
            {
                return m_number;
            }

            set
            {
                if (!Object.ReferenceEquals(m_number, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_number = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> TransitionTime
        {
            get
            {
                return m_transitionTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transitionTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transitionTime = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> EffectiveTransitionTime
        {
            get
            {
                return m_effectiveTransitionTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_effectiveTransitionTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_effectiveTransitionTime = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_id != null)
            {
                children.Add(m_id);
            }

            if (m_name != null)
            {
                children.Add(m_name);
            }

            if (m_number != null)
            {
                children.Add(m_number);
            }

            if (m_transitionTime != null)
            {
                children.Add(m_transitionTime);
            }

            if (m_effectiveTransitionTime != null)
            {
                children.Add(m_effectiveTransitionTime);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Id:
                {
                    if (createOrReplace)
                    {
                        if (Id == null)
                        {
                            if (replacement == null)
                            {
                                Id = new PropertyState(this);
                            }
                            else
                            {
                                Id = (PropertyState)replacement;
                            }
                        }
                    }

                    instance = Id;
                    break;
                }

                case Opc.Ua.BrowseNames.Name:
                {
                    if (createOrReplace)
                    {
                        if (Name == null)
                        {
                            if (replacement == null)
                            {
                                Name = new PropertyState<QualifiedName>(this);
                            }
                            else
                            {
                                Name = (PropertyState<QualifiedName>)replacement;
                            }
                        }
                    }

                    instance = Name;
                    break;
                }

                case Opc.Ua.BrowseNames.Number:
                {
                    if (createOrReplace)
                    {
                        if (Number == null)
                        {
                            if (replacement == null)
                            {
                                Number = new PropertyState<uint>(this);
                            }
                            else
                            {
                                Number = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = Number;
                    break;
                }

                case Opc.Ua.BrowseNames.TransitionTime:
                {
                    if (createOrReplace)
                    {
                        if (TransitionTime == null)
                        {
                            if (replacement == null)
                            {
                                TransitionTime = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                TransitionTime = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = TransitionTime;
                    break;
                }

                case Opc.Ua.BrowseNames.EffectiveTransitionTime:
                {
                    if (createOrReplace)
                    {
                        if (EffectiveTransitionTime == null)
                        {
                            if (replacement == null)
                            {
                                EffectiveTransitionTime = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                EffectiveTransitionTime = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = EffectiveTransitionTime;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState m_id;
        private PropertyState<QualifiedName> m_name;
        private PropertyState<uint> m_number;
        private PropertyState<DateTime> m_transitionTime;
        private PropertyState<DateTime> m_effectiveTransitionTime;
        #endregion
    }
    #endif
    #endregion

    #region FiniteStateMachineState Class
    #if (!OPCUA_EXCLUDE_FiniteStateMachineState)
    /// <summary>
    /// Stores an instance of the FiniteStateMachineType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class FiniteStateMachineState : StateMachineState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public FiniteStateMachineState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.FiniteStateMachineType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (LastTransition != null)
            {
                LastTransition.Initialize(context, LastTransition_InitializationString);
            }

            if (AvailableStates != null)
            {
                AvailableStates.Initialize(context, AvailableStates_InitializationString);
            }

            if (AvailableTransitions != null)
            {
                AvailableTransitions.Initialize(context, AvailableTransitions_InitializationString);
            }
        }

        #region Initialization String
        private const string LastTransition_InitializationString =
           "//////////8VYIkKAgAAAAAADgAAAExhc3RUcmFuc2l0aW9uAQDVCgAvAQDPCtUKAAAAFf////8BAf//" +
           "//8BAAAAFWCJCgIAAAAAAAIAAABJZAEAlA4ALgBElA4AAAAR/////wEB/////wAAAAA=";

        private const string AvailableStates_InitializationString =
           "//////////8XYIkKAgAAAAAADwAAAEF2YWlsYWJsZVN0YXRlcwEA40QALwA/40QAAAARAQAAAAEAAAAA" +
           "AAAAAQH/////AAAAAA==";

        private const string AvailableTransitions_InitializationString =
           "//////////8XYIkKAgAAAAAAFAAAAEF2YWlsYWJsZVRyYW5zaXRpb25zAQDkRAAvAD/kRAAAABEBAAAA" +
           "AQAAAAAAAAABAf////8AAAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHgAAAEZpbml0ZVN0YXRlTWFjaGluZVR5cGVJbnN0YW5jZQEA0woBANMK" +
           "0woAAP////8EAAAAFWCJCgIAAAAAAAwAAABDdXJyZW50U3RhdGUBANQKAC8BAMgK1AoAAAAV/////wEB" +
           "/////wEAAAAVYIkKAgAAAAAAAgAAAElkAQCQDgAuAESQDgAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAOAAAATGFzdFRyYW5zaXRpb24BANUKAC8BAM8K1QoAAAAV/////wEB/////wEAAAAVYIkKAgAAAAAA" +
           "AgAAAElkAQCUDgAuAESUDgAAABH/////AQH/////AAAAABdgiQoCAAAAAAAPAAAAQXZhaWxhYmxlU3Rh" +
           "dGVzAQDjRAAvAD/jRAAAABEBAAAAAQAAAAAAAAABAf////8AAAAAF2CJCgIAAAAAABQAAABBdmFpbGFi" +
           "bGVUcmFuc2l0aW9ucwEA5EQALwA/5EQAAAARAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public new FiniteStateVariableState CurrentState
        {
            get { return (FiniteStateVariableState)base.CurrentState; }
            set { base.CurrentState = value; }
        }

        /// <remarks />
        public new FiniteTransitionVariableState LastTransition
        {
            get { return (FiniteTransitionVariableState)base.LastTransition; }
            set { base.LastTransition = value; }
        }

        /// <remarks />
        public BaseDataVariableState<NodeId[]> AvailableStates
        {
            get
            {
                return m_availableStates;
            }

            set
            {
                if (!Object.ReferenceEquals(m_availableStates, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_availableStates = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<NodeId[]> AvailableTransitions
        {
            get
            {
                return m_availableTransitions;
            }

            set
            {
                if (!Object.ReferenceEquals(m_availableTransitions, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_availableTransitions = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_availableStates != null)
            {
                children.Add(m_availableStates);
            }

            if (m_availableTransitions != null)
            {
                children.Add(m_availableTransitions);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.CurrentState:
                {
                    if (createOrReplace)
                    {
                        if (CurrentState == null)
                        {
                            if (replacement == null)
                            {
                                CurrentState = new FiniteStateVariableState(this);
                            }
                            else
                            {
                                CurrentState = (FiniteStateVariableState)replacement;
                            }
                        }
                    }

                    instance = CurrentState;
                    break;
                }

                case Opc.Ua.BrowseNames.LastTransition:
                {
                    if (createOrReplace)
                    {
                        if (LastTransition == null)
                        {
                            if (replacement == null)
                            {
                                LastTransition = new FiniteTransitionVariableState(this);
                            }
                            else
                            {
                                LastTransition = (FiniteTransitionVariableState)replacement;
                            }
                        }
                    }

                    instance = LastTransition;
                    break;
                }

                case Opc.Ua.BrowseNames.AvailableStates:
                {
                    if (createOrReplace)
                    {
                        if (AvailableStates == null)
                        {
                            if (replacement == null)
                            {
                                AvailableStates = new BaseDataVariableState<NodeId[]>(this);
                            }
                            else
                            {
                                AvailableStates = (BaseDataVariableState<NodeId[]>)replacement;
                            }
                        }
                    }

                    instance = AvailableStates;
                    break;
                }

                case Opc.Ua.BrowseNames.AvailableTransitions:
                {
                    if (createOrReplace)
                    {
                        if (AvailableTransitions == null)
                        {
                            if (replacement == null)
                            {
                                AvailableTransitions = new BaseDataVariableState<NodeId[]>(this);
                            }
                            else
                            {
                                AvailableTransitions = (BaseDataVariableState<NodeId[]>)replacement;
                            }
                        }
                    }

                    instance = AvailableTransitions;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<NodeId[]> m_availableStates;
        private BaseDataVariableState<NodeId[]> m_availableTransitions;
        #endregion
    }
    #endif
    #endregion

    #region FiniteStateVariableState Class
    #if (!OPCUA_EXCLUDE_FiniteStateVariableState)
    /// <summary>
    /// Stores an instance of the FiniteStateVariableType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class FiniteStateVariableState : StateVariableState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public FiniteStateVariableState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.FiniteStateVariableType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.LocalizedText, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAHwAAAEZpbml0ZVN0YXRlVmFyaWFibGVUeXBlSW5zdGFuY2UBAMgKAQDI" +
           "CsgKAAAAFf////8BAf////8BAAAAFWCJCgIAAAAAAAIAAABJZAEAyQoALgBEyQoAAAAR/////wEB////" +
           "/wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public new PropertyState<NodeId> Id
        {
            get { return (PropertyState<NodeId>)base.Id; }
            set { base.Id = value; }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Id:
                {
                    if (createOrReplace)
                    {
                        if (Id == null)
                        {
                            if (replacement == null)
                            {
                                Id = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                Id = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = Id;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region FiniteTransitionVariableState Class
    #if (!OPCUA_EXCLUDE_FiniteTransitionVariableState)
    /// <summary>
    /// Stores an instance of the FiniteTransitionVariableType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class FiniteTransitionVariableState : TransitionVariableState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public FiniteTransitionVariableState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.FiniteTransitionVariableType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.LocalizedText, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAJAAAAEZpbml0ZVRyYW5zaXRpb25WYXJpYWJsZVR5cGVJbnN0YW5jZQEA" +
           "zwoBAM8KzwoAAAAV/////wEB/////wEAAAAVYIkKAgAAAAAAAgAAAElkAQDQCgAuAETQCgAAABH/////" +
           "AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public new PropertyState<NodeId> Id
        {
            get { return (PropertyState<NodeId>)base.Id; }
            set { base.Id = value; }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Id:
                {
                    if (createOrReplace)
                    {
                        if (Id == null)
                        {
                            if (replacement == null)
                            {
                                Id = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                Id = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = Id;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region StateMachineStateState Class
    #if (!OPCUA_EXCLUDE_StateMachineStateState)
    /// <summary>
    /// Stores an instance of the StateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class StateMachineStateState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public StateMachineStateState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.StateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAEQAAAFN0YXRlVHlwZUluc3RhbmNlAQADCQEAAwkDCQAA/////wEAAAAV" +
           "YIkKAgAAAAAACwAAAFN0YXRlTnVtYmVyAQAECQAuAEQECQAAAAf/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<uint> StateNumber
        {
            get
            {
                return m_stateNumber;
            }

            set
            {
                if (!Object.ReferenceEquals(m_stateNumber, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_stateNumber = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_stateNumber != null)
            {
                children.Add(m_stateNumber);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.StateNumber:
                {
                    if (createOrReplace)
                    {
                        if (StateNumber == null)
                        {
                            if (replacement == null)
                            {
                                StateNumber = new PropertyState<uint>(this);
                            }
                            else
                            {
                                StateNumber = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = StateNumber;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<uint> m_stateNumber;
        #endregion
    }
    #endif
    #endregion

    #region StateMachineInitialStateState Class
    #if (!OPCUA_EXCLUDE_StateMachineInitialStateState)
    /// <summary>
    /// Stores an instance of the InitialStateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class StateMachineInitialStateState : StateMachineStateState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public StateMachineInitialStateState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.InitialStateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGAAAAEluaXRpYWxTdGF0ZVR5cGVJbnN0YW5jZQEABQkBAAUJBQkAAP//" +
           "//8BAAAAFWCJCgIAAAAAAAsAAABTdGF0ZU51bWJlcgEAmA4ALgBEmA4AAAAH/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region StateMachineTransitionState Class
    #if (!OPCUA_EXCLUDE_StateMachineTransitionState)
    /// <summary>
    /// Stores an instance of the TransitionType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class StateMachineTransitionState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public StateMachineTransitionState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.TransitionType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFgAAAFRyYW5zaXRpb25UeXBlSW5zdGFuY2UBAAYJAQAGCQYJAAD/////" +
           "AQAAABVgiQoCAAAAAAAQAAAAVHJhbnNpdGlvbk51bWJlcgEACAkALgBECAkAAAAH/////wEB/////wAA" +
           "AAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<uint> TransitionNumber
        {
            get
            {
                return m_transitionNumber;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transitionNumber, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transitionNumber = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_transitionNumber != null)
            {
                children.Add(m_transitionNumber);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.TransitionNumber:
                {
                    if (createOrReplace)
                    {
                        if (TransitionNumber == null)
                        {
                            if (replacement == null)
                            {
                                TransitionNumber = new PropertyState<uint>(this);
                            }
                            else
                            {
                                TransitionNumber = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = TransitionNumber;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<uint> m_transitionNumber;
        #endregion
    }
    #endif
    #endregion

    #region StateMachineChoiceStateTypeState Class
    #if (!OPCUA_EXCLUDE_StateMachineChoiceStateTypeState)
    /// <summary>
    /// Stores an instance of the ChoiceStateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class StateMachineChoiceStateTypeState : StateMachineStateState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public StateMachineChoiceStateTypeState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ChoiceStateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFwAAAENob2ljZVN0YXRlVHlwZUluc3RhbmNlAQAFOwEABTsFOwAA////" +
           "/wEAAAAVYIkKAgAAAAAACwAAAFN0YXRlTnVtYmVyAQAGOwAuAEQGOwAAAAf/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region GuardVariableState Class
    #if (!OPCUA_EXCLUDE_GuardVariableState)
    /// <summary>
    /// Stores an instance of the GuardVariableType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class GuardVariableState : BaseDataVariableState<LocalizedText>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public GuardVariableState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.GuardVariableType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.LocalizedText, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAGQAAAEd1YXJkVmFyaWFibGVUeXBlSW5zdGFuY2UBAAk7AQAJOwk7AAAA" +
           "Ff////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region ExpressionGuardVariableState Class
    #if (!OPCUA_EXCLUDE_ExpressionGuardVariableState)
    /// <summary>
    /// Stores an instance of the ExpressionGuardVariableType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ExpressionGuardVariableState : GuardVariableState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ExpressionGuardVariableState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.ExpressionGuardVariableType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.LocalizedText, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAIwAAAEV4cHJlc3Npb25HdWFyZFZhcmlhYmxlVHlwZUluc3RhbmNlAQAY" +
           "OwEAGDsYOwAAABX/////AQH/////AQAAABVgiQoCAAAAAAAKAAAARXhwcmVzc2lvbgEAGTsALgBEGTsA" +
           "AAEASgL/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<ContentFilter> Expression
        {
            get
            {
                return m_expression;
            }

            set
            {
                if (!Object.ReferenceEquals(m_expression, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_expression = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_expression != null)
            {
                children.Add(m_expression);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Expression:
                {
                    if (createOrReplace)
                    {
                        if (Expression == null)
                        {
                            if (replacement == null)
                            {
                                Expression = new PropertyState<ContentFilter>(this);
                            }
                            else
                            {
                                Expression = (PropertyState<ContentFilter>)replacement;
                            }
                        }
                    }

                    instance = Expression;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<ContentFilter> m_expression;
        #endregion
    }
    #endif
    #endregion

    #region ElseGuardVariableState Class
    #if (!OPCUA_EXCLUDE_ElseGuardVariableState)
    /// <summary>
    /// Stores an instance of the ElseGuardVariableType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ElseGuardVariableState : GuardVariableState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ElseGuardVariableState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.ElseGuardVariableType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.LocalizedText, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAHQAAAEVsc2VHdWFyZFZhcmlhYmxlVHlwZUluc3RhbmNlAQDVOwEA1TvV" +
           "OwAAABX/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region RationalNumberState Class
    #if (!OPCUA_EXCLUDE_RationalNumberState)
    /// <summary>
    /// Stores an instance of the RationalNumberType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RationalNumberState : BaseDataVariableState<RationalNumber>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RationalNumberState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.RationalNumberType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.RationalNumber, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAGgAAAFJhdGlvbmFsTnVtYmVyVHlwZUluc3RhbmNlAQAtRQEALUUtRQAA" +
           "AQB2Sf////8BAf////8CAAAAFWCJCgIAAAAAAAkAAABOdW1lcmF0b3IBADBFAC8APzBFAAAABv////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAsAAABEZW5vbWluYXRvcgEAMUUALwA/MUUAAAAH/////wEB/////wAA" +
           "AAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<int> Numerator
        {
            get
            {
                return m_numerator;
            }

            set
            {
                if (!Object.ReferenceEquals(m_numerator, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_numerator = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> Denominator
        {
            get
            {
                return m_denominator;
            }

            set
            {
                if (!Object.ReferenceEquals(m_denominator, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_denominator = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_numerator != null)
            {
                children.Add(m_numerator);
            }

            if (m_denominator != null)
            {
                children.Add(m_denominator);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Numerator:
                {
                    if (createOrReplace)
                    {
                        if (Numerator == null)
                        {
                            if (replacement == null)
                            {
                                Numerator = new BaseDataVariableState<int>(this);
                            }
                            else
                            {
                                Numerator = (BaseDataVariableState<int>)replacement;
                            }
                        }
                    }

                    instance = Numerator;
                    break;
                }

                case Opc.Ua.BrowseNames.Denominator:
                {
                    if (createOrReplace)
                    {
                        if (Denominator == null)
                        {
                            if (replacement == null)
                            {
                                Denominator = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                Denominator = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = Denominator;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<int> m_numerator;
        private BaseDataVariableState<uint> m_denominator;
        #endregion
    }

    #region RationalNumberValue Class
    /// <summary>
    /// A typed version of the _BrowseName_ variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class RationalNumberValue : BaseVariableValue
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public RationalNumberValue(RationalNumberState variable, RationalNumber value, object dataLock) : base(dataLock)
        {
            m_value = value;

            if (m_value == null)
            {
                m_value = new RationalNumber();
            }

            Initialize(variable);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The variable that the value belongs to.
        /// </summary>
        public RationalNumberState Variable
        {
            get { return m_variable; }
        }

        /// <summary>
        /// The value of the variable.
        /// </summary>
        public RationalNumber Value
        {
            get { return m_value;  }
            set { m_value = value; }
        }
        #endregion

        #region Private Methods
        /// <summary>
        /// Initializes the object.
        /// </summary>
        private void Initialize(RationalNumberState variable)
        {
            lock (Lock)
            {
                m_variable = variable;

                variable.Value = m_value;

                variable.OnReadValue = OnReadValue;
                variable.OnSimpleWriteValue = OnWriteValue;

                BaseVariableState instance = null;
                List<BaseInstanceState> updateList = new List<BaseInstanceState>();
                updateList.Add(variable);

                instance = m_variable.Numerator;
                instance.OnReadValue = OnRead_Numerator;
                instance.OnSimpleWriteValue = OnWrite_Numerator;
                updateList.Add(instance);
                instance = m_variable.Denominator;
                instance.OnReadValue = OnRead_Denominator;
                instance.OnSimpleWriteValue = OnWrite_Denominator;
                updateList.Add(instance);

                SetUpdateList(updateList);
            }
        }

        /// <summary>
        /// Reads the value of the variable.
        /// </summary>
        protected ServiceResult OnReadValue(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable.
        /// </summary>
        private ServiceResult OnWriteValue(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value = (RationalNumber)Write(value);
            }

            return ServiceResult.Good;
        }

        #region Numerator Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_Numerator(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.Numerator;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_Numerator(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.Numerator = (int)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region Denominator Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_Denominator(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.Denominator;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_Denominator(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.Denominator = (uint)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion
        #endregion

        #region Private Fields
        private RationalNumber m_value;
        private RationalNumberState m_variable;
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region VectorState Class
    #if (!OPCUA_EXCLUDE_VectorState)
    /// <summary>
    /// Stores an instance of the VectorType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class VectorState : BaseDataVariableState<Vector>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public VectorState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.VectorType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.Vector, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (VectorUnit != null)
            {
                VectorUnit.Initialize(context, VectorUnit_InitializationString);
            }
        }

        #region Initialization String
        private const string VectorUnit_InitializationString =
           "//////////8VYIkKAgAAAAAACgAAAFZlY3RvclVuaXQBADNFAC4ARDNFAAABAHcD/////wEB/////wAA" +
           "AAA=";

        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAEgAAAFZlY3RvclR5cGVJbnN0YW5jZQEAMkUBADJFMkUAAAEAd0n/////" +
           "AQH/////AQAAABVgiQoCAAAAAAAKAAAAVmVjdG9yVW5pdAEAM0UALgBEM0UAAAEAdwP/////AQH/////" +
           "AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<EUInformation> VectorUnit
        {
            get
            {
                return m_vectorUnit;
            }

            set
            {
                if (!Object.ReferenceEquals(m_vectorUnit, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_vectorUnit = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_vectorUnit != null)
            {
                children.Add(m_vectorUnit);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.VectorUnit:
                {
                    if (createOrReplace)
                    {
                        if (VectorUnit == null)
                        {
                            if (replacement == null)
                            {
                                VectorUnit = new PropertyState<EUInformation>(this);
                            }
                            else
                            {
                                VectorUnit = (PropertyState<EUInformation>)replacement;
                            }
                        }
                    }

                    instance = VectorUnit;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<EUInformation> m_vectorUnit;
        #endregion
    }
    #endif
    #endregion

    #region ThreeDVectorState Class
    #if (!OPCUA_EXCLUDE_ThreeDVectorState)
    /// <summary>
    /// Stores an instance of the ThreeDVectorType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ThreeDVectorState : VectorState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ThreeDVectorState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.ThreeDVectorType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.ThreeDVector, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAGAAAAFRocmVlRFZlY3RvclR5cGVJbnN0YW5jZQEANEUBADRFNEUAAAEA" +
           "eEn/////AQH/////AwAAABVgiQoCAAAAAAABAAAAWAEAUUkALwA/UUkAAAAL/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAAAQAAAFkBAFJJAC8AP1JJAAAAC/////8BAf////8AAAAAFWCJCgIAAAAAAAEAAABaAQBT" +
           "SQAvAD9TSQAAAAv/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<double> X
        {
            get
            {
                return m_x;
            }

            set
            {
                if (!Object.ReferenceEquals(m_x, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_x = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<double> Y
        {
            get
            {
                return m_y;
            }

            set
            {
                if (!Object.ReferenceEquals(m_y, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_y = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<double> Z
        {
            get
            {
                return m_z;
            }

            set
            {
                if (!Object.ReferenceEquals(m_z, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_z = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_x != null)
            {
                children.Add(m_x);
            }

            if (m_y != null)
            {
                children.Add(m_y);
            }

            if (m_z != null)
            {
                children.Add(m_z);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.X:
                {
                    if (createOrReplace)
                    {
                        if (X == null)
                        {
                            if (replacement == null)
                            {
                                X = new BaseDataVariableState<double>(this);
                            }
                            else
                            {
                                X = (BaseDataVariableState<double>)replacement;
                            }
                        }
                    }

                    instance = X;
                    break;
                }

                case Opc.Ua.BrowseNames.Y:
                {
                    if (createOrReplace)
                    {
                        if (Y == null)
                        {
                            if (replacement == null)
                            {
                                Y = new BaseDataVariableState<double>(this);
                            }
                            else
                            {
                                Y = (BaseDataVariableState<double>)replacement;
                            }
                        }
                    }

                    instance = Y;
                    break;
                }

                case Opc.Ua.BrowseNames.Z:
                {
                    if (createOrReplace)
                    {
                        if (Z == null)
                        {
                            if (replacement == null)
                            {
                                Z = new BaseDataVariableState<double>(this);
                            }
                            else
                            {
                                Z = (BaseDataVariableState<double>)replacement;
                            }
                        }
                    }

                    instance = Z;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<double> m_x;
        private BaseDataVariableState<double> m_y;
        private BaseDataVariableState<double> m_z;
        #endregion
    }

    #region ThreeDVectorValue Class
    /// <summary>
    /// A typed version of the _BrowseName_ variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class ThreeDVectorValue : BaseVariableValue
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public ThreeDVectorValue(ThreeDVectorState variable, ThreeDVector value, object dataLock) : base(dataLock)
        {
            m_value = value;

            if (m_value == null)
            {
                m_value = new ThreeDVector();
            }

            Initialize(variable);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The variable that the value belongs to.
        /// </summary>
        public ThreeDVectorState Variable
        {
            get { return m_variable; }
        }

        /// <summary>
        /// The value of the variable.
        /// </summary>
        public ThreeDVector Value
        {
            get { return m_value;  }
            set { m_value = value; }
        }
        #endregion

        #region Private Methods
        /// <summary>
        /// Initializes the object.
        /// </summary>
        private void Initialize(ThreeDVectorState variable)
        {
            lock (Lock)
            {
                m_variable = variable;

                variable.Value = m_value;

                variable.OnReadValue = OnReadValue;
                variable.OnSimpleWriteValue = OnWriteValue;

                BaseVariableState instance = null;
                List<BaseInstanceState> updateList = new List<BaseInstanceState>();
                updateList.Add(variable);

                instance = m_variable.X;
                instance.OnReadValue = OnRead_X;
                instance.OnSimpleWriteValue = OnWrite_X;
                updateList.Add(instance);
                instance = m_variable.Y;
                instance.OnReadValue = OnRead_Y;
                instance.OnSimpleWriteValue = OnWrite_Y;
                updateList.Add(instance);
                instance = m_variable.Z;
                instance.OnReadValue = OnRead_Z;
                instance.OnSimpleWriteValue = OnWrite_Z;
                updateList.Add(instance);

                SetUpdateList(updateList);
            }
        }

        /// <summary>
        /// Reads the value of the variable.
        /// </summary>
        protected ServiceResult OnReadValue(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable.
        /// </summary>
        private ServiceResult OnWriteValue(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value = (ThreeDVector)Write(value);
            }

            return ServiceResult.Good;
        }

        #region X Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_X(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.X;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_X(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.X = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region Y Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_Y(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.Y;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_Y(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.Y = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region Z Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_Z(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.Z;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_Z(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.Z = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion
        #endregion

        #region Private Fields
        private ThreeDVector m_value;
        private ThreeDVectorState m_variable;
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region CartesianCoordinatesState Class
    #if (!OPCUA_EXCLUDE_CartesianCoordinatesState)
    /// <summary>
    /// Stores an instance of the CartesianCoordinatesType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class CartesianCoordinatesState : BaseDataVariableState<CartesianCoordinates>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public CartesianCoordinatesState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.CartesianCoordinatesType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.CartesianCoordinates, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (LengthUnit != null)
            {
                LengthUnit.Initialize(context, LengthUnit_InitializationString);
            }
        }

        #region Initialization String
        private const string LengthUnit_InitializationString =
           "//////////8VYIkKAgAAAAAACgAAAExlbmd0aFVuaXQBAFVJAC4ARFVJAAABAHcD/////wEB/////wAA" +
           "AAA=";

        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAIAAAAENhcnRlc2lhbkNvb3JkaW5hdGVzVHlwZUluc3RhbmNlAQBUSQEA" +
           "VElUSQAAAQB5Sf////8BAf////8BAAAAFWCJCgIAAAAAAAoAAABMZW5ndGhVbml0AQBVSQAuAERVSQAA" +
           "AQB3A/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<EUInformation> LengthUnit
        {
            get
            {
                return m_lengthUnit;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lengthUnit, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lengthUnit = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_lengthUnit != null)
            {
                children.Add(m_lengthUnit);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.LengthUnit:
                {
                    if (createOrReplace)
                    {
                        if (LengthUnit == null)
                        {
                            if (replacement == null)
                            {
                                LengthUnit = new PropertyState<EUInformation>(this);
                            }
                            else
                            {
                                LengthUnit = (PropertyState<EUInformation>)replacement;
                            }
                        }
                    }

                    instance = LengthUnit;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<EUInformation> m_lengthUnit;
        #endregion
    }
    #endif
    #endregion

    #region ThreeDCartesianCoordinatesState Class
    #if (!OPCUA_EXCLUDE_ThreeDCartesianCoordinatesState)
    /// <summary>
    /// Stores an instance of the ThreeDCartesianCoordinatesType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ThreeDCartesianCoordinatesState : CartesianCoordinatesState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ThreeDCartesianCoordinatesState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.ThreeDCartesianCoordinatesType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.ThreeDCartesianCoordinates, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAJgAAAFRocmVlRENhcnRlc2lhbkNvb3JkaW5hdGVzVHlwZUluc3RhbmNl" +
           "AQBWSQEAVklWSQAAAQB6Sf////8BAf////8DAAAAFWCJCgIAAAAAAAEAAABYAQBYSQAvAD9YSQAAAAv/" +
           "////AQH/////AAAAABVgiQoCAAAAAAABAAAAWQEAWUkALwA/WUkAAAAL/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAAAQAAAFoBAFpJAC8AP1pJAAAAC/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<double> X
        {
            get
            {
                return m_x;
            }

            set
            {
                if (!Object.ReferenceEquals(m_x, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_x = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<double> Y
        {
            get
            {
                return m_y;
            }

            set
            {
                if (!Object.ReferenceEquals(m_y, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_y = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<double> Z
        {
            get
            {
                return m_z;
            }

            set
            {
                if (!Object.ReferenceEquals(m_z, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_z = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_x != null)
            {
                children.Add(m_x);
            }

            if (m_y != null)
            {
                children.Add(m_y);
            }

            if (m_z != null)
            {
                children.Add(m_z);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.X:
                {
                    if (createOrReplace)
                    {
                        if (X == null)
                        {
                            if (replacement == null)
                            {
                                X = new BaseDataVariableState<double>(this);
                            }
                            else
                            {
                                X = (BaseDataVariableState<double>)replacement;
                            }
                        }
                    }

                    instance = X;
                    break;
                }

                case Opc.Ua.BrowseNames.Y:
                {
                    if (createOrReplace)
                    {
                        if (Y == null)
                        {
                            if (replacement == null)
                            {
                                Y = new BaseDataVariableState<double>(this);
                            }
                            else
                            {
                                Y = (BaseDataVariableState<double>)replacement;
                            }
                        }
                    }

                    instance = Y;
                    break;
                }

                case Opc.Ua.BrowseNames.Z:
                {
                    if (createOrReplace)
                    {
                        if (Z == null)
                        {
                            if (replacement == null)
                            {
                                Z = new BaseDataVariableState<double>(this);
                            }
                            else
                            {
                                Z = (BaseDataVariableState<double>)replacement;
                            }
                        }
                    }

                    instance = Z;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<double> m_x;
        private BaseDataVariableState<double> m_y;
        private BaseDataVariableState<double> m_z;
        #endregion
    }

    #region ThreeDCartesianCoordinatesValue Class
    /// <summary>
    /// A typed version of the _BrowseName_ variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class ThreeDCartesianCoordinatesValue : BaseVariableValue
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public ThreeDCartesianCoordinatesValue(ThreeDCartesianCoordinatesState variable, ThreeDCartesianCoordinates value, object dataLock) : base(dataLock)
        {
            m_value = value;

            if (m_value == null)
            {
                m_value = new ThreeDCartesianCoordinates();
            }

            Initialize(variable);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The variable that the value belongs to.
        /// </summary>
        public ThreeDCartesianCoordinatesState Variable
        {
            get { return m_variable; }
        }

        /// <summary>
        /// The value of the variable.
        /// </summary>
        public ThreeDCartesianCoordinates Value
        {
            get { return m_value;  }
            set { m_value = value; }
        }
        #endregion

        #region Private Methods
        /// <summary>
        /// Initializes the object.
        /// </summary>
        private void Initialize(ThreeDCartesianCoordinatesState variable)
        {
            lock (Lock)
            {
                m_variable = variable;

                variable.Value = m_value;

                variable.OnReadValue = OnReadValue;
                variable.OnSimpleWriteValue = OnWriteValue;

                BaseVariableState instance = null;
                List<BaseInstanceState> updateList = new List<BaseInstanceState>();
                updateList.Add(variable);

                instance = m_variable.X;
                instance.OnReadValue = OnRead_X;
                instance.OnSimpleWriteValue = OnWrite_X;
                updateList.Add(instance);
                instance = m_variable.Y;
                instance.OnReadValue = OnRead_Y;
                instance.OnSimpleWriteValue = OnWrite_Y;
                updateList.Add(instance);
                instance = m_variable.Z;
                instance.OnReadValue = OnRead_Z;
                instance.OnSimpleWriteValue = OnWrite_Z;
                updateList.Add(instance);

                SetUpdateList(updateList);
            }
        }

        /// <summary>
        /// Reads the value of the variable.
        /// </summary>
        protected ServiceResult OnReadValue(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable.
        /// </summary>
        private ServiceResult OnWriteValue(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value = (ThreeDCartesianCoordinates)Write(value);
            }

            return ServiceResult.Good;
        }

        #region X Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_X(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.X;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_X(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.X = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region Y Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_Y(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.Y;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_Y(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.Y = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region Z Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_Z(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.Z;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_Z(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.Z = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion
        #endregion

        #region Private Fields
        private ThreeDCartesianCoordinates m_value;
        private ThreeDCartesianCoordinatesState m_variable;
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region OrientationState Class
    #if (!OPCUA_EXCLUDE_OrientationState)
    /// <summary>
    /// Stores an instance of the OrientationType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class OrientationState : BaseDataVariableState<Orientation>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public OrientationState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.OrientationType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.Orientation, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (AngleUnit != null)
            {
                AngleUnit.Initialize(context, AngleUnit_InitializationString);
            }
        }

        #region Initialization String
        private const string AngleUnit_InitializationString =
           "//////////8VYIkKAgAAAAAACQAAAEFuZ2xlVW5pdAEAXEkALgBEXEkAAAEAdwP/////AQH/////AAAA" +
           "AA==";

        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAFwAAAE9yaWVudGF0aW9uVHlwZUluc3RhbmNlAQBbSQEAW0lbSQAAAQB7" +
           "Sf////8BAf////8BAAAAFWCJCgIAAAAAAAkAAABBbmdsZVVuaXQBAFxJAC4ARFxJAAABAHcD/////wEB" +
           "/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<EUInformation> AngleUnit
        {
            get
            {
                return m_angleUnit;
            }

            set
            {
                if (!Object.ReferenceEquals(m_angleUnit, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_angleUnit = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_angleUnit != null)
            {
                children.Add(m_angleUnit);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.AngleUnit:
                {
                    if (createOrReplace)
                    {
                        if (AngleUnit == null)
                        {
                            if (replacement == null)
                            {
                                AngleUnit = new PropertyState<EUInformation>(this);
                            }
                            else
                            {
                                AngleUnit = (PropertyState<EUInformation>)replacement;
                            }
                        }
                    }

                    instance = AngleUnit;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<EUInformation> m_angleUnit;
        #endregion
    }
    #endif
    #endregion

    #region ThreeDOrientationState Class
    #if (!OPCUA_EXCLUDE_ThreeDOrientationState)
    /// <summary>
    /// Stores an instance of the ThreeDOrientationType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ThreeDOrientationState : OrientationState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ThreeDOrientationState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.ThreeDOrientationType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.ThreeDOrientation, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAHQAAAFRocmVlRE9yaWVudGF0aW9uVHlwZUluc3RhbmNlAQBdSQEAXUld" +
           "SQAAAQB8Sf////8BAf////8DAAAAFWCJCgIAAAAAAAEAAABBAQBfSQAvAD9fSQAAAAv/////AQH/////" +
           "AAAAABVgiQoCAAAAAAABAAAAQgEAYEkALwA/YEkAAAAL/////wEB/////wAAAAAVYIkKAgAAAAAAAQAA" +
           "AEMBAGFJAC8AP2FJAAAAC/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<double> A
        {
            get
            {
                return m_a;
            }

            set
            {
                if (!Object.ReferenceEquals(m_a, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_a = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<double> B
        {
            get
            {
                return m_b;
            }

            set
            {
                if (!Object.ReferenceEquals(m_b, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_b = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<double> C
        {
            get
            {
                return m_c;
            }

            set
            {
                if (!Object.ReferenceEquals(m_c, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_c = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_a != null)
            {
                children.Add(m_a);
            }

            if (m_b != null)
            {
                children.Add(m_b);
            }

            if (m_c != null)
            {
                children.Add(m_c);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.A:
                {
                    if (createOrReplace)
                    {
                        if (A == null)
                        {
                            if (replacement == null)
                            {
                                A = new BaseDataVariableState<double>(this);
                            }
                            else
                            {
                                A = (BaseDataVariableState<double>)replacement;
                            }
                        }
                    }

                    instance = A;
                    break;
                }

                case Opc.Ua.BrowseNames.B:
                {
                    if (createOrReplace)
                    {
                        if (B == null)
                        {
                            if (replacement == null)
                            {
                                B = new BaseDataVariableState<double>(this);
                            }
                            else
                            {
                                B = (BaseDataVariableState<double>)replacement;
                            }
                        }
                    }

                    instance = B;
                    break;
                }

                case Opc.Ua.BrowseNames.C:
                {
                    if (createOrReplace)
                    {
                        if (C == null)
                        {
                            if (replacement == null)
                            {
                                C = new BaseDataVariableState<double>(this);
                            }
                            else
                            {
                                C = (BaseDataVariableState<double>)replacement;
                            }
                        }
                    }

                    instance = C;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<double> m_a;
        private BaseDataVariableState<double> m_b;
        private BaseDataVariableState<double> m_c;
        #endregion
    }

    #region ThreeDOrientationValue Class
    /// <summary>
    /// A typed version of the _BrowseName_ variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class ThreeDOrientationValue : BaseVariableValue
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public ThreeDOrientationValue(ThreeDOrientationState variable, ThreeDOrientation value, object dataLock) : base(dataLock)
        {
            m_value = value;

            if (m_value == null)
            {
                m_value = new ThreeDOrientation();
            }

            Initialize(variable);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The variable that the value belongs to.
        /// </summary>
        public ThreeDOrientationState Variable
        {
            get { return m_variable; }
        }

        /// <summary>
        /// The value of the variable.
        /// </summary>
        public ThreeDOrientation Value
        {
            get { return m_value;  }
            set { m_value = value; }
        }
        #endregion

        #region Private Methods
        /// <summary>
        /// Initializes the object.
        /// </summary>
        private void Initialize(ThreeDOrientationState variable)
        {
            lock (Lock)
            {
                m_variable = variable;

                variable.Value = m_value;

                variable.OnReadValue = OnReadValue;
                variable.OnSimpleWriteValue = OnWriteValue;

                BaseVariableState instance = null;
                List<BaseInstanceState> updateList = new List<BaseInstanceState>();
                updateList.Add(variable);

                instance = m_variable.A;
                instance.OnReadValue = OnRead_A;
                instance.OnSimpleWriteValue = OnWrite_A;
                updateList.Add(instance);
                instance = m_variable.B;
                instance.OnReadValue = OnRead_B;
                instance.OnSimpleWriteValue = OnWrite_B;
                updateList.Add(instance);
                instance = m_variable.C;
                instance.OnReadValue = OnRead_C;
                instance.OnSimpleWriteValue = OnWrite_C;
                updateList.Add(instance);

                SetUpdateList(updateList);
            }
        }

        /// <summary>
        /// Reads the value of the variable.
        /// </summary>
        protected ServiceResult OnReadValue(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable.
        /// </summary>
        private ServiceResult OnWriteValue(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value = (ThreeDOrientation)Write(value);
            }

            return ServiceResult.Good;
        }

        #region A Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_A(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.A;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_A(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.A = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region B Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_B(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.B;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_B(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.B = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region C Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_C(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.C;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_C(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.C = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion
        #endregion

        #region Private Fields
        private ThreeDOrientation m_value;
        private ThreeDOrientationState m_variable;
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region FrameState Class
    #if (!OPCUA_EXCLUDE_FrameState)
    /// <summary>
    /// Stores an instance of the FrameType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class FrameState : BaseDataVariableState<Frame>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public FrameState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.FrameType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.Frame, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (Constant != null)
            {
                Constant.Initialize(context, Constant_InitializationString);
            }

            if (BaseFrame != null)
            {
                BaseFrame.Initialize(context, BaseFrame_InitializationString);
            }

            if (FixedBase != null)
            {
                FixedBase.Initialize(context, FixedBase_InitializationString);
            }
        }

        #region Initialization String
        private const string Constant_InitializationString =
           "//////////8VYIkKAgAAAAAACAAAAENvbnN0YW50AQBkSQAuAERkSQAAAAH/////AQH/////AAAAAA==";

        private const string BaseFrame_InitializationString =
           "//////////8VYIkKAgAAAAAACQAAAEJhc2VGcmFtZQEAZUkALwA/ZUkAAAAR/////wEB/////wAAAAA=";

        private const string FixedBase_InitializationString =
           "//////////8VYIkKAgAAAAAACQAAAEZpeGVkQmFzZQEAZkkALgBEZkkAAAAB/////wEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAEQAAAEZyYW1lVHlwZUluc3RhbmNlAQBiSQEAYkliSQAAAQB9Sf////8B" +
           "Af////8FAAAAFWCJCgIAAAAAABQAAABDYXJ0ZXNpYW5Db29yZGluYXRlcwEAcUkALwEAVElxSQAAAQB5" +
           "Sf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABPcmllbnRhdGlvbgEAY0kALwEAW0ljSQAAAQB7Sf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAgAAABDb25zdGFudAEAZEkALgBEZEkAAAAB/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACQAAAEJhc2VGcmFtZQEAZUkALwA/ZUkAAAAR/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACQAAAEZpeGVkQmFzZQEAZkkALgBEZkkAAAAB/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public CartesianCoordinatesState CartesianCoordinates
        {
            get
            {
                return m_cartesianCoordinates;
            }

            set
            {
                if (!Object.ReferenceEquals(m_cartesianCoordinates, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_cartesianCoordinates = value;
            }
        }

        /// <remarks />
        public OrientationState Orientation
        {
            get
            {
                return m_orientation;
            }

            set
            {
                if (!Object.ReferenceEquals(m_orientation, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_orientation = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> Constant
        {
            get
            {
                return m_constant;
            }

            set
            {
                if (!Object.ReferenceEquals(m_constant, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_constant = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<NodeId> BaseFrame
        {
            get
            {
                return m_baseFrame;
            }

            set
            {
                if (!Object.ReferenceEquals(m_baseFrame, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_baseFrame = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> FixedBase
        {
            get
            {
                return m_fixedBase;
            }

            set
            {
                if (!Object.ReferenceEquals(m_fixedBase, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_fixedBase = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_cartesianCoordinates != null)
            {
                children.Add(m_cartesianCoordinates);
            }

            if (m_orientation != null)
            {
                children.Add(m_orientation);
            }

            if (m_constant != null)
            {
                children.Add(m_constant);
            }

            if (m_baseFrame != null)
            {
                children.Add(m_baseFrame);
            }

            if (m_fixedBase != null)
            {
                children.Add(m_fixedBase);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.CartesianCoordinates:
                {
                    if (createOrReplace)
                    {
                        if (CartesianCoordinates == null)
                        {
                            if (replacement == null)
                            {
                                CartesianCoordinates = new CartesianCoordinatesState(this);
                            }
                            else
                            {
                                CartesianCoordinates = (CartesianCoordinatesState)replacement;
                            }
                        }
                    }

                    instance = CartesianCoordinates;
                    break;
                }

                case Opc.Ua.BrowseNames.Orientation:
                {
                    if (createOrReplace)
                    {
                        if (Orientation == null)
                        {
                            if (replacement == null)
                            {
                                Orientation = new OrientationState(this);
                            }
                            else
                            {
                                Orientation = (OrientationState)replacement;
                            }
                        }
                    }

                    instance = Orientation;
                    break;
                }

                case Opc.Ua.BrowseNames.Constant:
                {
                    if (createOrReplace)
                    {
                        if (Constant == null)
                        {
                            if (replacement == null)
                            {
                                Constant = new PropertyState<bool>(this);
                            }
                            else
                            {
                                Constant = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = Constant;
                    break;
                }

                case Opc.Ua.BrowseNames.BaseFrame:
                {
                    if (createOrReplace)
                    {
                        if (BaseFrame == null)
                        {
                            if (replacement == null)
                            {
                                BaseFrame = new BaseDataVariableState<NodeId>(this);
                            }
                            else
                            {
                                BaseFrame = (BaseDataVariableState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = BaseFrame;
                    break;
                }

                case Opc.Ua.BrowseNames.FixedBase:
                {
                    if (createOrReplace)
                    {
                        if (FixedBase == null)
                        {
                            if (replacement == null)
                            {
                                FixedBase = new PropertyState<bool>(this);
                            }
                            else
                            {
                                FixedBase = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = FixedBase;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private CartesianCoordinatesState m_cartesianCoordinates;
        private OrientationState m_orientation;
        private PropertyState<bool> m_constant;
        private BaseDataVariableState<NodeId> m_baseFrame;
        private PropertyState<bool> m_fixedBase;
        #endregion
    }
    #endif
    #endregion

    #region ThreeDFrameState Class
    #if (!OPCUA_EXCLUDE_ThreeDFrameState)
    /// <summary>
    /// Stores an instance of the ThreeDFrameType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ThreeDFrameState : FrameState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ThreeDFrameState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.ThreeDFrameType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.ThreeDFrame, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAFwAAAFRocmVlREZyYW1lVHlwZUluc3RhbmNlAQBnSQEAZ0lnSQAAAQB+" +
           "Sf////8BAf////8CAAAAFWCJCgIAAAAAABQAAABDYXJ0ZXNpYW5Db29yZGluYXRlcwEAbEkALwEAVkls" +
           "SQAAAQB6Sf////8BAf////8DAAAAFWCJCgIAAAAAAAEAAABYAQBuSQAvAD9uSQAAAAv/////AQH/////" +
           "AAAAABVgiQoCAAAAAAABAAAAWQEAb0kALwA/b0kAAAAL/////wEB/////wAAAAAVYIkKAgAAAAAAAQAA" +
           "AFoBAHBJAC8AP3BJAAAAC/////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABPcmllbnRhdGlvbgEAaEkA" +
           "LwEAXUloSQAAAQB8Sf////8BAf////8DAAAAFWCJCgIAAAAAAAEAAABBAQCCSgAvAD+CSgAAAAv/////" +
           "AQH/////AAAAABVgiQoCAAAAAAABAAAAQgEAg0oALwA/g0oAAAAL/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAAAQAAAEMBAIRKAC8AP4RKAAAAC/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public new ThreeDCartesianCoordinatesState CartesianCoordinates
        {
            get { return (ThreeDCartesianCoordinatesState)base.CartesianCoordinates; }
            set { base.CartesianCoordinates = value; }
        }

        /// <remarks />
        public new ThreeDOrientationState Orientation
        {
            get { return (ThreeDOrientationState)base.Orientation; }
            set { base.Orientation = value; }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.CartesianCoordinates:
                {
                    if (createOrReplace)
                    {
                        if (CartesianCoordinates == null)
                        {
                            if (replacement == null)
                            {
                                CartesianCoordinates = new ThreeDCartesianCoordinatesState(this);
                            }
                            else
                            {
                                CartesianCoordinates = (ThreeDCartesianCoordinatesState)replacement;
                            }
                        }
                    }

                    instance = CartesianCoordinates;
                    break;
                }

                case Opc.Ua.BrowseNames.Orientation:
                {
                    if (createOrReplace)
                    {
                        if (Orientation == null)
                        {
                            if (replacement == null)
                            {
                                Orientation = new ThreeDOrientationState(this);
                            }
                            else
                            {
                                Orientation = (ThreeDOrientationState)replacement;
                            }
                        }
                    }

                    instance = Orientation;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        #endregion
    }

    #region ThreeDFrameValue Class
    /// <summary>
    /// A typed version of the _BrowseName_ variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class ThreeDFrameValue : BaseVariableValue
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public ThreeDFrameValue(ThreeDFrameState variable, ThreeDFrame value, object dataLock) : base(dataLock)
        {
            m_value = value;

            if (m_value == null)
            {
                m_value = new ThreeDFrame();
            }

            Initialize(variable);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The variable that the value belongs to.
        /// </summary>
        public ThreeDFrameState Variable
        {
            get { return m_variable; }
        }

        /// <summary>
        /// The value of the variable.
        /// </summary>
        public ThreeDFrame Value
        {
            get { return m_value;  }
            set { m_value = value; }
        }
        #endregion

        #region Private Methods
        /// <summary>
        /// Initializes the object.
        /// </summary>
        private void Initialize(ThreeDFrameState variable)
        {
            lock (Lock)
            {
                m_variable = variable;

                variable.Value = m_value;

                variable.OnReadValue = OnReadValue;
                variable.OnSimpleWriteValue = OnWriteValue;

                BaseVariableState instance = null;
                List<BaseInstanceState> updateList = new List<BaseInstanceState>();
                updateList.Add(variable);

                instance = m_variable.CartesianCoordinates;
                instance.OnReadValue = OnRead_CartesianCoordinates;
                instance.OnSimpleWriteValue = OnWrite_CartesianCoordinates;
                updateList.Add(instance);
                instance = m_variable.CartesianCoordinates.X;
                instance.OnReadValue = OnRead_CartesianCoordinates_X;
                instance.OnSimpleWriteValue = OnWrite_CartesianCoordinates_X;
                updateList.Add(instance);
                instance = m_variable.CartesianCoordinates.Y;
                instance.OnReadValue = OnRead_CartesianCoordinates_Y;
                instance.OnSimpleWriteValue = OnWrite_CartesianCoordinates_Y;
                updateList.Add(instance);
                instance = m_variable.CartesianCoordinates.Z;
                instance.OnReadValue = OnRead_CartesianCoordinates_Z;
                instance.OnSimpleWriteValue = OnWrite_CartesianCoordinates_Z;
                updateList.Add(instance);
                instance = m_variable.Orientation;
                instance.OnReadValue = OnRead_Orientation;
                instance.OnSimpleWriteValue = OnWrite_Orientation;
                updateList.Add(instance);
                instance = m_variable.Orientation.A;
                instance.OnReadValue = OnRead_Orientation_A;
                instance.OnSimpleWriteValue = OnWrite_Orientation_A;
                updateList.Add(instance);
                instance = m_variable.Orientation.B;
                instance.OnReadValue = OnRead_Orientation_B;
                instance.OnSimpleWriteValue = OnWrite_Orientation_B;
                updateList.Add(instance);
                instance = m_variable.Orientation.C;
                instance.OnReadValue = OnRead_Orientation_C;
                instance.OnSimpleWriteValue = OnWrite_Orientation_C;
                updateList.Add(instance);

                SetUpdateList(updateList);
            }
        }

        /// <summary>
        /// Reads the value of the variable.
        /// </summary>
        protected ServiceResult OnReadValue(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable.
        /// </summary>
        private ServiceResult OnWriteValue(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value = (ThreeDFrame)Write(value);
            }

            return ServiceResult.Good;
        }

        #region CartesianCoordinates Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CartesianCoordinates(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CartesianCoordinates;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CartesianCoordinates(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CartesianCoordinates = (ThreeDCartesianCoordinates)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CartesianCoordinates_X Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CartesianCoordinates_X(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CartesianCoordinates.X;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CartesianCoordinates_X(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CartesianCoordinates.X = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CartesianCoordinates_Y Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CartesianCoordinates_Y(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CartesianCoordinates.Y;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CartesianCoordinates_Y(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CartesianCoordinates.Y = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CartesianCoordinates_Z Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CartesianCoordinates_Z(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CartesianCoordinates.Z;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CartesianCoordinates_Z(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CartesianCoordinates.Z = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region Orientation Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_Orientation(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.Orientation;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_Orientation(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.Orientation = (ThreeDOrientation)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region Orientation_A Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_Orientation_A(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.Orientation.A;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_Orientation_A(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.Orientation.A = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region Orientation_B Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_Orientation_B(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.Orientation.B;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_Orientation_B(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.Orientation.B = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region Orientation_C Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_Orientation_C(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.Orientation.C;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_Orientation_C(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.Orientation.C = (double)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion
        #endregion

        #region Private Fields
        private ThreeDFrame m_value;
        private ThreeDFrameState m_variable;
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region TransitionEventState Class
    #if (!OPCUA_EXCLUDE_TransitionEventState)
    /// <summary>
    /// Stores an instance of the TransitionEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TransitionEventState : BaseEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TransitionEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.TransitionEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGwAAAFRyYW5zaXRpb25FdmVudFR5cGVJbnN0YW5jZQEABwkBAAcJBwkA" +
           "AP////8LAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQCZDgAuAESZDgAAAA//////AQH/////AAAAABVg" +
           "iQoCAAAAAAAJAAAARXZlbnRUeXBlAQCaDgAuAESaDgAAABH/////AQH/////AAAAABVgiQoCAAAAAAAK" +
           "AAAAU291cmNlTm9kZQEAmw4ALgBEmw4AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFNvdXJj" +
           "ZU5hbWUBAJwOAC4ARJwOAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQCdDgAuAESd" +
           "DgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEAng4ALgBEng4AAAEA" +
           "JgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAoA4ALgBEoA4AAAAV/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQChDgAuAEShDgAAAAX/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAKAAAAVHJhbnNpdGlvbgEA1goALwEAygrWCgAAABX/////AQH/////AQAAABVgiQoCAAAAAAAC" +
           "AAAASWQBAKoOAC4ARKoOAAAAGP////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABGcm9tU3RhdGUBANcK" +
           "AC8BAMMK1woAAAAV/////wEB/////wEAAAAVYIkKAgAAAAAAAgAAAElkAQCiDgAuAESiDgAAABj/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAHAAAAVG9TdGF0ZQEA2AoALwEAwwrYCgAAABX/////AQH/////AQAA" +
           "ABVgiQoCAAAAAAACAAAASWQBAKYOAC4ARKYOAAAAGP////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public TransitionVariableState Transition
        {
            get
            {
                return m_transition;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transition, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transition = value;
            }
        }

        /// <remarks />
        public StateVariableState FromState
        {
            get
            {
                return m_fromState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_fromState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_fromState = value;
            }
        }

        /// <remarks />
        public StateVariableState ToState
        {
            get
            {
                return m_toState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_toState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_toState = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_transition != null)
            {
                children.Add(m_transition);
            }

            if (m_fromState != null)
            {
                children.Add(m_fromState);
            }

            if (m_toState != null)
            {
                children.Add(m_toState);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Transition:
                {
                    if (createOrReplace)
                    {
                        if (Transition == null)
                        {
                            if (replacement == null)
                            {
                                Transition = new TransitionVariableState(this);
                            }
                            else
                            {
                                Transition = (TransitionVariableState)replacement;
                            }
                        }
                    }

                    instance = Transition;
                    break;
                }

                case Opc.Ua.BrowseNames.FromState:
                {
                    if (createOrReplace)
                    {
                        if (FromState == null)
                        {
                            if (replacement == null)
                            {
                                FromState = new StateVariableState(this);
                            }
                            else
                            {
                                FromState = (StateVariableState)replacement;
                            }
                        }
                    }

                    instance = FromState;
                    break;
                }

                case Opc.Ua.BrowseNames.ToState:
                {
                    if (createOrReplace)
                    {
                        if (ToState == null)
                        {
                            if (replacement == null)
                            {
                                ToState = new StateVariableState(this);
                            }
                            else
                            {
                                ToState = (StateVariableState)replacement;
                            }
                        }
                    }

                    instance = ToState;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private TransitionVariableState m_transition;
        private StateVariableState m_fromState;
        private StateVariableState m_toState;
        #endregion
    }
    #endif
    #endregion

    #region AuditUpdateStateEventState Class
    #if (!OPCUA_EXCLUDE_AuditUpdateStateEventState)
    /// <summary>
    /// Stores an instance of the AuditUpdateStateEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditUpdateStateEventState : AuditUpdateMethodEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditUpdateStateEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditUpdateStateEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIQAAAEF1ZGl0VXBkYXRlU3RhdGVFdmVudFR5cGVJbnN0YW5jZQEACwkB" +
           "AAsJCwkAAP////8RAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQCuDgAuAESuDgAAAA//////AQH/////" +
           "AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQCvDgAuAESvDgAAABH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAKAAAAU291cmNlTm9kZQEAsA4ALgBEsA4AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAA" +
           "AFNvdXJjZU5hbWUBALEOAC4ARLEOAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQCy" +
           "DgAuAESyDgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEAsw4ALgBE" +
           "sw4AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAtQ4ALgBEtQ4AAAAV////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQC2DgAuAES2DgAAAAX/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQC3DgAuAES3DgAAAQAmAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAYAAABTdGF0dXMBALgOAC4ARLgOAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAgA" +
           "AABTZXJ2ZXJJZAEAuQ4ALgBEuQ4AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAENsaWVudEF1" +
           "ZGl0RW50cnlJZAEAug4ALgBEug4AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENsaWVudFVz" +
           "ZXJJZAEAuw4ALgBEuw4AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAE1ldGhvZElkAQC8DgAu" +
           "AES8DgAAABH/////AQH/////AAAAABdgiQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAL0OAC4ARL0O" +
           "AAAAGAEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAACgAAAE9sZFN0YXRlSWQBANkKAC4ARNkK" +
           "AAAAGP////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABOZXdTdGF0ZUlkAQDaCgAuAETaCgAAABj/////" +
           "AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState OldStateId
        {
            get
            {
                return m_oldStateId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_oldStateId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_oldStateId = value;
            }
        }

        /// <remarks />
        public PropertyState NewStateId
        {
            get
            {
                return m_newStateId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_newStateId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_newStateId = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_oldStateId != null)
            {
                children.Add(m_oldStateId);
            }

            if (m_newStateId != null)
            {
                children.Add(m_newStateId);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.OldStateId:
                {
                    if (createOrReplace)
                    {
                        if (OldStateId == null)
                        {
                            if (replacement == null)
                            {
                                OldStateId = new PropertyState(this);
                            }
                            else
                            {
                                OldStateId = (PropertyState)replacement;
                            }
                        }
                    }

                    instance = OldStateId;
                    break;
                }

                case Opc.Ua.BrowseNames.NewStateId:
                {
                    if (createOrReplace)
                    {
                        if (NewStateId == null)
                        {
                            if (replacement == null)
                            {
                                NewStateId = new PropertyState(this);
                            }
                            else
                            {
                                NewStateId = (PropertyState)replacement;
                            }
                        }
                    }

                    instance = NewStateId;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState m_oldStateId;
        private PropertyState m_newStateId;
        #endregion
    }
    #endif
    #endregion

    #region OpenMethodState Class
    #if (!OPCUA_EXCLUDE_OpenMethodState)
    /// <summary>
    /// Stores an instance of the OpenMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class OpenMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public OpenMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new OpenMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAADgAAAE9wZW5NZXRob2RUeXBlAQDaLQAvAQDaLdotAAABAf////8CAAAA" +
           "F2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA2y0ALgBE2y0AAJYBAAAAAQAqAQETAAAABAAAAE1v" +
           "ZGUAA/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRB" +
           "cmd1bWVudHMBANwtAC4ARNwtAACWAQAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAAB" +
           "ACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public OpenMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            byte mode = (byte)_inputArguments[0];

            uint fileHandle = (uint)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    mode,
                    ref fileHandle);
            }

            _outputArguments[0] = fileHandle;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult OpenMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        byte mode,
        ref uint fileHandle);
    #endif
    #endregion

    #region CloseMethodState Class
    #if (!OPCUA_EXCLUDE_CloseMethodState)
    /// <summary>
    /// Stores an instance of the CloseMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class CloseMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public CloseMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new CloseMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAADwAAAENsb3NlTWV0aG9kVHlwZQEA3S0ALwEA3S3dLQAAAQH/////AQAA" +
           "ABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAN4tAC4ARN4tAACWAQAAAAEAKgEBGQAAAAoAAABG" +
           "aWxlSGFuZGxlAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public CloseMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            uint fileHandle = (uint)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    fileHandle);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult CloseMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        uint fileHandle);
    #endif
    #endregion

    #region ReadMethodState Class
    #if (!OPCUA_EXCLUDE_ReadMethodState)
    /// <summary>
    /// Stores an instance of the ReadMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ReadMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ReadMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new ReadMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAADgAAAFJlYWRNZXRob2RUeXBlAQDfLQAvAQDfLd8tAAABAf////8CAAAA" +
           "F2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA4C0ALgBE4C0AAJYCAAAAAQAqAQEZAAAACgAAAEZp" +
           "bGVIYW5kbGUAB/////8AAAAAAAEAKgEBFQAAAAYAAABMZW5ndGgABv////8AAAAAAAEAKAEBAAAAAQAA" +
           "AAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAOEtAC4AROEtAACWAQAA" +
           "AAEAKgEBEwAAAAQAAABEYXRhAA//////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public ReadMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            uint fileHandle = (uint)_inputArguments[0];
            int length = (int)_inputArguments[1];

            byte[] data = (byte[])_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    fileHandle,
                    length,
                    ref data);
            }

            _outputArguments[0] = data;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult ReadMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        uint fileHandle,
        int length,
        ref byte[] data);
    #endif
    #endregion

    #region WriteMethodState Class
    #if (!OPCUA_EXCLUDE_WriteMethodState)
    /// <summary>
    /// Stores an instance of the WriteMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class WriteMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public WriteMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new WriteMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAADwAAAFdyaXRlTWV0aG9kVHlwZQEA4i0ALwEA4i3iLQAAAQH/////AQAA" +
           "ABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAOMtAC4AROMtAACWAgAAAAEAKgEBGQAAAAoAAABG" +
           "aWxlSGFuZGxlAAf/////AAAAAAABACoBARMAAAAEAAAARGF0YQAP/////wAAAAAAAQAoAQEAAAABAAAA" +
           "AAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public WriteMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            uint fileHandle = (uint)_inputArguments[0];
            byte[] data = (byte[])_inputArguments[1];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    fileHandle,
                    data);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult WriteMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        uint fileHandle,
        byte[] data);
    #endif
    #endregion

    #region GetPositionMethodState Class
    #if (!OPCUA_EXCLUDE_GetPositionMethodState)
    /// <summary>
    /// Stores an instance of the GetPositionMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class GetPositionMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public GetPositionMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new GetPositionMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAFQAAAEdldFBvc2l0aW9uTWV0aG9kVHlwZQEA5C0ALwEA5C3kLQAAAQH/" +
           "////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAOUtAC4AROUtAACWAQAAAAEAKgEBGQAA" +
           "AAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAA" +
           "AAAPAAAAT3V0cHV0QXJndW1lbnRzAQDmLQAuAETmLQAAlgEAAAABACoBARcAAAAIAAAAUG9zaXRpb24A" +
           "Cf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public GetPositionMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            uint fileHandle = (uint)_inputArguments[0];

            ulong position = (ulong)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    fileHandle,
                    ref position);
            }

            _outputArguments[0] = position;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult GetPositionMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        uint fileHandle,
        ref ulong position);
    #endif
    #endregion

    #region SetPositionMethodState Class
    #if (!OPCUA_EXCLUDE_SetPositionMethodState)
    /// <summary>
    /// Stores an instance of the SetPositionMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SetPositionMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SetPositionMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new SetPositionMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAFQAAAFNldFBvc2l0aW9uTWV0aG9kVHlwZQEA5y0ALwEA5y3nLQAAAQH/" +
           "////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAOgtAC4AROgtAACWAgAAAAEAKgEBGQAA" +
           "AAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACoBARcAAAAIAAAAUG9zaXRpb24ACf////8AAAAAAAEA" +
           "KAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public SetPositionMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            uint fileHandle = (uint)_inputArguments[0];
            ulong position = (ulong)_inputArguments[1];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    fileHandle,
                    position);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult SetPositionMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        uint fileHandle,
        ulong position);
    #endif
    #endregion

    #region FileDirectoryState Class
    #if (!OPCUA_EXCLUDE_FileDirectoryState)
    /// <summary>
    /// Stores an instance of the FileDirectoryType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class FileDirectoryState : FolderState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public FileDirectoryState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.FileDirectoryType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGQAAAEZpbGVEaXJlY3RvcnlUeXBlSW5zdGFuY2UBACk0AQApNCk0AAD/" +
           "////BAAAAARhggoEAAAAAAAPAAAAQ3JlYXRlRGlyZWN0b3J5AQBLNAAvAQBLNEs0AAABAf////8CAAAA" +
           "F2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEATDQALgBETDQAAJYBAAAAAQAqAQEcAAAADQAAAERp" +
           "cmVjdG9yeU5hbWUADP////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8A" +
           "AABPdXRwdXRBcmd1bWVudHMBAE00AC4ARE00AACWAQAAAAEAKgEBHgAAAA8AAABEaXJlY3RvcnlOb2Rl" +
           "SWQAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAoAAABDcmVhdGVG" +
           "aWxlAQBONAAvAQBONE40AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEATzQA" +
           "LgBETzQAAJYCAAAAAQAqAQEXAAAACAAAAEZpbGVOYW1lAAz/////AAAAAAABACoBAR4AAAAPAAAAUmVx" +
           "dWVzdEZpbGVPcGVuAAH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAP" +
           "AAAAT3V0cHV0QXJndW1lbnRzAQBQNAAuAERQNAAAlgIAAAABACoBARkAAAAKAAAARmlsZU5vZGVJZAAR" +
           "/////wAAAAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAAB" +
           "Af////8AAAAABGHCCgQAAAAWAAAARGVsZXRlRmlsZVN5c3RlbU9iamVjdAAABgAAAERlbGV0ZQEAUTQA" +
           "LwEAUTRRNAAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAFI0AC4ARFI0AACW" +
           "AQAAAAEAKgEBHQAAAA4AAABPYmplY3RUb0RlbGV0ZQAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB" +
           "/////wAAAAAEYYIKBAAAAAAACgAAAE1vdmVPckNvcHkBAFM0AC8BAFM0UzQAAAEB/////wIAAAAXYKkK" +
           "AgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBUNAAuAERUNAAAlgQAAAABACoBASEAAAASAAAAT2JqZWN0" +
           "VG9Nb3ZlT3JDb3B5ABH/////AAAAAAABACoBAR4AAAAPAAAAVGFyZ2V0RGlyZWN0b3J5ABH/////AAAA" +
           "AAABACoBARkAAAAKAAAAQ3JlYXRlQ29weQAB/////wAAAAAAAQAqAQEWAAAABwAAAE5ld05hbWUADP//" +
           "//8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVu" +
           "dHMBAFU0AC4ARFU0AACWAQAAAAEAKgEBGAAAAAkAAABOZXdOb2RlSWQAEf////8AAAAAAAEAKAEBAAAA" +
           "AQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public CreateDirectoryMethodState CreateDirectory
        {
            get
            {
                return m_createDirectoryMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_createDirectoryMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_createDirectoryMethod = value;
            }
        }

        /// <remarks />
        public CreateFileMethodState CreateFile
        {
            get
            {
                return m_createFileMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_createFileMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_createFileMethod = value;
            }
        }

        /// <remarks />
        public DeleteFileMethodState DeleteFileSystemObject
        {
            get
            {
                return m_deleteFileSystemObjectMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_deleteFileSystemObjectMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_deleteFileSystemObjectMethod = value;
            }
        }

        /// <remarks />
        public MoveOrCopyMethodState MoveOrCopy
        {
            get
            {
                return m_moveOrCopyMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_moveOrCopyMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_moveOrCopyMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_createDirectoryMethod != null)
            {
                children.Add(m_createDirectoryMethod);
            }

            if (m_createFileMethod != null)
            {
                children.Add(m_createFileMethod);
            }

            if (m_deleteFileSystemObjectMethod != null)
            {
                children.Add(m_deleteFileSystemObjectMethod);
            }

            if (m_moveOrCopyMethod != null)
            {
                children.Add(m_moveOrCopyMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.CreateDirectory:
                {
                    if (createOrReplace)
                    {
                        if (CreateDirectory == null)
                        {
                            if (replacement == null)
                            {
                                CreateDirectory = new CreateDirectoryMethodState(this);
                            }
                            else
                            {
                                CreateDirectory = (CreateDirectoryMethodState)replacement;
                            }
                        }
                    }

                    instance = CreateDirectory;
                    break;
                }

                case Opc.Ua.BrowseNames.CreateFile:
                {
                    if (createOrReplace)
                    {
                        if (CreateFile == null)
                        {
                            if (replacement == null)
                            {
                                CreateFile = new CreateFileMethodState(this);
                            }
                            else
                            {
                                CreateFile = (CreateFileMethodState)replacement;
                            }
                        }
                    }

                    instance = CreateFile;
                    break;
                }

                case Opc.Ua.BrowseNames.DeleteFileSystemObject:
                {
                    if (createOrReplace)
                    {
                        if (DeleteFileSystemObject == null)
                        {
                            if (replacement == null)
                            {
                                DeleteFileSystemObject = new DeleteFileMethodState(this);
                            }
                            else
                            {
                                DeleteFileSystemObject = (DeleteFileMethodState)replacement;
                            }
                        }
                    }

                    instance = DeleteFileSystemObject;
                    break;
                }

                case Opc.Ua.BrowseNames.MoveOrCopy:
                {
                    if (createOrReplace)
                    {
                        if (MoveOrCopy == null)
                        {
                            if (replacement == null)
                            {
                                MoveOrCopy = new MoveOrCopyMethodState(this);
                            }
                            else
                            {
                                MoveOrCopy = (MoveOrCopyMethodState)replacement;
                            }
                        }
                    }

                    instance = MoveOrCopy;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private CreateDirectoryMethodState m_createDirectoryMethod;
        private CreateFileMethodState m_createFileMethod;
        private DeleteFileMethodState m_deleteFileSystemObjectMethod;
        private MoveOrCopyMethodState m_moveOrCopyMethod;
        #endregion
    }
    #endif
    #endregion

    #region CreateDirectoryMethodState Class
    #if (!OPCUA_EXCLUDE_CreateDirectoryMethodState)
    /// <summary>
    /// Stores an instance of the CreateDirectoryMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class CreateDirectoryMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public CreateDirectoryMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new CreateDirectoryMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGQAAAENyZWF0ZURpcmVjdG9yeU1ldGhvZFR5cGUBAB40AC8BAB40HjQA" +
           "AAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQAfNAAuAEQfNAAAlgEAAAABACoB" +
           "ARwAAAANAAAARGlyZWN0b3J5TmFtZQAM/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAX" +
           "YKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEAIDQALgBEIDQAAJYBAAAAAQAqAQEeAAAADwAAAERp" +
           "cmVjdG9yeU5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public CreateDirectoryMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string directoryName = (string)_inputArguments[0];

            NodeId directoryNodeId = (NodeId)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    directoryName,
                    ref directoryNodeId);
            }

            _outputArguments[0] = directoryNodeId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult CreateDirectoryMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string directoryName,
        ref NodeId directoryNodeId);
    #endif
    #endregion

    #region CreateFileMethodState Class
    #if (!OPCUA_EXCLUDE_CreateFileMethodState)
    /// <summary>
    /// Stores an instance of the CreateFileMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class CreateFileMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public CreateFileMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new CreateFileMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAFAAAAENyZWF0ZUZpbGVNZXRob2RUeXBlAQAhNAAvAQAhNCE0AAABAf//" +
           "//8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAIjQALgBEIjQAAJYCAAAAAQAqAQEXAAAA" +
           "CAAAAEZpbGVOYW1lAAz/////AAAAAAABACoBAR4AAAAPAAAAUmVxdWVzdEZpbGVPcGVuAAH/////AAAA" +
           "AAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQAj" +
           "NAAuAEQjNAAAlgIAAAABACoBARkAAAAKAAAARmlsZU5vZGVJZAAR/////wAAAAAAAQAqAQEZAAAACgAA" +
           "AEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public CreateFileMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string fileName = (string)_inputArguments[0];
            bool requestFileOpen = (bool)_inputArguments[1];

            NodeId fileNodeId = (NodeId)_outputArguments[0];
            uint fileHandle = (uint)_outputArguments[1];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    fileName,
                    requestFileOpen,
                    ref fileNodeId,
                    ref fileHandle);
            }

            _outputArguments[0] = fileNodeId;
            _outputArguments[1] = fileHandle;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult CreateFileMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string fileName,
        bool requestFileOpen,
        ref NodeId fileNodeId,
        ref uint fileHandle);
    #endif
    #endregion

    #region DeleteFileMethodState Class
    #if (!OPCUA_EXCLUDE_DeleteFileMethodState)
    /// <summary>
    /// Stores an instance of the DeleteFileMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DeleteFileMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DeleteFileMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new DeleteFileMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAFAAAAERlbGV0ZUZpbGVNZXRob2RUeXBlAQAkNAAvAQAkNCQ0AAABAf//" +
           "//8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAJTQALgBEJTQAAJYBAAAAAQAqAQEdAAAA" +
           "DgAAAE9iamVjdFRvRGVsZXRlABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public DeleteFileMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            NodeId objectToDelete = (NodeId)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    objectToDelete);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult DeleteFileMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        NodeId objectToDelete);
    #endif
    #endregion

    #region MoveOrCopyMethodState Class
    #if (!OPCUA_EXCLUDE_MoveOrCopyMethodState)
    /// <summary>
    /// Stores an instance of the MoveOrCopyMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class MoveOrCopyMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public MoveOrCopyMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new MoveOrCopyMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAFAAAAE1vdmVPckNvcHlNZXRob2RUeXBlAQAmNAAvAQAmNCY0AAABAf//" +
           "//8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAJzQALgBEJzQAAJYEAAAAAQAqAQEhAAAA" +
           "EgAAAE9iamVjdFRvTW92ZU9yQ29weQAR/////wAAAAAAAQAqAQEeAAAADwAAAFRhcmdldERpcmVjdG9y" +
           "eQAR/////wAAAAAAAQAqAQEZAAAACgAAAENyZWF0ZUNvcHkAAf////8AAAAAAAEAKgEBFgAAAAcAAABO" +
           "ZXdOYW1lAAz/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0" +
           "cHV0QXJndW1lbnRzAQAoNAAuAEQoNAAAlgEAAAABACoBARgAAAAJAAAATmV3Tm9kZUlkABH/////AAAA" +
           "AAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public MoveOrCopyMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            NodeId objectToMoveOrCopy = (NodeId)_inputArguments[0];
            NodeId targetDirectory = (NodeId)_inputArguments[1];
            bool createCopy = (bool)_inputArguments[2];
            string newName = (string)_inputArguments[3];

            NodeId newNodeId = (NodeId)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    objectToMoveOrCopy,
                    targetDirectory,
                    createCopy,
                    newName,
                    ref newNodeId);
            }

            _outputArguments[0] = newNodeId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult MoveOrCopyMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        NodeId objectToMoveOrCopy,
        NodeId targetDirectory,
        bool createCopy,
        string newName,
        ref NodeId newNodeId);
    #endif
    #endregion

    #region TemporaryFileTransferState Class
    #if (!OPCUA_EXCLUDE_TemporaryFileTransferState)
    /// <summary>
    /// Stores an instance of the TemporaryFileTransferType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TemporaryFileTransferState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TemporaryFileTransferState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.TemporaryFileTransferType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIQAAAFRlbXBvcmFyeUZpbGVUcmFuc2ZlclR5cGVJbnN0YW5jZQEAgD0B" +
           "AIA9gD0AAP////8EAAAAFWCJCgIAAAAAABcAAABDbGllbnRQcm9jZXNzaW5nVGltZW91dAEAgT0ALgBE" +
           "gT0AAAEAIgH/////AQH/////AAAAAARhggoEAAAAAAATAAAAR2VuZXJhdGVGaWxlRm9yUmVhZAEAgj0A" +
           "LwEAgj2CPQAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAIM9AC4ARIM9AACW" +
           "AQAAAAEAKgEBHgAAAA8AAABHZW5lcmF0ZU9wdGlvbnMAGP////8AAAAAAAEAKAEBAAAAAQAAAAAAAAAB" +
           "Af////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAIQ9AC4ARIQ9AACWAwAAAAEAKgEB" +
           "GQAAAAoAAABGaWxlTm9kZUlkABH/////AAAAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAA" +
           "AAAAAQAqAQElAAAAFgAAAENvbXBsZXRpb25TdGF0ZU1hY2hpbmUAEf////8AAAAAAAEAKAEBAAAAAQAA" +
           "AAAAAAABAf////8AAAAABGGCCgQAAAAAABQAAABHZW5lcmF0ZUZpbGVGb3JXcml0ZQEAhT0ALwEAhT2F" +
           "PQAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAOc/AC4AROc/AACWAQAAAAEA" +
           "KgEBHgAAAA8AAABHZW5lcmF0ZU9wdGlvbnMAGP////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8A" +
           "AAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAIY9AC4ARIY9AACWAgAAAAEAKgEBGQAAAAoA" +
           "AABGaWxlTm9kZUlkABH/////AAAAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAo" +
           "AQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAADgAAAENsb3NlQW5kQ29tbWl0AQCHPQAvAQCH" +
           "PYc9AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAiD0ALgBEiD0AAJYBAAAA" +
           "AQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA" +
           "F2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAIk9AC4ARIk9AACWAQAAAAEAKgEBJQAAABYAAABD" +
           "b21wbGV0aW9uU3RhdGVNYWNoaW5lABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<double> ClientProcessingTimeout
        {
            get
            {
                return m_clientProcessingTimeout;
            }

            set
            {
                if (!Object.ReferenceEquals(m_clientProcessingTimeout, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_clientProcessingTimeout = value;
            }
        }

        /// <remarks />
        public GenerateFileForReadMethodState GenerateFileForRead
        {
            get
            {
                return m_generateFileForReadMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_generateFileForReadMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_generateFileForReadMethod = value;
            }
        }

        /// <remarks />
        public GenerateFileForWriteMethodState GenerateFileForWrite
        {
            get
            {
                return m_generateFileForWriteMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_generateFileForWriteMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_generateFileForWriteMethod = value;
            }
        }

        /// <remarks />
        public CloseAndCommitMethodState CloseAndCommit
        {
            get
            {
                return m_closeAndCommitMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_closeAndCommitMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_closeAndCommitMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_clientProcessingTimeout != null)
            {
                children.Add(m_clientProcessingTimeout);
            }

            if (m_generateFileForReadMethod != null)
            {
                children.Add(m_generateFileForReadMethod);
            }

            if (m_generateFileForWriteMethod != null)
            {
                children.Add(m_generateFileForWriteMethod);
            }

            if (m_closeAndCommitMethod != null)
            {
                children.Add(m_closeAndCommitMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ClientProcessingTimeout:
                {
                    if (createOrReplace)
                    {
                        if (ClientProcessingTimeout == null)
                        {
                            if (replacement == null)
                            {
                                ClientProcessingTimeout = new PropertyState<double>(this);
                            }
                            else
                            {
                                ClientProcessingTimeout = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = ClientProcessingTimeout;
                    break;
                }

                case Opc.Ua.BrowseNames.GenerateFileForRead:
                {
                    if (createOrReplace)
                    {
                        if (GenerateFileForRead == null)
                        {
                            if (replacement == null)
                            {
                                GenerateFileForRead = new GenerateFileForReadMethodState(this);
                            }
                            else
                            {
                                GenerateFileForRead = (GenerateFileForReadMethodState)replacement;
                            }
                        }
                    }

                    instance = GenerateFileForRead;
                    break;
                }

                case Opc.Ua.BrowseNames.GenerateFileForWrite:
                {
                    if (createOrReplace)
                    {
                        if (GenerateFileForWrite == null)
                        {
                            if (replacement == null)
                            {
                                GenerateFileForWrite = new GenerateFileForWriteMethodState(this);
                            }
                            else
                            {
                                GenerateFileForWrite = (GenerateFileForWriteMethodState)replacement;
                            }
                        }
                    }

                    instance = GenerateFileForWrite;
                    break;
                }

                case Opc.Ua.BrowseNames.CloseAndCommit:
                {
                    if (createOrReplace)
                    {
                        if (CloseAndCommit == null)
                        {
                            if (replacement == null)
                            {
                                CloseAndCommit = new CloseAndCommitMethodState(this);
                            }
                            else
                            {
                                CloseAndCommit = (CloseAndCommitMethodState)replacement;
                            }
                        }
                    }

                    instance = CloseAndCommit;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<double> m_clientProcessingTimeout;
        private GenerateFileForReadMethodState m_generateFileForReadMethod;
        private GenerateFileForWriteMethodState m_generateFileForWriteMethod;
        private CloseAndCommitMethodState m_closeAndCommitMethod;
        #endregion
    }
    #endif
    #endregion

    #region GenerateFileForReadMethodState Class
    #if (!OPCUA_EXCLUDE_GenerateFileForReadMethodState)
    /// <summary>
    /// Stores an instance of the GenerateFileForReadMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class GenerateFileForReadMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public GenerateFileForReadMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new GenerateFileForReadMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAHQAAAEdlbmVyYXRlRmlsZUZvclJlYWRNZXRob2RUeXBlAQCzPQAvAQCz" +
           "PbM9AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAtD0ALgBEtD0AAJYBAAAA" +
           "AQAqAQEeAAAADwAAAEdlbmVyYXRlT3B0aW9ucwAY/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB////" +
           "/wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEAtT0ALgBEtT0AAJYDAAAAAQAqAQEZAAAA" +
           "CgAAAEZpbGVOb2RlSWQAEf////8AAAAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAAB" +
           "ACoBASUAAAAWAAAAQ29tcGxldGlvblN0YXRlTWFjaGluZQAR/////wAAAAAAAQAoAQEAAAABAAAAAAAA" +
           "AAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public GenerateFileForReadMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            object generateOptions = (object)_inputArguments[0];

            NodeId fileNodeId = (NodeId)_outputArguments[0];
            uint fileHandle = (uint)_outputArguments[1];
            NodeId completionStateMachine = (NodeId)_outputArguments[2];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    generateOptions,
                    ref fileNodeId,
                    ref fileHandle,
                    ref completionStateMachine);
            }

            _outputArguments[0] = fileNodeId;
            _outputArguments[1] = fileHandle;
            _outputArguments[2] = completionStateMachine;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult GenerateFileForReadMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        object generateOptions,
        ref NodeId fileNodeId,
        ref uint fileHandle,
        ref NodeId completionStateMachine);
    #endif
    #endregion

    #region GenerateFileForWriteMethodState Class
    #if (!OPCUA_EXCLUDE_GenerateFileForWriteMethodState)
    /// <summary>
    /// Stores an instance of the GenerateFileForWriteMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class GenerateFileForWriteMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public GenerateFileForWriteMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new GenerateFileForWriteMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAHgAAAEdlbmVyYXRlRmlsZUZvcldyaXRlTWV0aG9kVHlwZQEAtj0ALwEA" +
           "tj22PQAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAOg/AC4AROg/AACWAQAA" +
           "AAEAKgEBHgAAAA8AAABHZW5lcmF0ZU9wdGlvbnMAGP////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf//" +
           "//8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBALc9AC4ARLc9AACWAgAAAAEAKgEBGQAA" +
           "AAoAAABGaWxlTm9kZUlkABH/////AAAAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAA" +
           "AQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public GenerateFileForWriteMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            object generateOptions = (object)_inputArguments[0];

            NodeId fileNodeId = (NodeId)_outputArguments[0];
            uint fileHandle = (uint)_outputArguments[1];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    generateOptions,
                    ref fileNodeId,
                    ref fileHandle);
            }

            _outputArguments[0] = fileNodeId;
            _outputArguments[1] = fileHandle;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult GenerateFileForWriteMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        object generateOptions,
        ref NodeId fileNodeId,
        ref uint fileHandle);
    #endif
    #endregion

    #region CloseAndCommitMethodState Class
    #if (!OPCUA_EXCLUDE_CloseAndCommitMethodState)
    /// <summary>
    /// Stores an instance of the CloseAndCommitMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class CloseAndCommitMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public CloseAndCommitMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new CloseAndCommitMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGAAAAENsb3NlQW5kQ29tbWl0TWV0aG9kVHlwZQEAuD0ALwEAuD24PQAA" +
           "AQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBALk9AC4ARLk9AACWAQAAAAEAKgEB" +
           "GQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoC" +
           "AAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQC6PQAuAES6PQAAlgEAAAABACoBASUAAAAWAAAAQ29tcGxl" +
           "dGlvblN0YXRlTWFjaGluZQAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public CloseAndCommitMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            uint fileHandle = (uint)_inputArguments[0];

            NodeId completionStateMachine = (NodeId)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    fileHandle,
                    ref completionStateMachine);
            }

            _outputArguments[0] = completionStateMachine;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult CloseAndCommitMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        uint fileHandle,
        ref NodeId completionStateMachine);
    #endif
    #endregion

    #region FileTransferStateMachineState Class
    #if (!OPCUA_EXCLUDE_FileTransferStateMachineState)
    /// <summary>
    /// Stores an instance of the FileTransferStateMachineType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class FileTransferStateMachineState : FiniteStateMachineState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public FileTransferStateMachineState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.FileTransferStateMachineType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJAAAAEZpbGVUcmFuc2ZlclN0YXRlTWFjaGluZVR5cGVJbnN0YW5jZQEA" +
           "uz0BALs9uz0AAP////8CAAAAFWCJCgIAAAAAAAwAAABDdXJyZW50U3RhdGUBALw9AC8BAMgKvD0AAAAV" +
           "/////wEB/////wEAAAAVYIkKAgAAAAAAAgAAAElkAQC9PQAuAES9PQAAABH/////AQH/////AAAAAARh" +
           "ggoEAAAAAAAFAAAAUmVzZXQBAOM9AC8BAOM94z0AAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public MethodState Reset
        {
            get
            {
                return m_resetMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_resetMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_resetMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_resetMethod != null)
            {
                children.Add(m_resetMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Reset:
                {
                    if (createOrReplace)
                    {
                        if (Reset == null)
                        {
                            if (replacement == null)
                            {
                                Reset = new MethodState(this);
                            }
                            else
                            {
                                Reset = (MethodState)replacement;
                            }
                        }
                    }

                    instance = Reset;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private MethodState m_resetMethod;
        #endregion
    }
    #endif
    #endregion

    #region RoleSetState Class
    #if (!OPCUA_EXCLUDE_RoleSetState)
    /// <summary>
    /// Stores an instance of the RoleSetType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RoleSetState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RoleSetState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.RoleSetType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAEwAAAFJvbGVTZXRUeXBlSW5zdGFuY2UBAPc8AQD3PPc8AAD/////AgAA" +
           "AARhggoEAAAAAAAHAAAAQWRkUm9sZQEAfT4ALwEAfT59PgAAAQH/////AgAAABdgqQoCAAAAAAAOAAAA" +
           "SW5wdXRBcmd1bWVudHMBAH4+AC4ARH4+AACWAgAAAAEAKgEBFwAAAAgAAABSb2xlTmFtZQAM/////wAA" +
           "AAAAAQAqAQEbAAAADAAAAE5hbWVzcGFjZVVyaQAM/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB////" +
           "/wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEAfz4ALgBEfz4AAJYBAAAAAQAqAQEZAAAA" +
           "CgAAAFJvbGVOb2RlSWQAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAA" +
           "AAoAAABSZW1vdmVSb2xlAQCAPgAvAQCAPoA+AAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFy" +
           "Z3VtZW50cwEAgT4ALgBEgT4AAJYBAAAAAQAqAQEZAAAACgAAAFJvbGVOb2RlSWQAEf////8AAAAAAAEA" +
           "KAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public AddRoleMethodState AddRole
        {
            get
            {
                return m_addRoleMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addRoleMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addRoleMethod = value;
            }
        }

        /// <remarks />
        public RemoveRoleMethodState RemoveRole
        {
            get
            {
                return m_removeRoleMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removeRoleMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removeRoleMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_addRoleMethod != null)
            {
                children.Add(m_addRoleMethod);
            }

            if (m_removeRoleMethod != null)
            {
                children.Add(m_removeRoleMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.AddRole:
                {
                    if (createOrReplace)
                    {
                        if (AddRole == null)
                        {
                            if (replacement == null)
                            {
                                AddRole = new AddRoleMethodState(this);
                            }
                            else
                            {
                                AddRole = (AddRoleMethodState)replacement;
                            }
                        }
                    }

                    instance = AddRole;
                    break;
                }

                case Opc.Ua.BrowseNames.RemoveRole:
                {
                    if (createOrReplace)
                    {
                        if (RemoveRole == null)
                        {
                            if (replacement == null)
                            {
                                RemoveRole = new RemoveRoleMethodState(this);
                            }
                            else
                            {
                                RemoveRole = (RemoveRoleMethodState)replacement;
                            }
                        }
                    }

                    instance = RemoveRole;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private AddRoleMethodState m_addRoleMethod;
        private RemoveRoleMethodState m_removeRoleMethod;
        #endregion
    }
    #endif
    #endregion

    #region AddRoleMethodState Class
    #if (!OPCUA_EXCLUDE_AddRoleMethodState)
    /// <summary>
    /// Stores an instance of the AddRoleMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AddRoleMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AddRoleMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new AddRoleMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAEQAAAEFkZFJvbGVNZXRob2RUeXBlAQCCPgAvAQCCPoI+AAABAf////8C" +
           "AAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAgz4ALgBEgz4AAJYCAAAAAQAqAQEXAAAACAAA" +
           "AFJvbGVOYW1lAAz/////AAAAAAABACoBARsAAAAMAAAATmFtZXNwYWNlVXJpAAz/////AAAAAAABACgB" +
           "AQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQCEPgAuAESE" +
           "PgAAlgEAAAABACoBARkAAAAKAAAAUm9sZU5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB" +
           "/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public AddRoleMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string roleName = (string)_inputArguments[0];
            string namespaceUri = (string)_inputArguments[1];

            NodeId roleNodeId = (NodeId)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    roleName,
                    namespaceUri,
                    ref roleNodeId);
            }

            _outputArguments[0] = roleNodeId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult AddRoleMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string roleName,
        string namespaceUri,
        ref NodeId roleNodeId);
    #endif
    #endregion

    #region RemoveRoleMethodState Class
    #if (!OPCUA_EXCLUDE_RemoveRoleMethodState)
    /// <summary>
    /// Stores an instance of the RemoveRoleMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RemoveRoleMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RemoveRoleMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new RemoveRoleMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAFAAAAFJlbW92ZVJvbGVNZXRob2RUeXBlAQCFPgAvAQCFPoU+AAABAf//" +
           "//8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAhj4ALgBEhj4AAJYBAAAAAQAqAQEZAAAA" +
           "CgAAAFJvbGVOb2RlSWQAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public RemoveRoleMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            NodeId roleNodeId = (NodeId)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    roleNodeId);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult RemoveRoleMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        NodeId roleNodeId);
    #endif
    #endregion

    #region RoleState Class
    #if (!OPCUA_EXCLUDE_RoleState)
    /// <summary>
    /// Stores an instance of the RoleType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RoleState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RoleState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.RoleType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (Applications != null)
            {
                Applications.Initialize(context, Applications_InitializationString);
            }

            if (ApplicationsExclude != null)
            {
                ApplicationsExclude.Initialize(context, ApplicationsExclude_InitializationString);
            }

            if (Endpoints != null)
            {
                Endpoints.Initialize(context, Endpoints_InitializationString);
            }

            if (EndpointsExclude != null)
            {
                EndpointsExclude.Initialize(context, EndpointsExclude_InitializationString);
            }

            if (AddIdentity != null)
            {
                AddIdentity.Initialize(context, AddIdentity_InitializationString);
            }

            if (RemoveIdentity != null)
            {
                RemoveIdentity.Initialize(context, RemoveIdentity_InitializationString);
            }

            if (AddApplication != null)
            {
                AddApplication.Initialize(context, AddApplication_InitializationString);
            }

            if (RemoveApplication != null)
            {
                RemoveApplication.Initialize(context, RemoveApplication_InitializationString);
            }

            if (AddEndpoint != null)
            {
                AddEndpoint.Initialize(context, AddEndpoint_InitializationString);
            }

            if (RemoveEndpoint != null)
            {
                RemoveEndpoint.Initialize(context, RemoveEndpoint_InitializationString);
            }
        }

        #region Initialization String
        private const string Applications_InitializationString =
           "//////////8XYIkKAgAAAAAADAAAAEFwcGxpY2F0aW9ucwEALj8ALgBELj8AAAAMAQAAAAEAAAAAAAAA" +
           "AQH/////AAAAAA==";

        private const string ApplicationsExclude_InitializationString =
           "//////////8VYIkKAgAAAAAAEwAAAEFwcGxpY2F0aW9uc0V4Y2x1ZGUBADI8AC4ARDI8AAAAAf////8B" +
           "Af////8AAAAA";

        private const string Endpoints_InitializationString =
           "//////////8XYIkKAgAAAAAACQAAAEVuZHBvaW50cwEALz8ALgBELz8AAAEAqDwBAAAAAQAAAAAAAAAB" +
           "Af////8AAAAA";

        private const string EndpointsExclude_InitializationString =
           "//////////8VYIkKAgAAAAAAEAAAAEVuZHBvaW50c0V4Y2x1ZGUBADM8AC4ARDM8AAAAAf////8BAf//" +
           "//8AAAAA";

        private const string AddIdentity_InitializationString =
           "//////////8EYYIKBAAAAAAACwAAAEFkZElkZW50aXR5AQAIPQAvAQAIPQg9AAABAf////8BAAAAF2Cp" +
           "CgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEACT0ALgBECT0AAJYBAAAAAQAqAQEVAAAABAAAAFJ1bGUB" +
           "ABI9/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string RemoveIdentity_InitializationString =
           "//////////8EYYIKBAAAAAAADgAAAFJlbW92ZUlkZW50aXR5AQAKPQAvAQAKPQo9AAABAf////8BAAAA" +
           "F2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEACz0ALgBECz0AAJYBAAAAAQAqAQEVAAAABAAAAFJ1" +
           "bGUBABI9/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string AddApplication_InitializationString =
           "//////////8EYYIKBAAAAAAADgAAAEFkZEFwcGxpY2F0aW9uAQAwPwAvAQAwPzA/AAABAf////8BAAAA" +
           "F2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAMT8ALgBEMT8AAJYBAAAAAQAqAQEdAAAADgAAAEFw" +
           "cGxpY2F0aW9uVXJpAAz/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";

        private const string RemoveApplication_InitializationString =
           "//////////8EYYIKBAAAAAAAEQAAAFJlbW92ZUFwcGxpY2F0aW9uAQAyPwAvAQAyPzI/AAABAf////8B" +
           "AAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAMz8ALgBEMz8AAJYBAAAAAQAqAQEdAAAADgAA" +
           "AEFwcGxpY2F0aW9uVXJpAAz/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";

        private const string AddEndpoint_InitializationString =
           "//////////8EYYIKBAAAAAAACwAAAEFkZEVuZHBvaW50AQA0PwAvAQA0PzQ/AAABAf////8BAAAAF2Cp" +
           "CgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEANT8ALgBENT8AAJYBAAAAAQAqAQEZAAAACAAAAEVuZHBv" +
           "aW50AQCoPP////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";

        private const string RemoveEndpoint_InitializationString =
           "//////////8EYYIKBAAAAAAADgAAAFJlbW92ZUVuZHBvaW50AQA2PwAvAQA2PzY/AAABAf////8BAAAA" +
           "F2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEANz8ALgBENz8AAJYBAAAAAQAqAQEZAAAACAAAAEVu" +
           "ZHBvaW50AQCoPP////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAEAAAAFJvbGVUeXBlSW5zdGFuY2UBAAQ9AQAEPQQ9AAD/////CwAAABdg" +
           "iQoCAAAAAAAKAAAASWRlbnRpdGllcwEALT8ALgBELT8AAAEAEj0BAAAAAQAAAAAAAAABAf////8AAAAA" +
           "F2CJCgIAAAAAAAwAAABBcHBsaWNhdGlvbnMBAC4/AC4ARC4/AAAADAEAAAABAAAAAAAAAAEB/////wAA" +
           "AAAVYIkKAgAAAAAAEwAAAEFwcGxpY2F0aW9uc0V4Y2x1ZGUBADI8AC4ARDI8AAAAAf////8BAf////8A" +
           "AAAAF2CJCgIAAAAAAAkAAABFbmRwb2ludHMBAC8/AC4ARC8/AAABAKg8AQAAAAEAAAAAAAAAAQH/////" +
           "AAAAABVgiQoCAAAAAAAQAAAARW5kcG9pbnRzRXhjbHVkZQEAMzwALgBEMzwAAAAB/////wEB/////wAA" +
           "AAAEYYIKBAAAAAAACwAAAEFkZElkZW50aXR5AQAIPQAvAQAIPQg9AAABAf////8BAAAAF2CpCgIAAAAA" +
           "AA4AAABJbnB1dEFyZ3VtZW50cwEACT0ALgBECT0AAJYBAAAAAQAqAQEVAAAABAAAAFJ1bGUBABI9////" +
           "/wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAADgAAAFJlbW92ZUlkZW50aXR5" +
           "AQAKPQAvAQAKPQo9AAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEACz0ALgBE" +
           "Cz0AAJYBAAAAAQAqAQEVAAAABAAAAFJ1bGUBABI9/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB////" +
           "/wAAAAAEYYIKBAAAAAAADgAAAEFkZEFwcGxpY2F0aW9uAQAwPwAvAQAwPzA/AAABAf////8BAAAAF2Cp" +
           "CgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAMT8ALgBEMT8AAJYBAAAAAQAqAQEdAAAADgAAAEFwcGxp" +
           "Y2F0aW9uVXJpAAz/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAARAAAA" +
           "UmVtb3ZlQXBwbGljYXRpb24BADI/AC8BADI/Mj8AAAEB/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0" +
           "QXJndW1lbnRzAQAzPwAuAEQzPwAAlgEAAAABACoBAR0AAAAOAAAAQXBwbGljYXRpb25VcmkADP////8A" +
           "AAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAsAAABBZGRFbmRwb2ludAEAND8A" +
           "LwEAND80PwAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBADU/AC4ARDU/AACW" +
           "AQAAAAEAKgEBGQAAAAgAAABFbmRwb2ludAEAqDz/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////" +
           "AAAAAARhggoEAAAAAAAOAAAAUmVtb3ZlRW5kcG9pbnQBADY/AC8BADY/Nj8AAAEB/////wEAAAAXYKkK" +
           "AgAAAAAADgAAAElucHV0QXJndW1lbnRzAQA3PwAuAEQ3PwAAlgEAAAABACoBARkAAAAIAAAARW5kcG9p" +
           "bnQBAKg8/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<IdentityMappingRuleType[]> Identities
        {
            get
            {
                return m_identities;
            }

            set
            {
                if (!Object.ReferenceEquals(m_identities, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_identities = value;
            }
        }

        /// <remarks />
        public PropertyState<string[]> Applications
        {
            get
            {
                return m_applications;
            }

            set
            {
                if (!Object.ReferenceEquals(m_applications, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_applications = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> ApplicationsExclude
        {
            get
            {
                return m_applicationsExclude;
            }

            set
            {
                if (!Object.ReferenceEquals(m_applicationsExclude, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_applicationsExclude = value;
            }
        }

        /// <remarks />
        public PropertyState<EndpointType[]> Endpoints
        {
            get
            {
                return m_endpoints;
            }

            set
            {
                if (!Object.ReferenceEquals(m_endpoints, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_endpoints = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> EndpointsExclude
        {
            get
            {
                return m_endpointsExclude;
            }

            set
            {
                if (!Object.ReferenceEquals(m_endpointsExclude, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_endpointsExclude = value;
            }
        }

        /// <remarks />
        public AddIdentityMethodState AddIdentity
        {
            get
            {
                return m_addIdentityMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addIdentityMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addIdentityMethod = value;
            }
        }

        /// <remarks />
        public RemoveIdentityMethodState RemoveIdentity
        {
            get
            {
                return m_removeIdentityMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removeIdentityMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removeIdentityMethod = value;
            }
        }

        /// <remarks />
        public AddApplicationMethodState AddApplication
        {
            get
            {
                return m_addApplicationMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addApplicationMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addApplicationMethod = value;
            }
        }

        /// <remarks />
        public RemoveApplicationMethodState RemoveApplication
        {
            get
            {
                return m_removeApplicationMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removeApplicationMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removeApplicationMethod = value;
            }
        }

        /// <remarks />
        public AddEndpointMethodState AddEndpoint
        {
            get
            {
                return m_addEndpointMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addEndpointMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addEndpointMethod = value;
            }
        }

        /// <remarks />
        public RemoveEndpointMethodState RemoveEndpoint
        {
            get
            {
                return m_removeEndpointMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removeEndpointMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removeEndpointMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_identities != null)
            {
                children.Add(m_identities);
            }

            if (m_applications != null)
            {
                children.Add(m_applications);
            }

            if (m_applicationsExclude != null)
            {
                children.Add(m_applicationsExclude);
            }

            if (m_endpoints != null)
            {
                children.Add(m_endpoints);
            }

            if (m_endpointsExclude != null)
            {
                children.Add(m_endpointsExclude);
            }

            if (m_addIdentityMethod != null)
            {
                children.Add(m_addIdentityMethod);
            }

            if (m_removeIdentityMethod != null)
            {
                children.Add(m_removeIdentityMethod);
            }

            if (m_addApplicationMethod != null)
            {
                children.Add(m_addApplicationMethod);
            }

            if (m_removeApplicationMethod != null)
            {
                children.Add(m_removeApplicationMethod);
            }

            if (m_addEndpointMethod != null)
            {
                children.Add(m_addEndpointMethod);
            }

            if (m_removeEndpointMethod != null)
            {
                children.Add(m_removeEndpointMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Identities:
                {
                    if (createOrReplace)
                    {
                        if (Identities == null)
                        {
                            if (replacement == null)
                            {
                                Identities = new PropertyState<IdentityMappingRuleType[]>(this);
                            }
                            else
                            {
                                Identities = (PropertyState<IdentityMappingRuleType[]>)replacement;
                            }
                        }
                    }

                    instance = Identities;
                    break;
                }

                case Opc.Ua.BrowseNames.Applications:
                {
                    if (createOrReplace)
                    {
                        if (Applications == null)
                        {
                            if (replacement == null)
                            {
                                Applications = new PropertyState<string[]>(this);
                            }
                            else
                            {
                                Applications = (PropertyState<string[]>)replacement;
                            }
                        }
                    }

                    instance = Applications;
                    break;
                }

                case Opc.Ua.BrowseNames.ApplicationsExclude:
                {
                    if (createOrReplace)
                    {
                        if (ApplicationsExclude == null)
                        {
                            if (replacement == null)
                            {
                                ApplicationsExclude = new PropertyState<bool>(this);
                            }
                            else
                            {
                                ApplicationsExclude = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = ApplicationsExclude;
                    break;
                }

                case Opc.Ua.BrowseNames.Endpoints:
                {
                    if (createOrReplace)
                    {
                        if (Endpoints == null)
                        {
                            if (replacement == null)
                            {
                                Endpoints = new PropertyState<EndpointType[]>(this);
                            }
                            else
                            {
                                Endpoints = (PropertyState<EndpointType[]>)replacement;
                            }
                        }
                    }

                    instance = Endpoints;
                    break;
                }

                case Opc.Ua.BrowseNames.EndpointsExclude:
                {
                    if (createOrReplace)
                    {
                        if (EndpointsExclude == null)
                        {
                            if (replacement == null)
                            {
                                EndpointsExclude = new PropertyState<bool>(this);
                            }
                            else
                            {
                                EndpointsExclude = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = EndpointsExclude;
                    break;
                }

                case Opc.Ua.BrowseNames.AddIdentity:
                {
                    if (createOrReplace)
                    {
                        if (AddIdentity == null)
                        {
                            if (replacement == null)
                            {
                                AddIdentity = new AddIdentityMethodState(this);
                            }
                            else
                            {
                                AddIdentity = (AddIdentityMethodState)replacement;
                            }
                        }
                    }

                    instance = AddIdentity;
                    break;
                }

                case Opc.Ua.BrowseNames.RemoveIdentity:
                {
                    if (createOrReplace)
                    {
                        if (RemoveIdentity == null)
                        {
                            if (replacement == null)
                            {
                                RemoveIdentity = new RemoveIdentityMethodState(this);
                            }
                            else
                            {
                                RemoveIdentity = (RemoveIdentityMethodState)replacement;
                            }
                        }
                    }

                    instance = RemoveIdentity;
                    break;
                }

                case Opc.Ua.BrowseNames.AddApplication:
                {
                    if (createOrReplace)
                    {
                        if (AddApplication == null)
                        {
                            if (replacement == null)
                            {
                                AddApplication = new AddApplicationMethodState(this);
                            }
                            else
                            {
                                AddApplication = (AddApplicationMethodState)replacement;
                            }
                        }
                    }

                    instance = AddApplication;
                    break;
                }

                case Opc.Ua.BrowseNames.RemoveApplication:
                {
                    if (createOrReplace)
                    {
                        if (RemoveApplication == null)
                        {
                            if (replacement == null)
                            {
                                RemoveApplication = new RemoveApplicationMethodState(this);
                            }
                            else
                            {
                                RemoveApplication = (RemoveApplicationMethodState)replacement;
                            }
                        }
                    }

                    instance = RemoveApplication;
                    break;
                }

                case Opc.Ua.BrowseNames.AddEndpoint:
                {
                    if (createOrReplace)
                    {
                        if (AddEndpoint == null)
                        {
                            if (replacement == null)
                            {
                                AddEndpoint = new AddEndpointMethodState(this);
                            }
                            else
                            {
                                AddEndpoint = (AddEndpointMethodState)replacement;
                            }
                        }
                    }

                    instance = AddEndpoint;
                    break;
                }

                case Opc.Ua.BrowseNames.RemoveEndpoint:
                {
                    if (createOrReplace)
                    {
                        if (RemoveEndpoint == null)
                        {
                            if (replacement == null)
                            {
                                RemoveEndpoint = new RemoveEndpointMethodState(this);
                            }
                            else
                            {
                                RemoveEndpoint = (RemoveEndpointMethodState)replacement;
                            }
                        }
                    }

                    instance = RemoveEndpoint;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<IdentityMappingRuleType[]> m_identities;
        private PropertyState<string[]> m_applications;
        private PropertyState<bool> m_applicationsExclude;
        private PropertyState<EndpointType[]> m_endpoints;
        private PropertyState<bool> m_endpointsExclude;
        private AddIdentityMethodState m_addIdentityMethod;
        private RemoveIdentityMethodState m_removeIdentityMethod;
        private AddApplicationMethodState m_addApplicationMethod;
        private RemoveApplicationMethodState m_removeApplicationMethod;
        private AddEndpointMethodState m_addEndpointMethod;
        private RemoveEndpointMethodState m_removeEndpointMethod;
        #endregion
    }
    #endif
    #endregion

    #region AddIdentityMethodState Class
    #if (!OPCUA_EXCLUDE_AddIdentityMethodState)
    /// <summary>
    /// Stores an instance of the AddIdentityMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AddIdentityMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AddIdentityMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new AddIdentityMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAFQAAAEFkZElkZW50aXR5TWV0aG9kVHlwZQEAFD0ALwEAFD0UPQAAAQH/" +
           "////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBABU9AC4ARBU9AACWAQAAAAEAKgEBFQAA" +
           "AAQAAABSdWxlAQASPf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public AddIdentityMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            IdentityMappingRuleType rule = (IdentityMappingRuleType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[0]);

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    rule);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult AddIdentityMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        IdentityMappingRuleType rule);
    #endif
    #endregion

    #region RemoveIdentityMethodState Class
    #if (!OPCUA_EXCLUDE_RemoveIdentityMethodState)
    /// <summary>
    /// Stores an instance of the RemoveIdentityMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RemoveIdentityMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RemoveIdentityMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new RemoveIdentityMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGAAAAFJlbW92ZUlkZW50aXR5TWV0aG9kVHlwZQEAFj0ALwEAFj0WPQAA" +
           "AQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBABc9AC4ARBc9AACWAQAAAAEAKgEB" +
           "FQAAAAQAAABSdWxlAQASPf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public RemoveIdentityMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            IdentityMappingRuleType rule = (IdentityMappingRuleType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[0]);

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    rule);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult RemoveIdentityMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        IdentityMappingRuleType rule);
    #endif
    #endregion

    #region AddApplicationMethodState Class
    #if (!OPCUA_EXCLUDE_AddApplicationMethodState)
    /// <summary>
    /// Stores an instance of the AddApplicationMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AddApplicationMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AddApplicationMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new AddApplicationMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGAAAAEFkZEFwcGxpY2F0aW9uTWV0aG9kVHlwZQEAOD8ALwEAOD84PwAA" +
           "AQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBADk/AC4ARDk/AACWAQAAAAEAKgEB" +
           "HQAAAA4AAABBcHBsaWNhdGlvblVyaQAM/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public AddApplicationMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string applicationUri = (string)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    applicationUri);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult AddApplicationMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string applicationUri);
    #endif
    #endregion

    #region RemoveApplicationMethodState Class
    #if (!OPCUA_EXCLUDE_RemoveApplicationMethodState)
    /// <summary>
    /// Stores an instance of the RemoveApplicationMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RemoveApplicationMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RemoveApplicationMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new RemoveApplicationMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGwAAAFJlbW92ZUFwcGxpY2F0aW9uTWV0aG9kVHlwZQEAOj8ALwEAOj86" +
           "PwAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBADs/AC4ARDs/AACWAQAAAAEA" +
           "KgEBHQAAAA4AAABBcHBsaWNhdGlvblVyaQAM/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAA" +
           "AAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public RemoveApplicationMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string applicationUri = (string)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    applicationUri);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult RemoveApplicationMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string applicationUri);
    #endif
    #endregion

    #region AddEndpointMethodState Class
    #if (!OPCUA_EXCLUDE_AddEndpointMethodState)
    /// <summary>
    /// Stores an instance of the AddEndpointMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AddEndpointMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AddEndpointMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new AddEndpointMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAFQAAAEFkZEVuZHBvaW50TWV0aG9kVHlwZQEAPD8ALwEAPD88PwAAAQH/" +
           "////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAD0/AC4ARD0/AACWAQAAAAEAKgEBGQAA" +
           "AAgAAABFbmRwb2ludAEAqDz/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public AddEndpointMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            EndpointType endpoint = (EndpointType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[0]);

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    endpoint);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult AddEndpointMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        EndpointType endpoint);
    #endif
    #endregion

    #region RemoveEndpointMethodState Class
    #if (!OPCUA_EXCLUDE_RemoveEndpointMethodState)
    /// <summary>
    /// Stores an instance of the RemoveEndpointMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RemoveEndpointMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RemoveEndpointMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new RemoveEndpointMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGAAAAFJlbW92ZUVuZHBvaW50TWV0aG9kVHlwZQEAPj8ALwEAPj8+PwAA" +
           "AQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAD8/AC4ARD8/AACWAQAAAAEAKgEB" +
           "GQAAAAgAAABFbmRwb2ludAEAqDz/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public RemoveEndpointMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            EndpointType endpoint = (EndpointType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[0]);

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    endpoint);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult RemoveEndpointMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        EndpointType endpoint);
    #endif
    #endregion

    #region RoleMappingRuleChangedAuditEventState Class
    #if (!OPCUA_EXCLUDE_RoleMappingRuleChangedAuditEventState)
    /// <summary>
    /// Stores an instance of the RoleMappingRuleChangedAuditEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RoleMappingRuleChangedAuditEventState : AuditUpdateMethodEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RoleMappingRuleChangedAuditEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.RoleMappingRuleChangedAuditEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAALAAAAFJvbGVNYXBwaW5nUnVsZUNoYW5nZWRBdWRpdEV2ZW50VHlwZUlu" +
           "c3RhbmNlAQDpRAEA6UTpRAAA/////w8AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAOpEAC4AROpEAAAA" +
           "D/////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAOtEAC4AROtEAAAAEf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQDsRAAuAETsRAAAABH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAKAAAAU291cmNlTmFtZQEA7UQALgBE7UQAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "BAAAAFRpbWUBAO5EAC4ARO5EAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVU" +
           "aW1lAQDvRAAuAETvRAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQDxRAAu" +
           "AETxRAAAABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAPJEAC4ARPJEAAAABf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABAPNEAC4ARPNEAAABACYB////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAABgAAAFN0YXR1cwEA9EQALgBE9EQAAAAB/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACAAAAFNlcnZlcklkAQD1RAAuAET1RAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAS" +
           "AAAAQ2xpZW50QXVkaXRFbnRyeUlkAQD2RAAuAET2RAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAM" +
           "AAAAQ2xpZW50VXNlcklkAQD3RAAuAET3RAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAIAAAATWV0" +
           "aG9kSWQBAPhEAC4ARPhEAAAAEf////8BAf////8AAAAAF2CJCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50" +
           "cwEA+UQALgBE+UQAAAAYAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region DictionaryEntryState Class
    #if (!OPCUA_EXCLUDE_DictionaryEntryState)
    /// <summary>
    /// Stores an instance of the DictionaryEntryType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DictionaryEntryState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DictionaryEntryState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.DictionaryEntryType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGwAAAERpY3Rpb25hcnlFbnRyeVR5cGVJbnN0YW5jZQEAtUQBALVEtUQA" +
           "AP////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region DictionaryFolderState Class
    #if (!OPCUA_EXCLUDE_DictionaryFolderState)
    /// <summary>
    /// Stores an instance of the DictionaryFolderType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DictionaryFolderState : FolderState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DictionaryFolderState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.DictionaryFolderType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHAAAAERpY3Rpb25hcnlGb2xkZXJUeXBlSW5zdGFuY2UBALdEAQC3RLdE" +
           "AAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region IrdiDictionaryEntryState Class
    #if (!OPCUA_EXCLUDE_IrdiDictionaryEntryState)
    /// <summary>
    /// Stores an instance of the IrdiDictionaryEntryType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class IrdiDictionaryEntryState : DictionaryEntryState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public IrdiDictionaryEntryState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.IrdiDictionaryEntryType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHwAAAElyZGlEaWN0aW9uYXJ5RW50cnlUeXBlSW5zdGFuY2UBAL5EAQC+" +
           "RL5EAAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region UriDictionaryEntryState Class
    #if (!OPCUA_EXCLUDE_UriDictionaryEntryState)
    /// <summary>
    /// Stores an instance of the UriDictionaryEntryType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class UriDictionaryEntryState : DictionaryEntryState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public UriDictionaryEntryState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.UriDictionaryEntryType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHgAAAFVyaURpY3Rpb25hcnlFbnRyeVR5cGVJbnN0YW5jZQEAwEQBAMBE" +
           "wEQAAP////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region BaseInterfaceState Class
    #if (!OPCUA_EXCLUDE_BaseInterfaceState)
    /// <summary>
    /// Stores an instance of the BaseInterfaceType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class BaseInterfaceState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public BaseInterfaceState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.BaseInterfaceType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGQAAAEJhc2VJbnRlcmZhY2VUeXBlSW5zdGFuY2UBAMJEAQDCRMJEAAD/" +
           "////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region IOrderedObjectState Class
    #if (!OPCUA_EXCLUDE_IOrderedObjectState)
    /// <summary>
    /// Stores an instance of the IOrderedObjectType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class IOrderedObjectState : BaseInterfaceState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public IOrderedObjectState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.IOrderedObjectType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGgAAAElPcmRlcmVkT2JqZWN0VHlwZUluc3RhbmNlAQDZWwEA2VvZWwAA" +
           "/////wEAAAAVYIkKAgAAAAAADAAAAE51bWJlckluTGlzdAEA3VsALgBE3VsAAAAa/////wEB/////wAA" +
           "AAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState NumberInList
        {
            get
            {
                return m_numberInList;
            }

            set
            {
                if (!Object.ReferenceEquals(m_numberInList, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_numberInList = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_numberInList != null)
            {
                children.Add(m_numberInList);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.NumberInList:
                {
                    if (createOrReplace)
                    {
                        if (NumberInList == null)
                        {
                            if (replacement == null)
                            {
                                NumberInList = new PropertyState(this);
                            }
                            else
                            {
                                NumberInList = (PropertyState)replacement;
                            }
                        }
                    }

                    instance = NumberInList;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState m_numberInList;
        #endregion
    }
    #endif
    #endregion

    #region OrderedListState Class
    #if (!OPCUA_EXCLUDE_OrderedListState)
    /// <summary>
    /// Stores an instance of the OrderedListType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class OrderedListState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public OrderedListState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.OrderedListType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (NodeVersion != null)
            {
                NodeVersion.Initialize(context, NodeVersion_InitializationString);
            }
        }

        #region Initialization String
        private const string NodeVersion_InitializationString =
           "//////////8VYIkKAgAAAAAACwAAAE5vZGVWZXJzaW9uAQDlWwAuAETlWwAAAAz/////AQH/////AAAA" +
           "AA==";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFwAAAE9yZGVyZWRMaXN0VHlwZUluc3RhbmNlAQDeWwEA3lveWwAAAQAA" +
           "AAApAAEAVQgBAAAAFWCJCgIAAAAAAAsAAABOb2RlVmVyc2lvbgEA5VsALgBE5VsAAAAM/////wEB////" +
           "/wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> NodeVersion
        {
            get
            {
                return m_nodeVersion;
            }

            set
            {
                if (!Object.ReferenceEquals(m_nodeVersion, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_nodeVersion = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_nodeVersion != null)
            {
                children.Add(m_nodeVersion);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.NodeVersion:
                {
                    if (createOrReplace)
                    {
                        if (NodeVersion == null)
                        {
                            if (replacement == null)
                            {
                                NodeVersion = new PropertyState<string>(this);
                            }
                            else
                            {
                                NodeVersion = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = NodeVersion;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_nodeVersion;
        #endregion
    }
    #endif
    #endregion

    #region DataItemState Class
    #if (!OPCUA_EXCLUDE_DataItemState)
    /// <summary>
    /// Stores an instance of the DataItemType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DataItemState : BaseDataVariableState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DataItemState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.DataItemType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.BaseDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Any;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (Definition != null)
            {
                Definition.Initialize(context, Definition_InitializationString);
            }

            if (ValuePrecision != null)
            {
                ValuePrecision.Initialize(context, ValuePrecision_InitializationString);
            }
        }

        #region Initialization String
        private const string Definition_InitializationString =
           "//////////8VYIkKAgAAAAAACgAAAERlZmluaXRpb24BAD4JAC4ARD4JAAAADP////8BAf////8AAAAA";

        private const string ValuePrecision_InitializationString =
           "//////////8VYIkKAgAAAAAADgAAAFZhbHVlUHJlY2lzaW9uAQA/CQAuAEQ/CQAAAAv/////AQH/////" +
           "AAAAAA==";

        private const string InitializationString =
           "//////////8VYIECAgAAAAAAFAAAAERhdGFJdGVtVHlwZUluc3RhbmNlAQA9CQEAPQk9CQAAABgBAf//" +
           "//8CAAAAFWCJCgIAAAAAAAoAAABEZWZpbml0aW9uAQA+CQAuAEQ+CQAAAAz/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAOAAAAVmFsdWVQcmVjaXNpb24BAD8JAC4ARD8JAAAAC/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> Definition
        {
            get
            {
                return m_definition;
            }

            set
            {
                if (!Object.ReferenceEquals(m_definition, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_definition = value;
            }
        }

        /// <remarks />
        public PropertyState<double> ValuePrecision
        {
            get
            {
                return m_valuePrecision;
            }

            set
            {
                if (!Object.ReferenceEquals(m_valuePrecision, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_valuePrecision = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_definition != null)
            {
                children.Add(m_definition);
            }

            if (m_valuePrecision != null)
            {
                children.Add(m_valuePrecision);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Definition:
                {
                    if (createOrReplace)
                    {
                        if (Definition == null)
                        {
                            if (replacement == null)
                            {
                                Definition = new PropertyState<string>(this);
                            }
                            else
                            {
                                Definition = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = Definition;
                    break;
                }

                case Opc.Ua.BrowseNames.ValuePrecision:
                {
                    if (createOrReplace)
                    {
                        if (ValuePrecision == null)
                        {
                            if (replacement == null)
                            {
                                ValuePrecision = new PropertyState<double>(this);
                            }
                            else
                            {
                                ValuePrecision = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = ValuePrecision;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_definition;
        private PropertyState<double> m_valuePrecision;
        #endregion
    }

    #region DataItemState<T> Class
    /// <summary>
    /// A typed version of the DataItemType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class DataItemState<T> : DataItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public DataItemState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region BaseAnalogState Class
    #if (!OPCUA_EXCLUDE_BaseAnalogState)
    /// <summary>
    /// Stores an instance of the BaseAnalogType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class BaseAnalogState : DataItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public BaseAnalogState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.BaseAnalogType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.Number, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (InstrumentRange != null)
            {
                InstrumentRange.Initialize(context, InstrumentRange_InitializationString);
            }

            if (EURange != null)
            {
                EURange.Initialize(context, EURange_InitializationString);
            }

            if (EngineeringUnits != null)
            {
                EngineeringUnits.Initialize(context, EngineeringUnits_InitializationString);
            }
        }

        #region Initialization String
        private const string InstrumentRange_InitializationString =
           "//////////8VYIkKAgAAAAAADwAAAEluc3RydW1lbnRSYW5nZQEAn0QALgBEn0QAAAEAdAP/////AQH/" +
           "////AAAAAA==";

        private const string EURange_InitializationString =
           "//////////8VYIkKAgAAAAAABwAAAEVVUmFuZ2UBAKBEAC4ARKBEAAABAHQD/////wEB/////wAAAAA=";

        private const string EngineeringUnits_InitializationString =
           "//////////8VYIkKAgAAAAAAEAAAAEVuZ2luZWVyaW5nVW5pdHMBAKFEAC4ARKFEAAABAHcD/////wEB" +
           "/////wAAAAA=";

        private const string InitializationString =
           "//////////8VYIECAgAAAAAAFgAAAEJhc2VBbmFsb2dUeXBlSW5zdGFuY2UBANY7AQDWO9Y7AAAAGgEB" +
           "/////wMAAAAVYIkKAgAAAAAADwAAAEluc3RydW1lbnRSYW5nZQEAn0QALgBEn0QAAAEAdAP/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAHAAAARVVSYW5nZQEAoEQALgBEoEQAAAEAdAP/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAQAAAARW5naW5lZXJpbmdVbml0cwEAoUQALgBEoUQAAAEAdwP/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<Range> InstrumentRange
        {
            get
            {
                return m_instrumentRange;
            }

            set
            {
                if (!Object.ReferenceEquals(m_instrumentRange, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_instrumentRange = value;
            }
        }

        /// <remarks />
        public PropertyState<Range> EURange
        {
            get
            {
                return m_eURange;
            }

            set
            {
                if (!Object.ReferenceEquals(m_eURange, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_eURange = value;
            }
        }

        /// <remarks />
        public PropertyState<EUInformation> EngineeringUnits
        {
            get
            {
                return m_engineeringUnits;
            }

            set
            {
                if (!Object.ReferenceEquals(m_engineeringUnits, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_engineeringUnits = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_instrumentRange != null)
            {
                children.Add(m_instrumentRange);
            }

            if (m_eURange != null)
            {
                children.Add(m_eURange);
            }

            if (m_engineeringUnits != null)
            {
                children.Add(m_engineeringUnits);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.InstrumentRange:
                {
                    if (createOrReplace)
                    {
                        if (InstrumentRange == null)
                        {
                            if (replacement == null)
                            {
                                InstrumentRange = new PropertyState<Range>(this);
                            }
                            else
                            {
                                InstrumentRange = (PropertyState<Range>)replacement;
                            }
                        }
                    }

                    instance = InstrumentRange;
                    break;
                }

                case Opc.Ua.BrowseNames.EURange:
                {
                    if (createOrReplace)
                    {
                        if (EURange == null)
                        {
                            if (replacement == null)
                            {
                                EURange = new PropertyState<Range>(this);
                            }
                            else
                            {
                                EURange = (PropertyState<Range>)replacement;
                            }
                        }
                    }

                    instance = EURange;
                    break;
                }

                case Opc.Ua.BrowseNames.EngineeringUnits:
                {
                    if (createOrReplace)
                    {
                        if (EngineeringUnits == null)
                        {
                            if (replacement == null)
                            {
                                EngineeringUnits = new PropertyState<EUInformation>(this);
                            }
                            else
                            {
                                EngineeringUnits = (PropertyState<EUInformation>)replacement;
                            }
                        }
                    }

                    instance = EngineeringUnits;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<Range> m_instrumentRange;
        private PropertyState<Range> m_eURange;
        private PropertyState<EUInformation> m_engineeringUnits;
        #endregion
    }

    #region BaseAnalogState<T> Class
    /// <summary>
    /// A typed version of the BaseAnalogType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class BaseAnalogState<T> : BaseAnalogState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public BaseAnalogState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region AnalogItemState Class
    #if (!OPCUA_EXCLUDE_AnalogItemState)
    /// <summary>
    /// Stores an instance of the AnalogItemType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AnalogItemState : BaseAnalogState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AnalogItemState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.AnalogItemType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.Number, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIECAgAAAAAAFgAAAEFuYWxvZ0l0ZW1UeXBlSW5zdGFuY2UBAEAJAQBACUAJAAAAGgEB" +
           "/////wEAAAAVYIkKAgAAAAAABwAAAEVVUmFuZ2UBAEEJAC4AREEJAAABAHQD/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }

    #region AnalogItemState<T> Class
    /// <summary>
    /// A typed version of the AnalogItemType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class AnalogItemState<T> : AnalogItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public AnalogItemState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region AnalogUnitState Class
    #if (!OPCUA_EXCLUDE_AnalogUnitState)
    /// <summary>
    /// Stores an instance of the AnalogUnitType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AnalogUnitState : BaseAnalogState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AnalogUnitState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.AnalogUnitType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.Number, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIECAgAAAAAAFgAAAEFuYWxvZ1VuaXRUeXBlSW5zdGFuY2UBAFlEAQBZRFlEAAAAGgEB" +
           "/////wEAAAAVYIkKAgAAAAAAEAAAAEVuZ2luZWVyaW5nVW5pdHMBAF5EAC4ARF5EAAABAHcD/////wEB" +
           "/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }

    #region AnalogUnitState<T> Class
    /// <summary>
    /// A typed version of the AnalogUnitType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class AnalogUnitState<T> : AnalogUnitState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public AnalogUnitState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region AnalogUnitRangeState Class
    #if (!OPCUA_EXCLUDE_AnalogUnitRangeState)
    /// <summary>
    /// Stores an instance of the AnalogUnitRangeType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AnalogUnitRangeState : AnalogItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AnalogUnitRangeState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.AnalogUnitRangeType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.Number, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIECAgAAAAAAGwAAAEFuYWxvZ1VuaXRSYW5nZVR5cGVJbnN0YW5jZQEAokQBAKJEokQA" +
           "AAAaAQH/////AgAAABVgiQoCAAAAAAAHAAAARVVSYW5nZQEApkQALgBEpkQAAAEAdAP/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAQAAAARW5naW5lZXJpbmdVbml0cwEAp0QALgBEp0QAAAEAdwP/////AQH/////" +
           "AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }

    #region AnalogUnitRangeState<T> Class
    /// <summary>
    /// A typed version of the AnalogUnitRangeType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class AnalogUnitRangeState<T> : AnalogUnitRangeState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public AnalogUnitRangeState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region DiscreteItemState Class
    #if (!OPCUA_EXCLUDE_DiscreteItemState)
    /// <summary>
    /// Stores an instance of the DiscreteItemType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DiscreteItemState : DataItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DiscreteItemState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.DiscreteItemType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.BaseDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIECAgAAAAAAGAAAAERpc2NyZXRlSXRlbVR5cGVJbnN0YW5jZQEARAkBAEQJRAkAAAAY" +
           "AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }

    #region DiscreteItemState<T> Class
    /// <summary>
    /// A typed version of the DiscreteItemType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class DiscreteItemState<T> : DiscreteItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public DiscreteItemState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region TwoStateDiscreteState Class
    #if (!OPCUA_EXCLUDE_TwoStateDiscreteState)
    /// <summary>
    /// Stores an instance of the TwoStateDiscreteType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TwoStateDiscreteState : DiscreteItemState<bool>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TwoStateDiscreteState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.TwoStateDiscreteType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.Boolean, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIECAgAAAAAAHAAAAFR3b1N0YXRlRGlzY3JldGVUeXBlSW5zdGFuY2UBAEUJAQBFCUUJ" +
           "AAAAAQEB/////wIAAAAVYIkKAgAAAAAACgAAAEZhbHNlU3RhdGUBAEYJAC4AREYJAAAAFf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAkAAABUcnVlU3RhdGUBAEcJAC4AREcJAAAAFf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<LocalizedText> FalseState
        {
            get
            {
                return m_falseState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_falseState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_falseState = value;
            }
        }

        /// <remarks />
        public PropertyState<LocalizedText> TrueState
        {
            get
            {
                return m_trueState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_trueState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_trueState = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_falseState != null)
            {
                children.Add(m_falseState);
            }

            if (m_trueState != null)
            {
                children.Add(m_trueState);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.FalseState:
                {
                    if (createOrReplace)
                    {
                        if (FalseState == null)
                        {
                            if (replacement == null)
                            {
                                FalseState = new PropertyState<LocalizedText>(this);
                            }
                            else
                            {
                                FalseState = (PropertyState<LocalizedText>)replacement;
                            }
                        }
                    }

                    instance = FalseState;
                    break;
                }

                case Opc.Ua.BrowseNames.TrueState:
                {
                    if (createOrReplace)
                    {
                        if (TrueState == null)
                        {
                            if (replacement == null)
                            {
                                TrueState = new PropertyState<LocalizedText>(this);
                            }
                            else
                            {
                                TrueState = (PropertyState<LocalizedText>)replacement;
                            }
                        }
                    }

                    instance = TrueState;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<LocalizedText> m_falseState;
        private PropertyState<LocalizedText> m_trueState;
        #endregion
    }
    #endif
    #endregion

    #region MultiStateDiscreteState Class
    #if (!OPCUA_EXCLUDE_MultiStateDiscreteState)
    /// <summary>
    /// Stores an instance of the MultiStateDiscreteType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class MultiStateDiscreteState : DiscreteItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public MultiStateDiscreteState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.MultiStateDiscreteType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.UInteger, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIECAgAAAAAAHgAAAE11bHRpU3RhdGVEaXNjcmV0ZVR5cGVJbnN0YW5jZQEASAkBAEgJ" +
           "SAkAAAAcAQH/////AQAAABdgiQoCAAAAAAALAAAARW51bVN0cmluZ3MBAEkJAC4AREkJAAAAFQEAAAAB" +
           "AAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }

    #region MultiStateDiscreteState<T> Class
    /// <summary>
    /// A typed version of the MultiStateDiscreteType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class MultiStateDiscreteState<T> : MultiStateDiscreteState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public MultiStateDiscreteState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region MultiStateValueDiscreteState Class
    #if (!OPCUA_EXCLUDE_MultiStateValueDiscreteState)
    /// <summary>
    /// Stores an instance of the MultiStateValueDiscreteType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class MultiStateValueDiscreteState : DiscreteItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public MultiStateValueDiscreteState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.MultiStateValueDiscreteType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.Number, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Any;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIECAgAAAAAAIwAAAE11bHRpU3RhdGVWYWx1ZURpc2NyZXRlVHlwZUluc3RhbmNlAQDm" +
           "KwEA5ivmKwAAABoBAf////8CAAAAF2CJCgIAAAAAAAoAAABFbnVtVmFsdWVzAQDpKwAuAETpKwAAAQCq" +
           "HQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAACwAAAFZhbHVlQXNUZXh0AQDFLAAuAETFLAAA" +
           "ABX/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<EnumValueType[]> EnumValues
        {
            get
            {
                return m_enumValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_enumValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_enumValues = value;
            }
        }

        /// <remarks />
        public PropertyState<LocalizedText> ValueAsText
        {
            get
            {
                return m_valueAsText;
            }

            set
            {
                if (!Object.ReferenceEquals(m_valueAsText, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_valueAsText = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_enumValues != null)
            {
                children.Add(m_enumValues);
            }

            if (m_valueAsText != null)
            {
                children.Add(m_valueAsText);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.EnumValues:
                {
                    if (createOrReplace)
                    {
                        if (EnumValues == null)
                        {
                            if (replacement == null)
                            {
                                EnumValues = new PropertyState<EnumValueType[]>(this);
                            }
                            else
                            {
                                EnumValues = (PropertyState<EnumValueType[]>)replacement;
                            }
                        }
                    }

                    instance = EnumValues;
                    break;
                }

                case Opc.Ua.BrowseNames.ValueAsText:
                {
                    if (createOrReplace)
                    {
                        if (ValueAsText == null)
                        {
                            if (replacement == null)
                            {
                                ValueAsText = new PropertyState<LocalizedText>(this);
                            }
                            else
                            {
                                ValueAsText = (PropertyState<LocalizedText>)replacement;
                            }
                        }
                    }

                    instance = ValueAsText;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<EnumValueType[]> m_enumValues;
        private PropertyState<LocalizedText> m_valueAsText;
        #endregion
    }

    #region MultiStateValueDiscreteState<T> Class
    /// <summary>
    /// A typed version of the MultiStateValueDiscreteType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class MultiStateValueDiscreteState<T> : MultiStateValueDiscreteState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public MultiStateValueDiscreteState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region ArrayItemState Class
    #if (!OPCUA_EXCLUDE_ArrayItemState)
    /// <summary>
    /// Stores an instance of the ArrayItemType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ArrayItemState : DataItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ArrayItemState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.ArrayItemType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.BaseDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.OneOrMoreDimensions;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (InstrumentRange != null)
            {
                InstrumentRange.Initialize(context, InstrumentRange_InitializationString);
            }
        }

        #region Initialization String
        private const string InstrumentRange_InitializationString =
           "//////////8VYIkKAgAAAAAADwAAAEluc3RydW1lbnRSYW5nZQEA+C4ALgBE+C4AAAEAdAP/////AQH/" +
           "////AAAAAA==";

        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAFQAAAEFycmF5SXRlbVR5cGVJbnN0YW5jZQEA9S4BAPUu9S4AAAAYAAAA" +
           "AAEB/////wUAAAAVYIkKAgAAAAAADwAAAEluc3RydW1lbnRSYW5nZQEA+C4ALgBE+C4AAAEAdAP/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAHAAAARVVSYW5nZQEA+S4ALgBE+S4AAAEAdAP/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAQAAAARW5naW5lZXJpbmdVbml0cwEA+i4ALgBE+i4AAAEAdwP/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAFAAAAVGl0bGUBAPsuAC4ARPsuAAAAFf////8BAf////8AAAAAFWCJCgIAAAAAAA0A" +
           "AABBeGlzU2NhbGVUeXBlAQD8LgAuAET8LgAAAQAtL/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<Range> InstrumentRange
        {
            get
            {
                return m_instrumentRange;
            }

            set
            {
                if (!Object.ReferenceEquals(m_instrumentRange, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_instrumentRange = value;
            }
        }

        /// <remarks />
        public PropertyState<Range> EURange
        {
            get
            {
                return m_eURange;
            }

            set
            {
                if (!Object.ReferenceEquals(m_eURange, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_eURange = value;
            }
        }

        /// <remarks />
        public PropertyState<EUInformation> EngineeringUnits
        {
            get
            {
                return m_engineeringUnits;
            }

            set
            {
                if (!Object.ReferenceEquals(m_engineeringUnits, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_engineeringUnits = value;
            }
        }

        /// <remarks />
        public PropertyState<LocalizedText> Title
        {
            get
            {
                return m_title;
            }

            set
            {
                if (!Object.ReferenceEquals(m_title, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_title = value;
            }
        }

        /// <remarks />
        public PropertyState<AxisScaleEnumeration> AxisScaleType
        {
            get
            {
                return m_axisScaleType;
            }

            set
            {
                if (!Object.ReferenceEquals(m_axisScaleType, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_axisScaleType = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_instrumentRange != null)
            {
                children.Add(m_instrumentRange);
            }

            if (m_eURange != null)
            {
                children.Add(m_eURange);
            }

            if (m_engineeringUnits != null)
            {
                children.Add(m_engineeringUnits);
            }

            if (m_title != null)
            {
                children.Add(m_title);
            }

            if (m_axisScaleType != null)
            {
                children.Add(m_axisScaleType);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.InstrumentRange:
                {
                    if (createOrReplace)
                    {
                        if (InstrumentRange == null)
                        {
                            if (replacement == null)
                            {
                                InstrumentRange = new PropertyState<Range>(this);
                            }
                            else
                            {
                                InstrumentRange = (PropertyState<Range>)replacement;
                            }
                        }
                    }

                    instance = InstrumentRange;
                    break;
                }

                case Opc.Ua.BrowseNames.EURange:
                {
                    if (createOrReplace)
                    {
                        if (EURange == null)
                        {
                            if (replacement == null)
                            {
                                EURange = new PropertyState<Range>(this);
                            }
                            else
                            {
                                EURange = (PropertyState<Range>)replacement;
                            }
                        }
                    }

                    instance = EURange;
                    break;
                }

                case Opc.Ua.BrowseNames.EngineeringUnits:
                {
                    if (createOrReplace)
                    {
                        if (EngineeringUnits == null)
                        {
                            if (replacement == null)
                            {
                                EngineeringUnits = new PropertyState<EUInformation>(this);
                            }
                            else
                            {
                                EngineeringUnits = (PropertyState<EUInformation>)replacement;
                            }
                        }
                    }

                    instance = EngineeringUnits;
                    break;
                }

                case Opc.Ua.BrowseNames.Title:
                {
                    if (createOrReplace)
                    {
                        if (Title == null)
                        {
                            if (replacement == null)
                            {
                                Title = new PropertyState<LocalizedText>(this);
                            }
                            else
                            {
                                Title = (PropertyState<LocalizedText>)replacement;
                            }
                        }
                    }

                    instance = Title;
                    break;
                }

                case Opc.Ua.BrowseNames.AxisScaleType:
                {
                    if (createOrReplace)
                    {
                        if (AxisScaleType == null)
                        {
                            if (replacement == null)
                            {
                                AxisScaleType = new PropertyState<AxisScaleEnumeration>(this);
                            }
                            else
                            {
                                AxisScaleType = (PropertyState<AxisScaleEnumeration>)replacement;
                            }
                        }
                    }

                    instance = AxisScaleType;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<Range> m_instrumentRange;
        private PropertyState<Range> m_eURange;
        private PropertyState<EUInformation> m_engineeringUnits;
        private PropertyState<LocalizedText> m_title;
        private PropertyState<AxisScaleEnumeration> m_axisScaleType;
        #endregion
    }

    #region ArrayItemState<T> Class
    /// <summary>
    /// A typed version of the ArrayItemType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class ArrayItemState<T> : ArrayItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public ArrayItemState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region YArrayItemState Class
    #if (!OPCUA_EXCLUDE_YArrayItemState)
    /// <summary>
    /// Stores an instance of the YArrayItemType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class YArrayItemState : ArrayItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public YArrayItemState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.YArrayItemType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.BaseDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.TwoDimensions;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8XYIkCAgAAAAAAFgAAAFlBcnJheUl0ZW1UeXBlSW5zdGFuY2UBAP0uAQD9Lv0uAAAAGAEA" +
           "AAABAAAAAAAAAAEB/////wUAAAAVYIkKAgAAAAAABwAAAEVVUmFuZ2UBAAEvAC4ARAEvAAABAHQD////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAAEAAAAEVuZ2luZWVyaW5nVW5pdHMBAAIvAC4ARAIvAAABAHcD////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAABQAAAFRpdGxlAQADLwAuAEQDLwAAABX/////AQH/////AAAAABVg" +
           "iQoCAAAAAAANAAAAQXhpc1NjYWxlVHlwZQEABC8ALgBEBC8AAAEALS//////AQH/////AAAAABVgiQoC" +
           "AAAAAAAPAAAAWEF4aXNEZWZpbml0aW9uAQAFLwAuAEQFLwAAAQAvL/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<AxisInformation> XAxisDefinition
        {
            get
            {
                return m_xAxisDefinition;
            }

            set
            {
                if (!Object.ReferenceEquals(m_xAxisDefinition, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_xAxisDefinition = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_xAxisDefinition != null)
            {
                children.Add(m_xAxisDefinition);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.XAxisDefinition:
                {
                    if (createOrReplace)
                    {
                        if (XAxisDefinition == null)
                        {
                            if (replacement == null)
                            {
                                XAxisDefinition = new PropertyState<AxisInformation>(this);
                            }
                            else
                            {
                                XAxisDefinition = (PropertyState<AxisInformation>)replacement;
                            }
                        }
                    }

                    instance = XAxisDefinition;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<AxisInformation> m_xAxisDefinition;
        #endregion
    }

    #region YArrayItemState<T> Class
    /// <summary>
    /// A typed version of the YArrayItemType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class YArrayItemState<T> : YArrayItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public YArrayItemState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region XYArrayItemState Class
    #if (!OPCUA_EXCLUDE_XYArrayItemState)
    /// <summary>
    /// Stores an instance of the XYArrayItemType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class XYArrayItemState : ArrayItemState<XVType[]>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public XYArrayItemState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.XYArrayItemType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.XVType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.TwoDimensions;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8XYIkCAgAAAAAAFwAAAFhZQXJyYXlJdGVtVHlwZUluc3RhbmNlAQAGLwEABi8GLwAAAQAw" +
           "LwEAAAABAAAAAAAAAAEB/////wUAAAAVYIkKAgAAAAAABwAAAEVVUmFuZ2UBAAovAC4ARAovAAABAHQD" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAEVuZ2luZWVyaW5nVW5pdHMBAAsvAC4ARAsvAAABAHcD" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAABQAAAFRpdGxlAQAMLwAuAEQMLwAAABX/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAANAAAAQXhpc1NjYWxlVHlwZQEADS8ALgBEDS8AAAEALS//////AQH/////AAAAABVg" +
           "iQoCAAAAAAAPAAAAWEF4aXNEZWZpbml0aW9uAQAOLwAuAEQOLwAAAQAvL/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<AxisInformation> XAxisDefinition
        {
            get
            {
                return m_xAxisDefinition;
            }

            set
            {
                if (!Object.ReferenceEquals(m_xAxisDefinition, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_xAxisDefinition = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_xAxisDefinition != null)
            {
                children.Add(m_xAxisDefinition);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.XAxisDefinition:
                {
                    if (createOrReplace)
                    {
                        if (XAxisDefinition == null)
                        {
                            if (replacement == null)
                            {
                                XAxisDefinition = new PropertyState<AxisInformation>(this);
                            }
                            else
                            {
                                XAxisDefinition = (PropertyState<AxisInformation>)replacement;
                            }
                        }
                    }

                    instance = XAxisDefinition;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<AxisInformation> m_xAxisDefinition;
        #endregion
    }
    #endif
    #endregion

    #region ImageItemState Class
    #if (!OPCUA_EXCLUDE_ImageItemState)
    /// <summary>
    /// Stores an instance of the ImageItemType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ImageItemState : ArrayItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ImageItemState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.ImageItemType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.BaseDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return 3;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8XYIkCAgAAAAAAFQAAAEltYWdlSXRlbVR5cGVJbnN0YW5jZQEADy8BAA8vDy8AAAAYAgAA" +
           "AAIAAAAAAAAAAAAAAAEB/////wYAAAAVYIkKAgAAAAAABwAAAEVVUmFuZ2UBABMvAC4ARBMvAAABAHQD" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAEVuZ2luZWVyaW5nVW5pdHMBABQvAC4ARBQvAAABAHcD" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAABQAAAFRpdGxlAQAVLwAuAEQVLwAAABX/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAANAAAAQXhpc1NjYWxlVHlwZQEAFi8ALgBEFi8AAAEALS//////AQH/////AAAAABVg" +
           "iQoCAAAAAAAPAAAAWEF4aXNEZWZpbml0aW9uAQAXLwAuAEQXLwAAAQAvL/////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAA8AAABZQXhpc0RlZmluaXRpb24BABgvAC4ARBgvAAABAC8v/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<AxisInformation> XAxisDefinition
        {
            get
            {
                return m_xAxisDefinition;
            }

            set
            {
                if (!Object.ReferenceEquals(m_xAxisDefinition, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_xAxisDefinition = value;
            }
        }

        /// <remarks />
        public PropertyState<AxisInformation> YAxisDefinition
        {
            get
            {
                return m_yAxisDefinition;
            }

            set
            {
                if (!Object.ReferenceEquals(m_yAxisDefinition, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_yAxisDefinition = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_xAxisDefinition != null)
            {
                children.Add(m_xAxisDefinition);
            }

            if (m_yAxisDefinition != null)
            {
                children.Add(m_yAxisDefinition);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.XAxisDefinition:
                {
                    if (createOrReplace)
                    {
                        if (XAxisDefinition == null)
                        {
                            if (replacement == null)
                            {
                                XAxisDefinition = new PropertyState<AxisInformation>(this);
                            }
                            else
                            {
                                XAxisDefinition = (PropertyState<AxisInformation>)replacement;
                            }
                        }
                    }

                    instance = XAxisDefinition;
                    break;
                }

                case Opc.Ua.BrowseNames.YAxisDefinition:
                {
                    if (createOrReplace)
                    {
                        if (YAxisDefinition == null)
                        {
                            if (replacement == null)
                            {
                                YAxisDefinition = new PropertyState<AxisInformation>(this);
                            }
                            else
                            {
                                YAxisDefinition = (PropertyState<AxisInformation>)replacement;
                            }
                        }
                    }

                    instance = YAxisDefinition;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<AxisInformation> m_xAxisDefinition;
        private PropertyState<AxisInformation> m_yAxisDefinition;
        #endregion
    }

    #region ImageItemState<T> Class
    /// <summary>
    /// A typed version of the ImageItemType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class ImageItemState<T> : ImageItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public ImageItemState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region CubeItemState Class
    #if (!OPCUA_EXCLUDE_CubeItemState)
    /// <summary>
    /// Stores an instance of the CubeItemType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class CubeItemState : ArrayItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public CubeItemState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.CubeItemType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.BaseDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return 4;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8XYIkCAgAAAAAAFAAAAEN1YmVJdGVtVHlwZUluc3RhbmNlAQAZLwEAGS8ZLwAAABgDAAAA" +
           "AwAAAAAAAAAAAAAAAAAAAAEB/////wcAAAAVYIkKAgAAAAAABwAAAEVVUmFuZ2UBAB0vAC4ARB0vAAAB" +
           "AHQD/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAEVuZ2luZWVyaW5nVW5pdHMBAB4vAC4ARB4vAAAB" +
           "AHcD/////wEB/////wAAAAAVYIkKAgAAAAAABQAAAFRpdGxlAQAfLwAuAEQfLwAAABX/////AQH/////" +
           "AAAAABVgiQoCAAAAAAANAAAAQXhpc1NjYWxlVHlwZQEAIC8ALgBEIC8AAAEALS//////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAPAAAAWEF4aXNEZWZpbml0aW9uAQAhLwAuAEQhLwAAAQAvL/////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAA8AAABZQXhpc0RlZmluaXRpb24BACIvAC4ARCIvAAABAC8v/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAADwAAAFpBeGlzRGVmaW5pdGlvbgEAIy8ALgBEIy8AAAEALy//////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<AxisInformation> XAxisDefinition
        {
            get
            {
                return m_xAxisDefinition;
            }

            set
            {
                if (!Object.ReferenceEquals(m_xAxisDefinition, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_xAxisDefinition = value;
            }
        }

        /// <remarks />
        public PropertyState<AxisInformation> YAxisDefinition
        {
            get
            {
                return m_yAxisDefinition;
            }

            set
            {
                if (!Object.ReferenceEquals(m_yAxisDefinition, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_yAxisDefinition = value;
            }
        }

        /// <remarks />
        public PropertyState<AxisInformation> ZAxisDefinition
        {
            get
            {
                return m_zAxisDefinition;
            }

            set
            {
                if (!Object.ReferenceEquals(m_zAxisDefinition, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_zAxisDefinition = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_xAxisDefinition != null)
            {
                children.Add(m_xAxisDefinition);
            }

            if (m_yAxisDefinition != null)
            {
                children.Add(m_yAxisDefinition);
            }

            if (m_zAxisDefinition != null)
            {
                children.Add(m_zAxisDefinition);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.XAxisDefinition:
                {
                    if (createOrReplace)
                    {
                        if (XAxisDefinition == null)
                        {
                            if (replacement == null)
                            {
                                XAxisDefinition = new PropertyState<AxisInformation>(this);
                            }
                            else
                            {
                                XAxisDefinition = (PropertyState<AxisInformation>)replacement;
                            }
                        }
                    }

                    instance = XAxisDefinition;
                    break;
                }

                case Opc.Ua.BrowseNames.YAxisDefinition:
                {
                    if (createOrReplace)
                    {
                        if (YAxisDefinition == null)
                        {
                            if (replacement == null)
                            {
                                YAxisDefinition = new PropertyState<AxisInformation>(this);
                            }
                            else
                            {
                                YAxisDefinition = (PropertyState<AxisInformation>)replacement;
                            }
                        }
                    }

                    instance = YAxisDefinition;
                    break;
                }

                case Opc.Ua.BrowseNames.ZAxisDefinition:
                {
                    if (createOrReplace)
                    {
                        if (ZAxisDefinition == null)
                        {
                            if (replacement == null)
                            {
                                ZAxisDefinition = new PropertyState<AxisInformation>(this);
                            }
                            else
                            {
                                ZAxisDefinition = (PropertyState<AxisInformation>)replacement;
                            }
                        }
                    }

                    instance = ZAxisDefinition;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<AxisInformation> m_xAxisDefinition;
        private PropertyState<AxisInformation> m_yAxisDefinition;
        private PropertyState<AxisInformation> m_zAxisDefinition;
        #endregion
    }

    #region CubeItemState<T> Class
    /// <summary>
    /// A typed version of the CubeItemType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class CubeItemState<T> : CubeItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public CubeItemState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region NDimensionArrayItemState Class
    #if (!OPCUA_EXCLUDE_NDimensionArrayItemState)
    /// <summary>
    /// Stores an instance of the NDimensionArrayItemType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class NDimensionArrayItemState : ArrayItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public NDimensionArrayItemState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.NDimensionArrayItemType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.BaseDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.OneOrMoreDimensions;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAHwAAAE5EaW1lbnNpb25BcnJheUl0ZW1UeXBlSW5zdGFuY2UBACQvAQAk" +
           "LyQvAAAAGAAAAAABAf////8FAAAAFWCJCgIAAAAAAAcAAABFVVJhbmdlAQAoLwAuAEQoLwAAAQB0A///" +
           "//8BAf////8AAAAAFWCJCgIAAAAAABAAAABFbmdpbmVlcmluZ1VuaXRzAQApLwAuAEQpLwAAAQB3A///" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAUAAABUaXRsZQEAKi8ALgBEKi8AAAAV/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAADQAAAEF4aXNTY2FsZVR5cGUBACsvAC4ARCsvAAABAC0v/////wEB/////wAAAAAXYIkK" +
           "AgAAAAAADgAAAEF4aXNEZWZpbml0aW9uAQAsLwAuAEQsLwAAAQAvLwEAAAABAAAAAAAAAAEB/////wAA" +
           "AAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<AxisInformation[]> AxisDefinition
        {
            get
            {
                return m_axisDefinition;
            }

            set
            {
                if (!Object.ReferenceEquals(m_axisDefinition, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_axisDefinition = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_axisDefinition != null)
            {
                children.Add(m_axisDefinition);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.AxisDefinition:
                {
                    if (createOrReplace)
                    {
                        if (AxisDefinition == null)
                        {
                            if (replacement == null)
                            {
                                AxisDefinition = new PropertyState<AxisInformation[]>(this);
                            }
                            else
                            {
                                AxisDefinition = (PropertyState<AxisInformation[]>)replacement;
                            }
                        }
                    }

                    instance = AxisDefinition;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<AxisInformation[]> m_axisDefinition;
        #endregion
    }

    #region NDimensionArrayItemState<T> Class
    /// <summary>
    /// A typed version of the NDimensionArrayItemType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class NDimensionArrayItemState<T> : NDimensionArrayItemState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public NDimensionArrayItemState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region TwoStateVariableState Class
    #if (!OPCUA_EXCLUDE_TwoStateVariableState)
    /// <summary>
    /// Stores an instance of the TwoStateVariableType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TwoStateVariableState : StateVariableState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TwoStateVariableState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.TwoStateVariableType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.LocalizedText, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (TransitionTime != null)
            {
                TransitionTime.Initialize(context, TransitionTime_InitializationString);
            }

            if (EffectiveTransitionTime != null)
            {
                EffectiveTransitionTime.Initialize(context, EffectiveTransitionTime_InitializationString);
            }

            if (TrueState != null)
            {
                TrueState.Initialize(context, TrueState_InitializationString);
            }

            if (FalseState != null)
            {
                FalseState.Initialize(context, FalseState_InitializationString);
            }
        }

        #region Initialization String
        private const string TransitionTime_InitializationString =
           "//////////8VYIkKAgAAAAAADgAAAFRyYW5zaXRpb25UaW1lAQAoIwAuAEQoIwAAAQAmAf////8BAf//" +
           "//8AAAAA";

        private const string EffectiveTransitionTime_InitializationString =
           "//////////8VYIkKAgAAAAAAFwAAAEVmZmVjdGl2ZVRyYW5zaXRpb25UaW1lAQApIwAuAEQpIwAAAQAm" +
           "Af////8BAf////8AAAAA";

        private const string TrueState_InitializationString =
           "//////////8VYIkKAgAAAAAACQAAAFRydWVTdGF0ZQEAZisALgBEZisAAAAV/////wEB/////wAAAAA=";

        private const string FalseState_InitializationString =
           "//////////8VYIkKAgAAAAAACgAAAEZhbHNlU3RhdGUBAGcrAC4ARGcrAAAAFf////8BAf////8AAAAA";

        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAHAAAAFR3b1N0YXRlVmFyaWFibGVUeXBlSW5zdGFuY2UBACMjAQAjIyMj" +
           "AAAAFf////8BAf////8FAAAAFWCJCgIAAAAAAAIAAABJZAEAJCMALgBEJCMAAAAB/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAADgAAAFRyYW5zaXRpb25UaW1lAQAoIwAuAEQoIwAAAQAmAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAABcAAABFZmZlY3RpdmVUcmFuc2l0aW9uVGltZQEAKSMALgBEKSMAAAEAJgH/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAJAAAAVHJ1ZVN0YXRlAQBmKwAuAERmKwAAABX/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAKAAAARmFsc2VTdGF0ZQEAZysALgBEZysAAAAV/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public new PropertyState<bool> Id
        {
            get { return (PropertyState<bool>)base.Id; }
            set { base.Id = value; }
        }

        /// <remarks />
        public PropertyState<DateTime> TransitionTime
        {
            get
            {
                return m_transitionTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transitionTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transitionTime = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> EffectiveTransitionTime
        {
            get
            {
                return m_effectiveTransitionTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_effectiveTransitionTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_effectiveTransitionTime = value;
            }
        }

        /// <remarks />
        public PropertyState<LocalizedText> TrueState
        {
            get
            {
                return m_trueState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_trueState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_trueState = value;
            }
        }

        /// <remarks />
        public PropertyState<LocalizedText> FalseState
        {
            get
            {
                return m_falseState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_falseState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_falseState = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_transitionTime != null)
            {
                children.Add(m_transitionTime);
            }

            if (m_effectiveTransitionTime != null)
            {
                children.Add(m_effectiveTransitionTime);
            }

            if (m_trueState != null)
            {
                children.Add(m_trueState);
            }

            if (m_falseState != null)
            {
                children.Add(m_falseState);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Id:
                {
                    if (createOrReplace)
                    {
                        if (Id == null)
                        {
                            if (replacement == null)
                            {
                                Id = new PropertyState<bool>(this);
                            }
                            else
                            {
                                Id = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = Id;
                    break;
                }

                case Opc.Ua.BrowseNames.TransitionTime:
                {
                    if (createOrReplace)
                    {
                        if (TransitionTime == null)
                        {
                            if (replacement == null)
                            {
                                TransitionTime = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                TransitionTime = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = TransitionTime;
                    break;
                }

                case Opc.Ua.BrowseNames.EffectiveTransitionTime:
                {
                    if (createOrReplace)
                    {
                        if (EffectiveTransitionTime == null)
                        {
                            if (replacement == null)
                            {
                                EffectiveTransitionTime = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                EffectiveTransitionTime = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = EffectiveTransitionTime;
                    break;
                }

                case Opc.Ua.BrowseNames.TrueState:
                {
                    if (createOrReplace)
                    {
                        if (TrueState == null)
                        {
                            if (replacement == null)
                            {
                                TrueState = new PropertyState<LocalizedText>(this);
                            }
                            else
                            {
                                TrueState = (PropertyState<LocalizedText>)replacement;
                            }
                        }
                    }

                    instance = TrueState;
                    break;
                }

                case Opc.Ua.BrowseNames.FalseState:
                {
                    if (createOrReplace)
                    {
                        if (FalseState == null)
                        {
                            if (replacement == null)
                            {
                                FalseState = new PropertyState<LocalizedText>(this);
                            }
                            else
                            {
                                FalseState = (PropertyState<LocalizedText>)replacement;
                            }
                        }
                    }

                    instance = FalseState;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<DateTime> m_transitionTime;
        private PropertyState<DateTime> m_effectiveTransitionTime;
        private PropertyState<LocalizedText> m_trueState;
        private PropertyState<LocalizedText> m_falseState;
        #endregion
    }
    #endif
    #endregion

    #region ConditionVariableState Class
    #if (!OPCUA_EXCLUDE_ConditionVariableState)
    /// <summary>
    /// Stores an instance of the ConditionVariableType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ConditionVariableState : BaseDataVariableState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ConditionVariableState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.ConditionVariableType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.BaseDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIECAgAAAAAAHQAAAENvbmRpdGlvblZhcmlhYmxlVHlwZUluc3RhbmNlAQAqIwEAKiMq" +
           "IwAAABgBAf////8BAAAAFWCJCgIAAAAAAA8AAABTb3VyY2VUaW1lc3RhbXABACsjAC4ARCsjAAABACYB" +
           "/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<DateTime> SourceTimestamp
        {
            get
            {
                return m_sourceTimestamp;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sourceTimestamp, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sourceTimestamp = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_sourceTimestamp != null)
            {
                children.Add(m_sourceTimestamp);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SourceTimestamp:
                {
                    if (createOrReplace)
                    {
                        if (SourceTimestamp == null)
                        {
                            if (replacement == null)
                            {
                                SourceTimestamp = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                SourceTimestamp = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = SourceTimestamp;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<DateTime> m_sourceTimestamp;
        #endregion
    }

    #region ConditionVariableState<T> Class
    /// <summary>
    /// A typed version of the ConditionVariableType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class ConditionVariableState<T> : ConditionVariableState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public ConditionVariableState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region ConditionState Class
    #if (!OPCUA_EXCLUDE_ConditionState)
    /// <summary>
    /// Stores an instance of the ConditionType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ConditionState : BaseEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ConditionState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ConditionType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (ConditionSubClassId != null)
            {
                ConditionSubClassId.Initialize(context, ConditionSubClassId_InitializationString);
            }

            if (ConditionSubClassName != null)
            {
                ConditionSubClassName.Initialize(context, ConditionSubClassName_InitializationString);
            }
        }

        #region Initialization String
        private const string ConditionSubClassId_InitializationString =
           "//////////8XYIkKAgAAAAAAEwAAAENvbmRpdGlvblN1YkNsYXNzSWQBAOs/AC4AROs/AAAAEQEAAAAB" +
           "AAAAAAAAAAEB/////wAAAAA=";

        private const string ConditionSubClassName_InitializationString =
           "//////////8XYIkKAgAAAAAAFQAAAENvbmRpdGlvblN1YkNsYXNzTmFtZQEA7D8ALgBE7D8AAAAVAQAA" +
           "AAEAAAAAAAAAAQH/////AAAAAA==";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFQAAAENvbmRpdGlvblR5cGVJbnN0YW5jZQEA3goBAN4K3goAAP////8X" +
           "AAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQAZDwAuAEQZDwAAAA//////AQH/////AAAAABVgiQoCAAAA" +
           "AAAJAAAARXZlbnRUeXBlAQAaDwAuAEQaDwAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAAU291" +
           "cmNlTm9kZQEAGw8ALgBEGw8AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFNvdXJjZU5hbWUB" +
           "ABwPAC4ARBwPAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQAdDwAuAEQdDwAAAQAm" +
           "Af////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEAHg8ALgBEHg8AAAEAJgH/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAIA8ALgBEIA8AAAAV/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACAAAAFNldmVyaXR5AQAhDwAuAEQhDwAAAAX/////AQH/////AAAAABVgiQoCAAAAAAAQ" +
           "AAAAQ29uZGl0aW9uQ2xhc3NJZAEAaCsALgBEaCsAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAAEgAA" +
           "AENvbmRpdGlvbkNsYXNzTmFtZQEAaSsALgBEaSsAAAAV/////wEB/////wAAAAAXYIkKAgAAAAAAEwAA" +
           "AENvbmRpdGlvblN1YkNsYXNzSWQBAOs/AC4AROs/AAAAEQEAAAABAAAAAAAAAAEB/////wAAAAAXYIkK" +
           "AgAAAAAAFQAAAENvbmRpdGlvblN1YkNsYXNzTmFtZQEA7D8ALgBE7D8AAAAVAQAAAAEAAAAAAAAAAQH/" +
           "////AAAAABVgiQoCAAAAAAANAAAAQ29uZGl0aW9uTmFtZQEAMSMALgBEMSMAAAAM/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACAAAAEJyYW5jaElkAQAyIwAuAEQyIwAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAGAAAAUmV0YWluAQAiDwAuAEQiDwAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAARW5hYmxl" +
           "ZFN0YXRlAQAzIwAvAQAjIzMjAAAAFf////8BAf////8GAAAAFWCJCgIAAAAAAAIAAABJZAEANCMALgBE" +
           "NCMAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAAFAAAAEVmZmVjdGl2ZURpc3BsYXlOYW1lAQA3IwAu" +
           "AEQ3IwAAABX/////AQH/////AAAAABVgiQoCAAAAAAAOAAAAVHJhbnNpdGlvblRpbWUBADgjAC4ARDgj" +
           "AAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAAFwAAAEVmZmVjdGl2ZVRyYW5zaXRpb25UaW1lAQA5" +
           "IwAuAEQ5IwAAAQAmAf////8BAf////8AAAAAFWCpCgIAAAAAAAkAAABUcnVlU3RhdGUBADojAC4ARDoj" +
           "AAAVAwIAAABlbgcAAABFbmFibGVkABX/////AQH/////AAAAABVgqQoCAAAAAAAKAAAARmFsc2VTdGF0" +
           "ZQEAOyMALgBEOyMAABUDAgAAAGVuCAAAAERpc2FibGVkABX/////AQH/////AAAAABVgiQoCAAAAAAAH" +
           "AAAAUXVhbGl0eQEAPCMALwEAKiM8IwAAABP/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291cmNl" +
           "VGltZXN0YW1wAQA9IwAuAEQ9IwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABMYXN0U2V2" +
           "ZXJpdHkBAD4jAC8BACojPiMAAAAF/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRpbWVz" +
           "dGFtcAEAPyMALgBEPyMAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAAQ29tbWVudAEAQCMA" +
           "LwEAKiNAIwAAABX/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291cmNlVGltZXN0YW1wAQBBIwAu" +
           "AERBIwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGllbnRVc2VySWQBAEIjAC4AREIj" +
           "AAAADP////8BAf////8AAAAABGGCCgQAAAAAAAcAAABEaXNhYmxlAQBEIwAvAQBEI0QjAAABAQEAAAAB" +
           "APkLAAEA8woAAAAABGGCCgQAAAAAAAYAAABFbmFibGUBAEMjAC8BAEMjQyMAAAEBAQAAAAEA+QsAAQDz" +
           "CgAAAAAEYYIKBAAAAAAACgAAAEFkZENvbW1lbnQBAEUjAC8BAEUjRSMAAAEBAQAAAAEA+QsAAQANCwEA" +
           "AAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBGIwAuAERGIwAAlgIAAAABACoBAUYAAAAHAAAA" +
           "RXZlbnRJZAAP/////wAAAAADAAAAACgAAABUaGUgaWRlbnRpZmllciBmb3IgdGhlIGV2ZW50IHRvIGNv" +
           "bW1lbnQuAQAqAQFCAAAABwAAAENvbW1lbnQAFf////8AAAAAAwAAAAAkAAAAVGhlIGNvbW1lbnQgdG8g" +
           "YWRkIHRvIHRoZSBjb25kaXRpb24uAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> ConditionClassId
        {
            get
            {
                return m_conditionClassId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_conditionClassId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_conditionClassId = value;
            }
        }

        /// <remarks />
        public PropertyState<LocalizedText> ConditionClassName
        {
            get
            {
                return m_conditionClassName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_conditionClassName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_conditionClassName = value;
            }
        }

        /// <remarks />
        public PropertyState<NodeId[]> ConditionSubClassId
        {
            get
            {
                return m_conditionSubClassId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_conditionSubClassId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_conditionSubClassId = value;
            }
        }

        /// <remarks />
        public PropertyState<LocalizedText[]> ConditionSubClassName
        {
            get
            {
                return m_conditionSubClassName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_conditionSubClassName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_conditionSubClassName = value;
            }
        }

        /// <remarks />
        public PropertyState<string> ConditionName
        {
            get
            {
                return m_conditionName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_conditionName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_conditionName = value;
            }
        }

        /// <remarks />
        public PropertyState<NodeId> BranchId
        {
            get
            {
                return m_branchId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_branchId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_branchId = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> Retain
        {
            get
            {
                return m_retain;
            }

            set
            {
                if (!Object.ReferenceEquals(m_retain, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_retain = value;
            }
        }

        /// <remarks />
        public TwoStateVariableState EnabledState
        {
            get
            {
                return m_enabledState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_enabledState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_enabledState = value;
            }
        }

        /// <remarks />
        public ConditionVariableState<StatusCode> Quality
        {
            get
            {
                return m_quality;
            }

            set
            {
                if (!Object.ReferenceEquals(m_quality, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_quality = value;
            }
        }

        /// <remarks />
        public ConditionVariableState<ushort> LastSeverity
        {
            get
            {
                return m_lastSeverity;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastSeverity, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastSeverity = value;
            }
        }

        /// <remarks />
        public ConditionVariableState<LocalizedText> Comment
        {
            get
            {
                return m_comment;
            }

            set
            {
                if (!Object.ReferenceEquals(m_comment, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_comment = value;
            }
        }

        /// <remarks />
        public PropertyState<string> ClientUserId
        {
            get
            {
                return m_clientUserId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_clientUserId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_clientUserId = value;
            }
        }

        /// <remarks />
        public MethodState Disable
        {
            get
            {
                return m_disableMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_disableMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_disableMethod = value;
            }
        }

        /// <remarks />
        public MethodState Enable
        {
            get
            {
                return m_enableMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_enableMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_enableMethod = value;
            }
        }

        /// <remarks />
        public AddCommentMethodState AddComment
        {
            get
            {
                return m_addCommentMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addCommentMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addCommentMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_conditionClassId != null)
            {
                children.Add(m_conditionClassId);
            }

            if (m_conditionClassName != null)
            {
                children.Add(m_conditionClassName);
            }

            if (m_conditionSubClassId != null)
            {
                children.Add(m_conditionSubClassId);
            }

            if (m_conditionSubClassName != null)
            {
                children.Add(m_conditionSubClassName);
            }

            if (m_conditionName != null)
            {
                children.Add(m_conditionName);
            }

            if (m_branchId != null)
            {
                children.Add(m_branchId);
            }

            if (m_retain != null)
            {
                children.Add(m_retain);
            }

            if (m_enabledState != null)
            {
                children.Add(m_enabledState);
            }

            if (m_quality != null)
            {
                children.Add(m_quality);
            }

            if (m_lastSeverity != null)
            {
                children.Add(m_lastSeverity);
            }

            if (m_comment != null)
            {
                children.Add(m_comment);
            }

            if (m_clientUserId != null)
            {
                children.Add(m_clientUserId);
            }

            if (m_disableMethod != null)
            {
                children.Add(m_disableMethod);
            }

            if (m_enableMethod != null)
            {
                children.Add(m_enableMethod);
            }

            if (m_addCommentMethod != null)
            {
                children.Add(m_addCommentMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ConditionClassId:
                {
                    if (createOrReplace)
                    {
                        if (ConditionClassId == null)
                        {
                            if (replacement == null)
                            {
                                ConditionClassId = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                ConditionClassId = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = ConditionClassId;
                    break;
                }

                case Opc.Ua.BrowseNames.ConditionClassName:
                {
                    if (createOrReplace)
                    {
                        if (ConditionClassName == null)
                        {
                            if (replacement == null)
                            {
                                ConditionClassName = new PropertyState<LocalizedText>(this);
                            }
                            else
                            {
                                ConditionClassName = (PropertyState<LocalizedText>)replacement;
                            }
                        }
                    }

                    instance = ConditionClassName;
                    break;
                }

                case Opc.Ua.BrowseNames.ConditionSubClassId:
                {
                    if (createOrReplace)
                    {
                        if (ConditionSubClassId == null)
                        {
                            if (replacement == null)
                            {
                                ConditionSubClassId = new PropertyState<NodeId[]>(this);
                            }
                            else
                            {
                                ConditionSubClassId = (PropertyState<NodeId[]>)replacement;
                            }
                        }
                    }

                    instance = ConditionSubClassId;
                    break;
                }

                case Opc.Ua.BrowseNames.ConditionSubClassName:
                {
                    if (createOrReplace)
                    {
                        if (ConditionSubClassName == null)
                        {
                            if (replacement == null)
                            {
                                ConditionSubClassName = new PropertyState<LocalizedText[]>(this);
                            }
                            else
                            {
                                ConditionSubClassName = (PropertyState<LocalizedText[]>)replacement;
                            }
                        }
                    }

                    instance = ConditionSubClassName;
                    break;
                }

                case Opc.Ua.BrowseNames.ConditionName:
                {
                    if (createOrReplace)
                    {
                        if (ConditionName == null)
                        {
                            if (replacement == null)
                            {
                                ConditionName = new PropertyState<string>(this);
                            }
                            else
                            {
                                ConditionName = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ConditionName;
                    break;
                }

                case Opc.Ua.BrowseNames.BranchId:
                {
                    if (createOrReplace)
                    {
                        if (BranchId == null)
                        {
                            if (replacement == null)
                            {
                                BranchId = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                BranchId = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = BranchId;
                    break;
                }

                case Opc.Ua.BrowseNames.Retain:
                {
                    if (createOrReplace)
                    {
                        if (Retain == null)
                        {
                            if (replacement == null)
                            {
                                Retain = new PropertyState<bool>(this);
                            }
                            else
                            {
                                Retain = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = Retain;
                    break;
                }

                case Opc.Ua.BrowseNames.EnabledState:
                {
                    if (createOrReplace)
                    {
                        if (EnabledState == null)
                        {
                            if (replacement == null)
                            {
                                EnabledState = new TwoStateVariableState(this);
                            }
                            else
                            {
                                EnabledState = (TwoStateVariableState)replacement;
                            }
                        }
                    }

                    instance = EnabledState;
                    break;
                }

                case Opc.Ua.BrowseNames.Quality:
                {
                    if (createOrReplace)
                    {
                        if (Quality == null)
                        {
                            if (replacement == null)
                            {
                                Quality = new ConditionVariableState<StatusCode>(this);
                            }
                            else
                            {
                                Quality = (ConditionVariableState<StatusCode>)replacement;
                            }
                        }
                    }

                    instance = Quality;
                    break;
                }

                case Opc.Ua.BrowseNames.LastSeverity:
                {
                    if (createOrReplace)
                    {
                        if (LastSeverity == null)
                        {
                            if (replacement == null)
                            {
                                LastSeverity = new ConditionVariableState<ushort>(this);
                            }
                            else
                            {
                                LastSeverity = (ConditionVariableState<ushort>)replacement;
                            }
                        }
                    }

                    instance = LastSeverity;
                    break;
                }

                case Opc.Ua.BrowseNames.Comment:
                {
                    if (createOrReplace)
                    {
                        if (Comment == null)
                        {
                            if (replacement == null)
                            {
                                Comment = new ConditionVariableState<LocalizedText>(this);
                            }
                            else
                            {
                                Comment = (ConditionVariableState<LocalizedText>)replacement;
                            }
                        }
                    }

                    instance = Comment;
                    break;
                }

                case Opc.Ua.BrowseNames.ClientUserId:
                {
                    if (createOrReplace)
                    {
                        if (ClientUserId == null)
                        {
                            if (replacement == null)
                            {
                                ClientUserId = new PropertyState<string>(this);
                            }
                            else
                            {
                                ClientUserId = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ClientUserId;
                    break;
                }

                case Opc.Ua.BrowseNames.Disable:
                {
                    if (createOrReplace)
                    {
                        if (Disable == null)
                        {
                            if (replacement == null)
                            {
                                Disable = new MethodState(this);
                            }
                            else
                            {
                                Disable = (MethodState)replacement;
                            }
                        }
                    }

                    instance = Disable;
                    break;
                }

                case Opc.Ua.BrowseNames.Enable:
                {
                    if (createOrReplace)
                    {
                        if (Enable == null)
                        {
                            if (replacement == null)
                            {
                                Enable = new MethodState(this);
                            }
                            else
                            {
                                Enable = (MethodState)replacement;
                            }
                        }
                    }

                    instance = Enable;
                    break;
                }

                case Opc.Ua.BrowseNames.AddComment:
                {
                    if (createOrReplace)
                    {
                        if (AddComment == null)
                        {
                            if (replacement == null)
                            {
                                AddComment = new AddCommentMethodState(this);
                            }
                            else
                            {
                                AddComment = (AddCommentMethodState)replacement;
                            }
                        }
                    }

                    instance = AddComment;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_conditionClassId;
        private PropertyState<LocalizedText> m_conditionClassName;
        private PropertyState<NodeId[]> m_conditionSubClassId;
        private PropertyState<LocalizedText[]> m_conditionSubClassName;
        private PropertyState<string> m_conditionName;
        private PropertyState<NodeId> m_branchId;
        private PropertyState<bool> m_retain;
        private TwoStateVariableState m_enabledState;
        private ConditionVariableState<StatusCode> m_quality;
        private ConditionVariableState<ushort> m_lastSeverity;
        private ConditionVariableState<LocalizedText> m_comment;
        private PropertyState<string> m_clientUserId;
        private MethodState m_disableMethod;
        private MethodState m_enableMethod;
        private AddCommentMethodState m_addCommentMethod;
        #endregion
    }
    #endif
    #endregion

    #region ConditionRefresh2MethodState Class
    #if (!OPCUA_EXCLUDE_ConditionRefresh2MethodState)
    /// <summary>
    /// Stores an instance of the ConditionRefresh2MethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ConditionRefresh2MethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ConditionRefresh2MethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new ConditionRefresh2MethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGwAAAENvbmRpdGlvblJlZnJlc2gyTWV0aG9kVHlwZQEAcjIALwEAcjJy" +
           "MgAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAHMyAC4ARHMyAACWAgAAAAEA" +
           "KgEBVgAAAA4AAABTdWJzY3JpcHRpb25JZAEAIAH/////AAAAAAMAAAAALwAAAFRoZSBpZGVudGlmaWVy" +
           "IGZvciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2guAQAqAQFZAAAADwAAAE1vbml0b3JlZEl0ZW1J" +
           "ZAEAIAH/////AAAAAAMAAAAAMQAAAFRoZSBpZGVudGlmaWVyIGZvciB0aGUgbW9uaXRvcmVkIGl0ZW0g" +
           "dG8gcmVmcmVzaC4BACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public ConditionRefresh2MethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            uint subscriptionId = (uint)_inputArguments[0];
            uint monitoredItemId = (uint)_inputArguments[1];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    subscriptionId,
                    monitoredItemId);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult ConditionRefresh2MethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        uint subscriptionId,
        uint monitoredItemId);
    #endif
    #endregion

    #region ConditionRefreshMethodState Class
    #if (!OPCUA_EXCLUDE_ConditionRefreshMethodState)
    /// <summary>
    /// Stores an instance of the ConditionRefreshMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ConditionRefreshMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ConditionRefreshMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new ConditionRefreshMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGgAAAENvbmRpdGlvblJlZnJlc2hNZXRob2RUeXBlAQAvIwAvAQAvIy8j" +
           "AAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAMCMALgBEMCMAAJYBAAAAAQAq" +
           "AQFWAAAADgAAAFN1YnNjcmlwdGlvbklkAQAgAf////8AAAAAAwAAAAAvAAAAVGhlIGlkZW50aWZpZXIg" +
           "Zm9yIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaC4BACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public ConditionRefreshMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            uint subscriptionId = (uint)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    subscriptionId);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult ConditionRefreshMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        uint subscriptionId);
    #endif
    #endregion

    #region AddCommentMethodState Class
    #if (!OPCUA_EXCLUDE_AddCommentMethodState)
    /// <summary>
    /// Stores an instance of the AddCommentMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AddCommentMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AddCommentMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new AddCommentMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAFAAAAEFkZENvbW1lbnRNZXRob2RUeXBlAQAXDwAvAQAXDxcPAAABAf//" +
           "//8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAGA8ALgBEGA8AAJYCAAAAAQAqAQFGAAAA" +
           "BwAAAEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0" +
           "byBjb21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50" +
           "IHRvIGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public AddCommentMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            byte[] eventId = (byte[])_inputArguments[0];
            LocalizedText comment = (LocalizedText)_inputArguments[1];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    eventId,
                    comment);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult AddCommentMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        byte[] eventId,
        LocalizedText comment);
    #endif
    #endregion

    #region DialogConditionState Class
    #if (!OPCUA_EXCLUDE_DialogConditionState)
    /// <summary>
    /// Stores an instance of the DialogConditionType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DialogConditionState : ConditionState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DialogConditionState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.DialogConditionType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGwAAAERpYWxvZ0NvbmRpdGlvblR5cGVJbnN0YW5jZQEADgsBAA4LDgsA" +
           "AP////8dAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQBcEAAuAERcEAAAAA//////AQH/////AAAAABVg" +
           "iQoCAAAAAAAJAAAARXZlbnRUeXBlAQBdEAAuAERdEAAAABH/////AQH/////AAAAABVgiQoCAAAAAAAK" +
           "AAAAU291cmNlTm9kZQEAXhAALgBEXhAAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFNvdXJj" +
           "ZU5hbWUBAF8QAC4ARF8QAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQBgEAAuAERg" +
           "EAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEAYRAALgBEYRAAAAEA" +
           "JgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAYxAALgBEYxAAAAAV/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQBkEAAuAERkEAAAAAX/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAQAAAAQ29uZGl0aW9uQ2xhc3NJZAEAaisALgBEaisAAAAR/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAAEgAAAENvbmRpdGlvbkNsYXNzTmFtZQEAaysALgBEaysAAAAV/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAADQAAAENvbmRpdGlvbk5hbWUBAEkjAC4AREkjAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAgA" +
           "AABCcmFuY2hJZAEASiMALgBESiMAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAABgAAAFJldGFpbgEA" +
           "ZRAALgBEZRAAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAEVuYWJsZWRTdGF0ZQEASyMALwEA" +
           "IyNLIwAAABX/////AQEBAAAAAQAsIwABAF8jAQAAABVgiQoCAAAAAAACAAAASWQBAEwjAC4AREwjAAAA" +
           "Af////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABRdWFsaXR5AQBUIwAvAQAqI1QjAAAAE/////8BAf//" +
           "//8BAAAAFWCJCgIAAAAAAA8AAABTb3VyY2VUaW1lc3RhbXABAFUjAC4ARFUjAAABACYB/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAADAAAAExhc3RTZXZlcml0eQEAViMALwEAKiNWIwAAAAX/////AQH/////AQAA" +
           "ABVgiQoCAAAAAAAPAAAAU291cmNlVGltZXN0YW1wAQBXIwAuAERXIwAAAQAmAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAcAAABDb21tZW50AQBYIwAvAQAqI1gjAAAAFf////8BAf////8BAAAAFWCJCgIAAAAA" +
           "AA8AAABTb3VyY2VUaW1lc3RhbXABAFkjAC4ARFkjAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "DAAAAENsaWVudFVzZXJJZAEAWiMALgBEWiMAAAAM/////wEB/////wAAAAAEYYIKBAAAAAAABwAAAERp" +
           "c2FibGUBAFwjAC8BAEQjXCMAAAEBAQAAAAEA+QsAAQDzCgAAAAAEYYIKBAAAAAAABgAAAEVuYWJsZQEA" +
           "WyMALwEAQyNbIwAAAQEBAAAAAQD5CwABAPMKAAAAAARhggoEAAAAAAAKAAAAQWRkQ29tbWVudAEAXSMA" +
           "LwEARSNdIwAAAQEBAAAAAQD5CwABAA0LAQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAF4j" +
           "AC4ARF4jAACWAgAAAAEAKgEBRgAAAAcAAABFdmVudElkAA//////AAAAAAMAAAAAKAAAAFRoZSBpZGVu" +
           "dGlmaWVyIGZvciB0aGUgZXZlbnQgdG8gY29tbWVudC4BACoBAUIAAAAHAAAAQ29tbWVudAAV/////wAA" +
           "AAADAAAAACQAAABUaGUgY29tbWVudCB0byBhZGQgdG8gdGhlIGNvbmRpdGlvbi4BACgBAQAAAAEAAAAA" +
           "AAAAAQH/////AAAAABVgiQoCAAAAAAALAAAARGlhbG9nU3RhdGUBAF8jAC8BACMjXyMAAAAV/////wEB" +
           "AQAAAAEALCMBAQBLIwQAAAAVYIkKAgAAAAAAAgAAAElkAQBgIwAuAERgIwAAAAH/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAOAAAAVHJhbnNpdGlvblRpbWUBAGQjAC4ARGQjAAABACYB/////wEB/////wAAAAAV" +
           "YKkKAgAAAAAACQAAAFRydWVTdGF0ZQEAZiMALgBEZiMAABUDAgAAAGVuBgAAAEFjdGl2ZQAV/////wEB" +
           "/////wAAAAAVYKkKAgAAAAAACgAAAEZhbHNlU3RhdGUBAGcjAC4ARGcjAAAVAwIAAABlbggAAABJbmFj" +
           "dGl2ZQAV/////wEB/////wAAAAAVYIkKAgAAAAAABgAAAFByb21wdAEADwsALgBEDwsAAAAV/////wEB" +
           "/////wAAAAAXYIkKAgAAAAAAEQAAAFJlc3BvbnNlT3B0aW9uU2V0AQBoIwAuAERoIwAAABUBAAAAAQAA" +
           "AAAAAAABAf////8AAAAAFWCJCgIAAAAAAA8AAABEZWZhdWx0UmVzcG9uc2UBAGkjAC4ARGkjAAAABv//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAoAAABPa1Jlc3BvbnNlAQBqIwAuAERqIwAAAAb/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAOAAAAQ2FuY2VsUmVzcG9uc2UBAGsjAC4ARGsjAAAABv////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAwAAABMYXN0UmVzcG9uc2UBAGwjAC4ARGwjAAAABv////8BAf////8AAAAABGGCCgQA" +
           "AAAAAAcAAABSZXNwb25kAQBtIwAvAQBtI20jAAABAQEAAAABAPkLAAEA3yIBAAAAF2CpCgIAAAAAAA4A" +
           "AABJbnB1dEFyZ3VtZW50cwEAbiMALgBEbiMAAJYBAAAAAQAqAQFMAAAAEAAAAFNlbGVjdGVkUmVzcG9u" +
           "c2UABv////8AAAAAAwAAAAAlAAAAVGhlIHJlc3BvbnNlIHRvIHRoZSBkaWFsb2cgY29uZGl0aW9uLgEA" +
           "KAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public TwoStateVariableState DialogState
        {
            get
            {
                return m_dialogState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dialogState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dialogState = value;
            }
        }

        /// <remarks />
        public PropertyState<LocalizedText> Prompt
        {
            get
            {
                return m_prompt;
            }

            set
            {
                if (!Object.ReferenceEquals(m_prompt, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_prompt = value;
            }
        }

        /// <remarks />
        public PropertyState<LocalizedText[]> ResponseOptionSet
        {
            get
            {
                return m_responseOptionSet;
            }

            set
            {
                if (!Object.ReferenceEquals(m_responseOptionSet, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_responseOptionSet = value;
            }
        }

        /// <remarks />
        public PropertyState<int> DefaultResponse
        {
            get
            {
                return m_defaultResponse;
            }

            set
            {
                if (!Object.ReferenceEquals(m_defaultResponse, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_defaultResponse = value;
            }
        }

        /// <remarks />
        public PropertyState<int> OkResponse
        {
            get
            {
                return m_okResponse;
            }

            set
            {
                if (!Object.ReferenceEquals(m_okResponse, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_okResponse = value;
            }
        }

        /// <remarks />
        public PropertyState<int> CancelResponse
        {
            get
            {
                return m_cancelResponse;
            }

            set
            {
                if (!Object.ReferenceEquals(m_cancelResponse, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_cancelResponse = value;
            }
        }

        /// <remarks />
        public PropertyState<int> LastResponse
        {
            get
            {
                return m_lastResponse;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastResponse, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastResponse = value;
            }
        }

        /// <remarks />
        public DialogResponseMethodState Respond
        {
            get
            {
                return m_respondMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_respondMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_respondMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_dialogState != null)
            {
                children.Add(m_dialogState);
            }

            if (m_prompt != null)
            {
                children.Add(m_prompt);
            }

            if (m_responseOptionSet != null)
            {
                children.Add(m_responseOptionSet);
            }

            if (m_defaultResponse != null)
            {
                children.Add(m_defaultResponse);
            }

            if (m_okResponse != null)
            {
                children.Add(m_okResponse);
            }

            if (m_cancelResponse != null)
            {
                children.Add(m_cancelResponse);
            }

            if (m_lastResponse != null)
            {
                children.Add(m_lastResponse);
            }

            if (m_respondMethod != null)
            {
                children.Add(m_respondMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.DialogState:
                {
                    if (createOrReplace)
                    {
                        if (DialogState == null)
                        {
                            if (replacement == null)
                            {
                                DialogState = new TwoStateVariableState(this);
                            }
                            else
                            {
                                DialogState = (TwoStateVariableState)replacement;
                            }
                        }
                    }

                    instance = DialogState;
                    break;
                }

                case Opc.Ua.BrowseNames.Prompt:
                {
                    if (createOrReplace)
                    {
                        if (Prompt == null)
                        {
                            if (replacement == null)
                            {
                                Prompt = new PropertyState<LocalizedText>(this);
                            }
                            else
                            {
                                Prompt = (PropertyState<LocalizedText>)replacement;
                            }
                        }
                    }

                    instance = Prompt;
                    break;
                }

                case Opc.Ua.BrowseNames.ResponseOptionSet:
                {
                    if (createOrReplace)
                    {
                        if (ResponseOptionSet == null)
                        {
                            if (replacement == null)
                            {
                                ResponseOptionSet = new PropertyState<LocalizedText[]>(this);
                            }
                            else
                            {
                                ResponseOptionSet = (PropertyState<LocalizedText[]>)replacement;
                            }
                        }
                    }

                    instance = ResponseOptionSet;
                    break;
                }

                case Opc.Ua.BrowseNames.DefaultResponse:
                {
                    if (createOrReplace)
                    {
                        if (DefaultResponse == null)
                        {
                            if (replacement == null)
                            {
                                DefaultResponse = new PropertyState<int>(this);
                            }
                            else
                            {
                                DefaultResponse = (PropertyState<int>)replacement;
                            }
                        }
                    }

                    instance = DefaultResponse;
                    break;
                }

                case Opc.Ua.BrowseNames.OkResponse:
                {
                    if (createOrReplace)
                    {
                        if (OkResponse == null)
                        {
                            if (replacement == null)
                            {
                                OkResponse = new PropertyState<int>(this);
                            }
                            else
                            {
                                OkResponse = (PropertyState<int>)replacement;
                            }
                        }
                    }

                    instance = OkResponse;
                    break;
                }

                case Opc.Ua.BrowseNames.CancelResponse:
                {
                    if (createOrReplace)
                    {
                        if (CancelResponse == null)
                        {
                            if (replacement == null)
                            {
                                CancelResponse = new PropertyState<int>(this);
                            }
                            else
                            {
                                CancelResponse = (PropertyState<int>)replacement;
                            }
                        }
                    }

                    instance = CancelResponse;
                    break;
                }

                case Opc.Ua.BrowseNames.LastResponse:
                {
                    if (createOrReplace)
                    {
                        if (LastResponse == null)
                        {
                            if (replacement == null)
                            {
                                LastResponse = new PropertyState<int>(this);
                            }
                            else
                            {
                                LastResponse = (PropertyState<int>)replacement;
                            }
                        }
                    }

                    instance = LastResponse;
                    break;
                }

                case Opc.Ua.BrowseNames.Respond:
                {
                    if (createOrReplace)
                    {
                        if (Respond == null)
                        {
                            if (replacement == null)
                            {
                                Respond = new DialogResponseMethodState(this);
                            }
                            else
                            {
                                Respond = (DialogResponseMethodState)replacement;
                            }
                        }
                    }

                    instance = Respond;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private TwoStateVariableState m_dialogState;
        private PropertyState<LocalizedText> m_prompt;
        private PropertyState<LocalizedText[]> m_responseOptionSet;
        private PropertyState<int> m_defaultResponse;
        private PropertyState<int> m_okResponse;
        private PropertyState<int> m_cancelResponse;
        private PropertyState<int> m_lastResponse;
        private DialogResponseMethodState m_respondMethod;
        #endregion
    }
    #endif
    #endregion

    #region DialogResponseMethodState Class
    #if (!OPCUA_EXCLUDE_DialogResponseMethodState)
    /// <summary>
    /// Stores an instance of the DialogResponseMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DialogResponseMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DialogResponseMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new DialogResponseMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGAAAAERpYWxvZ1Jlc3BvbnNlTWV0aG9kVHlwZQEARyMALwEARyNHIwAA" +
           "AQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAEgjAC4AREgjAACWAQAAAAEAKgEB" +
           "TAAAABAAAABTZWxlY3RlZFJlc3BvbnNlAAb/////AAAAAAMAAAAAJQAAAFRoZSByZXNwb25zZSB0byB0" +
           "aGUgZGlhbG9nIGNvbmRpdGlvbi4BACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public DialogResponseMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            int selectedResponse = (int)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    selectedResponse);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult DialogResponseMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        int selectedResponse);
    #endif
    #endregion

    #region AcknowledgeableConditionState Class
    #if (!OPCUA_EXCLUDE_AcknowledgeableConditionState)
    /// <summary>
    /// Stores an instance of the AcknowledgeableConditionType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AcknowledgeableConditionState : ConditionState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AcknowledgeableConditionState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AcknowledgeableConditionType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (ConfirmedState != null)
            {
                ConfirmedState.Initialize(context, ConfirmedState_InitializationString);
            }

            if (Confirm != null)
            {
                Confirm.Initialize(context, Confirm_InitializationString);
            }
        }

        #region Initialization String
        private const string ConfirmedState_InitializationString =
           "//////////8VYIkKAgAAAAAADgAAAENvbmZpcm1lZFN0YXRlAQCOIwAvAQAjI44jAAAAFf////8BAQEA" +
           "AAABACwjAQEAcSMEAAAAFWCJCgIAAAAAAAIAAABJZAEAjyMALgBEjyMAAAAB/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAADgAAAFRyYW5zaXRpb25UaW1lAQCTIwAuAESTIwAAAQAmAf////8BAf////8AAAAAFWCp" +
           "CgIAAAAAAAkAAABUcnVlU3RhdGUBAJUjAC4ARJUjAAAVAwIAAABlbgkAAABDb25maXJtZWQAFf////8B" +
           "Af////8AAAAAFWCpCgIAAAAAAAoAAABGYWxzZVN0YXRlAQCWIwAuAESWIwAAFQMCAAAAZW4LAAAAVW5j" +
           "b25maXJtZWQAFf////8BAf////8AAAAA";

        private const string Confirm_InitializationString =
           "//////////8EYYIKBAAAAAAABwAAAENvbmZpcm0BAJkjAC8BAJkjmSMAAAEBAQAAAAEA+QsAAQABIwEA" +
           "AAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQCaIwAuAESaIwAAlgIAAAABACoBAUYAAAAHAAAA" +
           "RXZlbnRJZAAP/////wAAAAADAAAAACgAAABUaGUgaWRlbnRpZmllciBmb3IgdGhlIGV2ZW50IHRvIGNv" +
           "bW1lbnQuAQAqAQFCAAAABwAAAENvbW1lbnQAFf////8AAAAAAwAAAAAkAAAAVGhlIGNvbW1lbnQgdG8g" +
           "YWRkIHRvIHRoZSBjb25kaXRpb24uAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJAAAAEFja25vd2xlZGdlYWJsZUNvbmRpdGlvblR5cGVJbnN0YW5jZQEA" +
           "QQsBAEELQQsAAP////8ZAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQD5EwAuAET5EwAAAA//////AQH/" +
           "////AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQD6EwAuAET6EwAAABH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAKAAAAU291cmNlTm9kZQEA+xMALgBE+xMAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "CgAAAFNvdXJjZU5hbWUBAPwTAC4ARPwTAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1l" +
           "AQD9EwAuAET9EwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEA/hMA" +
           "LgBE/hMAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAABQALgBEABQAAAAV" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQABFAAuAEQBFAAAAAX/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAQAAAAQ29uZGl0aW9uQ2xhc3NJZAEAbCsALgBEbCsAAAAR/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAAEgAAAENvbmRpdGlvbkNsYXNzTmFtZQEAbSsALgBEbSsAAAAV/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAADQAAAENvbmRpdGlvbk5hbWUBAG8jAC4ARG8jAAAADP////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAgAAABCcmFuY2hJZAEAcCMALgBEcCMAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAABgAA" +
           "AFJldGFpbgEAAhQALgBEAhQAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAEVuYWJsZWRTdGF0" +
           "ZQEAcSMALwEAIyNxIwAAABX/////AQECAAAAAQAsIwABAIUjAQAsIwABAI4jAQAAABVgiQoCAAAAAAAC" +
           "AAAASWQBAHIjAC4ARHIjAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABRdWFsaXR5AQB6IwAv" +
           "AQAqI3ojAAAAE/////8BAf////8BAAAAFWCJCgIAAAAAAA8AAABTb3VyY2VUaW1lc3RhbXABAHsjAC4A" +
           "RHsjAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAExhc3RTZXZlcml0eQEAfCMALwEAKiN8" +
           "IwAAAAX/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291cmNlVGltZXN0YW1wAQB9IwAuAER9IwAA" +
           "AQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABDb21tZW50AQB+IwAvAQAqI34jAAAAFf////8B" +
           "Af////8BAAAAFWCJCgIAAAAAAA8AAABTb3VyY2VUaW1lc3RhbXABAH8jAC4ARH8jAAABACYB/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAADAAAAENsaWVudFVzZXJJZAEAgCMALgBEgCMAAAAM/////wEB/////wAA" +
           "AAAEYYIKBAAAAAAABwAAAERpc2FibGUBAIIjAC8BAEQjgiMAAAEBAQAAAAEA+QsAAQDzCgAAAAAEYYIK" +
           "BAAAAAAABgAAAEVuYWJsZQEAgSMALwEAQyOBIwAAAQEBAAAAAQD5CwABAPMKAAAAAARhggoEAAAAAAAK" +
           "AAAAQWRkQ29tbWVudAEAgyMALwEARSODIwAAAQEBAAAAAQD5CwABAA0LAQAAABdgqQoCAAAAAAAOAAAA" +
           "SW5wdXRBcmd1bWVudHMBAIQjAC4ARIQjAACWAgAAAAEAKgEBRgAAAAcAAABFdmVudElkAA//////AAAA" +
           "AAMAAAAAKAAAAFRoZSBpZGVudGlmaWVyIGZvciB0aGUgZXZlbnQgdG8gY29tbWVudC4BACoBAUIAAAAH" +
           "AAAAQ29tbWVudAAV/////wAAAAADAAAAACQAAABUaGUgY29tbWVudCB0byBhZGQgdG8gdGhlIGNvbmRp" +
           "dGlvbi4BACgBAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAAAAAKAAAAQWNrZWRTdGF0ZQEAhSMA" +
           "LwEAIyOFIwAAABX/////AQEBAAAAAQAsIwEBAHEjBAAAABVgiQoCAAAAAAACAAAASWQBAIYjAC4ARIYj" +
           "AAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAA4AAABUcmFuc2l0aW9uVGltZQEAiiMALgBEiiMAAAEA" +
           "JgH/////AQH/////AAAAABVgqQoCAAAAAAAJAAAAVHJ1ZVN0YXRlAQCMIwAuAESMIwAAFQMCAAAAZW4M" +
           "AAAAQWNrbm93bGVkZ2VkABX/////AQH/////AAAAABVgqQoCAAAAAAAKAAAARmFsc2VTdGF0ZQEAjSMA" +
           "LgBEjSMAABUDAgAAAGVuDgAAAFVuYWNrbm93bGVkZ2VkABX/////AQH/////AAAAABVgiQoCAAAAAAAO" +
           "AAAAQ29uZmlybWVkU3RhdGUBAI4jAC8BACMjjiMAAAAV/////wEBAQAAAAEALCMBAQBxIwQAAAAVYIkK" +
           "AgAAAAAAAgAAAElkAQCPIwAuAESPIwAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAAVHJhbnNp" +
           "dGlvblRpbWUBAJMjAC4ARJMjAAABACYB/////wEB/////wAAAAAVYKkKAgAAAAAACQAAAFRydWVTdGF0" +
           "ZQEAlSMALgBElSMAABUDAgAAAGVuCQAAAENvbmZpcm1lZAAV/////wEB/////wAAAAAVYKkKAgAAAAAA" +
           "CgAAAEZhbHNlU3RhdGUBAJYjAC4ARJYjAAAVAwIAAABlbgsAAABVbmNvbmZpcm1lZAAV/////wEB////" +
           "/wAAAAAEYYIKBAAAAAAACwAAAEFja25vd2xlZGdlAQCXIwAvAQCXI5cjAAABAQEAAAABAPkLAAEA8CIB" +
           "AAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAmCMALgBEmCMAAJYCAAAAAQAqAQFGAAAABwAA" +
           "AEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBj" +
           "b21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRv" +
           "IGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAcA" +
           "AABDb25maXJtAQCZIwAvAQCZI5kjAAABAQEAAAABAPkLAAEAASMBAAAAF2CpCgIAAAAAAA4AAABJbnB1" +
           "dEFyZ3VtZW50cwEAmiMALgBEmiMAAJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAA" +
           "AAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABD" +
           "b21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9u" +
           "LgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public TwoStateVariableState AckedState
        {
            get
            {
                return m_ackedState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_ackedState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_ackedState = value;
            }
        }

        /// <remarks />
        public TwoStateVariableState ConfirmedState
        {
            get
            {
                return m_confirmedState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_confirmedState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_confirmedState = value;
            }
        }

        /// <remarks />
        public AddCommentMethodState Acknowledge
        {
            get
            {
                return m_acknowledgeMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_acknowledgeMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_acknowledgeMethod = value;
            }
        }

        /// <remarks />
        public AddCommentMethodState Confirm
        {
            get
            {
                return m_confirmMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_confirmMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_confirmMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_ackedState != null)
            {
                children.Add(m_ackedState);
            }

            if (m_confirmedState != null)
            {
                children.Add(m_confirmedState);
            }

            if (m_acknowledgeMethod != null)
            {
                children.Add(m_acknowledgeMethod);
            }

            if (m_confirmMethod != null)
            {
                children.Add(m_confirmMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.AckedState:
                {
                    if (createOrReplace)
                    {
                        if (AckedState == null)
                        {
                            if (replacement == null)
                            {
                                AckedState = new TwoStateVariableState(this);
                            }
                            else
                            {
                                AckedState = (TwoStateVariableState)replacement;
                            }
                        }
                    }

                    instance = AckedState;
                    break;
                }

                case Opc.Ua.BrowseNames.ConfirmedState:
                {
                    if (createOrReplace)
                    {
                        if (ConfirmedState == null)
                        {
                            if (replacement == null)
                            {
                                ConfirmedState = new TwoStateVariableState(this);
                            }
                            else
                            {
                                ConfirmedState = (TwoStateVariableState)replacement;
                            }
                        }
                    }

                    instance = ConfirmedState;
                    break;
                }

                case Opc.Ua.BrowseNames.Acknowledge:
                {
                    if (createOrReplace)
                    {
                        if (Acknowledge == null)
                        {
                            if (replacement == null)
                            {
                                Acknowledge = new AddCommentMethodState(this);
                            }
                            else
                            {
                                Acknowledge = (AddCommentMethodState)replacement;
                            }
                        }
                    }

                    instance = Acknowledge;
                    break;
                }

                case Opc.Ua.BrowseNames.Confirm:
                {
                    if (createOrReplace)
                    {
                        if (Confirm == null)
                        {
                            if (replacement == null)
                            {
                                Confirm = new AddCommentMethodState(this);
                            }
                            else
                            {
                                Confirm = (AddCommentMethodState)replacement;
                            }
                        }
                    }

                    instance = Confirm;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private TwoStateVariableState m_ackedState;
        private TwoStateVariableState m_confirmedState;
        private AddCommentMethodState m_acknowledgeMethod;
        private AddCommentMethodState m_confirmMethod;
        #endregion
    }
    #endif
    #endregion

    #region AlarmConditionState Class
    #if (!OPCUA_EXCLUDE_AlarmConditionState)
    /// <summary>
    /// Stores an instance of the AlarmConditionType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AlarmConditionState : AcknowledgeableConditionState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AlarmConditionState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AlarmConditionType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (SuppressedState != null)
            {
                SuppressedState.Initialize(context, SuppressedState_InitializationString);
            }

            if (OutOfServiceState != null)
            {
                OutOfServiceState.Initialize(context, OutOfServiceState_InitializationString);
            }

            if (ShelvingState != null)
            {
                ShelvingState.Initialize(context, ShelvingState_InitializationString);
            }

            if (MaxTimeShelved != null)
            {
                MaxTimeShelved.Initialize(context, MaxTimeShelved_InitializationString);
            }

            if (AudibleEnabled != null)
            {
                AudibleEnabled.Initialize(context, AudibleEnabled_InitializationString);
            }

            if (AudibleSound != null)
            {
                AudibleSound.Initialize(context, AudibleSound_InitializationString);
            }

            if (SilenceState != null)
            {
                SilenceState.Initialize(context, SilenceState_InitializationString);
            }

            if (OnDelay != null)
            {
                OnDelay.Initialize(context, OnDelay_InitializationString);
            }

            if (OffDelay != null)
            {
                OffDelay.Initialize(context, OffDelay_InitializationString);
            }

            if (FirstInGroupFlag != null)
            {
                FirstInGroupFlag.Initialize(context, FirstInGroupFlag_InitializationString);
            }

            if (FirstInGroup != null)
            {
                FirstInGroup.Initialize(context, FirstInGroup_InitializationString);
            }

            if (LatchedState != null)
            {
                LatchedState.Initialize(context, LatchedState_InitializationString);
            }

            if (ReAlarmTime != null)
            {
                ReAlarmTime.Initialize(context, ReAlarmTime_InitializationString);
            }

            if (ReAlarmRepeatCount != null)
            {
                ReAlarmRepeatCount.Initialize(context, ReAlarmRepeatCount_InitializationString);
            }

            if (Silence != null)
            {
                Silence.Initialize(context, Silence_InitializationString);
            }

            if (Suppress != null)
            {
                Suppress.Initialize(context, Suppress_InitializationString);
            }

            if (Unsuppress != null)
            {
                Unsuppress.Initialize(context, Unsuppress_InitializationString);
            }

            if (RemoveFromService != null)
            {
                RemoveFromService.Initialize(context, RemoveFromService_InitializationString);
            }

            if (PlaceInService != null)
            {
                PlaceInService.Initialize(context, PlaceInService_InitializationString);
            }

            if (Reset != null)
            {
                Reset.Initialize(context, Reset_InitializationString);
            }
        }

        #region Initialization String
        private const string SuppressedState_InitializationString =
           "//////////8VYIkKAgAAAAAADwAAAFN1cHByZXNzZWRTdGF0ZQEA0SMALwEAIyPRIwAAABX/////AQEB" +
           "AAAAAQAsIwEBAJ4jBAAAABVgiQoCAAAAAAACAAAASWQBANIjAC4ARNIjAAAAAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAA4AAABUcmFuc2l0aW9uVGltZQEA1iMALgBE1iMAAAEAJgH/////AQH/////AAAAABVg" +
           "qQoCAAAAAAAJAAAAVHJ1ZVN0YXRlAQDYIwAuAETYIwAAFQMCAAAAZW4KAAAAU3VwcHJlc3NlZAAV////" +
           "/wEB/////wAAAAAVYKkKAgAAAAAACgAAAEZhbHNlU3RhdGUBANkjAC4ARNkjAAAVAwIAAABlbgwAAABV" +
           "bnN1cHByZXNzZWQAFf////8BAf////8AAAAA";

        private const string OutOfServiceState_InitializationString =
           "//////////8VYIkKAgAAAAAAEQAAAE91dE9mU2VydmljZVN0YXRlAQDzPwAvAQAjI/M/AAAAFf////8B" +
           "Af////8EAAAAFWCJCgIAAAAAAAIAAABJZAEA9D8ALgBE9D8AAAAB/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAADgAAAFRyYW5zaXRpb25UaW1lAQD4PwAuAET4PwAAAQAmAf////8BAf////8AAAAAFWCpCgIAAAAA" +
           "AAkAAABUcnVlU3RhdGUBAPo/AC4ARPo/AAAVAwIAAABlbg4AAABPdXQgb2YgU2VydmljZQAV/////wEB" +
           "/////wAAAAAVYKkKAgAAAAAACgAAAEZhbHNlU3RhdGUBAPs/AC4ARPs/AAAVAwIAAABlbgoAAABJbiBT" +
           "ZXJ2aWNlABX/////AQH/////AAAAAA==";

        private const string ShelvingState_InitializationString =
           "//////////8EYIAKAQAAAAAADQAAAFNoZWx2aW5nU3RhdGUBANojAC8BAHEL2iMAAAEAAAABACwjAQEA" +
           "niMGAAAAFWCJCgIAAAAAAAwAAABDdXJyZW50U3RhdGUBANsjAC8BAMgK2yMAAAAV/////wEB/////wEA" +
           "AAAVYIkKAgAAAAAAAgAAAElkAQDcIwAuAETcIwAAABH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAA" +
           "TGFzdFRyYW5zaXRpb24BAOAjAC8BAM8K4CMAAAAV/////wEB/////wIAAAAVYIkKAgAAAAAAAgAAAElk" +
           "AQDhIwAuAEThIwAAABH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAAVHJhbnNpdGlvblRpbWUBAOQj" +
           "AC4AROQjAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAFVuc2hlbHZlVGltZQEA5SMALgBE" +
           "5SMAAAEAIgH/////AQH/////AAAAAARhggoEAAAAAAALAAAAVGltZWRTaGVsdmUBAP0jAC8BAIUL/SMA" +
           "AAEBAQAAAAEA+QsAAQBVKwEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQD+IwAuAET+IwAA" +
           "lgEAAAABACoBAXoAAAAMAAAAU2hlbHZpbmdUaW1lAQAiAf////8AAAAAAwAAAABVAAAASWYgbm90IDAs" +
           "IHRoaXMgcGFyYW1ldGVyIHNwZWNpZmllcyBhIGZpeGVkIHRpbWUgZm9yIHdoaWNoIHRoZSBBbGFybSBp" +
           "cyB0byBiZSBzaGVsdmVkLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAgAAABVbnNo" +
           "ZWx2ZQEA+yMALwEAgwv7IwAAAQEBAAAAAQD5CwABAFUrAAAAAARhggoEAAAAAAANAAAAT25lU2hvdFNo" +
           "ZWx2ZQEA/CMALwEAhAv8IwAAAQEBAAAAAQD5CwABAFUrAAAAAA==";

        private const string MaxTimeShelved_InitializationString =
           "//////////8VYIkKAgAAAAAADgAAAE1heFRpbWVTaGVsdmVkAQAAJAAuAEQAJAAAAQAiAf////8BAf//" +
           "//8AAAAA";

        private const string AudibleEnabled_InitializationString =
           "//////////8VYIkKAgAAAAAADgAAAEF1ZGlibGVFbmFibGVkAQAFQAAuAEQFQAAAAAH/////AQH/////" +
           "AAAAAA==";

        private const string AudibleSound_InitializationString =
           "//////////8VYIkKAgAAAAAADAAAAEF1ZGlibGVTb3VuZAEABkAALwEAQkYGQAAAAQCzP/////8BAf//" +
           "//8AAAAA";

        private const string SilenceState_InitializationString =
           "//////////8VYIkKAgAAAAAADAAAAFNpbGVuY2VTdGF0ZQEA/D8ALwEAIyP8PwAAABX/////AQH/////" +
           "BAAAABVgiQoCAAAAAAACAAAASWQBAP0/AC4ARP0/AAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAA4A" +
           "AABUcmFuc2l0aW9uVGltZQEAAUAALgBEAUAAAAEAJgH/////AQH/////AAAAABVgqQoCAAAAAAAJAAAA" +
           "VHJ1ZVN0YXRlAQADQAAuAEQDQAAAFQMCAAAAZW4IAAAAU2lsZW5jZWQAFf////8BAf////8AAAAAFWCp" +
           "CgIAAAAAAAoAAABGYWxzZVN0YXRlAQAEQAAuAEQEQAAAFQMCAAAAZW4MAAAATm90IFNpbGVuY2VkABX/" +
           "////AQH/////AAAAAA==";

        private const string OnDelay_InitializationString =
           "//////////8VYIkKAgAAAAAABwAAAE9uRGVsYXkBAAtAAC4ARAtAAAABACIB/////wEB/////wAAAAA=";

        private const string OffDelay_InitializationString =
           "//////////8VYIkKAgAAAAAACAAAAE9mZkRlbGF5AQAMQAAuAEQMQAAAAQAiAf////8BAf////8AAAAA";

        private const string FirstInGroupFlag_InitializationString =
           "//////////8VYIkKAgAAAAAAEAAAAEZpcnN0SW5Hcm91cEZsYWcBAA1AAC8APw1AAAAAAf////8BAf//" +
           "//8AAAAA";

        private const string FirstInGroup_InitializationString =
           "//////////8EYIAKAQAAAAAADAAAAEZpcnN0SW5Hcm91cAEADkAALwEAFUAOQAAA/////wAAAAA=";

        private const string LatchedState_InitializationString =
           "//////////8VYIkKAgAAAAAADAAAAExhdGNoZWRTdGF0ZQEADkcALwEAIyMORwAAABX/////AQH/////" +
           "BAAAABVgiQoCAAAAAAACAAAASWQBAA9HAC4ARA9HAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAA4A" +
           "AABUcmFuc2l0aW9uVGltZQEAE0cALgBEE0cAAAEAJgH/////AQH/////AAAAABVgqQoCAAAAAAAJAAAA" +
           "VHJ1ZVN0YXRlAQAVRwAuAEQVRwAAFQMCAAAAZW4HAAAATGF0Y2hlZAAV/////wEB/////wAAAAAVYKkK" +
           "AgAAAAAACgAAAEZhbHNlU3RhdGUBABZHAC4ARBZHAAAVAwIAAABlbgkAAABVbmxhdGNoZWQAFf////8B" +
           "Af////8AAAAA";

        private const string ReAlarmTime_InitializationString =
           "//////////8VYIkKAgAAAAAACwAAAFJlQWxhcm1UaW1lAQAQQAAuAEQQQAAAAQAiAf////8BAf////8A" +
           "AAAA";

        private const string ReAlarmRepeatCount_InitializationString =
           "//////////8VYIkKAgAAAAAAEgAAAFJlQWxhcm1SZXBlYXRDb3VudAEAEUAALwA/EUAAAAAE/////wEB" +
           "/////wAAAAA=";

        private const string Silence_InitializationString =
           "//////////8EYYIKBAAAAAAABwAAAFNpbGVuY2UBABJAAC8BABJAEkAAAAEBAQAAAAEA+QsAAQBaQwAA" +
           "AAA=";

        private const string Suppress_InitializationString =
           "//////////8EYYIKBAAAAAAACAAAAFN1cHByZXNzAQATQAAvAQATQBNAAAABAQEAAAABAPkLAAEASUMA" +
           "AAAA";

        private const string Unsuppress_InitializationString =
           "//////////8EYYIKBAAAAAAACgAAAFVuc3VwcHJlc3MBAMxFAC8BAMxFzEUAAAEBAQAAAAEA+QsAAQBJ" +
           "QwAAAAA=";

        private const string RemoveFromService_InitializationString =
           "//////////8EYYIKBAAAAAAAEQAAAFJlbW92ZUZyb21TZXJ2aWNlAQDNRQAvAQDNRc1FAAABAQEAAAAB" +
           "APkLAAEAa0MAAAAA";

        private const string PlaceInService_InitializationString =
           "//////////8EYYIKBAAAAAAADgAAAFBsYWNlSW5TZXJ2aWNlAQDORQAvAQDORc5FAAABAQEAAAABAPkL" +
           "AAEAa0MAAAAA";

        private const string Reset_InitializationString =
           "//////////8EYYIKBAAAAAAABQAAAFJlc2V0AQAXRwAvAQAXRxdHAAABAQEAAAABAPkLAAEApToAAAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGgAAAEFsYXJtQ29uZGl0aW9uVHlwZUluc3RhbmNlAQBjCwEAYwtjCwAA" +
           "/////y4AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAKQVAC4ARKQVAAAAD/////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAkAAABFdmVudFR5cGUBAKUVAC4ARKUVAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoA" +
           "AABTb3VyY2VOb2RlAQCmFQAuAESmFQAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAAU291cmNl" +
           "TmFtZQEApxUALgBEpxUAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUBAKgVAC4ARKgV" +
           "AAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQCpFQAuAESpFQAAAQAm" +
           "Af////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQCrFQAuAESrFQAAABX/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAKwVAC4ARKwVAAAABf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAABAAAABDb25kaXRpb25DbGFzc0lkAQBuKwAuAERuKwAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAASAAAAQ29uZGl0aW9uQ2xhc3NOYW1lAQBvKwAuAERvKwAAABX/////AQH/////AAAAABVgiQoCAAAA" +
           "AAANAAAAQ29uZGl0aW9uTmFtZQEAnCMALgBEnCMAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACAAA" +
           "AEJyYW5jaElkAQCdIwAuAESdIwAAABH/////AQH/////AAAAABVgiQoCAAAAAAAGAAAAUmV0YWluAQCt" +
           "FQAuAEStFQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAARW5hYmxlZFN0YXRlAQCeIwAvAQAj" +
           "I54jAAAAFf////8BAQUAAAABACwjAAEAsiMBACwjAAEAuyMBACwjAAEAyCMBACwjAAEA0SMBACwjAAEA" +
           "2iMBAAAAFWCJCgIAAAAAAAIAAABJZAEAnyMALgBEnyMAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "BwAAAFF1YWxpdHkBAKcjAC8BACojpyMAAAAT/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJj" +
           "ZVRpbWVzdGFtcAEAqCMALgBEqCMAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAATGFzdFNl" +
           "dmVyaXR5AQCpIwAvAQAqI6kjAAAABf////8BAf////8BAAAAFWCJCgIAAAAAAA8AAABTb3VyY2VUaW1l" +
           "c3RhbXABAKojAC4ARKojAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAENvbW1lbnQBAKsj" +
           "AC8BACojqyMAAAAV/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRpbWVzdGFtcAEArCMA" +
           "LgBErCMAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50VXNlcklkAQCtIwAuAESt" +
           "IwAAAAz/////AQH/////AAAAAARhggoEAAAAAAAHAAAARGlzYWJsZQEAryMALwEARCOvIwAAAQEBAAAA" +
           "AQD5CwABAPMKAAAAAARhggoEAAAAAAAGAAAARW5hYmxlAQCuIwAvAQBDI64jAAABAQEAAAABAPkLAAEA" +
           "8woAAAAABGGCCgQAAAAAAAoAAABBZGRDb21tZW50AQCwIwAvAQBFI7AjAAABAQEAAAABAPkLAAEADQsB" +
           "AAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAsSMALgBEsSMAAJYCAAAAAQAqAQFGAAAABwAA" +
           "AEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBj" +
           "b21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRv" +
           "IGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAoA" +
           "AABBY2tlZFN0YXRlAQCyIwAvAQAjI7IjAAAAFf////8BAQEAAAABACwjAQEAniMBAAAAFWCJCgIAAAAA" +
           "AAIAAABJZAEAsyMALgBEsyMAAAAB/////wEB/////wAAAAAEYYIKBAAAAAAACwAAAEFja25vd2xlZGdl" +
           "AQDEIwAvAQCXI8QjAAABAQEAAAABAPkLAAEA8CIBAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50" +
           "cwEAxSMALgBExSMAAJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhl" +
           "IGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/" +
           "////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAA" +
           "AQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAsAAABBY3RpdmVTdGF0ZQEAyCMALwEAIyPIIwAAABX/" +
           "////AQEBAAAAAQAsIwEBAJ4jBgAAABVgiQoCAAAAAAACAAAASWQBAMkjAC4ARMkjAAAAAf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABQAAABFZmZlY3RpdmVEaXNwbGF5TmFtZQEAzCMALgBEzCMAAAAV/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAADgAAAFRyYW5zaXRpb25UaW1lAQDNIwAuAETNIwAAAQAmAf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABcAAABFZmZlY3RpdmVUcmFuc2l0aW9uVGltZQEAziMALgBEziMAAAEAJgH/" +
           "////AQH/////AAAAABVgqQoCAAAAAAAJAAAAVHJ1ZVN0YXRlAQDPIwAuAETPIwAAFQMCAAAAZW4GAAAA" +
           "QWN0aXZlABX/////AQH/////AAAAABVgqQoCAAAAAAAKAAAARmFsc2VTdGF0ZQEA0CMALgBE0CMAABUD" +
           "AgAAAGVuCAAAAEluYWN0aXZlABX/////AQH/////AAAAABVgiQoCAAAAAAAJAAAASW5wdXROb2RlAQBw" +
           "KwAuAERwKwAAABH/////AQH/////AAAAABVgiQoCAAAAAAAPAAAAU3VwcHJlc3NlZFN0YXRlAQDRIwAv" +
           "AQAjI9EjAAAAFf////8BAQEAAAABACwjAQEAniMEAAAAFWCJCgIAAAAAAAIAAABJZAEA0iMALgBE0iMA" +
           "AAAB/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAFRyYW5zaXRpb25UaW1lAQDWIwAuAETWIwAAAQAm" +
           "Af////8BAf////8AAAAAFWCpCgIAAAAAAAkAAABUcnVlU3RhdGUBANgjAC4ARNgjAAAVAwIAAABlbgoA" +
           "AABTdXBwcmVzc2VkABX/////AQH/////AAAAABVgqQoCAAAAAAAKAAAARmFsc2VTdGF0ZQEA2SMALgBE" +
           "2SMAABUDAgAAAGVuDAAAAFVuc3VwcHJlc3NlZAAV/////wEB/////wAAAAAVYIkKAgAAAAAAEQAAAE91" +
           "dE9mU2VydmljZVN0YXRlAQDzPwAvAQAjI/M/AAAAFf////8BAf////8EAAAAFWCJCgIAAAAAAAIAAABJ" +
           "ZAEA9D8ALgBE9D8AAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAFRyYW5zaXRpb25UaW1lAQD4" +
           "PwAuAET4PwAAAQAmAf////8BAf////8AAAAAFWCpCgIAAAAAAAkAAABUcnVlU3RhdGUBAPo/AC4ARPo/" +
           "AAAVAwIAAABlbg4AAABPdXQgb2YgU2VydmljZQAV/////wEB/////wAAAAAVYKkKAgAAAAAACgAAAEZh" +
           "bHNlU3RhdGUBAPs/AC4ARPs/AAAVAwIAAABlbgoAAABJbiBTZXJ2aWNlABX/////AQH/////AAAAAARg" +
           "gAoBAAAAAAANAAAAU2hlbHZpbmdTdGF0ZQEA2iMALwEAcQvaIwAAAQAAAAEALCMBAQCeIwYAAAAVYIkK" +
           "AgAAAAAADAAAAEN1cnJlbnRTdGF0ZQEA2yMALwEAyArbIwAAABX/////AQH/////AQAAABVgiQoCAAAA" +
           "AAACAAAASWQBANwjAC4ARNwjAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAA4AAABMYXN0VHJhbnNp" +
           "dGlvbgEA4CMALwEAzwrgIwAAABX/////AQH/////AgAAABVgiQoCAAAAAAACAAAASWQBAOEjAC4AROEj" +
           "AAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAA4AAABUcmFuc2l0aW9uVGltZQEA5CMALgBE5CMAAAEA" +
           "JgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAVW5zaGVsdmVUaW1lAQDlIwAuAETlIwAAAQAiAf//" +
           "//8BAf////8AAAAABGGCCgQAAAAAAAsAAABUaW1lZFNoZWx2ZQEA/SMALwEAhQv9IwAAAQEBAAAAAQD5" +
           "CwABAFUrAQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAP4jAC4ARP4jAACWAQAAAAEAKgEB" +
           "egAAAAwAAABTaGVsdmluZ1RpbWUBACIB/////wAAAAADAAAAAFUAAABJZiBub3QgMCwgdGhpcyBwYXJh" +
           "bWV0ZXIgc3BlY2lmaWVzIGEgZml4ZWQgdGltZSBmb3Igd2hpY2ggdGhlIEFsYXJtIGlzIHRvIGJlIHNo" +
           "ZWx2ZWQuAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAACAAAAFVuc2hlbHZlAQD7IwAv" +
           "AQCDC/sjAAABAQEAAAABAPkLAAEAVSsAAAAABGGCCgQAAAAAAA0AAABPbmVTaG90U2hlbHZlAQD8IwAv" +
           "AQCEC/wjAAABAQEAAAABAPkLAAEAVSsAAAAAFWCJCgIAAAAAABMAAABTdXBwcmVzc2VkT3JTaGVsdmVk" +
           "AQD/IwAuAET/IwAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAATWF4VGltZVNoZWx2ZWQBAAAk" +
           "AC4ARAAkAAABACIB/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAEF1ZGlibGVFbmFibGVkAQAFQAAu" +
           "AEQFQAAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQXVkaWJsZVNvdW5kAQAGQAAvAQBCRgZA" +
           "AAABALM//////wEB/////wAAAAAVYIkKAgAAAAAADAAAAFNpbGVuY2VTdGF0ZQEA/D8ALwEAIyP8PwAA" +
           "ABX/////AQH/////BAAAABVgiQoCAAAAAAACAAAASWQBAP0/AC4ARP0/AAAAAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAA4AAABUcmFuc2l0aW9uVGltZQEAAUAALgBEAUAAAAEAJgH/////AQH/////AAAAABVg" +
           "qQoCAAAAAAAJAAAAVHJ1ZVN0YXRlAQADQAAuAEQDQAAAFQMCAAAAZW4IAAAAU2lsZW5jZWQAFf////8B" +
           "Af////8AAAAAFWCpCgIAAAAAAAoAAABGYWxzZVN0YXRlAQAEQAAuAEQEQAAAFQMCAAAAZW4MAAAATm90" +
           "IFNpbGVuY2VkABX/////AQH/////AAAAABVgiQoCAAAAAAAHAAAAT25EZWxheQEAC0AALgBEC0AAAAEA" +
           "IgH/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAT2ZmRGVsYXkBAAxAAC4ARAxAAAABACIB/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAAEAAAAEZpcnN0SW5Hcm91cEZsYWcBAA1AAC8APw1AAAAAAf////8BAf//" +
           "//8AAAAABGCACgEAAAAAAAwAAABGaXJzdEluR3JvdXABAA5AAC8BABVADkAAAP////8AAAAAFWCJCgIA" +
           "AAAAAAwAAABMYXRjaGVkU3RhdGUBAA5HAC8BACMjDkcAAAAV/////wEB/////wQAAAAVYIkKAgAAAAAA" +
           "AgAAAElkAQAPRwAuAEQPRwAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAAVHJhbnNpdGlvblRp" +
           "bWUBABNHAC4ARBNHAAABACYB/////wEB/////wAAAAAVYKkKAgAAAAAACQAAAFRydWVTdGF0ZQEAFUcA" +
           "LgBEFUcAABUDAgAAAGVuBwAAAExhdGNoZWQAFf////8BAf////8AAAAAFWCpCgIAAAAAAAoAAABGYWxz" +
           "ZVN0YXRlAQAWRwAuAEQWRwAAFQMCAAAAZW4JAAAAVW5sYXRjaGVkABX/////AQH/////AAAAABVgiQoC" +
           "AAAAAAALAAAAUmVBbGFybVRpbWUBABBAAC4ARBBAAAABACIB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "EgAAAFJlQWxhcm1SZXBlYXRDb3VudAEAEUAALwA/EUAAAAAE/////wEB/////wAAAAAEYYIKBAAAAAAA" +
           "BwAAAFNpbGVuY2UBABJAAC8BABJAEkAAAAEBAQAAAAEA+QsAAQBaQwAAAAAEYYIKBAAAAAAACAAAAFN1" +
           "cHByZXNzAQATQAAvAQATQBNAAAABAQEAAAABAPkLAAEASUMAAAAABGGCCgQAAAAAAAoAAABVbnN1cHBy" +
           "ZXNzAQDMRQAvAQDMRcxFAAABAQEAAAABAPkLAAEASUMAAAAABGGCCgQAAAAAABEAAABSZW1vdmVGcm9t" +
           "U2VydmljZQEAzUUALwEAzUXNRQAAAQEBAAAAAQD5CwABAGtDAAAAAARhggoEAAAAAAAOAAAAUGxhY2VJ" +
           "blNlcnZpY2UBAM5FAC8BAM5FzkUAAAEBAQAAAAEA+QsAAQBrQwAAAAAEYYIKBAAAAAAABQAAAFJlc2V0" +
           "AQAXRwAvAQAXRxdHAAABAQEAAAABAPkLAAEApToAAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public TwoStateVariableState ActiveState
        {
            get
            {
                return m_activeState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_activeState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_activeState = value;
            }
        }

        /// <remarks />
        public PropertyState<NodeId> InputNode
        {
            get
            {
                return m_inputNode;
            }

            set
            {
                if (!Object.ReferenceEquals(m_inputNode, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_inputNode = value;
            }
        }

        /// <remarks />
        public TwoStateVariableState SuppressedState
        {
            get
            {
                return m_suppressedState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_suppressedState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_suppressedState = value;
            }
        }

        /// <remarks />
        public TwoStateVariableState OutOfServiceState
        {
            get
            {
                return m_outOfServiceState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_outOfServiceState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_outOfServiceState = value;
            }
        }

        /// <remarks />
        public ShelvedStateMachineState ShelvingState
        {
            get
            {
                return m_shelvingState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_shelvingState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_shelvingState = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> SuppressedOrShelved
        {
            get
            {
                return m_suppressedOrShelved;
            }

            set
            {
                if (!Object.ReferenceEquals(m_suppressedOrShelved, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_suppressedOrShelved = value;
            }
        }

        /// <remarks />
        public PropertyState<double> MaxTimeShelved
        {
            get
            {
                return m_maxTimeShelved;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxTimeShelved, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxTimeShelved = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> AudibleEnabled
        {
            get
            {
                return m_audibleEnabled;
            }

            set
            {
                if (!Object.ReferenceEquals(m_audibleEnabled, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_audibleEnabled = value;
            }
        }

        /// <remarks />
        public AudioVariableState AudibleSound
        {
            get
            {
                return m_audibleSound;
            }

            set
            {
                if (!Object.ReferenceEquals(m_audibleSound, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_audibleSound = value;
            }
        }

        /// <remarks />
        public TwoStateVariableState SilenceState
        {
            get
            {
                return m_silenceState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_silenceState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_silenceState = value;
            }
        }

        /// <remarks />
        public PropertyState<double> OnDelay
        {
            get
            {
                return m_onDelay;
            }

            set
            {
                if (!Object.ReferenceEquals(m_onDelay, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_onDelay = value;
            }
        }

        /// <remarks />
        public PropertyState<double> OffDelay
        {
            get
            {
                return m_offDelay;
            }

            set
            {
                if (!Object.ReferenceEquals(m_offDelay, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_offDelay = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<bool> FirstInGroupFlag
        {
            get
            {
                return m_firstInGroupFlag;
            }

            set
            {
                if (!Object.ReferenceEquals(m_firstInGroupFlag, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_firstInGroupFlag = value;
            }
        }

        /// <remarks />
        public AlarmGroupState FirstInGroup
        {
            get
            {
                return m_firstInGroup;
            }

            set
            {
                if (!Object.ReferenceEquals(m_firstInGroup, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_firstInGroup = value;
            }
        }

        /// <remarks />
        public TwoStateVariableState LatchedState
        {
            get
            {
                return m_latchedState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_latchedState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_latchedState = value;
            }
        }

        /// <remarks />
        public PropertyState<double> ReAlarmTime
        {
            get
            {
                return m_reAlarmTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_reAlarmTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_reAlarmTime = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<short> ReAlarmRepeatCount
        {
            get
            {
                return m_reAlarmRepeatCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_reAlarmRepeatCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_reAlarmRepeatCount = value;
            }
        }

        /// <remarks />
        public MethodState Silence
        {
            get
            {
                return m_silenceMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_silenceMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_silenceMethod = value;
            }
        }

        /// <remarks />
        public MethodState Suppress
        {
            get
            {
                return m_suppressMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_suppressMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_suppressMethod = value;
            }
        }

        /// <remarks />
        public MethodState Unsuppress
        {
            get
            {
                return m_unsuppressMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_unsuppressMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_unsuppressMethod = value;
            }
        }

        /// <remarks />
        public MethodState RemoveFromService
        {
            get
            {
                return m_removeFromServiceMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removeFromServiceMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removeFromServiceMethod = value;
            }
        }

        /// <remarks />
        public MethodState PlaceInService
        {
            get
            {
                return m_placeInServiceMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_placeInServiceMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_placeInServiceMethod = value;
            }
        }

        /// <remarks />
        public MethodState Reset
        {
            get
            {
                return m_resetMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_resetMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_resetMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_activeState != null)
            {
                children.Add(m_activeState);
            }

            if (m_inputNode != null)
            {
                children.Add(m_inputNode);
            }

            if (m_suppressedState != null)
            {
                children.Add(m_suppressedState);
            }

            if (m_outOfServiceState != null)
            {
                children.Add(m_outOfServiceState);
            }

            if (m_shelvingState != null)
            {
                children.Add(m_shelvingState);
            }

            if (m_suppressedOrShelved != null)
            {
                children.Add(m_suppressedOrShelved);
            }

            if (m_maxTimeShelved != null)
            {
                children.Add(m_maxTimeShelved);
            }

            if (m_audibleEnabled != null)
            {
                children.Add(m_audibleEnabled);
            }

            if (m_audibleSound != null)
            {
                children.Add(m_audibleSound);
            }

            if (m_silenceState != null)
            {
                children.Add(m_silenceState);
            }

            if (m_onDelay != null)
            {
                children.Add(m_onDelay);
            }

            if (m_offDelay != null)
            {
                children.Add(m_offDelay);
            }

            if (m_firstInGroupFlag != null)
            {
                children.Add(m_firstInGroupFlag);
            }

            if (m_firstInGroup != null)
            {
                children.Add(m_firstInGroup);
            }

            if (m_latchedState != null)
            {
                children.Add(m_latchedState);
            }

            if (m_reAlarmTime != null)
            {
                children.Add(m_reAlarmTime);
            }

            if (m_reAlarmRepeatCount != null)
            {
                children.Add(m_reAlarmRepeatCount);
            }

            if (m_silenceMethod != null)
            {
                children.Add(m_silenceMethod);
            }

            if (m_suppressMethod != null)
            {
                children.Add(m_suppressMethod);
            }

            if (m_unsuppressMethod != null)
            {
                children.Add(m_unsuppressMethod);
            }

            if (m_removeFromServiceMethod != null)
            {
                children.Add(m_removeFromServiceMethod);
            }

            if (m_placeInServiceMethod != null)
            {
                children.Add(m_placeInServiceMethod);
            }

            if (m_resetMethod != null)
            {
                children.Add(m_resetMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ActiveState:
                {
                    if (createOrReplace)
                    {
                        if (ActiveState == null)
                        {
                            if (replacement == null)
                            {
                                ActiveState = new TwoStateVariableState(this);
                            }
                            else
                            {
                                ActiveState = (TwoStateVariableState)replacement;
                            }
                        }
                    }

                    instance = ActiveState;
                    break;
                }

                case Opc.Ua.BrowseNames.InputNode:
                {
                    if (createOrReplace)
                    {
                        if (InputNode == null)
                        {
                            if (replacement == null)
                            {
                                InputNode = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                InputNode = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = InputNode;
                    break;
                }

                case Opc.Ua.BrowseNames.SuppressedState:
                {
                    if (createOrReplace)
                    {
                        if (SuppressedState == null)
                        {
                            if (replacement == null)
                            {
                                SuppressedState = new TwoStateVariableState(this);
                            }
                            else
                            {
                                SuppressedState = (TwoStateVariableState)replacement;
                            }
                        }
                    }

                    instance = SuppressedState;
                    break;
                }

                case Opc.Ua.BrowseNames.OutOfServiceState:
                {
                    if (createOrReplace)
                    {
                        if (OutOfServiceState == null)
                        {
                            if (replacement == null)
                            {
                                OutOfServiceState = new TwoStateVariableState(this);
                            }
                            else
                            {
                                OutOfServiceState = (TwoStateVariableState)replacement;
                            }
                        }
                    }

                    instance = OutOfServiceState;
                    break;
                }

                case Opc.Ua.BrowseNames.ShelvingState:
                {
                    if (createOrReplace)
                    {
                        if (ShelvingState == null)
                        {
                            if (replacement == null)
                            {
                                ShelvingState = new ShelvedStateMachineState(this);
                            }
                            else
                            {
                                ShelvingState = (ShelvedStateMachineState)replacement;
                            }
                        }
                    }

                    instance = ShelvingState;
                    break;
                }

                case Opc.Ua.BrowseNames.SuppressedOrShelved:
                {
                    if (createOrReplace)
                    {
                        if (SuppressedOrShelved == null)
                        {
                            if (replacement == null)
                            {
                                SuppressedOrShelved = new PropertyState<bool>(this);
                            }
                            else
                            {
                                SuppressedOrShelved = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = SuppressedOrShelved;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxTimeShelved:
                {
                    if (createOrReplace)
                    {
                        if (MaxTimeShelved == null)
                        {
                            if (replacement == null)
                            {
                                MaxTimeShelved = new PropertyState<double>(this);
                            }
                            else
                            {
                                MaxTimeShelved = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = MaxTimeShelved;
                    break;
                }

                case Opc.Ua.BrowseNames.AudibleEnabled:
                {
                    if (createOrReplace)
                    {
                        if (AudibleEnabled == null)
                        {
                            if (replacement == null)
                            {
                                AudibleEnabled = new PropertyState<bool>(this);
                            }
                            else
                            {
                                AudibleEnabled = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = AudibleEnabled;
                    break;
                }

                case Opc.Ua.BrowseNames.AudibleSound:
                {
                    if (createOrReplace)
                    {
                        if (AudibleSound == null)
                        {
                            if (replacement == null)
                            {
                                AudibleSound = new AudioVariableState(this);
                            }
                            else
                            {
                                AudibleSound = (AudioVariableState)replacement;
                            }
                        }
                    }

                    instance = AudibleSound;
                    break;
                }

                case Opc.Ua.BrowseNames.SilenceState:
                {
                    if (createOrReplace)
                    {
                        if (SilenceState == null)
                        {
                            if (replacement == null)
                            {
                                SilenceState = new TwoStateVariableState(this);
                            }
                            else
                            {
                                SilenceState = (TwoStateVariableState)replacement;
                            }
                        }
                    }

                    instance = SilenceState;
                    break;
                }

                case Opc.Ua.BrowseNames.OnDelay:
                {
                    if (createOrReplace)
                    {
                        if (OnDelay == null)
                        {
                            if (replacement == null)
                            {
                                OnDelay = new PropertyState<double>(this);
                            }
                            else
                            {
                                OnDelay = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = OnDelay;
                    break;
                }

                case Opc.Ua.BrowseNames.OffDelay:
                {
                    if (createOrReplace)
                    {
                        if (OffDelay == null)
                        {
                            if (replacement == null)
                            {
                                OffDelay = new PropertyState<double>(this);
                            }
                            else
                            {
                                OffDelay = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = OffDelay;
                    break;
                }

                case Opc.Ua.BrowseNames.FirstInGroupFlag:
                {
                    if (createOrReplace)
                    {
                        if (FirstInGroupFlag == null)
                        {
                            if (replacement == null)
                            {
                                FirstInGroupFlag = new BaseDataVariableState<bool>(this);
                            }
                            else
                            {
                                FirstInGroupFlag = (BaseDataVariableState<bool>)replacement;
                            }
                        }
                    }

                    instance = FirstInGroupFlag;
                    break;
                }

                case Opc.Ua.BrowseNames.FirstInGroup:
                {
                    if (createOrReplace)
                    {
                        if (FirstInGroup == null)
                        {
                            if (replacement == null)
                            {
                                FirstInGroup = new AlarmGroupState(this);
                            }
                            else
                            {
                                FirstInGroup = (AlarmGroupState)replacement;
                            }
                        }
                    }

                    instance = FirstInGroup;
                    break;
                }

                case Opc.Ua.BrowseNames.LatchedState:
                {
                    if (createOrReplace)
                    {
                        if (LatchedState == null)
                        {
                            if (replacement == null)
                            {
                                LatchedState = new TwoStateVariableState(this);
                            }
                            else
                            {
                                LatchedState = (TwoStateVariableState)replacement;
                            }
                        }
                    }

                    instance = LatchedState;
                    break;
                }

                case Opc.Ua.BrowseNames.ReAlarmTime:
                {
                    if (createOrReplace)
                    {
                        if (ReAlarmTime == null)
                        {
                            if (replacement == null)
                            {
                                ReAlarmTime = new PropertyState<double>(this);
                            }
                            else
                            {
                                ReAlarmTime = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = ReAlarmTime;
                    break;
                }

                case Opc.Ua.BrowseNames.ReAlarmRepeatCount:
                {
                    if (createOrReplace)
                    {
                        if (ReAlarmRepeatCount == null)
                        {
                            if (replacement == null)
                            {
                                ReAlarmRepeatCount = new BaseDataVariableState<short>(this);
                            }
                            else
                            {
                                ReAlarmRepeatCount = (BaseDataVariableState<short>)replacement;
                            }
                        }
                    }

                    instance = ReAlarmRepeatCount;
                    break;
                }

                case Opc.Ua.BrowseNames.Silence:
                {
                    if (createOrReplace)
                    {
                        if (Silence == null)
                        {
                            if (replacement == null)
                            {
                                Silence = new MethodState(this);
                            }
                            else
                            {
                                Silence = (MethodState)replacement;
                            }
                        }
                    }

                    instance = Silence;
                    break;
                }

                case Opc.Ua.BrowseNames.Suppress:
                {
                    if (createOrReplace)
                    {
                        if (Suppress == null)
                        {
                            if (replacement == null)
                            {
                                Suppress = new MethodState(this);
                            }
                            else
                            {
                                Suppress = (MethodState)replacement;
                            }
                        }
                    }

                    instance = Suppress;
                    break;
                }

                case Opc.Ua.BrowseNames.Unsuppress:
                {
                    if (createOrReplace)
                    {
                        if (Unsuppress == null)
                        {
                            if (replacement == null)
                            {
                                Unsuppress = new MethodState(this);
                            }
                            else
                            {
                                Unsuppress = (MethodState)replacement;
                            }
                        }
                    }

                    instance = Unsuppress;
                    break;
                }

                case Opc.Ua.BrowseNames.RemoveFromService:
                {
                    if (createOrReplace)
                    {
                        if (RemoveFromService == null)
                        {
                            if (replacement == null)
                            {
                                RemoveFromService = new MethodState(this);
                            }
                            else
                            {
                                RemoveFromService = (MethodState)replacement;
                            }
                        }
                    }

                    instance = RemoveFromService;
                    break;
                }

                case Opc.Ua.BrowseNames.PlaceInService:
                {
                    if (createOrReplace)
                    {
                        if (PlaceInService == null)
                        {
                            if (replacement == null)
                            {
                                PlaceInService = new MethodState(this);
                            }
                            else
                            {
                                PlaceInService = (MethodState)replacement;
                            }
                        }
                    }

                    instance = PlaceInService;
                    break;
                }

                case Opc.Ua.BrowseNames.Reset:
                {
                    if (createOrReplace)
                    {
                        if (Reset == null)
                        {
                            if (replacement == null)
                            {
                                Reset = new MethodState(this);
                            }
                            else
                            {
                                Reset = (MethodState)replacement;
                            }
                        }
                    }

                    instance = Reset;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private TwoStateVariableState m_activeState;
        private PropertyState<NodeId> m_inputNode;
        private TwoStateVariableState m_suppressedState;
        private TwoStateVariableState m_outOfServiceState;
        private ShelvedStateMachineState m_shelvingState;
        private PropertyState<bool> m_suppressedOrShelved;
        private PropertyState<double> m_maxTimeShelved;
        private PropertyState<bool> m_audibleEnabled;
        private AudioVariableState m_audibleSound;
        private TwoStateVariableState m_silenceState;
        private PropertyState<double> m_onDelay;
        private PropertyState<double> m_offDelay;
        private BaseDataVariableState<bool> m_firstInGroupFlag;
        private AlarmGroupState m_firstInGroup;
        private TwoStateVariableState m_latchedState;
        private PropertyState<double> m_reAlarmTime;
        private BaseDataVariableState<short> m_reAlarmRepeatCount;
        private MethodState m_silenceMethod;
        private MethodState m_suppressMethod;
        private MethodState m_unsuppressMethod;
        private MethodState m_removeFromServiceMethod;
        private MethodState m_placeInServiceMethod;
        private MethodState m_resetMethod;
        #endregion
    }
    #endif
    #endregion

    #region AlarmGroupState Class
    #if (!OPCUA_EXCLUDE_AlarmGroupState)
    /// <summary>
    /// Stores an instance of the AlarmGroupType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AlarmGroupState : FolderState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AlarmGroupState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AlarmGroupType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFgAAAEFsYXJtR3JvdXBUeXBlSW5zdGFuY2UBABVAAQAVQBVAAAD/////" +
           "AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region ShelvedStateMachineState Class
    #if (!OPCUA_EXCLUDE_ShelvedStateMachineState)
    /// <summary>
    /// Stores an instance of the ShelvedStateMachineType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ShelvedStateMachineState : FiniteStateMachineState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ShelvedStateMachineState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ShelvedStateMachineType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHwAAAFNoZWx2ZWRTdGF0ZU1hY2hpbmVUeXBlSW5zdGFuY2UBAHELAQBx" +
           "C3ELAAD/////BQAAABVgiQoCAAAAAAAMAAAAQ3VycmVudFN0YXRlAQDIFwAvAQDICsgXAAAAFf////8B" +
           "Af////8BAAAAFWCJCgIAAAAAAAIAAABJZAEAyRcALgBEyRcAAAAR/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAADAAAAFVuc2hlbHZlVGltZQEAmyMALgBEmyMAAAEAIgH/////AQH/////AAAAAARhggoEAAAAAAAL" +
           "AAAAVGltZWRTaGVsdmUBAIULAC8BAIULhQsAAAEBAwAAAAA1AQEAdwsANQEBAIELAQD5CwABAFUrAQAA" +
           "ABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAK8LAC4ARK8LAACWAQAAAAEAKgEBegAAAAwAAABT" +
           "aGVsdmluZ1RpbWUBACIB/////wAAAAADAAAAAFUAAABJZiBub3QgMCwgdGhpcyBwYXJhbWV0ZXIgc3Bl" +
           "Y2lmaWVzIGEgZml4ZWQgdGltZSBmb3Igd2hpY2ggdGhlIEFsYXJtIGlzIHRvIGJlIHNoZWx2ZWQuAQAo" +
           "AQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAACAAAAFVuc2hlbHZlAQCDCwAvAQCDC4MLAAAB" +
           "AQMAAAAANQEBAHwLADUBAQB/CwEA+QsAAQBVKwAAAAAEYYIKBAAAAAAADQAAAE9uZVNob3RTaGVsdmUB" +
           "AIQLAC8BAIQLhAsAAAEBAwAAAAA1AQEAeAsANQEBAH4LAQD5CwABAFUrAAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<double> UnshelveTime
        {
            get
            {
                return m_unshelveTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_unshelveTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_unshelveTime = value;
            }
        }

        /// <remarks />
        public TimedShelveMethodState TimedShelve
        {
            get
            {
                return m_timedShelveMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_timedShelveMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_timedShelveMethod = value;
            }
        }

        /// <remarks />
        public MethodState Unshelve
        {
            get
            {
                return m_unshelveMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_unshelveMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_unshelveMethod = value;
            }
        }

        /// <remarks />
        public MethodState OneShotShelve
        {
            get
            {
                return m_oneShotShelveMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_oneShotShelveMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_oneShotShelveMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_unshelveTime != null)
            {
                children.Add(m_unshelveTime);
            }

            if (m_timedShelveMethod != null)
            {
                children.Add(m_timedShelveMethod);
            }

            if (m_unshelveMethod != null)
            {
                children.Add(m_unshelveMethod);
            }

            if (m_oneShotShelveMethod != null)
            {
                children.Add(m_oneShotShelveMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.UnshelveTime:
                {
                    if (createOrReplace)
                    {
                        if (UnshelveTime == null)
                        {
                            if (replacement == null)
                            {
                                UnshelveTime = new PropertyState<double>(this);
                            }
                            else
                            {
                                UnshelveTime = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = UnshelveTime;
                    break;
                }

                case Opc.Ua.BrowseNames.TimedShelve:
                {
                    if (createOrReplace)
                    {
                        if (TimedShelve == null)
                        {
                            if (replacement == null)
                            {
                                TimedShelve = new TimedShelveMethodState(this);
                            }
                            else
                            {
                                TimedShelve = (TimedShelveMethodState)replacement;
                            }
                        }
                    }

                    instance = TimedShelve;
                    break;
                }

                case Opc.Ua.BrowseNames.Unshelve:
                {
                    if (createOrReplace)
                    {
                        if (Unshelve == null)
                        {
                            if (replacement == null)
                            {
                                Unshelve = new MethodState(this);
                            }
                            else
                            {
                                Unshelve = (MethodState)replacement;
                            }
                        }
                    }

                    instance = Unshelve;
                    break;
                }

                case Opc.Ua.BrowseNames.OneShotShelve:
                {
                    if (createOrReplace)
                    {
                        if (OneShotShelve == null)
                        {
                            if (replacement == null)
                            {
                                OneShotShelve = new MethodState(this);
                            }
                            else
                            {
                                OneShotShelve = (MethodState)replacement;
                            }
                        }
                    }

                    instance = OneShotShelve;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<double> m_unshelveTime;
        private TimedShelveMethodState m_timedShelveMethod;
        private MethodState m_unshelveMethod;
        private MethodState m_oneShotShelveMethod;
        #endregion
    }
    #endif
    #endregion

    #region TimedShelveMethodState Class
    #if (!OPCUA_EXCLUDE_TimedShelveMethodState)
    /// <summary>
    /// Stores an instance of the TimedShelveMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TimedShelveMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TimedShelveMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new TimedShelveMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAFQAAAFRpbWVkU2hlbHZlTWV0aG9kVHlwZQEA1hcALwEA1hfWFwAAAQH/" +
           "////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBANcXAC4ARNcXAACWAQAAAAEAKgEBegAA" +
           "AAwAAABTaGVsdmluZ1RpbWUBACIB/////wAAAAADAAAAAFUAAABJZiBub3QgMCwgdGhpcyBwYXJhbWV0" +
           "ZXIgc3BlY2lmaWVzIGEgZml4ZWQgdGltZSBmb3Igd2hpY2ggdGhlIEFsYXJtIGlzIHRvIGJlIHNoZWx2" +
           "ZWQuAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public TimedShelveMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            double shelvingTime = (double)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    shelvingTime);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult TimedShelveMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        double shelvingTime);
    #endif
    #endregion

    #region LimitAlarmState Class
    #if (!OPCUA_EXCLUDE_LimitAlarmState)
    /// <summary>
    /// Stores an instance of the LimitAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class LimitAlarmState : AlarmConditionState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public LimitAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.LimitAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (HighHighLimit != null)
            {
                HighHighLimit.Initialize(context, HighHighLimit_InitializationString);
            }

            if (HighLimit != null)
            {
                HighLimit.Initialize(context, HighLimit_InitializationString);
            }

            if (LowLimit != null)
            {
                LowLimit.Initialize(context, LowLimit_InitializationString);
            }

            if (LowLowLimit != null)
            {
                LowLowLimit.Initialize(context, LowLowLimit_InitializationString);
            }

            if (BaseHighHighLimit != null)
            {
                BaseHighHighLimit.Initialize(context, BaseHighHighLimit_InitializationString);
            }

            if (BaseHighLimit != null)
            {
                BaseHighLimit.Initialize(context, BaseHighLimit_InitializationString);
            }

            if (BaseLowLimit != null)
            {
                BaseLowLimit.Initialize(context, BaseLowLimit_InitializationString);
            }

            if (BaseLowLowLimit != null)
            {
                BaseLowLowLimit.Initialize(context, BaseLowLowLimit_InitializationString);
            }
        }

        #region Initialization String
        private const string HighHighLimit_InitializationString =
           "//////////8VYIkKAgAAAAAADQAAAEhpZ2hIaWdoTGltaXQBAHQrAC4ARHQrAAAAC/////8BAf////8A" +
           "AAAA";

        private const string HighLimit_InitializationString =
           "//////////8VYIkKAgAAAAAACQAAAEhpZ2hMaW1pdAEAdSsALgBEdSsAAAAL/////wEB/////wAAAAA=";

        private const string LowLimit_InitializationString =
           "//////////8VYIkKAgAAAAAACAAAAExvd0xpbWl0AQB2KwAuAER2KwAAAAv/////AQH/////AAAAAA==";

        private const string LowLowLimit_InitializationString =
           "//////////8VYIkKAgAAAAAACwAAAExvd0xvd0xpbWl0AQB3KwAuAER3KwAAAAv/////AQH/////AAAA" +
           "AA==";

        private const string BaseHighHighLimit_InitializationString =
           "//////////8VYIkKAgAAAAAAEQAAAEJhc2VIaWdoSGlnaExpbWl0AQC8QAAuAES8QAAAAAv/////AQH/" +
           "////AAAAAA==";

        private const string BaseHighLimit_InitializationString =
           "//////////8VYIkKAgAAAAAADQAAAEJhc2VIaWdoTGltaXQBAL1AAC4ARL1AAAAAC/////8BAf////8A" +
           "AAAA";

        private const string BaseLowLimit_InitializationString =
           "//////////8VYIkKAgAAAAAADAAAAEJhc2VMb3dMaW1pdAEAvkAALgBEvkAAAAAL/////wEB/////wAA" +
           "AAA=";

        private const string BaseLowLowLimit_InitializationString =
           "//////////8VYIkKAgAAAAAADwAAAEJhc2VMb3dMb3dMaW1pdAEAv0AALgBEv0AAAAAL/////wEB////" +
           "/wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFgAAAExpbWl0QWxhcm1UeXBlSW5zdGFuY2UBAIsLAQCLC4sLAAD/////" +
           "IgAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEA5BcALgBE5BcAAAAP/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACQAAAEV2ZW50VHlwZQEA5RcALgBE5RcAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFNv" +
           "dXJjZU5vZGUBAOYXAC4AROYXAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABTb3VyY2VOYW1l" +
           "AQDnFwAuAETnFwAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGltZQEA6BcALgBE6BcAAAEA" +
           "JgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBAOkXAC4AROkXAAABACYB////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAOsXAC4AROsXAAAAFf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAgAAABTZXZlcml0eQEA7BcALgBE7BcAAAAF/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "EAAAAENvbmRpdGlvbkNsYXNzSWQBAHErAC4ARHErAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAABIA" +
           "AABDb25kaXRpb25DbGFzc05hbWUBAHIrAC4ARHIrAAAAFf////8BAf////8AAAAAFWCJCgIAAAAAAA0A" +
           "AABDb25kaXRpb25OYW1lAQABJAAuAEQBJAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAQnJh" +
           "bmNoSWQBAAIkAC4ARAIkAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAYAAABSZXRhaW4BAO0XAC4A" +
           "RO0XAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABFbmFibGVkU3RhdGUBAAMkAC8BACMjAyQA" +
           "AAAV/////wEBBQAAAAEALCMAAQAXJAEALCMAAQAgJAEALCMAAQAtJAEALCMAAQA2JAEALCMAAQA/JAEA" +
           "AAAVYIkKAgAAAAAAAgAAAElkAQAEJAAuAEQEJAAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAA" +
           "UXVhbGl0eQEADCQALwEAKiMMJAAAABP/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291cmNlVGlt" +
           "ZXN0YW1wAQANJAAuAEQNJAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABMYXN0U2V2ZXJp" +
           "dHkBAA4kAC8BACojDiQAAAAF/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRpbWVzdGFt" +
           "cAEADyQALgBEDyQAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAAQ29tbWVudAEAECQALwEA" +
           "KiMQJAAAABX/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291cmNlVGltZXN0YW1wAQARJAAuAEQR" +
           "JAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGllbnRVc2VySWQBABIkAC4ARBIkAAAA" +
           "DP////8BAf////8AAAAABGGCCgQAAAAAAAcAAABEaXNhYmxlAQAUJAAvAQBEIxQkAAABAQEAAAABAPkL" +
           "AAEA8woAAAAABGGCCgQAAAAAAAYAAABFbmFibGUBABMkAC8BAEMjEyQAAAEBAQAAAAEA+QsAAQDzCgAA" +
           "AAAEYYIKBAAAAAAACgAAAEFkZENvbW1lbnQBABUkAC8BAEUjFSQAAAEBAQAAAAEA+QsAAQANCwEAAAAX" +
           "YKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQAWJAAuAEQWJAAAlgIAAAABACoBAUYAAAAHAAAARXZl" +
           "bnRJZAAP/////wAAAAADAAAAACgAAABUaGUgaWRlbnRpZmllciBmb3IgdGhlIGV2ZW50IHRvIGNvbW1l" +
           "bnQuAQAqAQFCAAAABwAAAENvbW1lbnQAFf////8AAAAAAwAAAAAkAAAAVGhlIGNvbW1lbnQgdG8gYWRk" +
           "IHRvIHRoZSBjb25kaXRpb24uAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAACgAAAEFj" +
           "a2VkU3RhdGUBABckAC8BACMjFyQAAAAV/////wEBAQAAAAEALCMBAQADJAEAAAAVYIkKAgAAAAAAAgAA" +
           "AElkAQAYJAAuAEQYJAAAAAH/////AQH/////AAAAAARhggoEAAAAAAALAAAAQWNrbm93bGVkZ2UBACkk" +
           "AC8BAJcjKSQAAAEBAQAAAAEA+QsAAQDwIgEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQAq" +
           "JAAuAEQqJAAAlgIAAAABACoBAUYAAAAHAAAARXZlbnRJZAAP/////wAAAAADAAAAACgAAABUaGUgaWRl" +
           "bnRpZmllciBmb3IgdGhlIGV2ZW50IHRvIGNvbW1lbnQuAQAqAQFCAAAABwAAAENvbW1lbnQAFf////8A" +
           "AAAAAwAAAAAkAAAAVGhlIGNvbW1lbnQgdG8gYWRkIHRvIHRoZSBjb25kaXRpb24uAQAoAQEAAAABAAAA" +
           "AAAAAAEB/////wAAAAAVYIkKAgAAAAAACwAAAEFjdGl2ZVN0YXRlAQAtJAAvAQAjIy0kAAAAFf////8B" +
           "AQEAAAABACwjAQEAAyQBAAAAFWCJCgIAAAAAAAIAAABJZAEALiQALgBELiQAAAAB/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACQAAAElucHV0Tm9kZQEAcysALgBEcysAAAAR/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAAEwAAAFN1cHByZXNzZWRPclNoZWx2ZWQBAGQkAC4ARGQkAAAAAf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAA0AAABIaWdoSGlnaExpbWl0AQB0KwAuAER0KwAAAAv/////AQH/////AAAAABVgiQoCAAAAAAAJ" +
           "AAAASGlnaExpbWl0AQB1KwAuAER1KwAAAAv/////AQH/////AAAAABVgiQoCAAAAAAAIAAAATG93TGlt" +
           "aXQBAHYrAC4ARHYrAAAAC/////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABMb3dMb3dMaW1pdAEAdysA" +
           "LgBEdysAAAAL/////wEB/////wAAAAAVYIkKAgAAAAAAEQAAAEJhc2VIaWdoSGlnaExpbWl0AQC8QAAu" +
           "AES8QAAAAAv/////AQH/////AAAAABVgiQoCAAAAAAANAAAAQmFzZUhpZ2hMaW1pdAEAvUAALgBEvUAA" +
           "AAAL/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAEJhc2VMb3dMaW1pdAEAvkAALgBEvkAAAAAL////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAADwAAAEJhc2VMb3dMb3dMaW1pdAEAv0AALgBEv0AAAAAL/////wEB" +
           "/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<double> HighHighLimit
        {
            get
            {
                return m_highHighLimit;
            }

            set
            {
                if (!Object.ReferenceEquals(m_highHighLimit, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_highHighLimit = value;
            }
        }

        /// <remarks />
        public PropertyState<double> HighLimit
        {
            get
            {
                return m_highLimit;
            }

            set
            {
                if (!Object.ReferenceEquals(m_highLimit, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_highLimit = value;
            }
        }

        /// <remarks />
        public PropertyState<double> LowLimit
        {
            get
            {
                return m_lowLimit;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lowLimit, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lowLimit = value;
            }
        }

        /// <remarks />
        public PropertyState<double> LowLowLimit
        {
            get
            {
                return m_lowLowLimit;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lowLowLimit, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lowLowLimit = value;
            }
        }

        /// <remarks />
        public PropertyState<double> BaseHighHighLimit
        {
            get
            {
                return m_baseHighHighLimit;
            }

            set
            {
                if (!Object.ReferenceEquals(m_baseHighHighLimit, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_baseHighHighLimit = value;
            }
        }

        /// <remarks />
        public PropertyState<double> BaseHighLimit
        {
            get
            {
                return m_baseHighLimit;
            }

            set
            {
                if (!Object.ReferenceEquals(m_baseHighLimit, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_baseHighLimit = value;
            }
        }

        /// <remarks />
        public PropertyState<double> BaseLowLimit
        {
            get
            {
                return m_baseLowLimit;
            }

            set
            {
                if (!Object.ReferenceEquals(m_baseLowLimit, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_baseLowLimit = value;
            }
        }

        /// <remarks />
        public PropertyState<double> BaseLowLowLimit
        {
            get
            {
                return m_baseLowLowLimit;
            }

            set
            {
                if (!Object.ReferenceEquals(m_baseLowLowLimit, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_baseLowLowLimit = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_highHighLimit != null)
            {
                children.Add(m_highHighLimit);
            }

            if (m_highLimit != null)
            {
                children.Add(m_highLimit);
            }

            if (m_lowLimit != null)
            {
                children.Add(m_lowLimit);
            }

            if (m_lowLowLimit != null)
            {
                children.Add(m_lowLowLimit);
            }

            if (m_baseHighHighLimit != null)
            {
                children.Add(m_baseHighHighLimit);
            }

            if (m_baseHighLimit != null)
            {
                children.Add(m_baseHighLimit);
            }

            if (m_baseLowLimit != null)
            {
                children.Add(m_baseLowLimit);
            }

            if (m_baseLowLowLimit != null)
            {
                children.Add(m_baseLowLowLimit);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.HighHighLimit:
                {
                    if (createOrReplace)
                    {
                        if (HighHighLimit == null)
                        {
                            if (replacement == null)
                            {
                                HighHighLimit = new PropertyState<double>(this);
                            }
                            else
                            {
                                HighHighLimit = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = HighHighLimit;
                    break;
                }

                case Opc.Ua.BrowseNames.HighLimit:
                {
                    if (createOrReplace)
                    {
                        if (HighLimit == null)
                        {
                            if (replacement == null)
                            {
                                HighLimit = new PropertyState<double>(this);
                            }
                            else
                            {
                                HighLimit = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = HighLimit;
                    break;
                }

                case Opc.Ua.BrowseNames.LowLimit:
                {
                    if (createOrReplace)
                    {
                        if (LowLimit == null)
                        {
                            if (replacement == null)
                            {
                                LowLimit = new PropertyState<double>(this);
                            }
                            else
                            {
                                LowLimit = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = LowLimit;
                    break;
                }

                case Opc.Ua.BrowseNames.LowLowLimit:
                {
                    if (createOrReplace)
                    {
                        if (LowLowLimit == null)
                        {
                            if (replacement == null)
                            {
                                LowLowLimit = new PropertyState<double>(this);
                            }
                            else
                            {
                                LowLowLimit = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = LowLowLimit;
                    break;
                }

                case Opc.Ua.BrowseNames.BaseHighHighLimit:
                {
                    if (createOrReplace)
                    {
                        if (BaseHighHighLimit == null)
                        {
                            if (replacement == null)
                            {
                                BaseHighHighLimit = new PropertyState<double>(this);
                            }
                            else
                            {
                                BaseHighHighLimit = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = BaseHighHighLimit;
                    break;
                }

                case Opc.Ua.BrowseNames.BaseHighLimit:
                {
                    if (createOrReplace)
                    {
                        if (BaseHighLimit == null)
                        {
                            if (replacement == null)
                            {
                                BaseHighLimit = new PropertyState<double>(this);
                            }
                            else
                            {
                                BaseHighLimit = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = BaseHighLimit;
                    break;
                }

                case Opc.Ua.BrowseNames.BaseLowLimit:
                {
                    if (createOrReplace)
                    {
                        if (BaseLowLimit == null)
                        {
                            if (replacement == null)
                            {
                                BaseLowLimit = new PropertyState<double>(this);
                            }
                            else
                            {
                                BaseLowLimit = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = BaseLowLimit;
                    break;
                }

                case Opc.Ua.BrowseNames.BaseLowLowLimit:
                {
                    if (createOrReplace)
                    {
                        if (BaseLowLowLimit == null)
                        {
                            if (replacement == null)
                            {
                                BaseLowLowLimit = new PropertyState<double>(this);
                            }
                            else
                            {
                                BaseLowLowLimit = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = BaseLowLowLimit;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<double> m_highHighLimit;
        private PropertyState<double> m_highLimit;
        private PropertyState<double> m_lowLimit;
        private PropertyState<double> m_lowLowLimit;
        private PropertyState<double> m_baseHighHighLimit;
        private PropertyState<double> m_baseHighLimit;
        private PropertyState<double> m_baseLowLimit;
        private PropertyState<double> m_baseLowLowLimit;
        #endregion
    }
    #endif
    #endregion

    #region ExclusiveLimitStateMachineState Class
    #if (!OPCUA_EXCLUDE_ExclusiveLimitStateMachineState)
    /// <summary>
    /// Stores an instance of the ExclusiveLimitStateMachineType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ExclusiveLimitStateMachineState : FiniteStateMachineState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ExclusiveLimitStateMachineState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ExclusiveLimitStateMachineType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJgAAAEV4Y2x1c2l2ZUxpbWl0U3RhdGVNYWNoaW5lVHlwZUluc3RhbmNl" +
           "AQBmJAEAZiRmJAAA/////wEAAAAVYIkKAgAAAAAADAAAAEN1cnJlbnRTdGF0ZQEAZyQALwEAyApnJAAA" +
           "ABX/////AQH/////AQAAABVgiQoCAAAAAAACAAAASWQBAGgkAC4ARGgkAAAAEf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region ExclusiveLimitAlarmState Class
    #if (!OPCUA_EXCLUDE_ExclusiveLimitAlarmState)
    /// <summary>
    /// Stores an instance of the ExclusiveLimitAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ExclusiveLimitAlarmState : LimitAlarmState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ExclusiveLimitAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ExclusiveLimitAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHwAAAEV4Y2x1c2l2ZUxpbWl0QWxhcm1UeXBlSW5zdGFuY2UBAH0kAQB9" +
           "JH0kAAD/////GwAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEAfiQALgBEfiQAAAAP/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEAfyQALgBEfyQAAAAR/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACgAAAFNvdXJjZU5vZGUBAIAkAC4ARIAkAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABT" +
           "b3VyY2VOYW1lAQCBJAAuAESBJAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGltZQEAgiQA" +
           "LgBEgiQAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBAIMkAC4ARIMk" +
           "AAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAIUkAC4ARIUkAAAAFf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAhiQALgBEhiQAAAAF/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAAEAAAAENvbmRpdGlvbkNsYXNzSWQBAHgrAC4ARHgrAAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAABIAAABDb25kaXRpb25DbGFzc05hbWUBAHkrAC4ARHkrAAAAFf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAA0AAABDb25kaXRpb25OYW1lAQCHJAAuAESHJAAAAAz/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAIAAAAQnJhbmNoSWQBAIgkAC4ARIgkAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAYAAABSZXRh" +
           "aW4BAIkkAC4ARIkkAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABFbmFibGVkU3RhdGUBAIok" +
           "AC8BACMjiiQAAAAV/////wEBBQAAAAEALCMAAQCgJAEALCMAAQCpJAEALCMAAQC2JAEALCMAAQC/JAEA" +
           "LCMAAQDIJAEAAAAVYIkKAgAAAAAAAgAAAElkAQCLJAAuAESLJAAAAAH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAHAAAAUXVhbGl0eQEAkyQALwEAKiOTJAAAABP/////AQH/////AQAAABVgiQoCAAAAAAAPAAAA" +
           "U291cmNlVGltZXN0YW1wAQCUJAAuAESUJAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABM" +
           "YXN0U2V2ZXJpdHkBAJUkAC8BACojlSQAAAAF/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJj" +
           "ZVRpbWVzdGFtcAEAliQALgBEliQAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAAQ29tbWVu" +
           "dAEAlyQALwEAKiOXJAAAABX/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291cmNlVGltZXN0YW1w" +
           "AQCYJAAuAESYJAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGllbnRVc2VySWQBAJkk" +
           "AC4ARJkkAAAADP////8BAf////8AAAAABGGCCgQAAAAAAAcAAABEaXNhYmxlAQCbJAAvAQBEI5skAAAB" +
           "AQEAAAABAPkLAAEA8woAAAAABGGCCgQAAAAAAAYAAABFbmFibGUBAJokAC8BAEMjmiQAAAEBAQAAAAEA" +
           "+QsAAQDzCgAAAAAEYYIKBAAAAAAACgAAAEFkZENvbW1lbnQBAJwkAC8BAEUjnCQAAAEBAQAAAAEA+QsA" +
           "AQANCwEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQCdJAAuAESdJAAAlgIAAAABACoBAUYA" +
           "AAAHAAAARXZlbnRJZAAP/////wAAAAADAAAAACgAAABUaGUgaWRlbnRpZmllciBmb3IgdGhlIGV2ZW50" +
           "IHRvIGNvbW1lbnQuAQAqAQFCAAAABwAAAENvbW1lbnQAFf////8AAAAAAwAAAAAkAAAAVGhlIGNvbW1l" +
           "bnQgdG8gYWRkIHRvIHRoZSBjb25kaXRpb24uAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAA" +
           "AAAACgAAAEFja2VkU3RhdGUBAKAkAC8BACMjoCQAAAAV/////wEBAQAAAAEALCMBAQCKJAEAAAAVYIkK" +
           "AgAAAAAAAgAAAElkAQChJAAuAEShJAAAAAH/////AQH/////AAAAAARhggoEAAAAAAALAAAAQWNrbm93" +
           "bGVkZ2UBALIkAC8BAJcjsiQAAAEBAQAAAAEA+QsAAQDwIgEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJn" +
           "dW1lbnRzAQCzJAAuAESzJAAAlgIAAAABACoBAUYAAAAHAAAARXZlbnRJZAAP/////wAAAAADAAAAACgA" +
           "AABUaGUgaWRlbnRpZmllciBmb3IgdGhlIGV2ZW50IHRvIGNvbW1lbnQuAQAqAQFCAAAABwAAAENvbW1l" +
           "bnQAFf////8AAAAAAwAAAAAkAAAAVGhlIGNvbW1lbnQgdG8gYWRkIHRvIHRoZSBjb25kaXRpb24uAQAo" +
           "AQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAACwAAAEFjdGl2ZVN0YXRlAQC2JAAvAQAjI7Yk" +
           "AAAAFf////8BAQIAAAABACwjAQEAiiQBACwjAAEA7yQBAAAAFWCJCgIAAAAAAAIAAABJZAEAtyQALgBE" +
           "tyQAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAACQAAAElucHV0Tm9kZQEAeisALgBEeisAAAAR////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAAEwAAAFN1cHByZXNzZWRPclNoZWx2ZWQBAO0kAC4ARO0kAAAAAf//" +
           "//8BAf////8AAAAABGCACgEAAAAAAAoAAABMaW1pdFN0YXRlAQDvJAAvAQBmJO8kAAABAAAAAQAsIwEB" +
           "ALYkAgAAABVgiQoCAAAAAAAMAAAAQ3VycmVudFN0YXRlAQDwJAAvAQDICvAkAAAAFf////8BAf////8B" +
           "AAAAFWCJCgIAAAAAAAIAAABJZAEA8SQALgBE8SQAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAADgAA" +
           "AExhc3RUcmFuc2l0aW9uAQD1JAAvAQDPCvUkAAAAFf////8BAf////8CAAAAFWCJCgIAAAAAAAIAAABJ" +
           "ZAEA9iQALgBE9iQAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAFRyYW5zaXRpb25UaW1lAQD5" +
           "JAAuAET5JAAAAQAmAf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public ExclusiveLimitStateMachineState LimitState
        {
            get
            {
                return m_limitState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_limitState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_limitState = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_limitState != null)
            {
                children.Add(m_limitState);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.LimitState:
                {
                    if (createOrReplace)
                    {
                        if (LimitState == null)
                        {
                            if (replacement == null)
                            {
                                LimitState = new ExclusiveLimitStateMachineState(this);
                            }
                            else
                            {
                                LimitState = (ExclusiveLimitStateMachineState)replacement;
                            }
                        }
                    }

                    instance = LimitState;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private ExclusiveLimitStateMachineState m_limitState;
        #endregion
    }
    #endif
    #endregion

    #region NonExclusiveLimitAlarmState Class
    #if (!OPCUA_EXCLUDE_NonExclusiveLimitAlarmState)
    /// <summary>
    /// Stores an instance of the NonExclusiveLimitAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class NonExclusiveLimitAlarmState : LimitAlarmState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public NonExclusiveLimitAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.NonExclusiveLimitAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (HighHighState != null)
            {
                HighHighState.Initialize(context, HighHighState_InitializationString);
            }

            if (HighState != null)
            {
                HighState.Initialize(context, HighState_InitializationString);
            }

            if (LowState != null)
            {
                LowState.Initialize(context, LowState_InitializationString);
            }

            if (LowLowState != null)
            {
                LowLowState.Initialize(context, LowLowState_InitializationString);
            }
        }

        #region Initialization String
        private const string HighHighState_InitializationString =
           "//////////8VYIkKAgAAAAAADQAAAEhpZ2hIaWdoU3RhdGUBACQnAC8BACMjJCcAAAAV/////wEBAQAA" +
           "AAEALCMBAQDrJgQAAAAVYIkKAgAAAAAAAgAAAElkAQAlJwAuAEQlJwAAAAH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAOAAAAVHJhbnNpdGlvblRpbWUBACknAC4ARCknAAABACYB/////wEB/////wAAAAAVYKkK" +
           "AgAAAAAACQAAAFRydWVTdGF0ZQEAKycALgBEKycAABUDAgAAAGVuDwAAAEhpZ2hIaWdoIGFjdGl2ZQAV" +
           "/////wEB/////wAAAAAVYKkKAgAAAAAACgAAAEZhbHNlU3RhdGUBACwnAC4ARCwnAAAVAwIAAABlbhEA" +
           "AABIaWdoSGlnaCBpbmFjdGl2ZQAV/////wEB/////wAAAAA=";

        private const string HighState_InitializationString =
           "//////////8VYIkKAgAAAAAACQAAAEhpZ2hTdGF0ZQEALScALwEAIyMtJwAAABX/////AQEBAAAAAQAs" +
           "IwEBAOsmBAAAABVgiQoCAAAAAAACAAAASWQBAC4nAC4ARC4nAAAAAf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAA4AAABUcmFuc2l0aW9uVGltZQEAMicALgBEMicAAAEAJgH/////AQH/////AAAAABVgqQoCAAAA" +
           "AAAJAAAAVHJ1ZVN0YXRlAQA0JwAuAEQ0JwAAFQMCAAAAZW4LAAAASGlnaCBhY3RpdmUAFf////8BAf//" +
           "//8AAAAAFWCpCgIAAAAAAAoAAABGYWxzZVN0YXRlAQA1JwAuAEQ1JwAAFQMCAAAAZW4NAAAASGlnaCBp" +
           "bmFjdGl2ZQAV/////wEB/////wAAAAA=";

        private const string LowState_InitializationString =
           "//////////8VYIkKAgAAAAAACAAAAExvd1N0YXRlAQA2JwAvAQAjIzYnAAAAFf////8BAQEAAAABACwj" +
           "AQEA6yYEAAAAFWCJCgIAAAAAAAIAAABJZAEANycALgBENycAAAAB/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAADgAAAFRyYW5zaXRpb25UaW1lAQA7JwAuAEQ7JwAAAQAmAf////8BAf////8AAAAAFWCpCgIAAAAA" +
           "AAkAAABUcnVlU3RhdGUBAD0nAC4ARD0nAAAVAwIAAABlbgoAAABMb3cgYWN0aXZlABX/////AQH/////" +
           "AAAAABVgqQoCAAAAAAAKAAAARmFsc2VTdGF0ZQEAPicALgBEPicAABUDAgAAAGVuDAAAAExvdyBpbmFj" +
           "dGl2ZQAV/////wEB/////wAAAAA=";

        private const string LowLowState_InitializationString =
           "//////////8VYIkKAgAAAAAACwAAAExvd0xvd1N0YXRlAQA/JwAvAQAjIz8nAAAAFf////8BAQEAAAAB" +
           "ACwjAQEA6yYEAAAAFWCJCgIAAAAAAAIAAABJZAEAQCcALgBEQCcAAAAB/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAADgAAAFRyYW5zaXRpb25UaW1lAQBEJwAuAEREJwAAAQAmAf////8BAf////8AAAAAFWCpCgIA" +
           "AAAAAAkAAABUcnVlU3RhdGUBAEYnAC4AREYnAAAVAwIAAABlbg0AAABMb3dMb3cgYWN0aXZlABX/////" +
           "AQH/////AAAAABVgqQoCAAAAAAAKAAAARmFsc2VTdGF0ZQEARycALgBERycAABUDAgAAAGVuDwAAAExv" +
           "d0xvdyBpbmFjdGl2ZQAV/////wEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIgAAAE5vbkV4Y2x1c2l2ZUxpbWl0QWxhcm1UeXBlSW5zdGFuY2UBALIm" +
           "AQCyJrImAAD/////HgAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEAsyYALgBEsyYAAAAP/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEAtCYALgBEtCYAAAAR/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACgAAAFNvdXJjZU5vZGUBALUmAC4ARLUmAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoA" +
           "AABTb3VyY2VOYW1lAQC2JgAuAES2JgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGltZQEA" +
           "tyYALgBEtyYAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBALgmAC4A" +
           "RLgmAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBALomAC4ARLomAAAAFf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAuyYALgBEuyYAAAAF/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAAEAAAAENvbmRpdGlvbkNsYXNzSWQBAIQrAC4ARIQrAAAAEf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAABIAAABDb25kaXRpb25DbGFzc05hbWUBAIUrAC4ARIUrAAAAFf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAA0AAABDb25kaXRpb25OYW1lAQC8JgAuAES8JgAAAAz/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAIAAAAQnJhbmNoSWQBAL0mAC4ARL0mAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAYAAABS" +
           "ZXRhaW4BAL4mAC4ARL4mAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABFbmFibGVkU3RhdGUB" +
           "AL8mAC8BACMjvyYAAAAV/////wEBBQAAAAEALCMAAQDVJgEALCMAAQDeJgEALCMAAQDrJgEALCMAAQD0" +
           "JgEALCMAAQD9JgEAAAAVYIkKAgAAAAAAAgAAAElkAQDAJgAuAETAJgAAAAH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAHAAAAUXVhbGl0eQEAyCYALwEAKiPIJgAAABP/////AQH/////AQAAABVgiQoCAAAAAAAP" +
           "AAAAU291cmNlVGltZXN0YW1wAQDJJgAuAETJJgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwA" +
           "AABMYXN0U2V2ZXJpdHkBAMomAC8BACojyiYAAAAF/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNv" +
           "dXJjZVRpbWVzdGFtcAEAyyYALgBEyyYAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAAQ29t" +
           "bWVudAEAzCYALwEAKiPMJgAAABX/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291cmNlVGltZXN0" +
           "YW1wAQDNJgAuAETNJgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGllbnRVc2VySWQB" +
           "AM4mAC4ARM4mAAAADP////8BAf////8AAAAABGGCCgQAAAAAAAcAAABEaXNhYmxlAQDQJgAvAQBEI9Am" +
           "AAABAQEAAAABAPkLAAEA8woAAAAABGGCCgQAAAAAAAYAAABFbmFibGUBAM8mAC8BAEMjzyYAAAEBAQAA" +
           "AAEA+QsAAQDzCgAAAAAEYYIKBAAAAAAACgAAAEFkZENvbW1lbnQBANEmAC8BAEUj0SYAAAEBAQAAAAEA" +
           "+QsAAQANCwEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQDSJgAuAETSJgAAlgIAAAABACoB" +
           "AUYAAAAHAAAARXZlbnRJZAAP/////wAAAAADAAAAACgAAABUaGUgaWRlbnRpZmllciBmb3IgdGhlIGV2" +
           "ZW50IHRvIGNvbW1lbnQuAQAqAQFCAAAABwAAAENvbW1lbnQAFf////8AAAAAAwAAAAAkAAAAVGhlIGNv" +
           "bW1lbnQgdG8gYWRkIHRvIHRoZSBjb25kaXRpb24uAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkK" +
           "AgAAAAAACgAAAEFja2VkU3RhdGUBANUmAC8BACMj1SYAAAAV/////wEBAQAAAAEALCMBAQC/JgEAAAAV" +
           "YIkKAgAAAAAAAgAAAElkAQDWJgAuAETWJgAAAAH/////AQH/////AAAAAARhggoEAAAAAAALAAAAQWNr" +
           "bm93bGVkZ2UBAOcmAC8BAJcj5yYAAAEBAQAAAAEA+QsAAQDwIgEAAAAXYKkKAgAAAAAADgAAAElucHV0" +
           "QXJndW1lbnRzAQDoJgAuAEToJgAAlgIAAAABACoBAUYAAAAHAAAARXZlbnRJZAAP/////wAAAAADAAAA" +
           "ACgAAABUaGUgaWRlbnRpZmllciBmb3IgdGhlIGV2ZW50IHRvIGNvbW1lbnQuAQAqAQFCAAAABwAAAENv" +
           "bW1lbnQAFf////8AAAAAAwAAAAAkAAAAVGhlIGNvbW1lbnQgdG8gYWRkIHRvIHRoZSBjb25kaXRpb24u" +
           "AQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAACwAAAEFjdGl2ZVN0YXRlAQDrJgAvAQAj" +
           "I+smAAAAFf////8BAQUAAAABACwjAQEAvyYBACwjAAEAJCcBACwjAAEALScBACwjAAEANicBACwjAAEA" +
           "PycBAAAAFWCJCgIAAAAAAAIAAABJZAEA7CYALgBE7CYAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "CQAAAElucHV0Tm9kZQEAhisALgBEhisAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAAEwAAAFN1cHBy" +
           "ZXNzZWRPclNoZWx2ZWQBACInAC4ARCInAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAA0AAABIaWdo" +
           "SGlnaFN0YXRlAQAkJwAvAQAjIyQnAAAAFf////8BAQEAAAABACwjAQEA6yYEAAAAFWCJCgIAAAAAAAIA" +
           "AABJZAEAJScALgBEJScAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAFRyYW5zaXRpb25UaW1l" +
           "AQApJwAuAEQpJwAAAQAmAf////8BAf////8AAAAAFWCpCgIAAAAAAAkAAABUcnVlU3RhdGUBACsnAC4A" +
           "RCsnAAAVAwIAAABlbg8AAABIaWdoSGlnaCBhY3RpdmUAFf////8BAf////8AAAAAFWCpCgIAAAAAAAoA" +
           "AABGYWxzZVN0YXRlAQAsJwAuAEQsJwAAFQMCAAAAZW4RAAAASGlnaEhpZ2ggaW5hY3RpdmUAFf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAkAAABIaWdoU3RhdGUBAC0nAC8BACMjLScAAAAV/////wEBAQAAAAEA" +
           "LCMBAQDrJgQAAAAVYIkKAgAAAAAAAgAAAElkAQAuJwAuAEQuJwAAAAH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAOAAAAVHJhbnNpdGlvblRpbWUBADInAC4ARDInAAABACYB/////wEB/////wAAAAAVYKkKAgAA" +
           "AAAACQAAAFRydWVTdGF0ZQEANCcALgBENCcAABUDAgAAAGVuCwAAAEhpZ2ggYWN0aXZlABX/////AQH/" +
           "////AAAAABVgqQoCAAAAAAAKAAAARmFsc2VTdGF0ZQEANScALgBENScAABUDAgAAAGVuDQAAAEhpZ2gg" +
           "aW5hY3RpdmUAFf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABMb3dTdGF0ZQEANicALwEAIyM2JwAA" +
           "ABX/////AQEBAAAAAQAsIwEBAOsmBAAAABVgiQoCAAAAAAACAAAASWQBADcnAC4ARDcnAAAAAf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAA4AAABUcmFuc2l0aW9uVGltZQEAOycALgBEOycAAAEAJgH/////AQH/" +
           "////AAAAABVgqQoCAAAAAAAJAAAAVHJ1ZVN0YXRlAQA9JwAuAEQ9JwAAFQMCAAAAZW4KAAAATG93IGFj" +
           "dGl2ZQAV/////wEB/////wAAAAAVYKkKAgAAAAAACgAAAEZhbHNlU3RhdGUBAD4nAC4ARD4nAAAVAwIA" +
           "AABlbgwAAABMb3cgaW5hY3RpdmUAFf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABMb3dMb3dTdGF0" +
           "ZQEAPycALwEAIyM/JwAAABX/////AQEBAAAAAQAsIwEBAOsmBAAAABVgiQoCAAAAAAACAAAASWQBAEAn" +
           "AC4AREAnAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAA4AAABUcmFuc2l0aW9uVGltZQEARCcALgBE" +
           "RCcAAAEAJgH/////AQH/////AAAAABVgqQoCAAAAAAAJAAAAVHJ1ZVN0YXRlAQBGJwAuAERGJwAAFQMC" +
           "AAAAZW4NAAAATG93TG93IGFjdGl2ZQAV/////wEB/////wAAAAAVYKkKAgAAAAAACgAAAEZhbHNlU3Rh" +
           "dGUBAEcnAC4AREcnAAAVAwIAAABlbg8AAABMb3dMb3cgaW5hY3RpdmUAFf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public TwoStateVariableState HighHighState
        {
            get
            {
                return m_highHighState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_highHighState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_highHighState = value;
            }
        }

        /// <remarks />
        public TwoStateVariableState HighState
        {
            get
            {
                return m_highState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_highState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_highState = value;
            }
        }

        /// <remarks />
        public TwoStateVariableState LowState
        {
            get
            {
                return m_lowState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lowState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lowState = value;
            }
        }

        /// <remarks />
        public TwoStateVariableState LowLowState
        {
            get
            {
                return m_lowLowState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lowLowState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lowLowState = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_highHighState != null)
            {
                children.Add(m_highHighState);
            }

            if (m_highState != null)
            {
                children.Add(m_highState);
            }

            if (m_lowState != null)
            {
                children.Add(m_lowState);
            }

            if (m_lowLowState != null)
            {
                children.Add(m_lowLowState);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.HighHighState:
                {
                    if (createOrReplace)
                    {
                        if (HighHighState == null)
                        {
                            if (replacement == null)
                            {
                                HighHighState = new TwoStateVariableState(this);
                            }
                            else
                            {
                                HighHighState = (TwoStateVariableState)replacement;
                            }
                        }
                    }

                    instance = HighHighState;
                    break;
                }

                case Opc.Ua.BrowseNames.HighState:
                {
                    if (createOrReplace)
                    {
                        if (HighState == null)
                        {
                            if (replacement == null)
                            {
                                HighState = new TwoStateVariableState(this);
                            }
                            else
                            {
                                HighState = (TwoStateVariableState)replacement;
                            }
                        }
                    }

                    instance = HighState;
                    break;
                }

                case Opc.Ua.BrowseNames.LowState:
                {
                    if (createOrReplace)
                    {
                        if (LowState == null)
                        {
                            if (replacement == null)
                            {
                                LowState = new TwoStateVariableState(this);
                            }
                            else
                            {
                                LowState = (TwoStateVariableState)replacement;
                            }
                        }
                    }

                    instance = LowState;
                    break;
                }

                case Opc.Ua.BrowseNames.LowLowState:
                {
                    if (createOrReplace)
                    {
                        if (LowLowState == null)
                        {
                            if (replacement == null)
                            {
                                LowLowState = new TwoStateVariableState(this);
                            }
                            else
                            {
                                LowLowState = (TwoStateVariableState)replacement;
                            }
                        }
                    }

                    instance = LowLowState;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private TwoStateVariableState m_highHighState;
        private TwoStateVariableState m_highState;
        private TwoStateVariableState m_lowState;
        private TwoStateVariableState m_lowLowState;
        #endregion
    }
    #endif
    #endregion

    #region NonExclusiveLevelAlarmState Class
    #if (!OPCUA_EXCLUDE_NonExclusiveLevelAlarmState)
    /// <summary>
    /// Stores an instance of the NonExclusiveLevelAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class NonExclusiveLevelAlarmState : NonExclusiveLimitAlarmState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public NonExclusiveLevelAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.NonExclusiveLevelAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIgAAAE5vbkV4Y2x1c2l2ZUxldmVsQWxhcm1UeXBlSW5zdGFuY2UBAEwn" +
           "AQBMJ0wnAAD/////GgAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEATScALgBETScAAAAP/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEATicALgBETicAAAAR/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACgAAAFNvdXJjZU5vZGUBAE8nAC4ARE8nAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoA" +
           "AABTb3VyY2VOYW1lAQBQJwAuAERQJwAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGltZQEA" +
           "UScALgBEUScAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBAFInAC4A" +
           "RFInAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAFQnAC4ARFQnAAAAFf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAVScALgBEVScAAAAF/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAAEAAAAENvbmRpdGlvbkNsYXNzSWQBAIcrAC4ARIcrAAAAEf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAABIAAABDb25kaXRpb25DbGFzc05hbWUBAIgrAC4ARIgrAAAAFf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAA0AAABDb25kaXRpb25OYW1lAQBWJwAuAERWJwAAAAz/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAIAAAAQnJhbmNoSWQBAFcnAC4ARFcnAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAYAAABS" +
           "ZXRhaW4BAFgnAC4ARFgnAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABFbmFibGVkU3RhdGUB" +
           "AFknAC8BACMjWScAAAAV/////wEBBQAAAAEALCMAAQBvJwEALCMAAQB4JwEALCMAAQCFJwEALCMAAQCO" +
           "JwEALCMAAQCXJwEAAAAVYIkKAgAAAAAAAgAAAElkAQBaJwAuAERaJwAAAAH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAHAAAAUXVhbGl0eQEAYicALwEAKiNiJwAAABP/////AQH/////AQAAABVgiQoCAAAAAAAP" +
           "AAAAU291cmNlVGltZXN0YW1wAQBjJwAuAERjJwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwA" +
           "AABMYXN0U2V2ZXJpdHkBAGQnAC8BACojZCcAAAAF/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNv" +
           "dXJjZVRpbWVzdGFtcAEAZScALgBEZScAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAAQ29t" +
           "bWVudAEAZicALwEAKiNmJwAAABX/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291cmNlVGltZXN0" +
           "YW1wAQBnJwAuAERnJwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGllbnRVc2VySWQB" +
           "AGgnAC4ARGgnAAAADP////8BAf////8AAAAABGGCCgQAAAAAAAcAAABEaXNhYmxlAQBqJwAvAQBEI2on" +
           "AAABAQEAAAABAPkLAAEA8woAAAAABGGCCgQAAAAAAAYAAABFbmFibGUBAGknAC8BAEMjaScAAAEBAQAA" +
           "AAEA+QsAAQDzCgAAAAAEYYIKBAAAAAAACgAAAEFkZENvbW1lbnQBAGsnAC8BAEUjaycAAAEBAQAAAAEA" +
           "+QsAAQANCwEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBsJwAuAERsJwAAlgIAAAABACoB" +
           "AUYAAAAHAAAARXZlbnRJZAAP/////wAAAAADAAAAACgAAABUaGUgaWRlbnRpZmllciBmb3IgdGhlIGV2" +
           "ZW50IHRvIGNvbW1lbnQuAQAqAQFCAAAABwAAAENvbW1lbnQAFf////8AAAAAAwAAAAAkAAAAVGhlIGNv" +
           "bW1lbnQgdG8gYWRkIHRvIHRoZSBjb25kaXRpb24uAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkK" +
           "AgAAAAAACgAAAEFja2VkU3RhdGUBAG8nAC8BACMjbycAAAAV/////wEBAQAAAAEALCMBAQBZJwEAAAAV" +
           "YIkKAgAAAAAAAgAAAElkAQBwJwAuAERwJwAAAAH/////AQH/////AAAAAARhggoEAAAAAAALAAAAQWNr" +
           "bm93bGVkZ2UBAIEnAC8BAJcjgScAAAEBAQAAAAEA+QsAAQDwIgEAAAAXYKkKAgAAAAAADgAAAElucHV0" +
           "QXJndW1lbnRzAQCCJwAuAESCJwAAlgIAAAABACoBAUYAAAAHAAAARXZlbnRJZAAP/////wAAAAADAAAA" +
           "ACgAAABUaGUgaWRlbnRpZmllciBmb3IgdGhlIGV2ZW50IHRvIGNvbW1lbnQuAQAqAQFCAAAABwAAAENv" +
           "bW1lbnQAFf////8AAAAAAwAAAAAkAAAAVGhlIGNvbW1lbnQgdG8gYWRkIHRvIHRoZSBjb25kaXRpb24u" +
           "AQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAACwAAAEFjdGl2ZVN0YXRlAQCFJwAvAQAj" +
           "I4UnAAAAFf////8BAQUAAAABACwjAQEAWScBACwjAAEAvicBACwjAAEAxycBACwjAAEA0CcBACwjAAEA" +
           "2ScBAAAAFWCJCgIAAAAAAAIAAABJZAEAhicALgBEhicAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "CQAAAElucHV0Tm9kZQEAiSsALgBEiSsAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAAEwAAAFN1cHBy" +
           "ZXNzZWRPclNoZWx2ZWQBALwnAC4ARLwnAAAAAf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region ExclusiveLevelAlarmState Class
    #if (!OPCUA_EXCLUDE_ExclusiveLevelAlarmState)
    /// <summary>
    /// Stores an instance of the ExclusiveLevelAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ExclusiveLevelAlarmState : ExclusiveLimitAlarmState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ExclusiveLevelAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ExclusiveLevelAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHwAAAEV4Y2x1c2l2ZUxldmVsQWxhcm1UeXBlSW5zdGFuY2UBAAolAQAK" +
           "JQolAAD/////GwAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEACyUALgBECyUAAAAP/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEADCUALgBEDCUAAAAR/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACgAAAFNvdXJjZU5vZGUBAA0lAC4ARA0lAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABT" +
           "b3VyY2VOYW1lAQAOJQAuAEQOJQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGltZQEADyUA" +
           "LgBEDyUAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBABAlAC4ARBAl" +
           "AAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBABIlAC4ARBIlAAAAFf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAEyUALgBEEyUAAAAF/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAAEAAAAENvbmRpdGlvbkNsYXNzSWQBAHsrAC4ARHsrAAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAABIAAABDb25kaXRpb25DbGFzc05hbWUBAHwrAC4ARHwrAAAAFf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAA0AAABDb25kaXRpb25OYW1lAQAUJQAuAEQUJQAAAAz/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAIAAAAQnJhbmNoSWQBABUlAC4ARBUlAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAYAAABSZXRh" +
           "aW4BABYlAC4ARBYlAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABFbmFibGVkU3RhdGUBABcl" +
           "AC8BACMjFyUAAAAV/////wEBBQAAAAEALCMAAQAtJQEALCMAAQA2JQEALCMAAQBDJQEALCMAAQBMJQEA" +
           "LCMAAQBVJQEAAAAVYIkKAgAAAAAAAgAAAElkAQAYJQAuAEQYJQAAAAH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAHAAAAUXVhbGl0eQEAICUALwEAKiMgJQAAABP/////AQH/////AQAAABVgiQoCAAAAAAAPAAAA" +
           "U291cmNlVGltZXN0YW1wAQAhJQAuAEQhJQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABM" +
           "YXN0U2V2ZXJpdHkBACIlAC8BACojIiUAAAAF/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJj" +
           "ZVRpbWVzdGFtcAEAIyUALgBEIyUAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAAQ29tbWVu" +
           "dAEAJCUALwEAKiMkJQAAABX/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291cmNlVGltZXN0YW1w" +
           "AQAlJQAuAEQlJQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGllbnRVc2VySWQBACYl" +
           "AC4ARCYlAAAADP////8BAf////8AAAAABGGCCgQAAAAAAAcAAABEaXNhYmxlAQAoJQAvAQBEIyglAAAB" +
           "AQEAAAABAPkLAAEA8woAAAAABGGCCgQAAAAAAAYAAABFbmFibGUBACclAC8BAEMjJyUAAAEBAQAAAAEA" +
           "+QsAAQDzCgAAAAAEYYIKBAAAAAAACgAAAEFkZENvbW1lbnQBACklAC8BAEUjKSUAAAEBAQAAAAEA+QsA" +
           "AQANCwEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQAqJQAuAEQqJQAAlgIAAAABACoBAUYA" +
           "AAAHAAAARXZlbnRJZAAP/////wAAAAADAAAAACgAAABUaGUgaWRlbnRpZmllciBmb3IgdGhlIGV2ZW50" +
           "IHRvIGNvbW1lbnQuAQAqAQFCAAAABwAAAENvbW1lbnQAFf////8AAAAAAwAAAAAkAAAAVGhlIGNvbW1l" +
           "bnQgdG8gYWRkIHRvIHRoZSBjb25kaXRpb24uAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAA" +
           "AAAACgAAAEFja2VkU3RhdGUBAC0lAC8BACMjLSUAAAAV/////wEBAQAAAAEALCMBAQAXJQEAAAAVYIkK" +
           "AgAAAAAAAgAAAElkAQAuJQAuAEQuJQAAAAH/////AQH/////AAAAAARhggoEAAAAAAALAAAAQWNrbm93" +
           "bGVkZ2UBAD8lAC8BAJcjPyUAAAEBAQAAAAEA+QsAAQDwIgEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJn" +
           "dW1lbnRzAQBAJQAuAERAJQAAlgIAAAABACoBAUYAAAAHAAAARXZlbnRJZAAP/////wAAAAADAAAAACgA" +
           "AABUaGUgaWRlbnRpZmllciBmb3IgdGhlIGV2ZW50IHRvIGNvbW1lbnQuAQAqAQFCAAAABwAAAENvbW1l" +
           "bnQAFf////8AAAAAAwAAAAAkAAAAVGhlIGNvbW1lbnQgdG8gYWRkIHRvIHRoZSBjb25kaXRpb24uAQAo" +
           "AQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAACwAAAEFjdGl2ZVN0YXRlAQBDJQAvAQAjI0Ml" +
           "AAAAFf////8BAQIAAAABACwjAQEAFyUBACwjAAEAfCUBAAAAFWCJCgIAAAAAAAIAAABJZAEARCUALgBE" +
           "RCUAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAACQAAAElucHV0Tm9kZQEAfSsALgBEfSsAAAAR////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAAEwAAAFN1cHByZXNzZWRPclNoZWx2ZWQBAHolAC4ARHolAAAAAf//" +
           "//8BAf////8AAAAABGCACgEAAAAAAAoAAABMaW1pdFN0YXRlAQB8JQAvAQBmJHwlAAABAAAAAQAsIwEB" +
           "AEMlAQAAABVgiQoCAAAAAAAMAAAAQ3VycmVudFN0YXRlAQB9JQAvAQDICn0lAAAAFf////8BAf////8B" +
           "AAAAFWCJCgIAAAAAAAIAAABJZAEAfiUALgBEfiUAAAAR/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region NonExclusiveDeviationAlarmState Class
    #if (!OPCUA_EXCLUDE_NonExclusiveDeviationAlarmState)
    /// <summary>
    /// Stores an instance of the NonExclusiveDeviationAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class NonExclusiveDeviationAlarmState : NonExclusiveLimitAlarmState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public NonExclusiveDeviationAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.NonExclusiveDeviationAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (BaseSetpointNode != null)
            {
                BaseSetpointNode.Initialize(context, BaseSetpointNode_InitializationString);
            }
        }

        #region Initialization String
        private const string BaseSetpointNode_InitializationString =
           "//////////8VYIkKAgAAAAAAEAAAAEJhc2VTZXRwb2ludE5vZGUBAIhBAC4ARIhBAAAAEf////8BAf//" +
           "//8AAAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJgAAAE5vbkV4Y2x1c2l2ZURldmlhdGlvbkFsYXJtVHlwZUluc3RhbmNl" +
           "AQCAKAEAgCiAKAAA/////xwAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAIEoAC4ARIEoAAAAD/////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAIIoAC4ARIIoAAAAEf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQCDKAAuAESDKAAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAKAAAAU291cmNlTmFtZQEAhCgALgBEhCgAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRp" +
           "bWUBAIUoAC4ARIUoAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQCG" +
           "KAAuAESGKAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQCIKAAuAESIKAAA" +
           "ABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAIkoAC4ARIkoAAAABf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABAAAABDb25kaXRpb25DbGFzc0lkAQCNKwAuAESNKwAAABH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAASAAAAQ29uZGl0aW9uQ2xhc3NOYW1lAQCOKwAuAESOKwAAABX/////AQH/////" +
           "AAAAABVgiQoCAAAAAAANAAAAQ29uZGl0aW9uTmFtZQEAiigALgBEiigAAAAM/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACAAAAEJyYW5jaElkAQCLKAAuAESLKAAAABH/////AQH/////AAAAABVgiQoCAAAAAAAG" +
           "AAAAUmV0YWluAQCMKAAuAESMKAAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAARW5hYmxlZFN0" +
           "YXRlAQCNKAAvAQAjI40oAAAAFf////8BAQUAAAABACwjAAEAoygBACwjAAEArCgBACwjAAEAuSgBACwj" +
           "AAEAwigBACwjAAEAyygBAAAAFWCJCgIAAAAAAAIAAABJZAEAjigALgBEjigAAAAB/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAABwAAAFF1YWxpdHkBAJYoAC8BACojligAAAAT/////wEB/////wEAAAAVYIkKAgAA" +
           "AAAADwAAAFNvdXJjZVRpbWVzdGFtcAEAlygALgBElygAAAEAJgH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAMAAAATGFzdFNldmVyaXR5AQCYKAAvAQAqI5goAAAABf////8BAf////8BAAAAFWCJCgIAAAAAAA8A" +
           "AABTb3VyY2VUaW1lc3RhbXABAJkoAC4ARJkoAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAA" +
           "AENvbW1lbnQBAJooAC8BACojmigAAAAV/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRp" +
           "bWVzdGFtcAEAmygALgBEmygAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50VXNl" +
           "cklkAQCcKAAuAEScKAAAAAz/////AQH/////AAAAAARhggoEAAAAAAAHAAAARGlzYWJsZQEAnigALwEA" +
           "RCOeKAAAAQEBAAAAAQD5CwABAPMKAAAAAARhggoEAAAAAAAGAAAARW5hYmxlAQCdKAAvAQBDI50oAAAB" +
           "AQEAAAABAPkLAAEA8woAAAAABGGCCgQAAAAAAAoAAABBZGRDb21tZW50AQCfKAAvAQBFI58oAAABAQEA" +
           "AAABAPkLAAEADQsBAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAoCgALgBEoCgAAJYCAAAA" +
           "AQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRo" +
           "ZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRo" +
           "ZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA" +
           "FWCJCgIAAAAAAAoAAABBY2tlZFN0YXRlAQCjKAAvAQAjI6MoAAAAFf////8BAQEAAAABACwjAQEAjSgB" +
           "AAAAFWCJCgIAAAAAAAIAAABJZAEApCgALgBEpCgAAAAB/////wEB/////wAAAAAEYYIKBAAAAAAACwAA" +
           "AEFja25vd2xlZGdlAQC1KAAvAQCXI7UoAAABAQEAAAABAPkLAAEA8CIBAAAAF2CpCgIAAAAAAA4AAABJ" +
           "bnB1dEFyZ3VtZW50cwEAtigALgBEtigAAJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAA" +
           "AwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcA" +
           "AABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0" +
           "aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAsAAABBY3RpdmVTdGF0ZQEAuSgA" +
           "LwEAIyO5KAAAABX/////AQEFAAAAAQAsIwEBAI0oAQAsIwABAPIoAQAsIwABAPsoAQAsIwABAAQpAQAs" +
           "IwABAA0pAQAAABVgiQoCAAAAAAACAAAASWQBALooAC4ARLooAAAAAf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAkAAABJbnB1dE5vZGUBAI8rAC4ARI8rAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAABMAAABT" +
           "dXBwcmVzc2VkT3JTaGVsdmVkAQDwKAAuAETwKAAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAA" +
           "U2V0cG9pbnROb2RlAQAaKQAuAEQaKQAAABH/////AQH/////AAAAABVgiQoCAAAAAAAQAAAAQmFzZVNl" +
           "dHBvaW50Tm9kZQEAiEEALgBEiEEAAAAR/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> SetpointNode
        {
            get
            {
                return m_setpointNode;
            }

            set
            {
                if (!Object.ReferenceEquals(m_setpointNode, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_setpointNode = value;
            }
        }

        /// <remarks />
        public PropertyState<NodeId> BaseSetpointNode
        {
            get
            {
                return m_baseSetpointNode;
            }

            set
            {
                if (!Object.ReferenceEquals(m_baseSetpointNode, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_baseSetpointNode = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_setpointNode != null)
            {
                children.Add(m_setpointNode);
            }

            if (m_baseSetpointNode != null)
            {
                children.Add(m_baseSetpointNode);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SetpointNode:
                {
                    if (createOrReplace)
                    {
                        if (SetpointNode == null)
                        {
                            if (replacement == null)
                            {
                                SetpointNode = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                SetpointNode = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = SetpointNode;
                    break;
                }

                case Opc.Ua.BrowseNames.BaseSetpointNode:
                {
                    if (createOrReplace)
                    {
                        if (BaseSetpointNode == null)
                        {
                            if (replacement == null)
                            {
                                BaseSetpointNode = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                BaseSetpointNode = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = BaseSetpointNode;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_setpointNode;
        private PropertyState<NodeId> m_baseSetpointNode;
        #endregion
    }
    #endif
    #endregion

    #region NonExclusiveRateOfChangeAlarmState Class
    #if (!OPCUA_EXCLUDE_NonExclusiveRateOfChangeAlarmState)
    /// <summary>
    /// Stores an instance of the NonExclusiveRateOfChangeAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class NonExclusiveRateOfChangeAlarmState : NonExclusiveLimitAlarmState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public NonExclusiveRateOfChangeAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.NonExclusiveRateOfChangeAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (EngineeringUnits != null)
            {
                EngineeringUnits.Initialize(context, EngineeringUnits_InitializationString);
            }
        }

        #region Initialization String
        private const string EngineeringUnits_InitializationString =
           "//////////8VYIkKAgAAAAAAEAAAAEVuZ2luZWVyaW5nVW5pdHMBANpBAC4ARNpBAAABAHcD/////wEB" +
           "/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKQAAAE5vbkV4Y2x1c2l2ZVJhdGVPZkNoYW5nZUFsYXJtVHlwZUluc3Rh" +
           "bmNlAQDmJwEA5ifmJwAA/////xsAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAOcnAC4AROcnAAAAD///" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAOgnAC4AROgnAAAAEf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQDpJwAuAETpJwAAABH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAKAAAAU291cmNlTmFtZQEA6icALgBE6icAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAA" +
           "AFRpbWUBAOsnAC4AROsnAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1l" +
           "AQDsJwAuAETsJwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQDuJwAuAETu" +
           "JwAAABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAO8nAC4ARO8nAAAABf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAABAAAABDb25kaXRpb25DbGFzc0lkAQCKKwAuAESKKwAAABH/////AQH/" +
           "////AAAAABVgiQoCAAAAAAASAAAAQ29uZGl0aW9uQ2xhc3NOYW1lAQCLKwAuAESLKwAAABX/////AQH/" +
           "////AAAAABVgiQoCAAAAAAANAAAAQ29uZGl0aW9uTmFtZQEA8CcALgBE8CcAAAAM/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACAAAAEJyYW5jaElkAQDxJwAuAETxJwAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAGAAAAUmV0YWluAQDyJwAuAETyJwAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAARW5hYmxl" +
           "ZFN0YXRlAQDzJwAvAQAjI/MnAAAAFf////8BAQUAAAABACwjAAEACSgBACwjAAEAEigBACwjAAEAHygB" +
           "ACwjAAEAKCgBACwjAAEAMSgBAAAAFWCJCgIAAAAAAAIAAABJZAEA9CcALgBE9CcAAAAB/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAABwAAAFF1YWxpdHkBAPwnAC8BACoj/CcAAAAT/////wEB/////wEAAAAVYIkK" +
           "AgAAAAAADwAAAFNvdXJjZVRpbWVzdGFtcAEA/ScALgBE/ScAAAEAJgH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAMAAAATGFzdFNldmVyaXR5AQD+JwAvAQAqI/4nAAAABf////8BAf////8BAAAAFWCJCgIAAAAA" +
           "AA8AAABTb3VyY2VUaW1lc3RhbXABAP8nAC4ARP8nAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "BwAAAENvbW1lbnQBAAAoAC8BACojACgAAAAV/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJj" +
           "ZVRpbWVzdGFtcAEAASgALgBEASgAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50" +
           "VXNlcklkAQACKAAuAEQCKAAAAAz/////AQH/////AAAAAARhggoEAAAAAAAHAAAARGlzYWJsZQEABCgA" +
           "LwEARCMEKAAAAQEBAAAAAQD5CwABAPMKAAAAAARhggoEAAAAAAAGAAAARW5hYmxlAQADKAAvAQBDIwMo" +
           "AAABAQEAAAABAPkLAAEA8woAAAAABGGCCgQAAAAAAAoAAABBZGRDb21tZW50AQAFKAAvAQBFIwUoAAAB" +
           "AQEAAAABAPkLAAEADQsBAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEABigALgBEBigAAJYC" +
           "AAAAAQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9y" +
           "IHRoZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAAAAMAAAAAJAAA" +
           "AFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8A" +
           "AAAAFWCJCgIAAAAAAAoAAABBY2tlZFN0YXRlAQAJKAAvAQAjIwkoAAAAFf////8BAQEAAAABACwjAQEA" +
           "8ycBAAAAFWCJCgIAAAAAAAIAAABJZAEACigALgBECigAAAAB/////wEB/////wAAAAAEYYIKBAAAAAAA" +
           "CwAAAEFja25vd2xlZGdlAQAbKAAvAQCXIxsoAAABAQEAAAABAPkLAAEA8CIBAAAAF2CpCgIAAAAAAA4A" +
           "AABJbnB1dEFyZ3VtZW50cwEAHCgALgBEHCgAAJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8A" +
           "AAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAA" +
           "AAcAAABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29u" +
           "ZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAsAAABBY3RpdmVTdGF0ZQEA" +
           "HygALwEAIyMfKAAAABX/////AQEFAAAAAQAsIwEBAPMnAQAsIwABAFgoAQAsIwABAGEoAQAsIwABAGoo" +
           "AQAsIwABAHMoAQAAABVgiQoCAAAAAAACAAAASWQBACAoAC4ARCAoAAAAAf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAkAAABJbnB1dE5vZGUBAIwrAC4ARIwrAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAABMA" +
           "AABTdXBwcmVzc2VkT3JTaGVsdmVkAQBWKAAuAERWKAAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAQ" +
           "AAAARW5naW5lZXJpbmdVbml0cwEA2kEALgBE2kEAAAEAdwP/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<EUInformation> EngineeringUnits
        {
            get
            {
                return m_engineeringUnits;
            }

            set
            {
                if (!Object.ReferenceEquals(m_engineeringUnits, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_engineeringUnits = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_engineeringUnits != null)
            {
                children.Add(m_engineeringUnits);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.EngineeringUnits:
                {
                    if (createOrReplace)
                    {
                        if (EngineeringUnits == null)
                        {
                            if (replacement == null)
                            {
                                EngineeringUnits = new PropertyState<EUInformation>(this);
                            }
                            else
                            {
                                EngineeringUnits = (PropertyState<EUInformation>)replacement;
                            }
                        }
                    }

                    instance = EngineeringUnits;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<EUInformation> m_engineeringUnits;
        #endregion
    }
    #endif
    #endregion

    #region ExclusiveDeviationAlarmState Class
    #if (!OPCUA_EXCLUDE_ExclusiveDeviationAlarmState)
    /// <summary>
    /// Stores an instance of the ExclusiveDeviationAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ExclusiveDeviationAlarmState : ExclusiveLimitAlarmState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ExclusiveDeviationAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ExclusiveDeviationAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (BaseSetpointNode != null)
            {
                BaseSetpointNode.Initialize(context, BaseSetpointNode_InitializationString);
            }
        }

        #region Initialization String
        private const string BaseSetpointNode_InitializationString =
           "//////////8VYIkKAgAAAAAAEAAAAEJhc2VTZXRwb2ludE5vZGUBALFBAC4ARLFBAAAAEf////8BAf//" +
           "//8AAAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIwAAAEV4Y2x1c2l2ZURldmlhdGlvbkFsYXJtVHlwZUluc3RhbmNlAQAk" +
           "JgEAJCYkJgAA/////x0AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBACUmAC4ARCUmAAAAD/////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBACYmAC4ARCYmAAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABTb3VyY2VOb2RlAQAnJgAuAEQnJgAAABH/////AQH/////AAAAABVgiQoCAAAAAAAK" +
           "AAAAU291cmNlTmFtZQEAKCYALgBEKCYAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUB" +
           "ACkmAC4ARCkmAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQAqJgAu" +
           "AEQqJgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQAsJgAuAEQsJgAAABX/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAC0mAC4ARC0mAAAABf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAABAAAABDb25kaXRpb25DbGFzc0lkAQCBKwAuAESBKwAAABH/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAASAAAAQ29uZGl0aW9uQ2xhc3NOYW1lAQCCKwAuAESCKwAAABX/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAANAAAAQ29uZGl0aW9uTmFtZQEALiYALgBELiYAAAAM/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACAAAAEJyYW5jaElkAQAvJgAuAEQvJgAAABH/////AQH/////AAAAABVgiQoCAAAAAAAGAAAA" +
           "UmV0YWluAQAwJgAuAEQwJgAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAARW5hYmxlZFN0YXRl" +
           "AQAxJgAvAQAjIzEmAAAAFf////8BAQUAAAABACwjAAEARyYBACwjAAEAUCYBACwjAAEAXSYBACwjAAEA" +
           "ZiYBACwjAAEAbyYBAAAAFWCJCgIAAAAAAAIAAABJZAEAMiYALgBEMiYAAAAB/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAABwAAAFF1YWxpdHkBADomAC8BACojOiYAAAAT/////wEB/////wEAAAAVYIkKAgAAAAAA" +
           "DwAAAFNvdXJjZVRpbWVzdGFtcAEAOyYALgBEOyYAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAM" +
           "AAAATGFzdFNldmVyaXR5AQA8JgAvAQAqIzwmAAAABf////8BAf////8BAAAAFWCJCgIAAAAAAA8AAABT" +
           "b3VyY2VUaW1lc3RhbXABAD0mAC4ARD0mAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAENv" +
           "bW1lbnQBAD4mAC8BACojPiYAAAAV/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRpbWVz" +
           "dGFtcAEAPyYALgBEPyYAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50VXNlcklk" +
           "AQBAJgAuAERAJgAAAAz/////AQH/////AAAAAARhggoEAAAAAAAHAAAARGlzYWJsZQEAQiYALwEARCNC" +
           "JgAAAQEBAAAAAQD5CwABAPMKAAAAAARhggoEAAAAAAAGAAAARW5hYmxlAQBBJgAvAQBDI0EmAAABAQEA" +
           "AAABAPkLAAEA8woAAAAABGGCCgQAAAAAAAoAAABBZGRDb21tZW50AQBDJgAvAQBFI0MmAAABAQEAAAAB" +
           "APkLAAEADQsBAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEARCYALgBERCYAAJYCAAAAAQAq" +
           "AQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBl" +
           "dmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBj" +
           "b21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABBY2tlZFN0YXRlAQBHJgAvAQAjI0cmAAAAFf////8BAQEAAAABACwjAQEAMSYBAAAA" +
           "FWCJCgIAAAAAAAIAAABJZAEASCYALgBESCYAAAAB/////wEB/////wAAAAAEYYIKBAAAAAAACwAAAEFj" +
           "a25vd2xlZGdlAQBZJgAvAQCXI1kmAAABAQEAAAABAPkLAAEA8CIBAAAAF2CpCgIAAAAAAA4AAABJbnB1" +
           "dEFyZ3VtZW50cwEAWiYALgBEWiYAAJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAA" +
           "AAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABD" +
           "b21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9u" +
           "LgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAsAAABBY3RpdmVTdGF0ZQEAXSYALwEA" +
           "IyNdJgAAABX/////AQECAAAAAQAsIwEBADEmAQAsIwABAJYmAQAAABVgiQoCAAAAAAACAAAASWQBAF4m" +
           "AC4ARF4mAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABJbnB1dE5vZGUBAIMrAC4ARIMrAAAA" +
           "Ef////8BAf////8AAAAAFWCJCgIAAAAAABMAAABTdXBwcmVzc2VkT3JTaGVsdmVkAQCUJgAuAESUJgAA" +
           "AAH/////AQH/////AAAAAARggAoBAAAAAAAKAAAATGltaXRTdGF0ZQEAliYALwEAZiSWJgAAAQAAAAEA" +
           "LCMBAQBdJgEAAAAVYIkKAgAAAAAADAAAAEN1cnJlbnRTdGF0ZQEAlyYALwEAyAqXJgAAABX/////AQH/" +
           "////AQAAABVgiQoCAAAAAAACAAAASWQBAJgmAC4ARJgmAAAAEf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAwAAABTZXRwb2ludE5vZGUBALEmAC4ARLEmAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABC" +
           "YXNlU2V0cG9pbnROb2RlAQCxQQAuAESxQQAAABH/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> SetpointNode
        {
            get
            {
                return m_setpointNode;
            }

            set
            {
                if (!Object.ReferenceEquals(m_setpointNode, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_setpointNode = value;
            }
        }

        /// <remarks />
        public PropertyState<NodeId> BaseSetpointNode
        {
            get
            {
                return m_baseSetpointNode;
            }

            set
            {
                if (!Object.ReferenceEquals(m_baseSetpointNode, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_baseSetpointNode = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_setpointNode != null)
            {
                children.Add(m_setpointNode);
            }

            if (m_baseSetpointNode != null)
            {
                children.Add(m_baseSetpointNode);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SetpointNode:
                {
                    if (createOrReplace)
                    {
                        if (SetpointNode == null)
                        {
                            if (replacement == null)
                            {
                                SetpointNode = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                SetpointNode = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = SetpointNode;
                    break;
                }

                case Opc.Ua.BrowseNames.BaseSetpointNode:
                {
                    if (createOrReplace)
                    {
                        if (BaseSetpointNode == null)
                        {
                            if (replacement == null)
                            {
                                BaseSetpointNode = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                BaseSetpointNode = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = BaseSetpointNode;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_setpointNode;
        private PropertyState<NodeId> m_baseSetpointNode;
        #endregion
    }
    #endif
    #endregion

    #region ExclusiveRateOfChangeAlarmState Class
    #if (!OPCUA_EXCLUDE_ExclusiveRateOfChangeAlarmState)
    /// <summary>
    /// Stores an instance of the ExclusiveRateOfChangeAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ExclusiveRateOfChangeAlarmState : ExclusiveLimitAlarmState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ExclusiveRateOfChangeAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ExclusiveRateOfChangeAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (EngineeringUnits != null)
            {
                EngineeringUnits.Initialize(context, EngineeringUnits_InitializationString);
            }
        }

        #region Initialization String
        private const string EngineeringUnits_InitializationString =
           "//////////8VYIkKAgAAAAAAEAAAAEVuZ2luZWVyaW5nVW5pdHMBAANCAC4ARANCAAABAHcD/////wEB" +
           "/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJgAAAEV4Y2x1c2l2ZVJhdGVPZkNoYW5nZUFsYXJtVHlwZUluc3RhbmNl" +
           "AQCXJQEAlyWXJQAA/////xwAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAJglAC4ARJglAAAAD/////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAJklAC4ARJklAAAAEf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQCaJQAuAESaJQAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAKAAAAU291cmNlTmFtZQEAmyUALgBEmyUAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRp" +
           "bWUBAJwlAC4ARJwlAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQCd" +
           "JQAuAESdJQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQCfJQAuAESfJQAA" +
           "ABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAKAlAC4ARKAlAAAABf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABAAAABDb25kaXRpb25DbGFzc0lkAQB+KwAuAER+KwAAABH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAASAAAAQ29uZGl0aW9uQ2xhc3NOYW1lAQB/KwAuAER/KwAAABX/////AQH/////" +
           "AAAAABVgiQoCAAAAAAANAAAAQ29uZGl0aW9uTmFtZQEAoSUALgBEoSUAAAAM/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACAAAAEJyYW5jaElkAQCiJQAuAESiJQAAABH/////AQH/////AAAAABVgiQoCAAAAAAAG" +
           "AAAAUmV0YWluAQCjJQAuAESjJQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAARW5hYmxlZFN0" +
           "YXRlAQCkJQAvAQAjI6QlAAAAFf////8BAQUAAAABACwjAAEAuiUBACwjAAEAwyUBACwjAAEA0CUBACwj" +
           "AAEA2SUBACwjAAEA4iUBAAAAFWCJCgIAAAAAAAIAAABJZAEApSUALgBEpSUAAAAB/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAABwAAAFF1YWxpdHkBAK0lAC8BACojrSUAAAAT/////wEB/////wEAAAAVYIkKAgAA" +
           "AAAADwAAAFNvdXJjZVRpbWVzdGFtcAEAriUALgBEriUAAAEAJgH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAMAAAATGFzdFNldmVyaXR5AQCvJQAvAQAqI68lAAAABf////8BAf////8BAAAAFWCJCgIAAAAAAA8A" +
           "AABTb3VyY2VUaW1lc3RhbXABALAlAC4ARLAlAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAA" +
           "AENvbW1lbnQBALElAC8BACojsSUAAAAV/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRp" +
           "bWVzdGFtcAEAsiUALgBEsiUAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50VXNl" +
           "cklkAQCzJQAuAESzJQAAAAz/////AQH/////AAAAAARhggoEAAAAAAAHAAAARGlzYWJsZQEAtSUALwEA" +
           "RCO1JQAAAQEBAAAAAQD5CwABAPMKAAAAAARhggoEAAAAAAAGAAAARW5hYmxlAQC0JQAvAQBDI7QlAAAB" +
           "AQEAAAABAPkLAAEA8woAAAAABGGCCgQAAAAAAAoAAABBZGRDb21tZW50AQC2JQAvAQBFI7YlAAABAQEA" +
           "AAABAPkLAAEADQsBAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAtyUALgBEtyUAAJYCAAAA" +
           "AQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRo" +
           "ZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRo" +
           "ZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA" +
           "FWCJCgIAAAAAAAoAAABBY2tlZFN0YXRlAQC6JQAvAQAjI7olAAAAFf////8BAQEAAAABACwjAQEApCUB" +
           "AAAAFWCJCgIAAAAAAAIAAABJZAEAuyUALgBEuyUAAAAB/////wEB/////wAAAAAEYYIKBAAAAAAACwAA" +
           "AEFja25vd2xlZGdlAQDMJQAvAQCXI8wlAAABAQEAAAABAPkLAAEA8CIBAAAAF2CpCgIAAAAAAA4AAABJ" +
           "bnB1dEFyZ3VtZW50cwEAzSUALgBEzSUAAJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAA" +
           "AwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcA" +
           "AABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0" +
           "aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAsAAABBY3RpdmVTdGF0ZQEA0CUA" +
           "LwEAIyPQJQAAABX/////AQECAAAAAQAsIwEBAKQlAQAsIwABAAkmAQAAABVgiQoCAAAAAAACAAAASWQB" +
           "ANElAC4ARNElAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABJbnB1dE5vZGUBAIArAC4ARIAr" +
           "AAAAEf////8BAf////8AAAAAFWCJCgIAAAAAABMAAABTdXBwcmVzc2VkT3JTaGVsdmVkAQAHJgAuAEQH" +
           "JgAAAAH/////AQH/////AAAAAARggAoBAAAAAAAKAAAATGltaXRTdGF0ZQEACSYALwEAZiQJJgAAAQAA" +
           "AAEALCMBAQDQJQEAAAAVYIkKAgAAAAAADAAAAEN1cnJlbnRTdGF0ZQEACiYALwEAyAoKJgAAABX/////" +
           "AQH/////AQAAABVgiQoCAAAAAAACAAAASWQBAAsmAC4ARAsmAAAAEf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAABAAAABFbmdpbmVlcmluZ1VuaXRzAQADQgAuAEQDQgAAAQB3A/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<EUInformation> EngineeringUnits
        {
            get
            {
                return m_engineeringUnits;
            }

            set
            {
                if (!Object.ReferenceEquals(m_engineeringUnits, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_engineeringUnits = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_engineeringUnits != null)
            {
                children.Add(m_engineeringUnits);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.EngineeringUnits:
                {
                    if (createOrReplace)
                    {
                        if (EngineeringUnits == null)
                        {
                            if (replacement == null)
                            {
                                EngineeringUnits = new PropertyState<EUInformation>(this);
                            }
                            else
                            {
                                EngineeringUnits = (PropertyState<EUInformation>)replacement;
                            }
                        }
                    }

                    instance = EngineeringUnits;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<EUInformation> m_engineeringUnits;
        #endregion
    }
    #endif
    #endregion

    #region DiscreteAlarmState Class
    #if (!OPCUA_EXCLUDE_DiscreteAlarmState)
    /// <summary>
    /// Stores an instance of the DiscreteAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DiscreteAlarmState : AlarmConditionState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DiscreteAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.DiscreteAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGQAAAERpc2NyZXRlQWxhcm1UeXBlSW5zdGFuY2UBABspAQAbKRspAAD/" +
           "////GgAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEAHCkALgBEHCkAAAAP/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACQAAAEV2ZW50VHlwZQEAHSkALgBEHSkAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAA" +
           "AFNvdXJjZU5vZGUBAB4pAC4ARB4pAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABTb3VyY2VO" +
           "YW1lAQAfKQAuAEQfKQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGltZQEAICkALgBEICkA" +
           "AAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBACEpAC4ARCEpAAABACYB" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBACMpAC4ARCMpAAAAFf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAJCkALgBEJCkAAAAF/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAAEAAAAENvbmRpdGlvbkNsYXNzSWQBAJArAC4ARJArAAAAEf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "ABIAAABDb25kaXRpb25DbGFzc05hbWUBAJErAC4ARJErAAAAFf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AA0AAABDb25kaXRpb25OYW1lAQAlKQAuAEQlKQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAIAAAA" +
           "QnJhbmNoSWQBACYpAC4ARCYpAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAYAAABSZXRhaW4BACcp" +
           "AC4ARCcpAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABFbmFibGVkU3RhdGUBACgpAC8BACMj" +
           "KCkAAAAV/////wEBBQAAAAEALCMAAQA+KQEALCMAAQBHKQEALCMAAQBUKQEALCMAAQBdKQEALCMAAQBm" +
           "KQEAAAAVYIkKAgAAAAAAAgAAAElkAQApKQAuAEQpKQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAH" +
           "AAAAUXVhbGl0eQEAMSkALwEAKiMxKQAAABP/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291cmNl" +
           "VGltZXN0YW1wAQAyKQAuAEQyKQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABMYXN0U2V2" +
           "ZXJpdHkBADMpAC8BACojMykAAAAF/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRpbWVz" +
           "dGFtcAEANCkALgBENCkAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAAQ29tbWVudAEANSkA" +
           "LwEAKiM1KQAAABX/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291cmNlVGltZXN0YW1wAQA2KQAu" +
           "AEQ2KQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGllbnRVc2VySWQBADcpAC4ARDcp" +
           "AAAADP////8BAf////8AAAAABGGCCgQAAAAAAAcAAABEaXNhYmxlAQA5KQAvAQBEIzkpAAABAQEAAAAB" +
           "APkLAAEA8woAAAAABGGCCgQAAAAAAAYAAABFbmFibGUBADgpAC8BAEMjOCkAAAEBAQAAAAEA+QsAAQDz" +
           "CgAAAAAEYYIKBAAAAAAACgAAAEFkZENvbW1lbnQBADopAC8BAEUjOikAAAEBAQAAAAEA+QsAAQANCwEA" +
           "AAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQA7KQAuAEQ7KQAAlgIAAAABACoBAUYAAAAHAAAA" +
           "RXZlbnRJZAAP/////wAAAAADAAAAACgAAABUaGUgaWRlbnRpZmllciBmb3IgdGhlIGV2ZW50IHRvIGNv" +
           "bW1lbnQuAQAqAQFCAAAABwAAAENvbW1lbnQAFf////8AAAAAAwAAAAAkAAAAVGhlIGNvbW1lbnQgdG8g" +
           "YWRkIHRvIHRoZSBjb25kaXRpb24uAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAACgAA" +
           "AEFja2VkU3RhdGUBAD4pAC8BACMjPikAAAAV/////wEBAQAAAAEALCMBAQAoKQEAAAAVYIkKAgAAAAAA" +
           "AgAAAElkAQA/KQAuAEQ/KQAAAAH/////AQH/////AAAAAARhggoEAAAAAAALAAAAQWNrbm93bGVkZ2UB" +
           "AFApAC8BAJcjUCkAAAEBAQAAAAEA+QsAAQDwIgEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRz" +
           "AQBRKQAuAERRKQAAlgIAAAABACoBAUYAAAAHAAAARXZlbnRJZAAP/////wAAAAADAAAAACgAAABUaGUg" +
           "aWRlbnRpZmllciBmb3IgdGhlIGV2ZW50IHRvIGNvbW1lbnQuAQAqAQFCAAAABwAAAENvbW1lbnQAFf//" +
           "//8AAAAAAwAAAAAkAAAAVGhlIGNvbW1lbnQgdG8gYWRkIHRvIHRoZSBjb25kaXRpb24uAQAoAQEAAAAB" +
           "AAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAACwAAAEFjdGl2ZVN0YXRlAQBUKQAvAQAjI1QpAAAAFf//" +
           "//8BAQEAAAABACwjAQEAKCkBAAAAFWCJCgIAAAAAAAIAAABJZAEAVSkALgBEVSkAAAAB/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAACQAAAElucHV0Tm9kZQEAkisALgBEkisAAAAR/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAAEwAAAFN1cHByZXNzZWRPclNoZWx2ZWQBAIspAC4ARIspAAAAAf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region OffNormalAlarmState Class
    #if (!OPCUA_EXCLUDE_OffNormalAlarmState)
    /// <summary>
    /// Stores an instance of the OffNormalAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class OffNormalAlarmState : DiscreteAlarmState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public OffNormalAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.OffNormalAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGgAAAE9mZk5vcm1hbEFsYXJtVHlwZUluc3RhbmNlAQCNKQEAjSmNKQAA" +
           "/////xsAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAI4pAC4ARI4pAAAAD/////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAkAAABFdmVudFR5cGUBAI8pAC4ARI8pAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoA" +
           "AABTb3VyY2VOb2RlAQCQKQAuAESQKQAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAAU291cmNl" +
           "TmFtZQEAkSkALgBEkSkAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUBAJIpAC4ARJIp" +
           "AAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQCTKQAuAESTKQAAAQAm" +
           "Af////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQCVKQAuAESVKQAAABX/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAJYpAC4ARJYpAAAABf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAABAAAABDb25kaXRpb25DbGFzc0lkAQCTKwAuAESTKwAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAASAAAAQ29uZGl0aW9uQ2xhc3NOYW1lAQCUKwAuAESUKwAAABX/////AQH/////AAAAABVgiQoCAAAA" +
           "AAANAAAAQ29uZGl0aW9uTmFtZQEAlykALgBElykAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACAAA" +
           "AEJyYW5jaElkAQCYKQAuAESYKQAAABH/////AQH/////AAAAABVgiQoCAAAAAAAGAAAAUmV0YWluAQCZ" +
           "KQAuAESZKQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAARW5hYmxlZFN0YXRlAQCaKQAvAQAj" +
           "I5opAAAAFf////8BAQUAAAABACwjAAEAsCkBACwjAAEAuSkBACwjAAEAxikBACwjAAEAzykBACwjAAEA" +
           "2CkBAAAAFWCJCgIAAAAAAAIAAABJZAEAmykALgBEmykAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "BwAAAFF1YWxpdHkBAKMpAC8BACojoykAAAAT/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJj" +
           "ZVRpbWVzdGFtcAEApCkALgBEpCkAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAATGFzdFNl" +
           "dmVyaXR5AQClKQAvAQAqI6UpAAAABf////8BAf////8BAAAAFWCJCgIAAAAAAA8AAABTb3VyY2VUaW1l" +
           "c3RhbXABAKYpAC4ARKYpAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAENvbW1lbnQBAKcp" +
           "AC8BACojpykAAAAV/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRpbWVzdGFtcAEAqCkA" +
           "LgBEqCkAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50VXNlcklkAQCpKQAuAESp" +
           "KQAAAAz/////AQH/////AAAAAARhggoEAAAAAAAHAAAARGlzYWJsZQEAqykALwEARCOrKQAAAQEBAAAA" +
           "AQD5CwABAPMKAAAAAARhggoEAAAAAAAGAAAARW5hYmxlAQCqKQAvAQBDI6opAAABAQEAAAABAPkLAAEA" +
           "8woAAAAABGGCCgQAAAAAAAoAAABBZGRDb21tZW50AQCsKQAvAQBFI6wpAAABAQEAAAABAPkLAAEADQsB" +
           "AAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEArSkALgBErSkAAJYCAAAAAQAqAQFGAAAABwAA" +
           "AEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBj" +
           "b21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRv" +
           "IGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAoA" +
           "AABBY2tlZFN0YXRlAQCwKQAvAQAjI7ApAAAAFf////8BAQEAAAABACwjAQEAmikBAAAAFWCJCgIAAAAA" +
           "AAIAAABJZAEAsSkALgBEsSkAAAAB/////wEB/////wAAAAAEYYIKBAAAAAAACwAAAEFja25vd2xlZGdl" +
           "AQDCKQAvAQCXI8IpAAABAQEAAAABAPkLAAEA8CIBAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50" +
           "cwEAwykALgBEwykAAJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhl" +
           "IGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/" +
           "////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAA" +
           "AQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAsAAABBY3RpdmVTdGF0ZQEAxikALwEAIyPGKQAAABX/" +
           "////AQEBAAAAAQAsIwEBAJopAQAAABVgiQoCAAAAAAACAAAASWQBAMcpAC4ARMcpAAAAAf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAkAAABJbnB1dE5vZGUBAJUrAC4ARJUrAAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAABMAAABTdXBwcmVzc2VkT3JTaGVsdmVkAQD9KQAuAET9KQAAAAH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAALAAAATm9ybWFsU3RhdGUBAJYrAC4ARJYrAAAAEf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> NormalState
        {
            get
            {
                return m_normalState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_normalState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_normalState = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_normalState != null)
            {
                children.Add(m_normalState);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.NormalState:
                {
                    if (createOrReplace)
                    {
                        if (NormalState == null)
                        {
                            if (replacement == null)
                            {
                                NormalState = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                NormalState = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = NormalState;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_normalState;
        #endregion
    }
    #endif
    #endregion

    #region SystemOffNormalAlarmState Class
    #if (!OPCUA_EXCLUDE_SystemOffNormalAlarmState)
    /// <summary>
    /// Stores an instance of the SystemOffNormalAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SystemOffNormalAlarmState : OffNormalAlarmState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SystemOffNormalAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.SystemOffNormalAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIAAAAFN5c3RlbU9mZk5vcm1hbEFsYXJtVHlwZUluc3RhbmNlAQDpLQEA" +
           "6S3pLQAA/////xsAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAOotAC4AROotAAAAD/////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAOstAC4AROstAAAAEf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAoAAABTb3VyY2VOb2RlAQDsLQAuAETsLQAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAA" +
           "U291cmNlTmFtZQEA7S0ALgBE7S0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUBAO4t" +
           "AC4ARO4tAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQDvLQAuAETv" +
           "LQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQDxLQAuAETxLQAAABX/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAPItAC4ARPItAAAABf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAABAAAABDb25kaXRpb25DbGFzc0lkAQDzLQAuAETzLQAAABH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAASAAAAQ29uZGl0aW9uQ2xhc3NOYW1lAQD0LQAuAET0LQAAABX/////AQH/////AAAAABVg" +
           "iQoCAAAAAAANAAAAQ29uZGl0aW9uTmFtZQEA9S0ALgBE9S0AAAAM/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACAAAAEJyYW5jaElkAQD2LQAuAET2LQAAABH/////AQH/////AAAAABVgiQoCAAAAAAAGAAAAUmV0" +
           "YWluAQD3LQAuAET3LQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAARW5hYmxlZFN0YXRlAQD4" +
           "LQAvAQAjI/gtAAAAFf////8BAQUAAAABACwjAAEADi4BACwjAAEAFy4BACwjAAEAJC4BACwjAAEALi4B" +
           "ACwjAAEANy4BAAAAFWCJCgIAAAAAAAIAAABJZAEA+S0ALgBE+S0AAAAB/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAABwAAAFF1YWxpdHkBAAEuAC8BACojAS4AAAAT/////wEB/////wEAAAAVYIkKAgAAAAAADwAA" +
           "AFNvdXJjZVRpbWVzdGFtcAEAAi4ALgBEAi4AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAA" +
           "TGFzdFNldmVyaXR5AQADLgAvAQAqIwMuAAAABf////8BAf////8BAAAAFWCJCgIAAAAAAA8AAABTb3Vy" +
           "Y2VUaW1lc3RhbXABAAQuAC4ARAQuAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAENvbW1l" +
           "bnQBAAUuAC8BACojBS4AAAAV/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRpbWVzdGFt" +
           "cAEABi4ALgBEBi4AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50VXNlcklkAQAH" +
           "LgAuAEQHLgAAAAz/////AQH/////AAAAAARhggoEAAAAAAAHAAAARGlzYWJsZQEACC4ALwEARCMILgAA" +
           "AQEBAAAAAQD5CwABAPMKAAAAAARhggoEAAAAAAAGAAAARW5hYmxlAQAJLgAvAQBDIwkuAAABAQEAAAAB" +
           "APkLAAEA8woAAAAABGGCCgQAAAAAAAoAAABBZGRDb21tZW50AQAKLgAvAQBFIwouAAABAQEAAAABAPkL" +
           "AAEADQsBAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEACy4ALgBECy4AAJYCAAAAAQAqAQFG" +
           "AAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVu" +
           "dCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21t" +
           "ZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIA" +
           "AAAAAAoAAABBY2tlZFN0YXRlAQAOLgAvAQAjIw4uAAAAFf////8BAQEAAAABACwjAQEA+C0BAAAAFWCJ" +
           "CgIAAAAAAAIAAABJZAEADy4ALgBEDy4AAAAB/////wEB/////wAAAAAEYYIKBAAAAAAACwAAAEFja25v" +
           "d2xlZGdlAQAgLgAvAQCXIyAuAAABAQEAAAABAPkLAAEA8CIBAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFy" +
           "Z3VtZW50cwEAIS4ALgBEIS4AAJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAAAAAo" +
           "AAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABDb21t" +
           "ZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9uLgEA" +
           "KAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAsAAABBY3RpdmVTdGF0ZQEAJC4ALwEAIyMk" +
           "LgAAABX/////AQEBAAAAAQAsIwEBAPgtAQAAABVgiQoCAAAAAAACAAAASWQBACUuAC4ARCUuAAAAAf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAkAAABJbnB1dE5vZGUBAC0uAC4ARC0uAAAAEf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAABMAAABTdXBwcmVzc2VkT3JTaGVsdmVkAQBILgAuAERILgAAAAH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAALAAAATm9ybWFsU3RhdGUBAEouAC4AREouAAAAEf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region TripAlarmState Class
    #if (!OPCUA_EXCLUDE_TripAlarmState)
    /// <summary>
    /// Stores an instance of the TripAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TripAlarmState : OffNormalAlarmState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TripAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.TripAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFQAAAFRyaXBBbGFybVR5cGVJbnN0YW5jZQEA/ykBAP8p/ykAAP////8b" +
           "AAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQAAKgAuAEQAKgAAAA//////AQH/////AAAAABVgiQoCAAAA" +
           "AAAJAAAARXZlbnRUeXBlAQABKgAuAEQBKgAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAAU291" +
           "cmNlTm9kZQEAAioALgBEAioAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFNvdXJjZU5hbWUB" +
           "AAMqAC4ARAMqAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQAEKgAuAEQEKgAAAQAm" +
           "Af////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEABSoALgBEBSoAAAEAJgH/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAByoALgBEByoAAAAV/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACAAAAFNldmVyaXR5AQAIKgAuAEQIKgAAAAX/////AQH/////AAAAABVgiQoCAAAAAAAQ" +
           "AAAAQ29uZGl0aW9uQ2xhc3NJZAEAlysALgBElysAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAAEgAA" +
           "AENvbmRpdGlvbkNsYXNzTmFtZQEAmCsALgBEmCsAAAAV/////wEB/////wAAAAAVYIkKAgAAAAAADQAA" +
           "AENvbmRpdGlvbk5hbWUBAAkqAC4ARAkqAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABCcmFu" +
           "Y2hJZAEACioALgBECioAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAABgAAAFJldGFpbgEACyoALgBE" +
           "CyoAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAEVuYWJsZWRTdGF0ZQEADCoALwEAIyMMKgAA" +
           "ABX/////AQEFAAAAAQAsIwABACIqAQAsIwABACsqAQAsIwABADgqAQAsIwABAEEqAQAsIwABAEoqAQAA" +
           "ABVgiQoCAAAAAAACAAAASWQBAA0qAC4ARA0qAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABR" +
           "dWFsaXR5AQAVKgAvAQAqIxUqAAAAE/////8BAf////8BAAAAFWCJCgIAAAAAAA8AAABTb3VyY2VUaW1l" +
           "c3RhbXABABYqAC4ARBYqAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAExhc3RTZXZlcml0" +
           "eQEAFyoALwEAKiMXKgAAAAX/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291cmNlVGltZXN0YW1w" +
           "AQAYKgAuAEQYKgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABDb21tZW50AQAZKgAvAQAq" +
           "IxkqAAAAFf////8BAf////8BAAAAFWCJCgIAAAAAAA8AAABTb3VyY2VUaW1lc3RhbXABABoqAC4ARBoq" +
           "AAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENsaWVudFVzZXJJZAEAGyoALgBEGyoAAAAM" +
           "/////wEB/////wAAAAAEYYIKBAAAAAAABwAAAERpc2FibGUBAB0qAC8BAEQjHSoAAAEBAQAAAAEA+QsA" +
           "AQDzCgAAAAAEYYIKBAAAAAAABgAAAEVuYWJsZQEAHCoALwEAQyMcKgAAAQEBAAAAAQD5CwABAPMKAAAA" +
           "AARhggoEAAAAAAAKAAAAQWRkQ29tbWVudAEAHioALwEARSMeKgAAAQEBAAAAAQD5CwABAA0LAQAAABdg" +
           "qQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAB8qAC4ARB8qAACWAgAAAAEAKgEBRgAAAAcAAABFdmVu" +
           "dElkAA//////AAAAAAMAAAAAKAAAAFRoZSBpZGVudGlmaWVyIGZvciB0aGUgZXZlbnQgdG8gY29tbWVu" +
           "dC4BACoBAUIAAAAHAAAAQ29tbWVudAAV/////wAAAAADAAAAACQAAABUaGUgY29tbWVudCB0byBhZGQg" +
           "dG8gdGhlIGNvbmRpdGlvbi4BACgBAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAAAAAKAAAAQWNr" +
           "ZWRTdGF0ZQEAIioALwEAIyMiKgAAABX/////AQEBAAAAAQAsIwEBAAwqAQAAABVgiQoCAAAAAAACAAAA" +
           "SWQBACMqAC4ARCMqAAAAAf////8BAf////8AAAAABGGCCgQAAAAAAAsAAABBY2tub3dsZWRnZQEANCoA" +
           "LwEAlyM0KgAAAQEBAAAAAQD5CwABAPAiAQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBADUq" +
           "AC4ARDUqAACWAgAAAAEAKgEBRgAAAAcAAABFdmVudElkAA//////AAAAAAMAAAAAKAAAAFRoZSBpZGVu" +
           "dGlmaWVyIGZvciB0aGUgZXZlbnQgdG8gY29tbWVudC4BACoBAUIAAAAHAAAAQ29tbWVudAAV/////wAA" +
           "AAADAAAAACQAAABUaGUgY29tbWVudCB0byBhZGQgdG8gdGhlIGNvbmRpdGlvbi4BACgBAQAAAAEAAAAA" +
           "AAAAAQH/////AAAAABVgiQoCAAAAAAALAAAAQWN0aXZlU3RhdGUBADgqAC8BACMjOCoAAAAV/////wEB" +
           "AQAAAAEALCMBAQAMKgEAAAAVYIkKAgAAAAAAAgAAAElkAQA5KgAuAEQ5KgAAAAH/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAJAAAASW5wdXROb2RlAQCZKwAuAESZKwAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAATAAAAU3VwcHJlc3NlZE9yU2hlbHZlZAEAbyoALgBEbyoAAAAB/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACwAAAE5vcm1hbFN0YXRlAQCaKwAuAESaKwAAABH/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region InstrumentDiagnosticAlarmState Class
    #if (!OPCUA_EXCLUDE_InstrumentDiagnosticAlarmState)
    /// <summary>
    /// Stores an instance of the InstrumentDiagnosticAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class InstrumentDiagnosticAlarmState : OffNormalAlarmState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public InstrumentDiagnosticAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.InstrumentDiagnosticAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJQAAAEluc3RydW1lbnREaWFnbm9zdGljQWxhcm1UeXBlSW5zdGFuY2UB" +
           "AKtHAQCrR6tHAAD/////GwAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEArEcALgBErEcAAAAP/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEArUcALgBErUcAAAAR/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACgAAAFNvdXJjZU5vZGUBAK5HAC4ARK5HAAAAEf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAoAAABTb3VyY2VOYW1lAQCvRwAuAESvRwAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGlt" +
           "ZQEAsEcALgBEsEcAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBALFH" +
           "AC4ARLFHAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBALNHAC4ARLNHAAAA" +
           "Ff////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAtEcALgBEtEcAAAAF/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAAEAAAAENvbmRpdGlvbkNsYXNzSWQBALVHAC4ARLVHAAAAEf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAABIAAABDb25kaXRpb25DbGFzc05hbWUBALZHAC4ARLZHAAAAFf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAA0AAABDb25kaXRpb25OYW1lAQC5RwAuAES5RwAAAAz/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAIAAAAQnJhbmNoSWQBALpHAC4ARLpHAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAYA" +
           "AABSZXRhaW4BALtHAC4ARLtHAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABFbmFibGVkU3Rh" +
           "dGUBALxHAC8BACMjvEcAAAAV/////wEBBQAAAAEALCMAAQDURwEALCMAAQDdRwEALCMAAQDqRwEALCMA" +
           "AQD0RwEALCMAAQAGSAEAAAAVYIkKAgAAAAAAAgAAAElkAQC9RwAuAES9RwAAAAH/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAHAAAAUXVhbGl0eQEAxUcALwEAKiPFRwAAABP/////AQH/////AQAAABVgiQoCAAAA" +
           "AAAPAAAAU291cmNlVGltZXN0YW1wAQDGRwAuAETGRwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAwAAABMYXN0U2V2ZXJpdHkBAMdHAC8BACojx0cAAAAF/////wEB/////wEAAAAVYIkKAgAAAAAADwAA" +
           "AFNvdXJjZVRpbWVzdGFtcAEAyEcALgBEyEcAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAA" +
           "Q29tbWVudAEAyUcALwEAKiPJRwAAABX/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291cmNlVGlt" +
           "ZXN0YW1wAQDKRwAuAETKRwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGllbnRVc2Vy" +
           "SWQBAMtHAC4ARMtHAAAADP////8BAf////8AAAAABGGCCgQAAAAAAAcAAABEaXNhYmxlAQDMRwAvAQBE" +
           "I8xHAAABAQEAAAABAPkLAAEA8woAAAAABGGCCgQAAAAAAAYAAABFbmFibGUBAM1HAC8BAEMjzUcAAAEB" +
           "AQAAAAEA+QsAAQDzCgAAAAAEYYIKBAAAAAAACgAAAEFkZENvbW1lbnQBAM5HAC8BAEUjzkcAAAEBAQAA" +
           "AAEA+QsAAQANCwEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQDPRwAuAETPRwAAlgIAAAAB" +
           "ACoBAUYAAAAHAAAARXZlbnRJZAAP/////wAAAAADAAAAACgAAABUaGUgaWRlbnRpZmllciBmb3IgdGhl" +
           "IGV2ZW50IHRvIGNvbW1lbnQuAQAqAQFCAAAABwAAAENvbW1lbnQAFf////8AAAAAAwAAAAAkAAAAVGhl" +
           "IGNvbW1lbnQgdG8gYWRkIHRvIHRoZSBjb25kaXRpb24uAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAV" +
           "YIkKAgAAAAAACgAAAEFja2VkU3RhdGUBANRHAC8BACMj1EcAAAAV/////wEBAQAAAAEALCMBAQC8RwEA" +
           "AAAVYIkKAgAAAAAAAgAAAElkAQDVRwAuAETVRwAAAAH/////AQH/////AAAAAARhggoEAAAAAAALAAAA" +
           "QWNrbm93bGVkZ2UBAOZHAC8BAJcj5kcAAAEBAQAAAAEA+QsAAQDwIgEAAAAXYKkKAgAAAAAADgAAAElu" +
           "cHV0QXJndW1lbnRzAQDnRwAuAETnRwAAlgIAAAABACoBAUYAAAAHAAAARXZlbnRJZAAP/////wAAAAAD" +
           "AAAAACgAAABUaGUgaWRlbnRpZmllciBmb3IgdGhlIGV2ZW50IHRvIGNvbW1lbnQuAQAqAQFCAAAABwAA" +
           "AENvbW1lbnQAFf////8AAAAAAwAAAAAkAAAAVGhlIGNvbW1lbnQgdG8gYWRkIHRvIHRoZSBjb25kaXRp" +
           "b24uAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAACwAAAEFjdGl2ZVN0YXRlAQDqRwAv" +
           "AQAjI+pHAAAAFf////8BAQEAAAABACwjAQEAvEcBAAAAFWCJCgIAAAAAAAIAAABJZAEA60cALgBE60cA" +
           "AAAB/////wEB/////wAAAAAVYIkKAgAAAAAACQAAAElucHV0Tm9kZQEA80cALgBE80cAAAAR/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAAEwAAAFN1cHByZXNzZWRPclNoZWx2ZWQBABlIAC4ARBlIAAAAAf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAsAAABOb3JtYWxTdGF0ZQEAP0gALgBEP0gAAAAR/////wEB/////wAA" +
           "AAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region SystemDiagnosticAlarmState Class
    #if (!OPCUA_EXCLUDE_SystemDiagnosticAlarmState)
    /// <summary>
    /// Stores an instance of the SystemDiagnosticAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SystemDiagnosticAlarmState : OffNormalAlarmState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SystemDiagnosticAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.SystemDiagnosticAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIQAAAFN5c3RlbURpYWdub3N0aWNBbGFybVR5cGVJbnN0YW5jZQEAQEgB" +
           "AEBIQEgAAP////8bAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQBBSAAuAERBSAAAAA//////AQH/////" +
           "AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQBCSAAuAERCSAAAABH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAKAAAAU291cmNlTm9kZQEAQ0gALgBEQ0gAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAA" +
           "AFNvdXJjZU5hbWUBAERIAC4ARERIAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQBF" +
           "SAAuAERFSAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEARkgALgBE" +
           "RkgAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEASEgALgBESEgAAAAV////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQBJSAAuAERJSAAAAAX/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAQAAAAQ29uZGl0aW9uQ2xhc3NJZAEASkgALgBESkgAAAAR/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAAEgAAAENvbmRpdGlvbkNsYXNzTmFtZQEAS0gALgBES0gAAAAV/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAADQAAAENvbmRpdGlvbk5hbWUBAE5IAC4ARE5IAAAADP////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAgAAABCcmFuY2hJZAEAT0gALgBET0gAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAABgAAAFJl" +
           "dGFpbgEAUEgALgBEUEgAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAEVuYWJsZWRTdGF0ZQEA" +
           "UUgALwEAIyNRSAAAABX/////AQEFAAAAAQAsIwABAGlIAQAsIwABAHJIAQAsIwABAH9IAQAsIwABAIlI" +
           "AQAsIwABAJtIAQAAABVgiQoCAAAAAAACAAAASWQBAFJIAC4ARFJIAAAAAf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAcAAABRdWFsaXR5AQBaSAAvAQAqI1pIAAAAE/////8BAf////8BAAAAFWCJCgIAAAAAAA8A" +
           "AABTb3VyY2VUaW1lc3RhbXABAFtIAC4ARFtIAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAADAAA" +
           "AExhc3RTZXZlcml0eQEAXEgALwEAKiNcSAAAAAX/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291" +
           "cmNlVGltZXN0YW1wAQBdSAAuAERdSAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABDb21t" +
           "ZW50AQBeSAAvAQAqI15IAAAAFf////8BAf////8BAAAAFWCJCgIAAAAAAA8AAABTb3VyY2VUaW1lc3Rh" +
           "bXABAF9IAC4ARF9IAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENsaWVudFVzZXJJZAEA" +
           "YEgALgBEYEgAAAAM/////wEB/////wAAAAAEYYIKBAAAAAAABwAAAERpc2FibGUBAGFIAC8BAEQjYUgA" +
           "AAEBAQAAAAEA+QsAAQDzCgAAAAAEYYIKBAAAAAAABgAAAEVuYWJsZQEAYkgALwEAQyNiSAAAAQEBAAAA" +
           "AQD5CwABAPMKAAAAAARhggoEAAAAAAAKAAAAQWRkQ29tbWVudAEAY0gALwEARSNjSAAAAQEBAAAAAQD5" +
           "CwABAA0LAQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAGRIAC4ARGRIAACWAgAAAAEAKgEB" +
           "RgAAAAcAAABFdmVudElkAA//////AAAAAAMAAAAAKAAAAFRoZSBpZGVudGlmaWVyIGZvciB0aGUgZXZl" +
           "bnQgdG8gY29tbWVudC4BACoBAUIAAAAHAAAAQ29tbWVudAAV/////wAAAAADAAAAACQAAABUaGUgY29t" +
           "bWVudCB0byBhZGQgdG8gdGhlIGNvbmRpdGlvbi4BACgBAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoC" +
           "AAAAAAAKAAAAQWNrZWRTdGF0ZQEAaUgALwEAIyNpSAAAABX/////AQEBAAAAAQAsIwEBAFFIAQAAABVg" +
           "iQoCAAAAAAACAAAASWQBAGpIAC4ARGpIAAAAAf////8BAf////8AAAAABGGCCgQAAAAAAAsAAABBY2tu" +
           "b3dsZWRnZQEAe0gALwEAlyN7SAAAAQEBAAAAAQD5CwABAPAiAQAAABdgqQoCAAAAAAAOAAAASW5wdXRB" +
           "cmd1bWVudHMBAHxIAC4ARHxIAACWAgAAAAEAKgEBRgAAAAcAAABFdmVudElkAA//////AAAAAAMAAAAA" +
           "KAAAAFRoZSBpZGVudGlmaWVyIGZvciB0aGUgZXZlbnQgdG8gY29tbWVudC4BACoBAUIAAAAHAAAAQ29t" +
           "bWVudAAV/////wAAAAADAAAAACQAAABUaGUgY29tbWVudCB0byBhZGQgdG8gdGhlIGNvbmRpdGlvbi4B" +
           "ACgBAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAAAAALAAAAQWN0aXZlU3RhdGUBAH9IAC8BACMj" +
           "f0gAAAAV/////wEBAQAAAAEALCMBAQBRSAEAAAAVYIkKAgAAAAAAAgAAAElkAQCASAAuAESASAAAAAH/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAJAAAASW5wdXROb2RlAQCISAAuAESISAAAABH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAATAAAAU3VwcHJlc3NlZE9yU2hlbHZlZAEArkgALgBErkgAAAAB/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAACwAAAE5vcm1hbFN0YXRlAQDUSAAuAETUSAAAABH/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region CertificateExpirationAlarmState Class
    #if (!OPCUA_EXCLUDE_CertificateExpirationAlarmState)
    /// <summary>
    /// Stores an instance of the CertificateExpirationAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class CertificateExpirationAlarmState : SystemOffNormalAlarmState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public CertificateExpirationAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.CertificateExpirationAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (ExpirationLimit != null)
            {
                ExpirationLimit.Initialize(context, ExpirationLimit_InitializationString);
            }
        }

        #region Initialization String
        private const string ExpirationLimit_InitializationString =
           "//////////8VYIkKAgAAAAAADwAAAEV4cGlyYXRpb25MaW1pdAEANDoALgBENDoAAAEAIgH/////AQH/" +
           "////AAAAAA==";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJgAAAENlcnRpZmljYXRlRXhwaXJhdGlvbkFsYXJtVHlwZUluc3RhbmNl" +
           "AQCpMwEAqTOpMwAA/////x8AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAKozAC4ARKozAAAAD/////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAKszAC4ARKszAAAAEf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQCsMwAuAESsMwAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAKAAAAU291cmNlTmFtZQEArTMALgBErTMAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRp" +
           "bWUBAK4zAC4ARK4zAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQCv" +
           "MwAuAESvMwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQCxMwAuAESxMwAA" +
           "ABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBALIzAC4ARLIzAAAABf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABAAAABDb25kaXRpb25DbGFzc0lkAQCzMwAuAESzMwAAABH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAASAAAAQ29uZGl0aW9uQ2xhc3NOYW1lAQC0MwAuAES0MwAAABX/////AQH/////" +
           "AAAAABVgiQoCAAAAAAANAAAAQ29uZGl0aW9uTmFtZQEAtTMALgBEtTMAAAAM/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACAAAAEJyYW5jaElkAQC2MwAuAES2MwAAABH/////AQH/////AAAAABVgiQoCAAAAAAAG" +
           "AAAAUmV0YWluAQC3MwAuAES3MwAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAARW5hYmxlZFN0" +
           "YXRlAQC4MwAvAQAjI7gzAAAAFf////8BAQUAAAABACwjAAEA0DMBACwjAAEA2TMBACwjAAEA5jMBACwj" +
           "AAEA8DMBACwjAAEA+TMBAAAAFWCJCgIAAAAAAAIAAABJZAEAuTMALgBEuTMAAAAB/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAABwAAAFF1YWxpdHkBAMEzAC8BACojwTMAAAAT/////wEB/////wEAAAAVYIkKAgAA" +
           "AAAADwAAAFNvdXJjZVRpbWVzdGFtcAEAwjMALgBEwjMAAAEAJgH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAMAAAATGFzdFNldmVyaXR5AQDDMwAvAQAqI8MzAAAABf////8BAf////8BAAAAFWCJCgIAAAAAAA8A" +
           "AABTb3VyY2VUaW1lc3RhbXABAMQzAC4ARMQzAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAA" +
           "AENvbW1lbnQBAMUzAC8BACojxTMAAAAV/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRp" +
           "bWVzdGFtcAEAxjMALgBExjMAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50VXNl" +
           "cklkAQDHMwAuAETHMwAAAAz/////AQH/////AAAAAARhggoEAAAAAAAHAAAARGlzYWJsZQEAyDMALwEA" +
           "RCPIMwAAAQEBAAAAAQD5CwABAPMKAAAAAARhggoEAAAAAAAGAAAARW5hYmxlAQDJMwAvAQBDI8kzAAAB" +
           "AQEAAAABAPkLAAEA8woAAAAABGGCCgQAAAAAAAoAAABBZGRDb21tZW50AQDKMwAvAQBFI8ozAAABAQEA" +
           "AAABAPkLAAEADQsBAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAyzMALgBEyzMAAJYCAAAA" +
           "AQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRo" +
           "ZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRo" +
           "ZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA" +
           "FWCJCgIAAAAAAAoAAABBY2tlZFN0YXRlAQDQMwAvAQAjI9AzAAAAFf////8BAQEAAAABACwjAQEAuDMB" +
           "AAAAFWCJCgIAAAAAAAIAAABJZAEA0TMALgBE0TMAAAAB/////wEB/////wAAAAAEYYIKBAAAAAAACwAA" +
           "AEFja25vd2xlZGdlAQDiMwAvAQCXI+IzAAABAQEAAAABAPkLAAEA8CIBAAAAF2CpCgIAAAAAAA4AAABJ" +
           "bnB1dEFyZ3VtZW50cwEA4zMALgBE4zMAAJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAA" +
           "AwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcA" +
           "AABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0" +
           "aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAsAAABBY3RpdmVTdGF0ZQEA5jMA" +
           "LwEAIyPmMwAAABX/////AQEBAAAAAQAsIwEBALgzAQAAABVgiQoCAAAAAAACAAAASWQBAOczAC4AROcz" +
           "AAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABJbnB1dE5vZGUBAO8zAC4ARO8zAAAAEf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAABMAAABTdXBwcmVzc2VkT3JTaGVsdmVkAQAKNAAuAEQKNAAAAAH/////" +
           "AQH/////AAAAABVgiQoCAAAAAAALAAAATm9ybWFsU3RhdGUBAAw0AC4ARAw0AAAAEf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAA4AAABFeHBpcmF0aW9uRGF0ZQEADTQALgBEDTQAAAAN/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAADwAAAEV4cGlyYXRpb25MaW1pdAEANDoALgBENDoAAAEAIgH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAPAAAAQ2VydGlmaWNhdGVUeXBlAQAONAAuAEQONAAAABH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAALAAAAQ2VydGlmaWNhdGUBAA80AC4ARA80AAAAD/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<DateTime> ExpirationDate
        {
            get
            {
                return m_expirationDate;
            }

            set
            {
                if (!Object.ReferenceEquals(m_expirationDate, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_expirationDate = value;
            }
        }

        /// <remarks />
        public PropertyState<double> ExpirationLimit
        {
            get
            {
                return m_expirationLimit;
            }

            set
            {
                if (!Object.ReferenceEquals(m_expirationLimit, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_expirationLimit = value;
            }
        }

        /// <remarks />
        public PropertyState<NodeId> CertificateType
        {
            get
            {
                return m_certificateType;
            }

            set
            {
                if (!Object.ReferenceEquals(m_certificateType, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_certificateType = value;
            }
        }

        /// <remarks />
        public PropertyState<byte[]> Certificate
        {
            get
            {
                return m_certificate;
            }

            set
            {
                if (!Object.ReferenceEquals(m_certificate, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_certificate = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_expirationDate != null)
            {
                children.Add(m_expirationDate);
            }

            if (m_expirationLimit != null)
            {
                children.Add(m_expirationLimit);
            }

            if (m_certificateType != null)
            {
                children.Add(m_certificateType);
            }

            if (m_certificate != null)
            {
                children.Add(m_certificate);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ExpirationDate:
                {
                    if (createOrReplace)
                    {
                        if (ExpirationDate == null)
                        {
                            if (replacement == null)
                            {
                                ExpirationDate = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                ExpirationDate = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = ExpirationDate;
                    break;
                }

                case Opc.Ua.BrowseNames.ExpirationLimit:
                {
                    if (createOrReplace)
                    {
                        if (ExpirationLimit == null)
                        {
                            if (replacement == null)
                            {
                                ExpirationLimit = new PropertyState<double>(this);
                            }
                            else
                            {
                                ExpirationLimit = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = ExpirationLimit;
                    break;
                }

                case Opc.Ua.BrowseNames.CertificateType:
                {
                    if (createOrReplace)
                    {
                        if (CertificateType == null)
                        {
                            if (replacement == null)
                            {
                                CertificateType = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                CertificateType = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = CertificateType;
                    break;
                }

                case Opc.Ua.BrowseNames.Certificate:
                {
                    if (createOrReplace)
                    {
                        if (Certificate == null)
                        {
                            if (replacement == null)
                            {
                                Certificate = new PropertyState<byte[]>(this);
                            }
                            else
                            {
                                Certificate = (PropertyState<byte[]>)replacement;
                            }
                        }
                    }

                    instance = Certificate;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<DateTime> m_expirationDate;
        private PropertyState<double> m_expirationLimit;
        private PropertyState<NodeId> m_certificateType;
        private PropertyState<byte[]> m_certificate;
        #endregion
    }
    #endif
    #endregion

    #region DiscrepancyAlarmState Class
    #if (!OPCUA_EXCLUDE_DiscrepancyAlarmState)
    /// <summary>
    /// Stores an instance of the DiscrepancyAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DiscrepancyAlarmState : AlarmConditionState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DiscrepancyAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.DiscrepancyAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (Tolerance != null)
            {
                Tolerance.Initialize(context, Tolerance_InitializationString);
            }
        }

        #region Initialization String
        private const string Tolerance_InitializationString =
           "//////////8VYIkKAgAAAAAACQAAAFRvbGVyYW5jZQEAQUMALgBEQUMAAAAL/////wEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHAAAAERpc2NyZXBhbmN5QWxhcm1UeXBlSW5zdGFuY2UBALhCAQC4QrhC" +
           "AAD/////HQAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEAuUIALgBEuUIAAAAP/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACQAAAEV2ZW50VHlwZQEAukIALgBEukIAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "CgAAAFNvdXJjZU5vZGUBALtCAC4ARLtCAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABTb3Vy" +
           "Y2VOYW1lAQC8QgAuAES8QgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGltZQEAvUIALgBE" +
           "vUIAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBAL5CAC4ARL5CAAAB" +
           "ACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAMBCAC4ARMBCAAAAFf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAwUIALgBEwUIAAAAF/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAAEAAAAENvbmRpdGlvbkNsYXNzSWQBAMJCAC4ARMJCAAAAEf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAABIAAABDb25kaXRpb25DbGFzc05hbWUBAMNCAC4ARMNCAAAAFf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAA0AAABDb25kaXRpb25OYW1lAQDGQgAuAETGQgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAI" +
           "AAAAQnJhbmNoSWQBAMdCAC4ARMdCAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAYAAABSZXRhaW4B" +
           "AMhCAC4ARMhCAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABFbmFibGVkU3RhdGUBAMlCAC8B" +
           "ACMjyUIAAAAV/////wEBBQAAAAEALCMAAQDhQgEALCMAAQDqQgEALCMAAQD3QgEALCMAAQABQwEALCMA" +
           "AQAcQwEAAAAVYIkKAgAAAAAAAgAAAElkAQDKQgAuAETKQgAAAAH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAHAAAAUXVhbGl0eQEA0kIALwEAKiPSQgAAABP/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291" +
           "cmNlVGltZXN0YW1wAQDTQgAuAETTQgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABMYXN0" +
           "U2V2ZXJpdHkBANRCAC8BACoj1EIAAAAF/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRp" +
           "bWVzdGFtcAEA1UIALgBE1UIAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAAQ29tbWVudAEA" +
           "1kIALwEAKiPWQgAAABX/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291cmNlVGltZXN0YW1wAQDX" +
           "QgAuAETXQgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGllbnRVc2VySWQBANhCAC4A" +
           "RNhCAAAADP////8BAf////8AAAAABGGCCgQAAAAAAAcAAABEaXNhYmxlAQDZQgAvAQBEI9lCAAABAQEA" +
           "AAABAPkLAAEA8woAAAAABGGCCgQAAAAAAAYAAABFbmFibGUBANpCAC8BAEMj2kIAAAEBAQAAAAEA+QsA" +
           "AQDzCgAAAAAEYYIKBAAAAAAACgAAAEFkZENvbW1lbnQBANtCAC8BAEUj20IAAAEBAQAAAAEA+QsAAQAN" +
           "CwEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQDcQgAuAETcQgAAlgIAAAABACoBAUYAAAAH" +
           "AAAARXZlbnRJZAAP/////wAAAAADAAAAACgAAABUaGUgaWRlbnRpZmllciBmb3IgdGhlIGV2ZW50IHRv" +
           "IGNvbW1lbnQuAQAqAQFCAAAABwAAAENvbW1lbnQAFf////8AAAAAAwAAAAAkAAAAVGhlIGNvbW1lbnQg" +
           "dG8gYWRkIHRvIHRoZSBjb25kaXRpb24uAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAA" +
           "CgAAAEFja2VkU3RhdGUBAOFCAC8BACMj4UIAAAAV/////wEBAQAAAAEALCMBAQDJQgEAAAAVYIkKAgAA" +
           "AAAAAgAAAElkAQDiQgAuAETiQgAAAAH/////AQH/////AAAAAARhggoEAAAAAAALAAAAQWNrbm93bGVk" +
           "Z2UBAPNCAC8BAJcj80IAAAEBAQAAAAEA+QsAAQDwIgEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1l" +
           "bnRzAQD0QgAuAET0QgAAlgIAAAABACoBAUYAAAAHAAAARXZlbnRJZAAP/////wAAAAADAAAAACgAAABU" +
           "aGUgaWRlbnRpZmllciBmb3IgdGhlIGV2ZW50IHRvIGNvbW1lbnQuAQAqAQFCAAAABwAAAENvbW1lbnQA" +
           "Ff////8AAAAAAwAAAAAkAAAAVGhlIGNvbW1lbnQgdG8gYWRkIHRvIHRoZSBjb25kaXRpb24uAQAoAQEA" +
           "AAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAACwAAAEFjdGl2ZVN0YXRlAQD3QgAvAQAjI/dCAAAA" +
           "Ff////8BAQEAAAABACwjAQEAyUIBAAAAFWCJCgIAAAAAAAIAAABJZAEA+EIALgBE+EIAAAAB/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAACQAAAElucHV0Tm9kZQEAAEMALgBEAEMAAAAR/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAAEwAAAFN1cHByZXNzZWRPclNoZWx2ZWQBAC1DAC4ARC1DAAAAAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAA8AAABUYXJnZXRWYWx1ZU5vZGUBAD9DAC4ARD9DAAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAwAAABFeHBlY3RlZFRpbWUBAEBDAC4AREBDAAABACIB/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACQAAAFRvbGVyYW5jZQEAQUMALgBEQUMAAAAL/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> TargetValueNode
        {
            get
            {
                return m_targetValueNode;
            }

            set
            {
                if (!Object.ReferenceEquals(m_targetValueNode, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_targetValueNode = value;
            }
        }

        /// <remarks />
        public PropertyState<double> ExpectedTime
        {
            get
            {
                return m_expectedTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_expectedTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_expectedTime = value;
            }
        }

        /// <remarks />
        public PropertyState<double> Tolerance
        {
            get
            {
                return m_tolerance;
            }

            set
            {
                if (!Object.ReferenceEquals(m_tolerance, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_tolerance = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_targetValueNode != null)
            {
                children.Add(m_targetValueNode);
            }

            if (m_expectedTime != null)
            {
                children.Add(m_expectedTime);
            }

            if (m_tolerance != null)
            {
                children.Add(m_tolerance);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.TargetValueNode:
                {
                    if (createOrReplace)
                    {
                        if (TargetValueNode == null)
                        {
                            if (replacement == null)
                            {
                                TargetValueNode = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                TargetValueNode = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = TargetValueNode;
                    break;
                }

                case Opc.Ua.BrowseNames.ExpectedTime:
                {
                    if (createOrReplace)
                    {
                        if (ExpectedTime == null)
                        {
                            if (replacement == null)
                            {
                                ExpectedTime = new PropertyState<double>(this);
                            }
                            else
                            {
                                ExpectedTime = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = ExpectedTime;
                    break;
                }

                case Opc.Ua.BrowseNames.Tolerance:
                {
                    if (createOrReplace)
                    {
                        if (Tolerance == null)
                        {
                            if (replacement == null)
                            {
                                Tolerance = new PropertyState<double>(this);
                            }
                            else
                            {
                                Tolerance = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = Tolerance;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_targetValueNode;
        private PropertyState<double> m_expectedTime;
        private PropertyState<double> m_tolerance;
        #endregion
    }
    #endif
    #endregion

    #region BaseConditionClassState Class
    #if (!OPCUA_EXCLUDE_BaseConditionClassState)
    /// <summary>
    /// Stores an instance of the BaseConditionClassType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class BaseConditionClassState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public BaseConditionClassState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.BaseConditionClassType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHgAAAEJhc2VDb25kaXRpb25DbGFzc1R5cGVJbnN0YW5jZQEAmysBAJsr" +
           "mysAAP////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region ProcessConditionClassState Class
    #if (!OPCUA_EXCLUDE_ProcessConditionClassState)
    /// <summary>
    /// Stores an instance of the ProcessConditionClassType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ProcessConditionClassState : BaseConditionClassState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ProcessConditionClassState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ProcessConditionClassType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIQAAAFByb2Nlc3NDb25kaXRpb25DbGFzc1R5cGVJbnN0YW5jZQEAnCsB" +
           "AJwrnCsAAP////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region MaintenanceConditionClassState Class
    #if (!OPCUA_EXCLUDE_MaintenanceConditionClassState)
    /// <summary>
    /// Stores an instance of the MaintenanceConditionClassType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class MaintenanceConditionClassState : BaseConditionClassState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public MaintenanceConditionClassState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.MaintenanceConditionClassType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJQAAAE1haW50ZW5hbmNlQ29uZGl0aW9uQ2xhc3NUeXBlSW5zdGFuY2UB" +
           "AJ0rAQCdK50rAAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region SystemConditionClassState Class
    #if (!OPCUA_EXCLUDE_SystemConditionClassState)
    /// <summary>
    /// Stores an instance of the SystemConditionClassType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SystemConditionClassState : BaseConditionClassState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SystemConditionClassState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.SystemConditionClassType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIAAAAFN5c3RlbUNvbmRpdGlvbkNsYXNzVHlwZUluc3RhbmNlAQCeKwEA" +
           "niueKwAA/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region SafetyConditionClassState Class
    #if (!OPCUA_EXCLUDE_SafetyConditionClassState)
    /// <summary>
    /// Stores an instance of the SafetyConditionClassType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SafetyConditionClassState : BaseConditionClassState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SafetyConditionClassState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.SafetyConditionClassType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIAAAAFNhZmV0eUNvbmRpdGlvbkNsYXNzVHlwZUluc3RhbmNlAQBCQwEA" +
           "QkNCQwAA/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region HighlyManagedAlarmConditionClassState Class
    #if (!OPCUA_EXCLUDE_HighlyManagedAlarmConditionClassState)
    /// <summary>
    /// Stores an instance of the HighlyManagedAlarmConditionClassType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class HighlyManagedAlarmConditionClassState : BaseConditionClassState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public HighlyManagedAlarmConditionClassState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.HighlyManagedAlarmConditionClassType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAALAAAAEhpZ2hseU1hbmFnZWRBbGFybUNvbmRpdGlvbkNsYXNzVHlwZUlu" +
           "c3RhbmNlAQBDQwEAQ0NDQwAA/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region TrainingConditionClassState Class
    #if (!OPCUA_EXCLUDE_TrainingConditionClassState)
    /// <summary>
    /// Stores an instance of the TrainingConditionClassType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TrainingConditionClassState : BaseConditionClassState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TrainingConditionClassState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.TrainingConditionClassType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIgAAAFRyYWluaW5nQ29uZGl0aW9uQ2xhc3NUeXBlSW5zdGFuY2UBAERD" +
           "AQBEQ0RDAAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region StatisticalConditionClassState Class
    #if (!OPCUA_EXCLUDE_StatisticalConditionClassState)
    /// <summary>
    /// Stores an instance of the StatisticalConditionClassType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class StatisticalConditionClassState : BaseConditionClassState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public StatisticalConditionClassState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.StatisticalConditionClassType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJQAAAFN0YXRpc3RpY2FsQ29uZGl0aW9uQ2xhc3NUeXBlSW5zdGFuY2UB" +
           "AOlIAQDpSOlIAAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region TestingConditionSubClassState Class
    #if (!OPCUA_EXCLUDE_TestingConditionSubClassState)
    /// <summary>
    /// Stores an instance of the TestingConditionSubClassType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TestingConditionSubClassState : BaseConditionClassState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TestingConditionSubClassState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.TestingConditionSubClassType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJAAAAFRlc3RpbmdDb25kaXRpb25TdWJDbGFzc1R5cGVJbnN0YW5jZQEA" +
           "RUMBAEVDRUMAAP////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AuditConditionEventState Class
    #if (!OPCUA_EXCLUDE_AuditConditionEventState)
    /// <summary>
    /// Stores an instance of the AuditConditionEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditConditionEventState : AuditUpdateMethodEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditConditionEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditConditionEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHwAAAEF1ZGl0Q29uZGl0aW9uRXZlbnRUeXBlSW5zdGFuY2UBAOYKAQDm" +
           "CuYKAAD/////DwAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEAnA8ALgBEnA8AAAAP/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEAnQ8ALgBEnQ8AAAAR/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACgAAAFNvdXJjZU5vZGUBAJ4PAC4ARJ4PAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABT" +
           "b3VyY2VOYW1lAQCfDwAuAESfDwAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGltZQEAoA8A" +
           "LgBEoA8AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBAKEPAC4ARKEP" +
           "AAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAKMPAC4ARKMPAAAAFf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEApA8ALgBEpA8AAAAF/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAADwAAAEFjdGlvblRpbWVTdGFtcAEApQ8ALgBEpQ8AAAEAJgH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAGAAAAU3RhdHVzAQCmDwAuAESmDwAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAIAAAA" +
           "U2VydmVySWQBAKcPAC4ARKcPAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABIAAABDbGllbnRBdWRp" +
           "dEVudHJ5SWQBAKgPAC4ARKgPAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGllbnRVc2Vy" +
           "SWQBAKkPAC4ARKkPAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABNZXRob2RJZAEAqg8ALgBE" +
           "qg8AAAAR/////wEB/////wAAAAAXYIkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQCrDwAuAESrDwAA" +
           "ABgBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AuditConditionEnableEventState Class
    #if (!OPCUA_EXCLUDE_AuditConditionEnableEventState)
    /// <summary>
    /// Stores an instance of the AuditConditionEnableEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditConditionEnableEventState : AuditConditionEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditConditionEnableEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditConditionEnableEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJQAAAEF1ZGl0Q29uZGl0aW9uRW5hYmxlRXZlbnRUeXBlSW5zdGFuY2UB" +
           "APMKAQDzCvMKAAD/////DwAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEAChAALgBEChAAAAAP/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEACxAALgBECxAAAAAR/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACgAAAFNvdXJjZU5vZGUBAAwQAC4ARAwQAAAAEf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAoAAABTb3VyY2VOYW1lAQANEAAuAEQNEAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGlt" +
           "ZQEADhAALgBEDhAAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBAA8Q" +
           "AC4ARA8QAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBABEQAC4ARBEQAAAA" +
           "Ff////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAEhAALgBEEhAAAAAF/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAADwAAAEFjdGlvblRpbWVTdGFtcAEAExAALgBEExAAAAEAJgH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAGAAAAU3RhdHVzAQAUEAAuAEQUEAAAAAH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAIAAAAU2VydmVySWQBABUQAC4ARBUQAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABIAAABDbGll" +
           "bnRBdWRpdEVudHJ5SWQBABYQAC4ARBYQAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDbGll" +
           "bnRVc2VySWQBABcQAC4ARBcQAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABNZXRob2RJZAEA" +
           "GBAALgBEGBAAAAAR/////wEB/////wAAAAAXYIkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQAZEAAu" +
           "AEQZEAAAABgBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AuditConditionCommentEventState Class
    #if (!OPCUA_EXCLUDE_AuditConditionCommentEventState)
    /// <summary>
    /// Stores an instance of the AuditConditionCommentEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditConditionCommentEventState : AuditConditionEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditConditionCommentEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditConditionCommentEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJgAAAEF1ZGl0Q29uZGl0aW9uQ29tbWVudEV2ZW50VHlwZUluc3RhbmNl" +
           "AQANCwEADQsNCwAA/////xEAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAEoQAC4AREoQAAAAD/////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAEsQAC4AREsQAAAAEf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQBMEAAuAERMEAAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAKAAAAU291cmNlTmFtZQEATRAALgBETRAAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRp" +
           "bWUBAE4QAC4ARE4QAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQBP" +
           "EAAuAERPEAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQBREAAuAERREAAA" +
           "ABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAFIQAC4ARFIQAAAABf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABAFMQAC4ARFMQAAABACYB/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAABgAAAFN0YXR1cwEAVBAALgBEVBAAAAAB/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACAAAAFNlcnZlcklkAQBVEAAuAERVEAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAAQ2xp" +
           "ZW50QXVkaXRFbnRyeUlkAQBWEAAuAERWEAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xp" +
           "ZW50VXNlcklkAQBXEAAuAERXEAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAIAAAATWV0aG9kSWQB" +
           "AFgQAC4ARFgQAAAAEf////8BAf////8AAAAAF2CJCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAWRAA" +
           "LgBEWRAAAAAYAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAAAAAQAAAAQ29uZGl0aW9uRXZlbnRJ" +
           "ZAEARkMALgBERkMAAAAP/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAENvbW1lbnQBAEsuAC4AREsu" +
           "AAAAFf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<byte[]> ConditionEventId
        {
            get
            {
                return m_conditionEventId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_conditionEventId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_conditionEventId = value;
            }
        }

        /// <remarks />
        public PropertyState<LocalizedText> Comment
        {
            get
            {
                return m_comment;
            }

            set
            {
                if (!Object.ReferenceEquals(m_comment, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_comment = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_conditionEventId != null)
            {
                children.Add(m_conditionEventId);
            }

            if (m_comment != null)
            {
                children.Add(m_comment);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ConditionEventId:
                {
                    if (createOrReplace)
                    {
                        if (ConditionEventId == null)
                        {
                            if (replacement == null)
                            {
                                ConditionEventId = new PropertyState<byte[]>(this);
                            }
                            else
                            {
                                ConditionEventId = (PropertyState<byte[]>)replacement;
                            }
                        }
                    }

                    instance = ConditionEventId;
                    break;
                }

                case Opc.Ua.BrowseNames.Comment:
                {
                    if (createOrReplace)
                    {
                        if (Comment == null)
                        {
                            if (replacement == null)
                            {
                                Comment = new PropertyState<LocalizedText>(this);
                            }
                            else
                            {
                                Comment = (PropertyState<LocalizedText>)replacement;
                            }
                        }
                    }

                    instance = Comment;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<byte[]> m_conditionEventId;
        private PropertyState<LocalizedText> m_comment;
        #endregion
    }
    #endif
    #endregion

    #region AuditConditionRespondEventState Class
    #if (!OPCUA_EXCLUDE_AuditConditionRespondEventState)
    /// <summary>
    /// Stores an instance of the AuditConditionRespondEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditConditionRespondEventState : AuditConditionEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditConditionRespondEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditConditionRespondEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJgAAAEF1ZGl0Q29uZGl0aW9uUmVzcG9uZEV2ZW50VHlwZUluc3RhbmNl" +
           "AQDfIgEA3yLfIgAA/////xAAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAOAiAC4AROAiAAAAD/////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAOEiAC4AROEiAAAAEf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQDiIgAuAETiIgAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAKAAAAU291cmNlTmFtZQEA4yIALgBE4yIAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRp" +
           "bWUBAOQiAC4AROQiAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQDl" +
           "IgAuAETlIgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQDnIgAuAETnIgAA" +
           "ABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAOgiAC4AROgiAAAABf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABAOkiAC4AROkiAAABACYB/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAABgAAAFN0YXR1cwEA6iIALgBE6iIAAAAB/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACAAAAFNlcnZlcklkAQDrIgAuAETrIgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAAQ2xp" +
           "ZW50QXVkaXRFbnRyeUlkAQDsIgAuAETsIgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xp" +
           "ZW50VXNlcklkAQDtIgAuAETtIgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAIAAAATWV0aG9kSWQB" +
           "AO4iAC4ARO4iAAAAEf////8BAf////8AAAAAF2CJCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA7yIA" +
           "LgBE7yIAAAAYAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAAAAAQAAAAU2VsZWN0ZWRSZXNwb25z" +
           "ZQEATC4ALgBETC4AAAAH/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<uint> SelectedResponse
        {
            get
            {
                return m_selectedResponse;
            }

            set
            {
                if (!Object.ReferenceEquals(m_selectedResponse, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_selectedResponse = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_selectedResponse != null)
            {
                children.Add(m_selectedResponse);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SelectedResponse:
                {
                    if (createOrReplace)
                    {
                        if (SelectedResponse == null)
                        {
                            if (replacement == null)
                            {
                                SelectedResponse = new PropertyState<uint>(this);
                            }
                            else
                            {
                                SelectedResponse = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = SelectedResponse;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<uint> m_selectedResponse;
        #endregion
    }
    #endif
    #endregion

    #region AuditConditionAcknowledgeEventState Class
    #if (!OPCUA_EXCLUDE_AuditConditionAcknowledgeEventState)
    /// <summary>
    /// Stores an instance of the AuditConditionAcknowledgeEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditConditionAcknowledgeEventState : AuditConditionEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditConditionAcknowledgeEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditConditionAcknowledgeEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKgAAAEF1ZGl0Q29uZGl0aW9uQWNrbm93bGVkZ2VFdmVudFR5cGVJbnN0" +
           "YW5jZQEA8CIBAPAi8CIAAP////8RAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQDxIgAuAETxIgAAAA//" +
           "////AQH/////AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQDyIgAuAETyIgAAABH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAKAAAAU291cmNlTm9kZQEA8yIALgBE8yIAAAAR/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACgAAAFNvdXJjZU5hbWUBAPQiAC4ARPQiAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQA" +
           "AABUaW1lAQD1IgAuAET1IgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGlt" +
           "ZQEA9iIALgBE9iIAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEA+CIALgBE" +
           "+CIAAAAV/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQD5IgAuAET5IgAAAAX/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQD6IgAuAET6IgAAAQAmAf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAYAAABTdGF0dXMBAPsiAC4ARPsiAAAAAf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAgAAABTZXJ2ZXJJZAEA/CIALgBE/CIAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAA" +
           "AENsaWVudEF1ZGl0RW50cnlJZAEA/SIALgBE/SIAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAA" +
           "AENsaWVudFVzZXJJZAEA/iIALgBE/iIAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAE1ldGhv" +
           "ZElkAQD/IgAuAET/IgAAABH/////AQH/////AAAAABdgiQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMB" +
           "AAAjAC4ARAAjAAAAGAEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAAEAAAAENvbmRpdGlvbkV2" +
           "ZW50SWQBAEdDAC4AREdDAAAAD/////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABDb21tZW50AQBNLgAu" +
           "AERNLgAAABX/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<byte[]> ConditionEventId
        {
            get
            {
                return m_conditionEventId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_conditionEventId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_conditionEventId = value;
            }
        }

        /// <remarks />
        public PropertyState<LocalizedText> Comment
        {
            get
            {
                return m_comment;
            }

            set
            {
                if (!Object.ReferenceEquals(m_comment, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_comment = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_conditionEventId != null)
            {
                children.Add(m_conditionEventId);
            }

            if (m_comment != null)
            {
                children.Add(m_comment);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ConditionEventId:
                {
                    if (createOrReplace)
                    {
                        if (ConditionEventId == null)
                        {
                            if (replacement == null)
                            {
                                ConditionEventId = new PropertyState<byte[]>(this);
                            }
                            else
                            {
                                ConditionEventId = (PropertyState<byte[]>)replacement;
                            }
                        }
                    }

                    instance = ConditionEventId;
                    break;
                }

                case Opc.Ua.BrowseNames.Comment:
                {
                    if (createOrReplace)
                    {
                        if (Comment == null)
                        {
                            if (replacement == null)
                            {
                                Comment = new PropertyState<LocalizedText>(this);
                            }
                            else
                            {
                                Comment = (PropertyState<LocalizedText>)replacement;
                            }
                        }
                    }

                    instance = Comment;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<byte[]> m_conditionEventId;
        private PropertyState<LocalizedText> m_comment;
        #endregion
    }
    #endif
    #endregion

    #region AuditConditionConfirmEventState Class
    #if (!OPCUA_EXCLUDE_AuditConditionConfirmEventState)
    /// <summary>
    /// Stores an instance of the AuditConditionConfirmEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditConditionConfirmEventState : AuditConditionEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditConditionConfirmEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditConditionConfirmEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJgAAAEF1ZGl0Q29uZGl0aW9uQ29uZmlybUV2ZW50VHlwZUluc3RhbmNl" +
           "AQABIwEAASMBIwAA/////xEAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAAIjAC4ARAIjAAAAD/////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAAMjAC4ARAMjAAAAEf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQAEIwAuAEQEIwAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAKAAAAU291cmNlTmFtZQEABSMALgBEBSMAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRp" +
           "bWUBAAYjAC4ARAYjAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQAH" +
           "IwAuAEQHIwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQAJIwAuAEQJIwAA" +
           "ABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAAojAC4ARAojAAAABf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABAAsjAC4ARAsjAAABACYB/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAABgAAAFN0YXR1cwEADCMALgBEDCMAAAAB/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACAAAAFNlcnZlcklkAQANIwAuAEQNIwAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAAQ2xp" +
           "ZW50QXVkaXRFbnRyeUlkAQAOIwAuAEQOIwAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xp" +
           "ZW50VXNlcklkAQAPIwAuAEQPIwAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAIAAAATWV0aG9kSWQB" +
           "ABAjAC4ARBAjAAAAEf////8BAf////8AAAAAF2CJCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAESMA" +
           "LgBEESMAAAAYAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAAAAAQAAAAQ29uZGl0aW9uRXZlbnRJ" +
           "ZAEASEMALgBESEMAAAAP/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAENvbW1lbnQBAE4uAC4ARE4u" +
           "AAAAFf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<byte[]> ConditionEventId
        {
            get
            {
                return m_conditionEventId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_conditionEventId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_conditionEventId = value;
            }
        }

        /// <remarks />
        public PropertyState<LocalizedText> Comment
        {
            get
            {
                return m_comment;
            }

            set
            {
                if (!Object.ReferenceEquals(m_comment, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_comment = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_conditionEventId != null)
            {
                children.Add(m_conditionEventId);
            }

            if (m_comment != null)
            {
                children.Add(m_comment);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ConditionEventId:
                {
                    if (createOrReplace)
                    {
                        if (ConditionEventId == null)
                        {
                            if (replacement == null)
                            {
                                ConditionEventId = new PropertyState<byte[]>(this);
                            }
                            else
                            {
                                ConditionEventId = (PropertyState<byte[]>)replacement;
                            }
                        }
                    }

                    instance = ConditionEventId;
                    break;
                }

                case Opc.Ua.BrowseNames.Comment:
                {
                    if (createOrReplace)
                    {
                        if (Comment == null)
                        {
                            if (replacement == null)
                            {
                                Comment = new PropertyState<LocalizedText>(this);
                            }
                            else
                            {
                                Comment = (PropertyState<LocalizedText>)replacement;
                            }
                        }
                    }

                    instance = Comment;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<byte[]> m_conditionEventId;
        private PropertyState<LocalizedText> m_comment;
        #endregion
    }
    #endif
    #endregion

    #region AuditConditionShelvingEventState Class
    #if (!OPCUA_EXCLUDE_AuditConditionShelvingEventState)
    /// <summary>
    /// Stores an instance of the AuditConditionShelvingEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditConditionShelvingEventState : AuditConditionEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditConditionShelvingEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditConditionShelvingEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (ShelvingTime != null)
            {
                ShelvingTime.Initialize(context, ShelvingTime_InitializationString);
            }
        }

        #region Initialization String
        private const string ShelvingTime_InitializationString =
           "//////////8VYIkKAgAAAAAADAAAAFNoZWx2aW5nVGltZQEATy4ALgBETy4AAAEAIgH/////AQH/////" +
           "AAAAAA==";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJwAAAEF1ZGl0Q29uZGl0aW9uU2hlbHZpbmdFdmVudFR5cGVJbnN0YW5j" +
           "ZQEAVSsBAFUrVSsAAP////8QAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQBWKwAuAERWKwAAAA//////" +
           "AQH/////AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQBXKwAuAERXKwAAABH/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAKAAAAU291cmNlTm9kZQEAWCsALgBEWCsAAAAR/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACgAAAFNvdXJjZU5hbWUBAFkrAC4ARFkrAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABU" +
           "aW1lAQBaKwAuAERaKwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEA" +
           "WysALgBEWysAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAXSsALgBEXSsA" +
           "AAAV/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQBeKwAuAEReKwAAAAX/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQBfKwAuAERfKwAAAQAmAf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAYAAABTdGF0dXMBAGArAC4ARGArAAAAAf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAgAAABTZXJ2ZXJJZAEAYSsALgBEYSsAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAENs" +
           "aWVudEF1ZGl0RW50cnlJZAEAYisALgBEYisAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENs" +
           "aWVudFVzZXJJZAEAYysALgBEYysAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAE1ldGhvZElk" +
           "AQBkKwAuAERkKwAAABH/////AQH/////AAAAABdgiQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAGUr" +
           "AC4ARGUrAAAAGAEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAADAAAAFNoZWx2aW5nVGltZQEA" +
           "Ty4ALgBETy4AAAEAIgH/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<double> ShelvingTime
        {
            get
            {
                return m_shelvingTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_shelvingTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_shelvingTime = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_shelvingTime != null)
            {
                children.Add(m_shelvingTime);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ShelvingTime:
                {
                    if (createOrReplace)
                    {
                        if (ShelvingTime == null)
                        {
                            if (replacement == null)
                            {
                                ShelvingTime = new PropertyState<double>(this);
                            }
                            else
                            {
                                ShelvingTime = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = ShelvingTime;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<double> m_shelvingTime;
        #endregion
    }
    #endif
    #endregion

    #region AuditConditionSuppressionEventState Class
    #if (!OPCUA_EXCLUDE_AuditConditionSuppressionEventState)
    /// <summary>
    /// Stores an instance of the AuditConditionSuppressionEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditConditionSuppressionEventState : AuditConditionEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditConditionSuppressionEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditConditionSuppressionEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKgAAAEF1ZGl0Q29uZGl0aW9uU3VwcHJlc3Npb25FdmVudFR5cGVJbnN0" +
           "YW5jZQEASUMBAElDSUMAAP////8PAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQBKQwAuAERKQwAAAA//" +
           "////AQH/////AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQBLQwAuAERLQwAAABH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAKAAAAU291cmNlTm9kZQEATEMALgBETEMAAAAR/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACgAAAFNvdXJjZU5hbWUBAE1DAC4ARE1DAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQA" +
           "AABUaW1lAQBOQwAuAEROQwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGlt" +
           "ZQEAT0MALgBET0MAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAUUMALgBE" +
           "UUMAAAAV/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQBSQwAuAERSQwAAAAX/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQBTQwAuAERTQwAAAQAmAf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAYAAABTdGF0dXMBAFRDAC4ARFRDAAAAAf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAgAAABTZXJ2ZXJJZAEAVUMALgBEVUMAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAA" +
           "AENsaWVudEF1ZGl0RW50cnlJZAEAVkMALgBEVkMAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAA" +
           "AENsaWVudFVzZXJJZAEAV0MALgBEV0MAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAE1ldGhv" +
           "ZElkAQBYQwAuAERYQwAAABH/////AQH/////AAAAABdgiQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMB" +
           "AFlDAC4ARFlDAAAAGAEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AuditConditionSilenceEventState Class
    #if (!OPCUA_EXCLUDE_AuditConditionSilenceEventState)
    /// <summary>
    /// Stores an instance of the AuditConditionSilenceEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditConditionSilenceEventState : AuditConditionEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditConditionSilenceEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditConditionSilenceEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJgAAAEF1ZGl0Q29uZGl0aW9uU2lsZW5jZUV2ZW50VHlwZUluc3RhbmNl" +
           "AQBaQwEAWkNaQwAA/////w8AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAFtDAC4ARFtDAAAAD/////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAFxDAC4ARFxDAAAAEf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQBdQwAuAERdQwAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAKAAAAU291cmNlTmFtZQEAXkMALgBEXkMAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRp" +
           "bWUBAF9DAC4ARF9DAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQBg" +
           "QwAuAERgQwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQBiQwAuAERiQwAA" +
           "ABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAGNDAC4ARGNDAAAABf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABAGRDAC4ARGRDAAABACYB/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAABgAAAFN0YXR1cwEAZUMALgBEZUMAAAAB/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACAAAAFNlcnZlcklkAQBmQwAuAERmQwAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAAQ2xp" +
           "ZW50QXVkaXRFbnRyeUlkAQBnQwAuAERnQwAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xp" +
           "ZW50VXNlcklkAQBoQwAuAERoQwAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAIAAAATWV0aG9kSWQB" +
           "AGlDAC4ARGlDAAAAEf////8BAf////8AAAAAF2CJCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAakMA" +
           "LgBEakMAAAAYAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AuditConditionResetEventState Class
    #if (!OPCUA_EXCLUDE_AuditConditionResetEventState)
    /// <summary>
    /// Stores an instance of the AuditConditionResetEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditConditionResetEventState : AuditConditionEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditConditionResetEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditConditionResetEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJAAAAEF1ZGl0Q29uZGl0aW9uUmVzZXRFdmVudFR5cGVJbnN0YW5jZQEA" +
           "pToBAKU6pToAAP////8PAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQCmOgAuAESmOgAAAA//////AQH/" +
           "////AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQCnOgAuAESnOgAAABH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAKAAAAU291cmNlTm9kZQEAqDoALgBEqDoAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "CgAAAFNvdXJjZU5hbWUBAKk6AC4ARKk6AAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1l" +
           "AQCqOgAuAESqOgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEAqzoA" +
           "LgBEqzoAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEArToALgBErToAAAAV" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQCuOgAuAESuOgAAAAX/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQCvOgAuAESvOgAAAQAmAf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAAYAAABTdGF0dXMBALA6AC4ARLA6AAAAAf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAgAAABTZXJ2ZXJJZAEAsToALgBEsToAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAENsaWVu" +
           "dEF1ZGl0RW50cnlJZAEAsjoALgBEsjoAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENsaWVu" +
           "dFVzZXJJZAEAszoALgBEszoAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAE1ldGhvZElkAQC0" +
           "OgAuAES0OgAAABH/////AQH/////AAAAABdgiQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBALU6AC4A" +
           "RLU6AAAAGAEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AuditConditionOutOfServiceEventState Class
    #if (!OPCUA_EXCLUDE_AuditConditionOutOfServiceEventState)
    /// <summary>
    /// Stores an instance of the AuditConditionOutOfServiceEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditConditionOutOfServiceEventState : AuditConditionEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditConditionOutOfServiceEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditConditionOutOfServiceEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKwAAAEF1ZGl0Q29uZGl0aW9uT3V0T2ZTZXJ2aWNlRXZlbnRUeXBlSW5z" +
           "dGFuY2UBAGtDAQBrQ2tDAAD/////DwAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEAbEMALgBEbEMAAAAP" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEAbUMALgBEbUMAAAAR/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAACgAAAFNvdXJjZU5vZGUBAG5DAC4ARG5DAAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABTb3VyY2VOYW1lAQBvQwAuAERvQwAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAE" +
           "AAAAVGltZQEAcEMALgBEcEMAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRp" +
           "bWUBAHFDAC4ARHFDAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAHNDAC4A" +
           "RHNDAAAAFf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAdEMALgBEdEMAAAAF////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAADwAAAEFjdGlvblRpbWVTdGFtcAEAdUMALgBEdUMAAAEAJgH/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAGAAAAU3RhdHVzAQB2QwAuAER2QwAAAAH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAIAAAAU2VydmVySWQBAHdDAC4ARHdDAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABIA" +
           "AABDbGllbnRBdWRpdEVudHJ5SWQBAHhDAC4ARHhDAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwA" +
           "AABDbGllbnRVc2VySWQBAHlDAC4ARHlDAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABNZXRo" +
           "b2RJZAEAekMALgBEekMAAAAR/////wEB/////wAAAAAXYIkKAgAAAAAADgAAAElucHV0QXJndW1lbnRz" +
           "AQB7QwAuAER7QwAAABgBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region RefreshStartEventState Class
    #if (!OPCUA_EXCLUDE_RefreshStartEventState)
    /// <summary>
    /// Stores an instance of the RefreshStartEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RefreshStartEventState : SystemEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RefreshStartEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.RefreshStartEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHQAAAFJlZnJlc2hTdGFydEV2ZW50VHlwZUluc3RhbmNlAQDjCgEA4wrj" +
           "CgAA/////wgAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAIEPAC4ARIEPAAAAD/////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAIIPAC4ARIIPAAAAEf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAoAAABTb3VyY2VOb2RlAQCDDwAuAESDDwAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAAU291" +
           "cmNlTmFtZQEAhA8ALgBEhA8AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUBAIUPAC4A" +
           "RIUPAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQCGDwAuAESGDwAA" +
           "AQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQCIDwAuAESIDwAAABX/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAIkPAC4ARIkPAAAABf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region RefreshEndEventState Class
    #if (!OPCUA_EXCLUDE_RefreshEndEventState)
    /// <summary>
    /// Stores an instance of the RefreshEndEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RefreshEndEventState : SystemEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RefreshEndEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.RefreshEndEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGwAAAFJlZnJlc2hFbmRFdmVudFR5cGVJbnN0YW5jZQEA5AoBAOQK5AoA" +
           "AP////8IAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQCKDwAuAESKDwAAAA//////AQH/////AAAAABVg" +
           "iQoCAAAAAAAJAAAARXZlbnRUeXBlAQCLDwAuAESLDwAAABH/////AQH/////AAAAABVgiQoCAAAAAAAK" +
           "AAAAU291cmNlTm9kZQEAjA8ALgBEjA8AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFNvdXJj" +
           "ZU5hbWUBAI0PAC4ARI0PAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQCODwAuAESO" +
           "DwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEAjw8ALgBEjw8AAAEA" +
           "JgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAkQ8ALgBEkQ8AAAAV/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQCSDwAuAESSDwAAAAX/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region RefreshRequiredEventState Class
    #if (!OPCUA_EXCLUDE_RefreshRequiredEventState)
    /// <summary>
    /// Stores an instance of the RefreshRequiredEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RefreshRequiredEventState : SystemEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RefreshRequiredEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.RefreshRequiredEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIAAAAFJlZnJlc2hSZXF1aXJlZEV2ZW50VHlwZUluc3RhbmNlAQDlCgEA" +
           "5QrlCgAA/////wgAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAJMPAC4ARJMPAAAAD/////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAJQPAC4ARJQPAAAAEf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAoAAABTb3VyY2VOb2RlAQCVDwAuAESVDwAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAA" +
           "U291cmNlTmFtZQEAlg8ALgBElg8AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUBAJcP" +
           "AC4ARJcPAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQCYDwAuAESY" +
           "DwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQCaDwAuAESaDwAAABX/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAJsPAC4ARJsPAAAABf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AlarmMetricsState Class
    #if (!OPCUA_EXCLUDE_AlarmMetricsState)
    /// <summary>
    /// Stores an instance of the AlarmMetricsType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AlarmMetricsState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AlarmMetricsState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AlarmMetricsType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGAAAAEFsYXJtTWV0cmljc1R5cGVJbnN0YW5jZQEAf0MBAH9Df0MAAP//" +
           "//8JAAAAFWCJCgIAAAAAAAoAAABBbGFybUNvdW50AQCAQwAvAD+AQwAAAAf/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAJAAAAU3RhcnRUaW1lAQBHRgAvAD9HRgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "ABIAAABNYXhpbXVtQWN0aXZlU3RhdGUBAIFDAC8AP4FDAAABACIB/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAADAAAAE1heGltdW1VbkFjawEAgkMALwA/gkMAAAEAIgH/////AQH/////AAAAABVgiQoCAAAAAAAQ" +
           "AAAAQ3VycmVudEFsYXJtUmF0ZQEAhEMALwEAfUOEQwAAAAv/////AQH/////AQAAABVgiQoCAAAAAAAE" +
           "AAAAUmF0ZQEAhUMALgBEhUMAAAAF/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAE1heGltdW1BbGFy" +
           "bVJhdGUBAIZDAC8BAH1DhkMAAAAL/////wEB/////wEAAAAVYIkKAgAAAAAABAAAAFJhdGUBAIdDAC4A" +
           "RIdDAAAABf////8BAf////8AAAAAFWCJCgIAAAAAABMAAABNYXhpbXVtUmVBbGFybUNvdW50AQCDQwAv" +
           "AD+DQwAAAAf/////AQH/////AAAAABVgiQoCAAAAAAAQAAAAQXZlcmFnZUFsYXJtUmF0ZQEAiEMALwEA" +
           "fUOIQwAAAAv/////AQH/////AQAAABVgiQoCAAAAAAAEAAAAUmF0ZQEAiUMALgBEiUMAAAAF/////wEB" +
           "/////wAAAAAEYYIKBAAAAAAABQAAAFJlc2V0AQDqSAAvAQDqSOpIAAABAQEAAAABAPkLAAEATwgAAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<uint> AlarmCount
        {
            get
            {
                return m_alarmCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_alarmCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_alarmCount = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<DateTime> StartTime
        {
            get
            {
                return m_startTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_startTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_startTime = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<double> MaximumActiveState
        {
            get
            {
                return m_maximumActiveState;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maximumActiveState, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maximumActiveState = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<double> MaximumUnAck
        {
            get
            {
                return m_maximumUnAck;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maximumUnAck, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maximumUnAck = value;
            }
        }

        /// <remarks />
        public AlarmRateVariableState CurrentAlarmRate
        {
            get
            {
                return m_currentAlarmRate;
            }

            set
            {
                if (!Object.ReferenceEquals(m_currentAlarmRate, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_currentAlarmRate = value;
            }
        }

        /// <remarks />
        public AlarmRateVariableState MaximumAlarmRate
        {
            get
            {
                return m_maximumAlarmRate;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maximumAlarmRate, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maximumAlarmRate = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> MaximumReAlarmCount
        {
            get
            {
                return m_maximumReAlarmCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maximumReAlarmCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maximumReAlarmCount = value;
            }
        }

        /// <remarks />
        public AlarmRateVariableState AverageAlarmRate
        {
            get
            {
                return m_averageAlarmRate;
            }

            set
            {
                if (!Object.ReferenceEquals(m_averageAlarmRate, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_averageAlarmRate = value;
            }
        }

        /// <remarks />
        public MethodState Reset
        {
            get
            {
                return m_resetMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_resetMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_resetMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_alarmCount != null)
            {
                children.Add(m_alarmCount);
            }

            if (m_startTime != null)
            {
                children.Add(m_startTime);
            }

            if (m_maximumActiveState != null)
            {
                children.Add(m_maximumActiveState);
            }

            if (m_maximumUnAck != null)
            {
                children.Add(m_maximumUnAck);
            }

            if (m_currentAlarmRate != null)
            {
                children.Add(m_currentAlarmRate);
            }

            if (m_maximumAlarmRate != null)
            {
                children.Add(m_maximumAlarmRate);
            }

            if (m_maximumReAlarmCount != null)
            {
                children.Add(m_maximumReAlarmCount);
            }

            if (m_averageAlarmRate != null)
            {
                children.Add(m_averageAlarmRate);
            }

            if (m_resetMethod != null)
            {
                children.Add(m_resetMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.AlarmCount:
                {
                    if (createOrReplace)
                    {
                        if (AlarmCount == null)
                        {
                            if (replacement == null)
                            {
                                AlarmCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                AlarmCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = AlarmCount;
                    break;
                }

                case Opc.Ua.BrowseNames.StartTime:
                {
                    if (createOrReplace)
                    {
                        if (StartTime == null)
                        {
                            if (replacement == null)
                            {
                                StartTime = new BaseDataVariableState<DateTime>(this);
                            }
                            else
                            {
                                StartTime = (BaseDataVariableState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = StartTime;
                    break;
                }

                case Opc.Ua.BrowseNames.MaximumActiveState:
                {
                    if (createOrReplace)
                    {
                        if (MaximumActiveState == null)
                        {
                            if (replacement == null)
                            {
                                MaximumActiveState = new BaseDataVariableState<double>(this);
                            }
                            else
                            {
                                MaximumActiveState = (BaseDataVariableState<double>)replacement;
                            }
                        }
                    }

                    instance = MaximumActiveState;
                    break;
                }

                case Opc.Ua.BrowseNames.MaximumUnAck:
                {
                    if (createOrReplace)
                    {
                        if (MaximumUnAck == null)
                        {
                            if (replacement == null)
                            {
                                MaximumUnAck = new BaseDataVariableState<double>(this);
                            }
                            else
                            {
                                MaximumUnAck = (BaseDataVariableState<double>)replacement;
                            }
                        }
                    }

                    instance = MaximumUnAck;
                    break;
                }

                case Opc.Ua.BrowseNames.CurrentAlarmRate:
                {
                    if (createOrReplace)
                    {
                        if (CurrentAlarmRate == null)
                        {
                            if (replacement == null)
                            {
                                CurrentAlarmRate = new AlarmRateVariableState(this);
                            }
                            else
                            {
                                CurrentAlarmRate = (AlarmRateVariableState)replacement;
                            }
                        }
                    }

                    instance = CurrentAlarmRate;
                    break;
                }

                case Opc.Ua.BrowseNames.MaximumAlarmRate:
                {
                    if (createOrReplace)
                    {
                        if (MaximumAlarmRate == null)
                        {
                            if (replacement == null)
                            {
                                MaximumAlarmRate = new AlarmRateVariableState(this);
                            }
                            else
                            {
                                MaximumAlarmRate = (AlarmRateVariableState)replacement;
                            }
                        }
                    }

                    instance = MaximumAlarmRate;
                    break;
                }

                case Opc.Ua.BrowseNames.MaximumReAlarmCount:
                {
                    if (createOrReplace)
                    {
                        if (MaximumReAlarmCount == null)
                        {
                            if (replacement == null)
                            {
                                MaximumReAlarmCount = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                MaximumReAlarmCount = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaximumReAlarmCount;
                    break;
                }

                case Opc.Ua.BrowseNames.AverageAlarmRate:
                {
                    if (createOrReplace)
                    {
                        if (AverageAlarmRate == null)
                        {
                            if (replacement == null)
                            {
                                AverageAlarmRate = new AlarmRateVariableState(this);
                            }
                            else
                            {
                                AverageAlarmRate = (AlarmRateVariableState)replacement;
                            }
                        }
                    }

                    instance = AverageAlarmRate;
                    break;
                }

                case Opc.Ua.BrowseNames.Reset:
                {
                    if (createOrReplace)
                    {
                        if (Reset == null)
                        {
                            if (replacement == null)
                            {
                                Reset = new MethodState(this);
                            }
                            else
                            {
                                Reset = (MethodState)replacement;
                            }
                        }
                    }

                    instance = Reset;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<uint> m_alarmCount;
        private BaseDataVariableState<DateTime> m_startTime;
        private BaseDataVariableState<double> m_maximumActiveState;
        private BaseDataVariableState<double> m_maximumUnAck;
        private AlarmRateVariableState m_currentAlarmRate;
        private AlarmRateVariableState m_maximumAlarmRate;
        private BaseDataVariableState<uint> m_maximumReAlarmCount;
        private AlarmRateVariableState m_averageAlarmRate;
        private MethodState m_resetMethod;
        #endregion
    }
    #endif
    #endregion

    #region AlarmRateVariableState Class
    #if (!OPCUA_EXCLUDE_AlarmRateVariableState)
    /// <summary>
    /// Stores an instance of the AlarmRateVariableType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AlarmRateVariableState : BaseDataVariableState<double>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AlarmRateVariableState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.AlarmRateVariableType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.Double, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAHQAAAEFsYXJtUmF0ZVZhcmlhYmxlVHlwZUluc3RhbmNlAQB9QwEAfUN9" +
           "QwAAAAv/////AQH/////AQAAABVgiQoCAAAAAAAEAAAAUmF0ZQEAfkMALgBEfkMAAAAF/////wEB////" +
           "/wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<ushort> Rate
        {
            get
            {
                return m_rate;
            }

            set
            {
                if (!Object.ReferenceEquals(m_rate, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_rate = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_rate != null)
            {
                children.Add(m_rate);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Rate:
                {
                    if (createOrReplace)
                    {
                        if (Rate == null)
                        {
                            if (replacement == null)
                            {
                                Rate = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                Rate = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = Rate;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<ushort> m_rate;
        #endregion
    }
    #endif
    #endregion

    #region ProgramStateMachineState Class
    #if (!OPCUA_EXCLUDE_ProgramStateMachineState)
    /// <summary>
    /// Stores an instance of the ProgramStateMachineType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ProgramStateMachineState : FiniteStateMachineState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ProgramStateMachineState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ProgramStateMachineType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (ProgramDiagnostic != null)
            {
                ProgramDiagnostic.Initialize(context, ProgramDiagnostic_InitializationString);
            }

            if (FinalResultData != null)
            {
                FinalResultData.Initialize(context, FinalResultData_InitializationString);
            }
        }

        #region Initialization String
        private const string ProgramDiagnostic_InitializationString =
           "//////////8VYIkKAgAAAAAAEQAAAFByb2dyYW1EaWFnbm9zdGljAQBfCQAvAQAXPF8JAAABAOFd////" +
           "/wEB/////wwAAAAVYIkKAgAAAAAADwAAAENyZWF0ZVNlc3Npb25JZAEAAA8ALwA/AA8AAAAR/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAAEAAAAENyZWF0ZUNsaWVudE5hbWUBAAEPAC8APwEPAAAADP////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABYAAABJbnZvY2F0aW9uQ3JlYXRpb25UaW1lAQACDwAvAD8CDwAAAQAmAf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAABIAAABMYXN0VHJhbnNpdGlvblRpbWUBAAMPAC4ARAMPAAABACYB" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAExhc3RNZXRob2RDYWxsAQAEDwAvAD8EDwAAAAz/////" +
           "AQH/////AAAAABVgiQoCAAAAAAATAAAATGFzdE1ldGhvZFNlc3Npb25JZAEABQ8ALwA/BQ8AAAAR////" +
           "/wEB/////wAAAAAXYIkKAgAAAAAAGAAAAExhc3RNZXRob2RJbnB1dEFyZ3VtZW50cwEABg8ALwA/Bg8A" +
           "AAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CJCgIAAAAAABkAAABMYXN0TWV0aG9kT3V0cHV0QXJn" +
           "dW1lbnRzAQAHDwAvAD8HDwAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYIkKAgAAAAAAFQAAAExh" +
           "c3RNZXRob2RJbnB1dFZhbHVlcwEAvjoALwA/vjoAAAAYAQAAAAEAAAAAAAAAAQH/////AAAAABdgiQoC" +
           "AAAAAAAWAAAATGFzdE1ldGhvZE91dHB1dFZhbHVlcwEAwDoALwA/wDoAAAAYAQAAAAEAAAAAAAAAAQH/" +
           "////AAAAABVgiQoCAAAAAAASAAAATGFzdE1ldGhvZENhbGxUaW1lAQAIDwAvAD8IDwAAAQAmAf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAABYAAABMYXN0TWV0aG9kUmV0dXJuU3RhdHVzAQAJDwAvAD8JDwAAABP/" +
           "////AQH/////AAAAAA==";

        private const string FinalResultData_InitializationString =
           "//////////8EYIAKAQAAAAAADwAAAEZpbmFsUmVzdWx0RGF0YQEACg8ALwA6Cg8AAP////8AAAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHwAAAFByb2dyYW1TdGF0ZU1hY2hpbmVUeXBlSW5zdGFuY2UBAFcJAQBX" +
           "CVcJAAD/////BwAAABVgiQoCAAAAAAAMAAAAQ3VycmVudFN0YXRlAQD2DgAvAQDICvYOAAAAFf////8B" +
           "Af////8CAAAAFWCJCgIAAAAAAAIAAABJZAEA9w4ALgBE9w4AAAAR/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAABgAAAE51bWJlcgEA+Q4ALgBE+Q4AAAAH/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAExhc3RU" +
           "cmFuc2l0aW9uAQD7DgAvAQDPCvsOAAAAFf////8BAf////8DAAAAFWCJCgIAAAAAAAIAAABJZAEA/A4A" +
           "LgBE/A4AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAABgAAAE51bWJlcgEA/g4ALgBE/g4AAAAH////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAADgAAAFRyYW5zaXRpb25UaW1lAQD/DgAuAET/DgAAAQAmAf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAkAAABEZWxldGFibGUBAFkJAC4ARFkJAAAAAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAoAAABBdXRvRGVsZXRlAQBaCQAuAERaCQAAAAH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAMAAAAUmVjeWNsZUNvdW50AQBbCQAuAERbCQAAAAb/////AQH/////AAAAABVgiQoCAAAAAAARAAAA" +
           "UHJvZ3JhbURpYWdub3N0aWMBAF8JAC8BABc8XwkAAAEA4V3/////AQH/////DAAAABVgiQoCAAAAAAAP" +
           "AAAAQ3JlYXRlU2Vzc2lvbklkAQAADwAvAD8ADwAAABH/////AQH/////AAAAABVgiQoCAAAAAAAQAAAA" +
           "Q3JlYXRlQ2xpZW50TmFtZQEAAQ8ALwA/AQ8AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAFgAAAElu" +
           "dm9jYXRpb25DcmVhdGlvblRpbWUBAAIPAC8APwIPAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "EgAAAExhc3RUcmFuc2l0aW9uVGltZQEAAw8ALgBEAw8AAAEAJgH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAOAAAATGFzdE1ldGhvZENhbGwBAAQPAC8APwQPAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABMA" +
           "AABMYXN0TWV0aG9kU2Vzc2lvbklkAQAFDwAvAD8FDwAAABH/////AQH/////AAAAABdgiQoCAAAAAAAY" +
           "AAAATGFzdE1ldGhvZElucHV0QXJndW1lbnRzAQAGDwAvAD8GDwAAAQAoAQEAAAABAAAAAAAAAAEB////" +
           "/wAAAAAXYIkKAgAAAAAAGQAAAExhc3RNZXRob2RPdXRwdXRBcmd1bWVudHMBAAcPAC8APwcPAAABACgB" +
           "AQAAAAEAAAAAAAAAAQH/////AAAAABdgiQoCAAAAAAAVAAAATGFzdE1ldGhvZElucHV0VmFsdWVzAQC+" +
           "OgAvAD++OgAAABgBAAAAAQAAAAAAAAABAf////8AAAAAF2CJCgIAAAAAABYAAABMYXN0TWV0aG9kT3V0" +
           "cHV0VmFsdWVzAQDAOgAvAD/AOgAAABgBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAABIAAABM" +
           "YXN0TWV0aG9kQ2FsbFRpbWUBAAgPAC8APwgPAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAAFgAA" +
           "AExhc3RNZXRob2RSZXR1cm5TdGF0dXMBAAkPAC8APwkPAAAAE/////8BAf////8AAAAABGCACgEAAAAA" +
           "AA8AAABGaW5hbFJlc3VsdERhdGEBAAoPAC8AOgoPAAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<bool> Deletable
        {
            get
            {
                return m_deletable;
            }

            set
            {
                if (!Object.ReferenceEquals(m_deletable, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_deletable = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> AutoDelete
        {
            get
            {
                return m_autoDelete;
            }

            set
            {
                if (!Object.ReferenceEquals(m_autoDelete, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_autoDelete = value;
            }
        }

        /// <remarks />
        public PropertyState<int> RecycleCount
        {
            get
            {
                return m_recycleCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_recycleCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_recycleCount = value;
            }
        }

        /// <remarks />
        public ProgramDiagnostic2State ProgramDiagnostic
        {
            get
            {
                return m_programDiagnostic;
            }

            set
            {
                if (!Object.ReferenceEquals(m_programDiagnostic, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_programDiagnostic = value;
            }
        }

        /// <remarks />
        public BaseObjectState FinalResultData
        {
            get
            {
                return m_finalResultData;
            }

            set
            {
                if (!Object.ReferenceEquals(m_finalResultData, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_finalResultData = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_deletable != null)
            {
                children.Add(m_deletable);
            }

            if (m_autoDelete != null)
            {
                children.Add(m_autoDelete);
            }

            if (m_recycleCount != null)
            {
                children.Add(m_recycleCount);
            }

            if (m_programDiagnostic != null)
            {
                children.Add(m_programDiagnostic);
            }

            if (m_finalResultData != null)
            {
                children.Add(m_finalResultData);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Deletable:
                {
                    if (createOrReplace)
                    {
                        if (Deletable == null)
                        {
                            if (replacement == null)
                            {
                                Deletable = new PropertyState<bool>(this);
                            }
                            else
                            {
                                Deletable = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = Deletable;
                    break;
                }

                case Opc.Ua.BrowseNames.AutoDelete:
                {
                    if (createOrReplace)
                    {
                        if (AutoDelete == null)
                        {
                            if (replacement == null)
                            {
                                AutoDelete = new PropertyState<bool>(this);
                            }
                            else
                            {
                                AutoDelete = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = AutoDelete;
                    break;
                }

                case Opc.Ua.BrowseNames.RecycleCount:
                {
                    if (createOrReplace)
                    {
                        if (RecycleCount == null)
                        {
                            if (replacement == null)
                            {
                                RecycleCount = new PropertyState<int>(this);
                            }
                            else
                            {
                                RecycleCount = (PropertyState<int>)replacement;
                            }
                        }
                    }

                    instance = RecycleCount;
                    break;
                }

                case Opc.Ua.BrowseNames.ProgramDiagnostic:
                {
                    if (createOrReplace)
                    {
                        if (ProgramDiagnostic == null)
                        {
                            if (replacement == null)
                            {
                                ProgramDiagnostic = new ProgramDiagnostic2State(this);
                            }
                            else
                            {
                                ProgramDiagnostic = (ProgramDiagnostic2State)replacement;
                            }
                        }
                    }

                    instance = ProgramDiagnostic;
                    break;
                }

                case Opc.Ua.BrowseNames.FinalResultData:
                {
                    if (createOrReplace)
                    {
                        if (FinalResultData == null)
                        {
                            if (replacement == null)
                            {
                                FinalResultData = new BaseObjectState(this);
                            }
                            else
                            {
                                FinalResultData = (BaseObjectState)replacement;
                            }
                        }
                    }

                    instance = FinalResultData;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<bool> m_deletable;
        private PropertyState<bool> m_autoDelete;
        private PropertyState<int> m_recycleCount;
        private ProgramDiagnostic2State m_programDiagnostic;
        private BaseObjectState m_finalResultData;
        #endregion
    }
    #endif
    #endregion

    #region ProgramTransitionEventState Class
    #if (!OPCUA_EXCLUDE_ProgramTransitionEventState)
    /// <summary>
    /// Stores an instance of the ProgramTransitionEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ProgramTransitionEventState : TransitionEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ProgramTransitionEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ProgramTransitionEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIgAAAFByb2dyYW1UcmFuc2l0aW9uRXZlbnRUeXBlSW5zdGFuY2UBAEoJ" +
           "AQBKCUoJAAD/////DAAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEAxg4ALgBExg4AAAAP/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEAxw4ALgBExw4AAAAR/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACgAAAFNvdXJjZU5vZGUBAMgOAC4ARMgOAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoA" +
           "AABTb3VyY2VOYW1lAQDJDgAuAETJDgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAAVGltZQEA" +
           "yg4ALgBEyg4AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUBAMsOAC4A" +
           "RMsOAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAM0OAC4ARM0OAAAAFf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAzg4ALgBEzg4AAAAF/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACgAAAFRyYW5zaXRpb24BANkOAC8BAMoK2Q4AAAAV/////wEB/////wEAAAAVYIkK" +
           "AgAAAAAAAgAAAElkAQDaDgAuAETaDgAAABj/////AQH/////AAAAABVgiQoCAAAAAAAJAAAARnJvbVN0" +
           "YXRlAQDPDgAvAQDDCs8OAAAAFf////8BAf////8BAAAAFWCJCgIAAAAAAAIAAABJZAEA0A4ALgBE0A4A" +
           "AAAY/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAFRvU3RhdGUBANQOAC8BAMMK1A4AAAAV/////wEB" +
           "/////wEAAAAVYIkKAgAAAAAAAgAAAElkAQDVDgAuAETVDgAAABj/////AQH/////AAAAABVgiQoCAAAA" +
           "AAASAAAASW50ZXJtZWRpYXRlUmVzdWx0AQBLCQAvAD9LCQAAABj/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState IntermediateResult
        {
            get
            {
                return m_intermediateResult;
            }

            set
            {
                if (!Object.ReferenceEquals(m_intermediateResult, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_intermediateResult = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_intermediateResult != null)
            {
                children.Add(m_intermediateResult);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.IntermediateResult:
                {
                    if (createOrReplace)
                    {
                        if (IntermediateResult == null)
                        {
                            if (replacement == null)
                            {
                                IntermediateResult = new BaseDataVariableState(this);
                            }
                            else
                            {
                                IntermediateResult = (BaseDataVariableState)replacement;
                            }
                        }
                    }

                    instance = IntermediateResult;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState m_intermediateResult;
        #endregion
    }
    #endif
    #endregion

    #region AuditProgramTransitionEventState Class
    #if (!OPCUA_EXCLUDE_AuditProgramTransitionEventState)
    /// <summary>
    /// Stores an instance of the AuditProgramTransitionEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditProgramTransitionEventState : AuditUpdateStateEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditProgramTransitionEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditProgramTransitionEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJwAAAEF1ZGl0UHJvZ3JhbVRyYW5zaXRpb25FdmVudFR5cGVJbnN0YW5j" +
           "ZQEAUC4BAFAuUC4AAP////8SAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQBRLgAuAERRLgAAAA//////" +
           "AQH/////AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQBSLgAuAERSLgAAABH/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAKAAAAU291cmNlTm9kZQEAUy4ALgBEUy4AAAAR/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACgAAAFNvdXJjZU5hbWUBAFQuAC4ARFQuAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABU" +
           "aW1lAQBVLgAuAERVLgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEA" +
           "Vi4ALgBEVi4AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAWC4ALgBEWC4A" +
           "AAAV/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQBZLgAuAERZLgAAAAX/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQBaLgAuAERaLgAAAQAmAf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAYAAABTdGF0dXMBAFsuAC4ARFsuAAAAAf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAgAAABTZXJ2ZXJJZAEAXC4ALgBEXC4AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAENs" +
           "aWVudEF1ZGl0RW50cnlJZAEAXS4ALgBEXS4AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENs" +
           "aWVudFVzZXJJZAEAXi4ALgBEXi4AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAE1ldGhvZElk" +
           "AQBfLgAuAERfLgAAABH/////AQH/////AAAAABdgiQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAGAu" +
           "AC4ARGAuAAAAGAEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAACgAAAE9sZFN0YXRlSWQBAGEu" +
           "AC4ARGEuAAAAGP////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABOZXdTdGF0ZUlkAQBiLgAuAERiLgAA" +
           "ABj/////AQH/////AAAAABVgiQoCAAAAAAAQAAAAVHJhbnNpdGlvbk51bWJlcgEAYy4ALgBEYy4AAAAH" +
           "/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<uint> TransitionNumber
        {
            get
            {
                return m_transitionNumber;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transitionNumber, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transitionNumber = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_transitionNumber != null)
            {
                children.Add(m_transitionNumber);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.TransitionNumber:
                {
                    if (createOrReplace)
                    {
                        if (TransitionNumber == null)
                        {
                            if (replacement == null)
                            {
                                TransitionNumber = new PropertyState<uint>(this);
                            }
                            else
                            {
                                TransitionNumber = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = TransitionNumber;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<uint> m_transitionNumber;
        #endregion
    }
    #endif
    #endregion

    #region ProgramTransitionAuditEventState Class
    #if (!OPCUA_EXCLUDE_ProgramTransitionAuditEventState)
    /// <summary>
    /// Stores an instance of the ProgramTransitionAuditEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ProgramTransitionAuditEventState : AuditUpdateStateEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ProgramTransitionAuditEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ProgramTransitionAuditEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJwAAAFByb2dyYW1UcmFuc2l0aW9uQXVkaXRFdmVudFR5cGVJbnN0YW5j" +
           "ZQEA3g4BAN4O3g4AAP////8SAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQDfDgAuAETfDgAAAA//////" +
           "AQH/////AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQDgDgAuAETgDgAAABH/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAKAAAAU291cmNlTm9kZQEA4Q4ALgBE4Q4AAAAR/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACgAAAFNvdXJjZU5hbWUBAOIOAC4AROIOAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABU" +
           "aW1lAQDjDgAuAETjDgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEA" +
           "5A4ALgBE5A4AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEA5g4ALgBE5g4A" +
           "AAAV/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQDnDgAuAETnDgAAAAX/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQDoDgAuAEToDgAAAQAmAf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAYAAABTdGF0dXMBAOkOAC4AROkOAAAAAf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAgAAABTZXJ2ZXJJZAEA6g4ALgBE6g4AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAENs" +
           "aWVudEF1ZGl0RW50cnlJZAEA6w4ALgBE6w4AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENs" +
           "aWVudFVzZXJJZAEA7A4ALgBE7A4AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAE1ldGhvZElk" +
           "AQDtDgAuAETtDgAAABH/////AQH/////AAAAABdgiQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAO4O" +
           "AC4ARO4OAAAAGAEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAACgAAAE9sZFN0YXRlSWQBAO8O" +
           "AC4ARO8OAAAAGP////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABOZXdTdGF0ZUlkAQDwDgAuAETwDgAA" +
           "ABj/////AQH/////AAAAABVgiQoCAAAAAAAKAAAAVHJhbnNpdGlvbgEA8Q4ALwEAzwrxDgAAABX/////" +
           "AQH/////AQAAABVgiQoCAAAAAAACAAAASWQBAPIOAC4ARPIOAAAAEf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public FiniteTransitionVariableState Transition
        {
            get
            {
                return m_transition;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transition, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transition = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_transition != null)
            {
                children.Add(m_transition);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Transition:
                {
                    if (createOrReplace)
                    {
                        if (Transition == null)
                        {
                            if (replacement == null)
                            {
                                Transition = new FiniteTransitionVariableState(this);
                            }
                            else
                            {
                                Transition = (FiniteTransitionVariableState)replacement;
                            }
                        }
                    }

                    instance = Transition;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private FiniteTransitionVariableState m_transition;
        #endregion
    }
    #endif
    #endregion

    #region ProgramDiagnosticState Class
    #if (!OPCUA_EXCLUDE_ProgramDiagnosticState)
    /// <summary>
    /// Stores an instance of the ProgramDiagnosticType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ProgramDiagnosticState : BaseDataVariableState<ProgramDiagnosticDataType>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ProgramDiagnosticState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.ProgramDiagnosticType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.ProgramDiagnosticDataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAHQAAAFByb2dyYW1EaWFnbm9zdGljVHlwZUluc3RhbmNlAQBMCQEATAlM" +
           "CQAAAQB+A/////8BAf////8KAAAAFWCJCgIAAAAAAA8AAABDcmVhdGVTZXNzaW9uSWQBAE0JAC4ARE0J" +
           "AAAAEf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABDcmVhdGVDbGllbnROYW1lAQBOCQAuAEROCQAA" +
           "AAz/////AQH/////AAAAABVgiQoCAAAAAAAWAAAASW52b2NhdGlvbkNyZWF0aW9uVGltZQEATwkALgBE" +
           "TwkAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAASAAAATGFzdFRyYW5zaXRpb25UaW1lAQBQCQAu" +
           "AERQCQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAA4AAABMYXN0TWV0aG9kQ2FsbAEAUQkALgBE" +
           "UQkAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEwAAAExhc3RNZXRob2RTZXNzaW9uSWQBAFIJAC4A" +
           "RFIJAAAAEf////8BAf////8AAAAAF2CJCgIAAAAAABgAAABMYXN0TWV0aG9kSW5wdXRBcmd1bWVudHMB" +
           "AFMJAC4ARFMJAAAAGAEAAAABAAAAAAAAAAEB/////wAAAAAXYIkKAgAAAAAAGQAAAExhc3RNZXRob2RP" +
           "dXRwdXRBcmd1bWVudHMBAFQJAC4ARFQJAAAAGAEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAA" +
           "EgAAAExhc3RNZXRob2RDYWxsVGltZQEAVQkALgBEVQkAAAEAJgH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAWAAAATGFzdE1ldGhvZFJldHVyblN0YXR1cwEAVgkALgBEVgkAAAEAKwH/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> CreateSessionId
        {
            get
            {
                return m_createSessionId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_createSessionId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_createSessionId = value;
            }
        }

        /// <remarks />
        public PropertyState<string> CreateClientName
        {
            get
            {
                return m_createClientName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_createClientName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_createClientName = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> InvocationCreationTime
        {
            get
            {
                return m_invocationCreationTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_invocationCreationTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_invocationCreationTime = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> LastTransitionTime
        {
            get
            {
                return m_lastTransitionTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastTransitionTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastTransitionTime = value;
            }
        }

        /// <remarks />
        public PropertyState<string> LastMethodCall
        {
            get
            {
                return m_lastMethodCall;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastMethodCall, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastMethodCall = value;
            }
        }

        /// <remarks />
        public PropertyState<NodeId> LastMethodSessionId
        {
            get
            {
                return m_lastMethodSessionId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastMethodSessionId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastMethodSessionId = value;
            }
        }

        /// <remarks />
        public PropertyState<object[]> LastMethodInputArguments
        {
            get
            {
                return m_lastMethodInputArguments;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastMethodInputArguments, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastMethodInputArguments = value;
            }
        }

        /// <remarks />
        public PropertyState<object[]> LastMethodOutputArguments
        {
            get
            {
                return m_lastMethodOutputArguments;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastMethodOutputArguments, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastMethodOutputArguments = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> LastMethodCallTime
        {
            get
            {
                return m_lastMethodCallTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastMethodCallTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastMethodCallTime = value;
            }
        }

        /// <remarks />
        public PropertyState<StatusResult> LastMethodReturnStatus
        {
            get
            {
                return m_lastMethodReturnStatus;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastMethodReturnStatus, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastMethodReturnStatus = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_createSessionId != null)
            {
                children.Add(m_createSessionId);
            }

            if (m_createClientName != null)
            {
                children.Add(m_createClientName);
            }

            if (m_invocationCreationTime != null)
            {
                children.Add(m_invocationCreationTime);
            }

            if (m_lastTransitionTime != null)
            {
                children.Add(m_lastTransitionTime);
            }

            if (m_lastMethodCall != null)
            {
                children.Add(m_lastMethodCall);
            }

            if (m_lastMethodSessionId != null)
            {
                children.Add(m_lastMethodSessionId);
            }

            if (m_lastMethodInputArguments != null)
            {
                children.Add(m_lastMethodInputArguments);
            }

            if (m_lastMethodOutputArguments != null)
            {
                children.Add(m_lastMethodOutputArguments);
            }

            if (m_lastMethodCallTime != null)
            {
                children.Add(m_lastMethodCallTime);
            }

            if (m_lastMethodReturnStatus != null)
            {
                children.Add(m_lastMethodReturnStatus);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.CreateSessionId:
                {
                    if (createOrReplace)
                    {
                        if (CreateSessionId == null)
                        {
                            if (replacement == null)
                            {
                                CreateSessionId = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                CreateSessionId = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = CreateSessionId;
                    break;
                }

                case Opc.Ua.BrowseNames.CreateClientName:
                {
                    if (createOrReplace)
                    {
                        if (CreateClientName == null)
                        {
                            if (replacement == null)
                            {
                                CreateClientName = new PropertyState<string>(this);
                            }
                            else
                            {
                                CreateClientName = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = CreateClientName;
                    break;
                }

                case Opc.Ua.BrowseNames.InvocationCreationTime:
                {
                    if (createOrReplace)
                    {
                        if (InvocationCreationTime == null)
                        {
                            if (replacement == null)
                            {
                                InvocationCreationTime = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                InvocationCreationTime = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = InvocationCreationTime;
                    break;
                }

                case Opc.Ua.BrowseNames.LastTransitionTime:
                {
                    if (createOrReplace)
                    {
                        if (LastTransitionTime == null)
                        {
                            if (replacement == null)
                            {
                                LastTransitionTime = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                LastTransitionTime = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = LastTransitionTime;
                    break;
                }

                case Opc.Ua.BrowseNames.LastMethodCall:
                {
                    if (createOrReplace)
                    {
                        if (LastMethodCall == null)
                        {
                            if (replacement == null)
                            {
                                LastMethodCall = new PropertyState<string>(this);
                            }
                            else
                            {
                                LastMethodCall = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = LastMethodCall;
                    break;
                }

                case Opc.Ua.BrowseNames.LastMethodSessionId:
                {
                    if (createOrReplace)
                    {
                        if (LastMethodSessionId == null)
                        {
                            if (replacement == null)
                            {
                                LastMethodSessionId = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                LastMethodSessionId = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = LastMethodSessionId;
                    break;
                }

                case Opc.Ua.BrowseNames.LastMethodInputArguments:
                {
                    if (createOrReplace)
                    {
                        if (LastMethodInputArguments == null)
                        {
                            if (replacement == null)
                            {
                                LastMethodInputArguments = new PropertyState<object[]>(this);
                            }
                            else
                            {
                                LastMethodInputArguments = (PropertyState<object[]>)replacement;
                            }
                        }
                    }

                    instance = LastMethodInputArguments;
                    break;
                }

                case Opc.Ua.BrowseNames.LastMethodOutputArguments:
                {
                    if (createOrReplace)
                    {
                        if (LastMethodOutputArguments == null)
                        {
                            if (replacement == null)
                            {
                                LastMethodOutputArguments = new PropertyState<object[]>(this);
                            }
                            else
                            {
                                LastMethodOutputArguments = (PropertyState<object[]>)replacement;
                            }
                        }
                    }

                    instance = LastMethodOutputArguments;
                    break;
                }

                case Opc.Ua.BrowseNames.LastMethodCallTime:
                {
                    if (createOrReplace)
                    {
                        if (LastMethodCallTime == null)
                        {
                            if (replacement == null)
                            {
                                LastMethodCallTime = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                LastMethodCallTime = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = LastMethodCallTime;
                    break;
                }

                case Opc.Ua.BrowseNames.LastMethodReturnStatus:
                {
                    if (createOrReplace)
                    {
                        if (LastMethodReturnStatus == null)
                        {
                            if (replacement == null)
                            {
                                LastMethodReturnStatus = new PropertyState<StatusResult>(this);
                            }
                            else
                            {
                                LastMethodReturnStatus = (PropertyState<StatusResult>)replacement;
                            }
                        }
                    }

                    instance = LastMethodReturnStatus;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_createSessionId;
        private PropertyState<string> m_createClientName;
        private PropertyState<DateTime> m_invocationCreationTime;
        private PropertyState<DateTime> m_lastTransitionTime;
        private PropertyState<string> m_lastMethodCall;
        private PropertyState<NodeId> m_lastMethodSessionId;
        private PropertyState<object[]> m_lastMethodInputArguments;
        private PropertyState<object[]> m_lastMethodOutputArguments;
        private PropertyState<DateTime> m_lastMethodCallTime;
        private PropertyState<StatusResult> m_lastMethodReturnStatus;
        #endregion
    }

    #region ProgramDiagnosticValue Class
    /// <summary>
    /// A typed version of the _BrowseName_ variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class ProgramDiagnosticValue : BaseVariableValue
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public ProgramDiagnosticValue(ProgramDiagnosticState variable, ProgramDiagnosticDataType value, object dataLock) : base(dataLock)
        {
            m_value = value;

            if (m_value == null)
            {
                m_value = new ProgramDiagnosticDataType();
            }

            Initialize(variable);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The variable that the value belongs to.
        /// </summary>
        public ProgramDiagnosticState Variable
        {
            get { return m_variable; }
        }

        /// <summary>
        /// The value of the variable.
        /// </summary>
        public ProgramDiagnosticDataType Value
        {
            get { return m_value;  }
            set { m_value = value; }
        }
        #endregion

        #region Private Methods
        /// <summary>
        /// Initializes the object.
        /// </summary>
        private void Initialize(ProgramDiagnosticState variable)
        {
            lock (Lock)
            {
                m_variable = variable;

                variable.Value = m_value;

                variable.OnReadValue = OnReadValue;
                variable.OnSimpleWriteValue = OnWriteValue;

                BaseVariableState instance = null;
                List<BaseInstanceState> updateList = new List<BaseInstanceState>();
                updateList.Add(variable);

                instance = m_variable.CreateSessionId;
                instance.OnReadValue = OnRead_CreateSessionId;
                instance.OnSimpleWriteValue = OnWrite_CreateSessionId;
                updateList.Add(instance);
                instance = m_variable.CreateClientName;
                instance.OnReadValue = OnRead_CreateClientName;
                instance.OnSimpleWriteValue = OnWrite_CreateClientName;
                updateList.Add(instance);
                instance = m_variable.InvocationCreationTime;
                instance.OnReadValue = OnRead_InvocationCreationTime;
                instance.OnSimpleWriteValue = OnWrite_InvocationCreationTime;
                updateList.Add(instance);
                instance = m_variable.LastTransitionTime;
                instance.OnReadValue = OnRead_LastTransitionTime;
                instance.OnSimpleWriteValue = OnWrite_LastTransitionTime;
                updateList.Add(instance);
                instance = m_variable.LastMethodCall;
                instance.OnReadValue = OnRead_LastMethodCall;
                instance.OnSimpleWriteValue = OnWrite_LastMethodCall;
                updateList.Add(instance);
                instance = m_variable.LastMethodSessionId;
                instance.OnReadValue = OnRead_LastMethodSessionId;
                instance.OnSimpleWriteValue = OnWrite_LastMethodSessionId;
                updateList.Add(instance);
                instance = m_variable.LastMethodInputArguments;
                instance.OnReadValue = OnRead_LastMethodInputArguments;
                instance.OnSimpleWriteValue = OnWrite_LastMethodInputArguments;
                updateList.Add(instance);
                instance = m_variable.LastMethodOutputArguments;
                instance.OnReadValue = OnRead_LastMethodOutputArguments;
                instance.OnSimpleWriteValue = OnWrite_LastMethodOutputArguments;
                updateList.Add(instance);
                instance = m_variable.LastMethodCallTime;
                instance.OnReadValue = OnRead_LastMethodCallTime;
                instance.OnSimpleWriteValue = OnWrite_LastMethodCallTime;
                updateList.Add(instance);
                instance = m_variable.LastMethodReturnStatus;
                instance.OnReadValue = OnRead_LastMethodReturnStatus;
                instance.OnSimpleWriteValue = OnWrite_LastMethodReturnStatus;
                updateList.Add(instance);

                SetUpdateList(updateList);
            }
        }

        /// <summary>
        /// Reads the value of the variable.
        /// </summary>
        protected ServiceResult OnReadValue(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable.
        /// </summary>
        private ServiceResult OnWriteValue(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value = (ProgramDiagnosticDataType)Write(value);
            }

            return ServiceResult.Good;
        }

        #region CreateSessionId Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CreateSessionId(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CreateSessionId;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CreateSessionId(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CreateSessionId = (NodeId)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CreateClientName Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CreateClientName(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CreateClientName;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CreateClientName(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CreateClientName = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region InvocationCreationTime Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_InvocationCreationTime(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.InvocationCreationTime;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_InvocationCreationTime(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.InvocationCreationTime = (DateTime)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastTransitionTime Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastTransitionTime(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastTransitionTime;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastTransitionTime(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastTransitionTime = (DateTime)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastMethodCall Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastMethodCall(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastMethodCall;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastMethodCall(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastMethodCall = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastMethodSessionId Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastMethodSessionId(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastMethodSessionId;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastMethodSessionId(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastMethodSessionId = (NodeId)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastMethodInputArguments Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastMethodInputArguments(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastMethodInputArguments;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastMethodInputArguments(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastMethodInputArguments = (ArgumentCollection)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastMethodOutputArguments Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastMethodOutputArguments(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastMethodOutputArguments;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastMethodOutputArguments(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastMethodOutputArguments = (ArgumentCollection)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastMethodCallTime Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastMethodCallTime(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastMethodCallTime;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastMethodCallTime(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastMethodCallTime = (DateTime)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastMethodReturnStatus Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastMethodReturnStatus(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastMethodReturnStatus;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastMethodReturnStatus(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastMethodReturnStatus = (StatusResult)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion
        #endregion

        #region Private Fields
        private ProgramDiagnosticDataType m_value;
        private ProgramDiagnosticState m_variable;
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region ProgramDiagnostic2State Class
    #if (!OPCUA_EXCLUDE_ProgramDiagnostic2State)
    /// <summary>
    /// Stores an instance of the ProgramDiagnostic2Type VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ProgramDiagnostic2State : BaseDataVariableState<ProgramDiagnostic2DataType>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ProgramDiagnostic2State(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.ProgramDiagnostic2Type, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.ProgramDiagnostic2DataType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAHgAAAFByb2dyYW1EaWFnbm9zdGljMlR5cGVJbnN0YW5jZQEAFzwBABc8" +
           "FzwAAAEA4V3/////AQH/////DAAAABVgiQoCAAAAAAAPAAAAQ3JlYXRlU2Vzc2lvbklkAQAYPAAvAD8Y" +
           "PAAAABH/////AQH/////AAAAABVgiQoCAAAAAAAQAAAAQ3JlYXRlQ2xpZW50TmFtZQEAGTwALwA/GTwA" +
           "AAAM/////wEB/////wAAAAAVYIkKAgAAAAAAFgAAAEludm9jYXRpb25DcmVhdGlvblRpbWUBABo8AC8A" +
           "Pxo8AAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAAEgAAAExhc3RUcmFuc2l0aW9uVGltZQEAGzwA" +
           "LgBEGzwAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAATGFzdE1ldGhvZENhbGwBABw8AC8A" +
           "Pxw8AAAADP////8BAf////8AAAAAFWCJCgIAAAAAABMAAABMYXN0TWV0aG9kU2Vzc2lvbklkAQAdPAAv" +
           "AD8dPAAAABH/////AQH/////AAAAABdgiQoCAAAAAAAYAAAATGFzdE1ldGhvZElucHV0QXJndW1lbnRz" +
           "AQAePAAvAD8ePAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYIkKAgAAAAAAGQAAAExhc3RNZXRo" +
           "b2RPdXRwdXRBcmd1bWVudHMBAB88AC8APx88AAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgiQoC" +
           "AAAAAAAVAAAATGFzdE1ldGhvZElucHV0VmFsdWVzAQAgPAAvAD8gPAAAABgBAAAAAQAAAAAAAAABAf//" +
           "//8AAAAAF2CJCgIAAAAAABYAAABMYXN0TWV0aG9kT3V0cHV0VmFsdWVzAQAhPAAvAD8hPAAAABgBAAAA" +
           "AQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAABIAAABMYXN0TWV0aG9kQ2FsbFRpbWUBACI8AC8APyI8" +
           "AAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAAFgAAAExhc3RNZXRob2RSZXR1cm5TdGF0dXMBACM8" +
           "AC8APyM8AAAAE/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<NodeId> CreateSessionId
        {
            get
            {
                return m_createSessionId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_createSessionId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_createSessionId = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> CreateClientName
        {
            get
            {
                return m_createClientName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_createClientName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_createClientName = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<DateTime> InvocationCreationTime
        {
            get
            {
                return m_invocationCreationTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_invocationCreationTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_invocationCreationTime = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> LastTransitionTime
        {
            get
            {
                return m_lastTransitionTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastTransitionTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastTransitionTime = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> LastMethodCall
        {
            get
            {
                return m_lastMethodCall;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastMethodCall, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastMethodCall = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<NodeId> LastMethodSessionId
        {
            get
            {
                return m_lastMethodSessionId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastMethodSessionId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastMethodSessionId = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<Argument[]> LastMethodInputArguments
        {
            get
            {
                return m_lastMethodInputArguments;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastMethodInputArguments, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastMethodInputArguments = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<Argument[]> LastMethodOutputArguments
        {
            get
            {
                return m_lastMethodOutputArguments;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastMethodOutputArguments, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastMethodOutputArguments = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<object[]> LastMethodInputValues
        {
            get
            {
                return m_lastMethodInputValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastMethodInputValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastMethodInputValues = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<object[]> LastMethodOutputValues
        {
            get
            {
                return m_lastMethodOutputValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastMethodOutputValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastMethodOutputValues = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<DateTime> LastMethodCallTime
        {
            get
            {
                return m_lastMethodCallTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastMethodCallTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastMethodCallTime = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<StatusCode> LastMethodReturnStatus
        {
            get
            {
                return m_lastMethodReturnStatus;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastMethodReturnStatus, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastMethodReturnStatus = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_createSessionId != null)
            {
                children.Add(m_createSessionId);
            }

            if (m_createClientName != null)
            {
                children.Add(m_createClientName);
            }

            if (m_invocationCreationTime != null)
            {
                children.Add(m_invocationCreationTime);
            }

            if (m_lastTransitionTime != null)
            {
                children.Add(m_lastTransitionTime);
            }

            if (m_lastMethodCall != null)
            {
                children.Add(m_lastMethodCall);
            }

            if (m_lastMethodSessionId != null)
            {
                children.Add(m_lastMethodSessionId);
            }

            if (m_lastMethodInputArguments != null)
            {
                children.Add(m_lastMethodInputArguments);
            }

            if (m_lastMethodOutputArguments != null)
            {
                children.Add(m_lastMethodOutputArguments);
            }

            if (m_lastMethodInputValues != null)
            {
                children.Add(m_lastMethodInputValues);
            }

            if (m_lastMethodOutputValues != null)
            {
                children.Add(m_lastMethodOutputValues);
            }

            if (m_lastMethodCallTime != null)
            {
                children.Add(m_lastMethodCallTime);
            }

            if (m_lastMethodReturnStatus != null)
            {
                children.Add(m_lastMethodReturnStatus);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.CreateSessionId:
                {
                    if (createOrReplace)
                    {
                        if (CreateSessionId == null)
                        {
                            if (replacement == null)
                            {
                                CreateSessionId = new BaseDataVariableState<NodeId>(this);
                            }
                            else
                            {
                                CreateSessionId = (BaseDataVariableState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = CreateSessionId;
                    break;
                }

                case Opc.Ua.BrowseNames.CreateClientName:
                {
                    if (createOrReplace)
                    {
                        if (CreateClientName == null)
                        {
                            if (replacement == null)
                            {
                                CreateClientName = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                CreateClientName = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = CreateClientName;
                    break;
                }

                case Opc.Ua.BrowseNames.InvocationCreationTime:
                {
                    if (createOrReplace)
                    {
                        if (InvocationCreationTime == null)
                        {
                            if (replacement == null)
                            {
                                InvocationCreationTime = new BaseDataVariableState<DateTime>(this);
                            }
                            else
                            {
                                InvocationCreationTime = (BaseDataVariableState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = InvocationCreationTime;
                    break;
                }

                case Opc.Ua.BrowseNames.LastTransitionTime:
                {
                    if (createOrReplace)
                    {
                        if (LastTransitionTime == null)
                        {
                            if (replacement == null)
                            {
                                LastTransitionTime = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                LastTransitionTime = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = LastTransitionTime;
                    break;
                }

                case Opc.Ua.BrowseNames.LastMethodCall:
                {
                    if (createOrReplace)
                    {
                        if (LastMethodCall == null)
                        {
                            if (replacement == null)
                            {
                                LastMethodCall = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                LastMethodCall = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = LastMethodCall;
                    break;
                }

                case Opc.Ua.BrowseNames.LastMethodSessionId:
                {
                    if (createOrReplace)
                    {
                        if (LastMethodSessionId == null)
                        {
                            if (replacement == null)
                            {
                                LastMethodSessionId = new BaseDataVariableState<NodeId>(this);
                            }
                            else
                            {
                                LastMethodSessionId = (BaseDataVariableState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = LastMethodSessionId;
                    break;
                }

                case Opc.Ua.BrowseNames.LastMethodInputArguments:
                {
                    if (createOrReplace)
                    {
                        if (LastMethodInputArguments == null)
                        {
                            if (replacement == null)
                            {
                                LastMethodInputArguments = new BaseDataVariableState<Argument[]>(this);
                            }
                            else
                            {
                                LastMethodInputArguments = (BaseDataVariableState<Argument[]>)replacement;
                            }
                        }
                    }

                    instance = LastMethodInputArguments;
                    break;
                }

                case Opc.Ua.BrowseNames.LastMethodOutputArguments:
                {
                    if (createOrReplace)
                    {
                        if (LastMethodOutputArguments == null)
                        {
                            if (replacement == null)
                            {
                                LastMethodOutputArguments = new BaseDataVariableState<Argument[]>(this);
                            }
                            else
                            {
                                LastMethodOutputArguments = (BaseDataVariableState<Argument[]>)replacement;
                            }
                        }
                    }

                    instance = LastMethodOutputArguments;
                    break;
                }

                case Opc.Ua.BrowseNames.LastMethodInputValues:
                {
                    if (createOrReplace)
                    {
                        if (LastMethodInputValues == null)
                        {
                            if (replacement == null)
                            {
                                LastMethodInputValues = new BaseDataVariableState<object[]>(this);
                            }
                            else
                            {
                                LastMethodInputValues = (BaseDataVariableState<object[]>)replacement;
                            }
                        }
                    }

                    instance = LastMethodInputValues;
                    break;
                }

                case Opc.Ua.BrowseNames.LastMethodOutputValues:
                {
                    if (createOrReplace)
                    {
                        if (LastMethodOutputValues == null)
                        {
                            if (replacement == null)
                            {
                                LastMethodOutputValues = new BaseDataVariableState<object[]>(this);
                            }
                            else
                            {
                                LastMethodOutputValues = (BaseDataVariableState<object[]>)replacement;
                            }
                        }
                    }

                    instance = LastMethodOutputValues;
                    break;
                }

                case Opc.Ua.BrowseNames.LastMethodCallTime:
                {
                    if (createOrReplace)
                    {
                        if (LastMethodCallTime == null)
                        {
                            if (replacement == null)
                            {
                                LastMethodCallTime = new BaseDataVariableState<DateTime>(this);
                            }
                            else
                            {
                                LastMethodCallTime = (BaseDataVariableState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = LastMethodCallTime;
                    break;
                }

                case Opc.Ua.BrowseNames.LastMethodReturnStatus:
                {
                    if (createOrReplace)
                    {
                        if (LastMethodReturnStatus == null)
                        {
                            if (replacement == null)
                            {
                                LastMethodReturnStatus = new BaseDataVariableState<StatusCode>(this);
                            }
                            else
                            {
                                LastMethodReturnStatus = (BaseDataVariableState<StatusCode>)replacement;
                            }
                        }
                    }

                    instance = LastMethodReturnStatus;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<NodeId> m_createSessionId;
        private BaseDataVariableState<string> m_createClientName;
        private BaseDataVariableState<DateTime> m_invocationCreationTime;
        private PropertyState<DateTime> m_lastTransitionTime;
        private BaseDataVariableState<string> m_lastMethodCall;
        private BaseDataVariableState<NodeId> m_lastMethodSessionId;
        private BaseDataVariableState<Argument[]> m_lastMethodInputArguments;
        private BaseDataVariableState<Argument[]> m_lastMethodOutputArguments;
        private BaseDataVariableState<object[]> m_lastMethodInputValues;
        private BaseDataVariableState<object[]> m_lastMethodOutputValues;
        private BaseDataVariableState<DateTime> m_lastMethodCallTime;
        private BaseDataVariableState<StatusCode> m_lastMethodReturnStatus;
        #endregion
    }

    #region ProgramDiagnostic2Value Class
    /// <summary>
    /// A typed version of the _BrowseName_ variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class ProgramDiagnostic2Value : BaseVariableValue
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public ProgramDiagnostic2Value(ProgramDiagnostic2State variable, ProgramDiagnostic2DataType value, object dataLock) : base(dataLock)
        {
            m_value = value;

            if (m_value == null)
            {
                m_value = new ProgramDiagnostic2DataType();
            }

            Initialize(variable);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The variable that the value belongs to.
        /// </summary>
        public ProgramDiagnostic2State Variable
        {
            get { return m_variable; }
        }

        /// <summary>
        /// The value of the variable.
        /// </summary>
        public ProgramDiagnostic2DataType Value
        {
            get { return m_value;  }
            set { m_value = value; }
        }
        #endregion

        #region Private Methods
        /// <summary>
        /// Initializes the object.
        /// </summary>
        private void Initialize(ProgramDiagnostic2State variable)
        {
            lock (Lock)
            {
                m_variable = variable;

                variable.Value = m_value;

                variable.OnReadValue = OnReadValue;
                variable.OnSimpleWriteValue = OnWriteValue;

                BaseVariableState instance = null;
                List<BaseInstanceState> updateList = new List<BaseInstanceState>();
                updateList.Add(variable);

                instance = m_variable.CreateSessionId;
                instance.OnReadValue = OnRead_CreateSessionId;
                instance.OnSimpleWriteValue = OnWrite_CreateSessionId;
                updateList.Add(instance);
                instance = m_variable.CreateClientName;
                instance.OnReadValue = OnRead_CreateClientName;
                instance.OnSimpleWriteValue = OnWrite_CreateClientName;
                updateList.Add(instance);
                instance = m_variable.InvocationCreationTime;
                instance.OnReadValue = OnRead_InvocationCreationTime;
                instance.OnSimpleWriteValue = OnWrite_InvocationCreationTime;
                updateList.Add(instance);
                instance = m_variable.LastTransitionTime;
                instance.OnReadValue = OnRead_LastTransitionTime;
                instance.OnSimpleWriteValue = OnWrite_LastTransitionTime;
                updateList.Add(instance);
                instance = m_variable.LastMethodCall;
                instance.OnReadValue = OnRead_LastMethodCall;
                instance.OnSimpleWriteValue = OnWrite_LastMethodCall;
                updateList.Add(instance);
                instance = m_variable.LastMethodSessionId;
                instance.OnReadValue = OnRead_LastMethodSessionId;
                instance.OnSimpleWriteValue = OnWrite_LastMethodSessionId;
                updateList.Add(instance);
                instance = m_variable.LastMethodInputArguments;
                instance.OnReadValue = OnRead_LastMethodInputArguments;
                instance.OnSimpleWriteValue = OnWrite_LastMethodInputArguments;
                updateList.Add(instance);
                instance = m_variable.LastMethodOutputArguments;
                instance.OnReadValue = OnRead_LastMethodOutputArguments;
                instance.OnSimpleWriteValue = OnWrite_LastMethodOutputArguments;
                updateList.Add(instance);
                instance = m_variable.LastMethodInputValues;
                instance.OnReadValue = OnRead_LastMethodInputValues;
                instance.OnSimpleWriteValue = OnWrite_LastMethodInputValues;
                updateList.Add(instance);
                instance = m_variable.LastMethodOutputValues;
                instance.OnReadValue = OnRead_LastMethodOutputValues;
                instance.OnSimpleWriteValue = OnWrite_LastMethodOutputValues;
                updateList.Add(instance);
                instance = m_variable.LastMethodCallTime;
                instance.OnReadValue = OnRead_LastMethodCallTime;
                instance.OnSimpleWriteValue = OnWrite_LastMethodCallTime;
                updateList.Add(instance);
                instance = m_variable.LastMethodReturnStatus;
                instance.OnReadValue = OnRead_LastMethodReturnStatus;
                instance.OnSimpleWriteValue = OnWrite_LastMethodReturnStatus;
                updateList.Add(instance);

                SetUpdateList(updateList);
            }
        }

        /// <summary>
        /// Reads the value of the variable.
        /// </summary>
        protected ServiceResult OnReadValue(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable.
        /// </summary>
        private ServiceResult OnWriteValue(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value = (ProgramDiagnostic2DataType)Write(value);
            }

            return ServiceResult.Good;
        }

        #region CreateSessionId Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CreateSessionId(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CreateSessionId;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CreateSessionId(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CreateSessionId = (NodeId)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region CreateClientName Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_CreateClientName(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.CreateClientName;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_CreateClientName(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.CreateClientName = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region InvocationCreationTime Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_InvocationCreationTime(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.InvocationCreationTime;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_InvocationCreationTime(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.InvocationCreationTime = (DateTime)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastTransitionTime Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastTransitionTime(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastTransitionTime;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastTransitionTime(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastTransitionTime = (DateTime)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastMethodCall Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastMethodCall(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastMethodCall;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastMethodCall(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastMethodCall = (string)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastMethodSessionId Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastMethodSessionId(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastMethodSessionId;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastMethodSessionId(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastMethodSessionId = (NodeId)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastMethodInputArguments Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastMethodInputArguments(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastMethodInputArguments;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastMethodInputArguments(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastMethodInputArguments = (ArgumentCollection)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastMethodOutputArguments Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastMethodOutputArguments(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastMethodOutputArguments;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastMethodOutputArguments(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastMethodOutputArguments = (ArgumentCollection)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastMethodInputValues Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastMethodInputValues(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastMethodInputValues;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastMethodInputValues(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastMethodInputValues = (VariantCollection)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastMethodOutputValues Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastMethodOutputValues(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastMethodOutputValues;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastMethodOutputValues(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastMethodOutputValues = (VariantCollection)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastMethodCallTime Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastMethodCallTime(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastMethodCallTime;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastMethodCallTime(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastMethodCallTime = (DateTime)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion

        #region LastMethodReturnStatus Access Methods
        /// <summary>
        /// Reads the value of the variable child.
        /// </summary>
        private ServiceResult OnRead_LastMethodReturnStatus(
            ISystemContext context,
            NodeState node,
            NumericRange indexRange,
            QualifiedName dataEncoding,
            ref object value,
            ref StatusCode statusCode,
            ref DateTime timestamp)
        {
            lock (Lock)
            {
                DoBeforeReadProcessing(context, node);

                if (m_value != null)
                {
                    value = m_value.LastMethodReturnStatus;
                }

                return Read(context, node, indexRange, dataEncoding, ref value, ref statusCode, ref timestamp);
            }
        }

        /// <summary>
        /// Writes the value of the variable child.
        /// </summary>
        private ServiceResult OnWrite_LastMethodReturnStatus(ISystemContext context, NodeState node, ref object value)
        {
            lock (Lock)
            {
                m_value.LastMethodReturnStatus = (StatusCode)Write(value);
            }

            return ServiceResult.Good;
        }
        #endregion
        #endregion

        #region Private Fields
        private ProgramDiagnostic2DataType m_value;
        private ProgramDiagnostic2State m_variable;
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region HistoricalDataConfigurationState Class
    #if (!OPCUA_EXCLUDE_HistoricalDataConfigurationState)
    /// <summary>
    /// Stores an instance of the HistoricalDataConfigurationType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class HistoricalDataConfigurationState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public HistoricalDataConfigurationState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.HistoricalDataConfigurationType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (AggregateFunctions != null)
            {
                AggregateFunctions.Initialize(context, AggregateFunctions_InitializationString);
            }

            if (Definition != null)
            {
                Definition.Initialize(context, Definition_InitializationString);
            }

            if (MaxTimeInterval != null)
            {
                MaxTimeInterval.Initialize(context, MaxTimeInterval_InitializationString);
            }

            if (MinTimeInterval != null)
            {
                MinTimeInterval.Initialize(context, MinTimeInterval_InitializationString);
            }

            if (ExceptionDeviation != null)
            {
                ExceptionDeviation.Initialize(context, ExceptionDeviation_InitializationString);
            }

            if (ExceptionDeviationFormat != null)
            {
                ExceptionDeviationFormat.Initialize(context, ExceptionDeviationFormat_InitializationString);
            }

            if (StartOfArchive != null)
            {
                StartOfArchive.Initialize(context, StartOfArchive_InitializationString);
            }

            if (StartOfOnlineArchive != null)
            {
                StartOfOnlineArchive.Initialize(context, StartOfOnlineArchive_InitializationString);
            }

            if (ServerTimestampSupported != null)
            {
                ServerTimestampSupported.Initialize(context, ServerTimestampSupported_InitializationString);
            }
        }

        #region Initialization String
        private const string AggregateFunctions_InitializationString =
           "//////////8EYIAKAQAAAAAAEgAAAEFnZ3JlZ2F0ZUZ1bmN0aW9ucwEAZC4ALwA9ZC4AAP////8AAAAA";

        private const string Definition_InitializationString =
           "//////////8VYIkKAgAAAAAACgAAAERlZmluaXRpb24BABQJAC4ARBQJAAAADP////8BAf////8AAAAA";

        private const string MaxTimeInterval_InitializationString =
           "//////////8VYIkKAgAAAAAADwAAAE1heFRpbWVJbnRlcnZhbAEAFQkALgBEFQkAAAEAIgH/////AQH/" +
           "////AAAAAA==";

        private const string MinTimeInterval_InitializationString =
           "//////////8VYIkKAgAAAAAADwAAAE1pblRpbWVJbnRlcnZhbAEAFgkALgBEFgkAAAEAIgH/////AQH/" +
           "////AAAAAA==";

        private const string ExceptionDeviation_InitializationString =
           "//////////8VYIkKAgAAAAAAEgAAAEV4Y2VwdGlvbkRldmlhdGlvbgEAFwkALgBEFwkAAAAL/////wEB" +
           "/////wAAAAA=";

        private const string ExceptionDeviationFormat_InitializationString =
           "//////////8VYIkKAgAAAAAAGAAAAEV4Y2VwdGlvbkRldmlhdGlvbkZvcm1hdAEAGAkALgBEGAkAAAEA" +
           "egP/////AQH/////AAAAAA==";

        private const string StartOfArchive_InitializationString =
           "//////////8VYIkKAgAAAAAADgAAAFN0YXJ0T2ZBcmNoaXZlAQDrLAAuAETrLAAAAQAmAf////8BAf//" +
           "//8AAAAA";

        private const string StartOfOnlineArchive_InitializationString =
           "//////////8VYIkKAgAAAAAAFAAAAFN0YXJ0T2ZPbmxpbmVBcmNoaXZlAQDsLAAuAETsLAAAAQAmAf//" +
           "//8BAf////8AAAAA";

        private const string ServerTimestampSupported_InitializationString =
           "//////////8VYIkKAgAAAAAAGAAAAFNlcnZlclRpbWVzdGFtcFN1cHBvcnRlZAEAlEoALgBElEoAAAAB" +
           "/////wEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJwAAAEhpc3RvcmljYWxEYXRhQ29uZmlndXJhdGlvblR5cGVJbnN0YW5j" +
           "ZQEADgkBAA4JDgkAAP////8LAAAABGCACgEAAAAAABYAAABBZ2dyZWdhdGVDb25maWd1cmF0aW9uAQDz" +
           "CwAvAQCzK/MLAAD/////BAAAABVgiQoCAAAAAAATAAAAVHJlYXRVbmNlcnRhaW5Bc0JhZAEAoCsALgBE" +
           "oCsAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAFBlcmNlbnREYXRhQmFkAQChKwAuAEShKwAA" +
           "AAP/////AQH/////AAAAABVgiQoCAAAAAAAPAAAAUGVyY2VudERhdGFHb29kAQCiKwAuAESiKwAAAAP/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAWAAAAVXNlU2xvcGVkRXh0cmFwb2xhdGlvbgEAoysALgBEoysA" +
           "AAAB/////wEB/////wAAAAAEYIAKAQAAAAAAEgAAAEFnZ3JlZ2F0ZUZ1bmN0aW9ucwEAZC4ALwA9ZC4A" +
           "AP////8AAAAAFWCJCgIAAAAAAAcAAABTdGVwcGVkAQATCQAuAEQTCQAAAAH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAKAAAARGVmaW5pdGlvbgEAFAkALgBEFAkAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "DwAAAE1heFRpbWVJbnRlcnZhbAEAFQkALgBEFQkAAAEAIgH/////AQH/////AAAAABVgiQoCAAAAAAAP" +
           "AAAATWluVGltZUludGVydmFsAQAWCQAuAEQWCQAAAQAiAf////8BAf////8AAAAAFWCJCgIAAAAAABIA" +
           "AABFeGNlcHRpb25EZXZpYXRpb24BABcJAC4ARBcJAAAAC/////8BAf////8AAAAAFWCJCgIAAAAAABgA" +
           "AABFeGNlcHRpb25EZXZpYXRpb25Gb3JtYXQBABgJAC4ARBgJAAABAHoD/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAADgAAAFN0YXJ0T2ZBcmNoaXZlAQDrLAAuAETrLAAAAQAmAf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAABQAAABTdGFydE9mT25saW5lQXJjaGl2ZQEA7CwALgBE7CwAAAEAJgH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAYAAAAU2VydmVyVGltZXN0YW1wU3VwcG9ydGVkAQCUSgAuAESUSgAAAAH/////AQH/////" +
           "AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public AggregateConfigurationState AggregateConfiguration
        {
            get
            {
                return m_aggregateConfiguration;
            }

            set
            {
                if (!Object.ReferenceEquals(m_aggregateConfiguration, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_aggregateConfiguration = value;
            }
        }

        /// <remarks />
        public FolderState AggregateFunctions
        {
            get
            {
                return m_aggregateFunctions;
            }

            set
            {
                if (!Object.ReferenceEquals(m_aggregateFunctions, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_aggregateFunctions = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> Stepped
        {
            get
            {
                return m_stepped;
            }

            set
            {
                if (!Object.ReferenceEquals(m_stepped, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_stepped = value;
            }
        }

        /// <remarks />
        public PropertyState<string> Definition
        {
            get
            {
                return m_definition;
            }

            set
            {
                if (!Object.ReferenceEquals(m_definition, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_definition = value;
            }
        }

        /// <remarks />
        public PropertyState<double> MaxTimeInterval
        {
            get
            {
                return m_maxTimeInterval;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxTimeInterval, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxTimeInterval = value;
            }
        }

        /// <remarks />
        public PropertyState<double> MinTimeInterval
        {
            get
            {
                return m_minTimeInterval;
            }

            set
            {
                if (!Object.ReferenceEquals(m_minTimeInterval, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_minTimeInterval = value;
            }
        }

        /// <remarks />
        public PropertyState<double> ExceptionDeviation
        {
            get
            {
                return m_exceptionDeviation;
            }

            set
            {
                if (!Object.ReferenceEquals(m_exceptionDeviation, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_exceptionDeviation = value;
            }
        }

        /// <remarks />
        public PropertyState<ExceptionDeviationFormat> ExceptionDeviationFormat
        {
            get
            {
                return m_exceptionDeviationFormat;
            }

            set
            {
                if (!Object.ReferenceEquals(m_exceptionDeviationFormat, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_exceptionDeviationFormat = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> StartOfArchive
        {
            get
            {
                return m_startOfArchive;
            }

            set
            {
                if (!Object.ReferenceEquals(m_startOfArchive, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_startOfArchive = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> StartOfOnlineArchive
        {
            get
            {
                return m_startOfOnlineArchive;
            }

            set
            {
                if (!Object.ReferenceEquals(m_startOfOnlineArchive, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_startOfOnlineArchive = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> ServerTimestampSupported
        {
            get
            {
                return m_serverTimestampSupported;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serverTimestampSupported, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serverTimestampSupported = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_aggregateConfiguration != null)
            {
                children.Add(m_aggregateConfiguration);
            }

            if (m_aggregateFunctions != null)
            {
                children.Add(m_aggregateFunctions);
            }

            if (m_stepped != null)
            {
                children.Add(m_stepped);
            }

            if (m_definition != null)
            {
                children.Add(m_definition);
            }

            if (m_maxTimeInterval != null)
            {
                children.Add(m_maxTimeInterval);
            }

            if (m_minTimeInterval != null)
            {
                children.Add(m_minTimeInterval);
            }

            if (m_exceptionDeviation != null)
            {
                children.Add(m_exceptionDeviation);
            }

            if (m_exceptionDeviationFormat != null)
            {
                children.Add(m_exceptionDeviationFormat);
            }

            if (m_startOfArchive != null)
            {
                children.Add(m_startOfArchive);
            }

            if (m_startOfOnlineArchive != null)
            {
                children.Add(m_startOfOnlineArchive);
            }

            if (m_serverTimestampSupported != null)
            {
                children.Add(m_serverTimestampSupported);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.AggregateConfiguration:
                {
                    if (createOrReplace)
                    {
                        if (AggregateConfiguration == null)
                        {
                            if (replacement == null)
                            {
                                AggregateConfiguration = new AggregateConfigurationState(this);
                            }
                            else
                            {
                                AggregateConfiguration = (AggregateConfigurationState)replacement;
                            }
                        }
                    }

                    instance = AggregateConfiguration;
                    break;
                }

                case Opc.Ua.BrowseNames.AggregateFunctions:
                {
                    if (createOrReplace)
                    {
                        if (AggregateFunctions == null)
                        {
                            if (replacement == null)
                            {
                                AggregateFunctions = new FolderState(this);
                            }
                            else
                            {
                                AggregateFunctions = (FolderState)replacement;
                            }
                        }
                    }

                    instance = AggregateFunctions;
                    break;
                }

                case Opc.Ua.BrowseNames.Stepped:
                {
                    if (createOrReplace)
                    {
                        if (Stepped == null)
                        {
                            if (replacement == null)
                            {
                                Stepped = new PropertyState<bool>(this);
                            }
                            else
                            {
                                Stepped = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = Stepped;
                    break;
                }

                case Opc.Ua.BrowseNames.Definition:
                {
                    if (createOrReplace)
                    {
                        if (Definition == null)
                        {
                            if (replacement == null)
                            {
                                Definition = new PropertyState<string>(this);
                            }
                            else
                            {
                                Definition = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = Definition;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxTimeInterval:
                {
                    if (createOrReplace)
                    {
                        if (MaxTimeInterval == null)
                        {
                            if (replacement == null)
                            {
                                MaxTimeInterval = new PropertyState<double>(this);
                            }
                            else
                            {
                                MaxTimeInterval = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = MaxTimeInterval;
                    break;
                }

                case Opc.Ua.BrowseNames.MinTimeInterval:
                {
                    if (createOrReplace)
                    {
                        if (MinTimeInterval == null)
                        {
                            if (replacement == null)
                            {
                                MinTimeInterval = new PropertyState<double>(this);
                            }
                            else
                            {
                                MinTimeInterval = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = MinTimeInterval;
                    break;
                }

                case Opc.Ua.BrowseNames.ExceptionDeviation:
                {
                    if (createOrReplace)
                    {
                        if (ExceptionDeviation == null)
                        {
                            if (replacement == null)
                            {
                                ExceptionDeviation = new PropertyState<double>(this);
                            }
                            else
                            {
                                ExceptionDeviation = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = ExceptionDeviation;
                    break;
                }

                case Opc.Ua.BrowseNames.ExceptionDeviationFormat:
                {
                    if (createOrReplace)
                    {
                        if (ExceptionDeviationFormat == null)
                        {
                            if (replacement == null)
                            {
                                ExceptionDeviationFormat = new PropertyState<ExceptionDeviationFormat>(this);
                            }
                            else
                            {
                                ExceptionDeviationFormat = (PropertyState<ExceptionDeviationFormat>)replacement;
                            }
                        }
                    }

                    instance = ExceptionDeviationFormat;
                    break;
                }

                case Opc.Ua.BrowseNames.StartOfArchive:
                {
                    if (createOrReplace)
                    {
                        if (StartOfArchive == null)
                        {
                            if (replacement == null)
                            {
                                StartOfArchive = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                StartOfArchive = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = StartOfArchive;
                    break;
                }

                case Opc.Ua.BrowseNames.StartOfOnlineArchive:
                {
                    if (createOrReplace)
                    {
                        if (StartOfOnlineArchive == null)
                        {
                            if (replacement == null)
                            {
                                StartOfOnlineArchive = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                StartOfOnlineArchive = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = StartOfOnlineArchive;
                    break;
                }

                case Opc.Ua.BrowseNames.ServerTimestampSupported:
                {
                    if (createOrReplace)
                    {
                        if (ServerTimestampSupported == null)
                        {
                            if (replacement == null)
                            {
                                ServerTimestampSupported = new PropertyState<bool>(this);
                            }
                            else
                            {
                                ServerTimestampSupported = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = ServerTimestampSupported;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private AggregateConfigurationState m_aggregateConfiguration;
        private FolderState m_aggregateFunctions;
        private PropertyState<bool> m_stepped;
        private PropertyState<string> m_definition;
        private PropertyState<double> m_maxTimeInterval;
        private PropertyState<double> m_minTimeInterval;
        private PropertyState<double> m_exceptionDeviation;
        private PropertyState<ExceptionDeviationFormat> m_exceptionDeviationFormat;
        private PropertyState<DateTime> m_startOfArchive;
        private PropertyState<DateTime> m_startOfOnlineArchive;
        private PropertyState<bool> m_serverTimestampSupported;
        #endregion
    }
    #endif
    #endregion

    #region HistoryServerCapabilitiesState Class
    #if (!OPCUA_EXCLUDE_HistoryServerCapabilitiesState)
    /// <summary>
    /// Stores an instance of the HistoryServerCapabilitiesType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class HistoryServerCapabilitiesState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public HistoryServerCapabilitiesState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.HistoryServerCapabilitiesType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJQAAAEhpc3RvcnlTZXJ2ZXJDYXBhYmlsaXRpZXNUeXBlSW5zdGFuY2UB" +
           "ABoJAQAaCRoJAAD/////EAAAABVgiQoCAAAAAAAbAAAAQWNjZXNzSGlzdG9yeURhdGFDYXBhYmlsaXR5" +
           "AQAbCQAuAEQbCQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAdAAAAQWNjZXNzSGlzdG9yeUV2ZW50" +
           "c0NhcGFiaWxpdHkBABwJAC4ARBwJAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAABMAAABNYXhSZXR1" +
           "cm5EYXRhVmFsdWVzAQAELAAuAEQELAAAAAf/////AQH/////AAAAABVgiQoCAAAAAAAUAAAATWF4UmV0" +
           "dXJuRXZlbnRWYWx1ZXMBAAUsAC4ARAUsAAAAB/////8BAf////8AAAAAFWCJCgIAAAAAABQAAABJbnNl" +
           "cnREYXRhQ2FwYWJpbGl0eQEAHgkALgBEHgkAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAAFQAAAFJl" +
           "cGxhY2VEYXRhQ2FwYWJpbGl0eQEAHwkALgBEHwkAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAAFAAA" +
           "AFVwZGF0ZURhdGFDYXBhYmlsaXR5AQAgCQAuAEQgCQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAT" +
           "AAAARGVsZXRlUmF3Q2FwYWJpbGl0eQEAIQkALgBEIQkAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "FgAAAERlbGV0ZUF0VGltZUNhcGFiaWxpdHkBACIJAC4ARCIJAAAAAf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAABUAAABJbnNlcnRFdmVudENhcGFiaWxpdHkBAA4sAC4ARA4sAAAAAf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAABYAAABSZXBsYWNlRXZlbnRDYXBhYmlsaXR5AQAPLAAuAEQPLAAAAAH/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAVAAAAVXBkYXRlRXZlbnRDYXBhYmlsaXR5AQAQLAAuAEQQLAAAAAH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAVAAAARGVsZXRlRXZlbnRDYXBhYmlsaXR5AQDtLAAuAETtLAAAAAH/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAaAAAASW5zZXJ0QW5ub3RhdGlvbkNhcGFiaWxpdHkBAAYsAC4ARAYsAAAA" +
           "Af////8BAf////8AAAAABGCACgEAAAAAABIAAABBZ2dyZWdhdGVGdW5jdGlvbnMBAKQrAC8APaQrAAD/" +
           "////AAAAABVgiQoCAAAAAAAYAAAAU2VydmVyVGltZXN0YW1wU3VwcG9ydGVkAQCWSgAuAESWSgAAAAH/" +
           "////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<bool> AccessHistoryDataCapability
        {
            get
            {
                return m_accessHistoryDataCapability;
            }

            set
            {
                if (!Object.ReferenceEquals(m_accessHistoryDataCapability, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_accessHistoryDataCapability = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> AccessHistoryEventsCapability
        {
            get
            {
                return m_accessHistoryEventsCapability;
            }

            set
            {
                if (!Object.ReferenceEquals(m_accessHistoryEventsCapability, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_accessHistoryEventsCapability = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxReturnDataValues
        {
            get
            {
                return m_maxReturnDataValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxReturnDataValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxReturnDataValues = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxReturnEventValues
        {
            get
            {
                return m_maxReturnEventValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxReturnEventValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxReturnEventValues = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> InsertDataCapability
        {
            get
            {
                return m_insertDataCapability;
            }

            set
            {
                if (!Object.ReferenceEquals(m_insertDataCapability, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_insertDataCapability = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> ReplaceDataCapability
        {
            get
            {
                return m_replaceDataCapability;
            }

            set
            {
                if (!Object.ReferenceEquals(m_replaceDataCapability, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_replaceDataCapability = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> UpdateDataCapability
        {
            get
            {
                return m_updateDataCapability;
            }

            set
            {
                if (!Object.ReferenceEquals(m_updateDataCapability, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_updateDataCapability = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> DeleteRawCapability
        {
            get
            {
                return m_deleteRawCapability;
            }

            set
            {
                if (!Object.ReferenceEquals(m_deleteRawCapability, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_deleteRawCapability = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> DeleteAtTimeCapability
        {
            get
            {
                return m_deleteAtTimeCapability;
            }

            set
            {
                if (!Object.ReferenceEquals(m_deleteAtTimeCapability, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_deleteAtTimeCapability = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> InsertEventCapability
        {
            get
            {
                return m_insertEventCapability;
            }

            set
            {
                if (!Object.ReferenceEquals(m_insertEventCapability, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_insertEventCapability = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> ReplaceEventCapability
        {
            get
            {
                return m_replaceEventCapability;
            }

            set
            {
                if (!Object.ReferenceEquals(m_replaceEventCapability, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_replaceEventCapability = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> UpdateEventCapability
        {
            get
            {
                return m_updateEventCapability;
            }

            set
            {
                if (!Object.ReferenceEquals(m_updateEventCapability, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_updateEventCapability = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> DeleteEventCapability
        {
            get
            {
                return m_deleteEventCapability;
            }

            set
            {
                if (!Object.ReferenceEquals(m_deleteEventCapability, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_deleteEventCapability = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> InsertAnnotationCapability
        {
            get
            {
                return m_insertAnnotationCapability;
            }

            set
            {
                if (!Object.ReferenceEquals(m_insertAnnotationCapability, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_insertAnnotationCapability = value;
            }
        }

        /// <remarks />
        public FolderState AggregateFunctions
        {
            get
            {
                return m_aggregateFunctions;
            }

            set
            {
                if (!Object.ReferenceEquals(m_aggregateFunctions, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_aggregateFunctions = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> ServerTimestampSupported
        {
            get
            {
                return m_serverTimestampSupported;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serverTimestampSupported, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serverTimestampSupported = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_accessHistoryDataCapability != null)
            {
                children.Add(m_accessHistoryDataCapability);
            }

            if (m_accessHistoryEventsCapability != null)
            {
                children.Add(m_accessHistoryEventsCapability);
            }

            if (m_maxReturnDataValues != null)
            {
                children.Add(m_maxReturnDataValues);
            }

            if (m_maxReturnEventValues != null)
            {
                children.Add(m_maxReturnEventValues);
            }

            if (m_insertDataCapability != null)
            {
                children.Add(m_insertDataCapability);
            }

            if (m_replaceDataCapability != null)
            {
                children.Add(m_replaceDataCapability);
            }

            if (m_updateDataCapability != null)
            {
                children.Add(m_updateDataCapability);
            }

            if (m_deleteRawCapability != null)
            {
                children.Add(m_deleteRawCapability);
            }

            if (m_deleteAtTimeCapability != null)
            {
                children.Add(m_deleteAtTimeCapability);
            }

            if (m_insertEventCapability != null)
            {
                children.Add(m_insertEventCapability);
            }

            if (m_replaceEventCapability != null)
            {
                children.Add(m_replaceEventCapability);
            }

            if (m_updateEventCapability != null)
            {
                children.Add(m_updateEventCapability);
            }

            if (m_deleteEventCapability != null)
            {
                children.Add(m_deleteEventCapability);
            }

            if (m_insertAnnotationCapability != null)
            {
                children.Add(m_insertAnnotationCapability);
            }

            if (m_aggregateFunctions != null)
            {
                children.Add(m_aggregateFunctions);
            }

            if (m_serverTimestampSupported != null)
            {
                children.Add(m_serverTimestampSupported);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.AccessHistoryDataCapability:
                {
                    if (createOrReplace)
                    {
                        if (AccessHistoryDataCapability == null)
                        {
                            if (replacement == null)
                            {
                                AccessHistoryDataCapability = new PropertyState<bool>(this);
                            }
                            else
                            {
                                AccessHistoryDataCapability = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = AccessHistoryDataCapability;
                    break;
                }

                case Opc.Ua.BrowseNames.AccessHistoryEventsCapability:
                {
                    if (createOrReplace)
                    {
                        if (AccessHistoryEventsCapability == null)
                        {
                            if (replacement == null)
                            {
                                AccessHistoryEventsCapability = new PropertyState<bool>(this);
                            }
                            else
                            {
                                AccessHistoryEventsCapability = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = AccessHistoryEventsCapability;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxReturnDataValues:
                {
                    if (createOrReplace)
                    {
                        if (MaxReturnDataValues == null)
                        {
                            if (replacement == null)
                            {
                                MaxReturnDataValues = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxReturnDataValues = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxReturnDataValues;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxReturnEventValues:
                {
                    if (createOrReplace)
                    {
                        if (MaxReturnEventValues == null)
                        {
                            if (replacement == null)
                            {
                                MaxReturnEventValues = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxReturnEventValues = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxReturnEventValues;
                    break;
                }

                case Opc.Ua.BrowseNames.InsertDataCapability:
                {
                    if (createOrReplace)
                    {
                        if (InsertDataCapability == null)
                        {
                            if (replacement == null)
                            {
                                InsertDataCapability = new PropertyState<bool>(this);
                            }
                            else
                            {
                                InsertDataCapability = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = InsertDataCapability;
                    break;
                }

                case Opc.Ua.BrowseNames.ReplaceDataCapability:
                {
                    if (createOrReplace)
                    {
                        if (ReplaceDataCapability == null)
                        {
                            if (replacement == null)
                            {
                                ReplaceDataCapability = new PropertyState<bool>(this);
                            }
                            else
                            {
                                ReplaceDataCapability = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = ReplaceDataCapability;
                    break;
                }

                case Opc.Ua.BrowseNames.UpdateDataCapability:
                {
                    if (createOrReplace)
                    {
                        if (UpdateDataCapability == null)
                        {
                            if (replacement == null)
                            {
                                UpdateDataCapability = new PropertyState<bool>(this);
                            }
                            else
                            {
                                UpdateDataCapability = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = UpdateDataCapability;
                    break;
                }

                case Opc.Ua.BrowseNames.DeleteRawCapability:
                {
                    if (createOrReplace)
                    {
                        if (DeleteRawCapability == null)
                        {
                            if (replacement == null)
                            {
                                DeleteRawCapability = new PropertyState<bool>(this);
                            }
                            else
                            {
                                DeleteRawCapability = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = DeleteRawCapability;
                    break;
                }

                case Opc.Ua.BrowseNames.DeleteAtTimeCapability:
                {
                    if (createOrReplace)
                    {
                        if (DeleteAtTimeCapability == null)
                        {
                            if (replacement == null)
                            {
                                DeleteAtTimeCapability = new PropertyState<bool>(this);
                            }
                            else
                            {
                                DeleteAtTimeCapability = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = DeleteAtTimeCapability;
                    break;
                }

                case Opc.Ua.BrowseNames.InsertEventCapability:
                {
                    if (createOrReplace)
                    {
                        if (InsertEventCapability == null)
                        {
                            if (replacement == null)
                            {
                                InsertEventCapability = new PropertyState<bool>(this);
                            }
                            else
                            {
                                InsertEventCapability = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = InsertEventCapability;
                    break;
                }

                case Opc.Ua.BrowseNames.ReplaceEventCapability:
                {
                    if (createOrReplace)
                    {
                        if (ReplaceEventCapability == null)
                        {
                            if (replacement == null)
                            {
                                ReplaceEventCapability = new PropertyState<bool>(this);
                            }
                            else
                            {
                                ReplaceEventCapability = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = ReplaceEventCapability;
                    break;
                }

                case Opc.Ua.BrowseNames.UpdateEventCapability:
                {
                    if (createOrReplace)
                    {
                        if (UpdateEventCapability == null)
                        {
                            if (replacement == null)
                            {
                                UpdateEventCapability = new PropertyState<bool>(this);
                            }
                            else
                            {
                                UpdateEventCapability = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = UpdateEventCapability;
                    break;
                }

                case Opc.Ua.BrowseNames.DeleteEventCapability:
                {
                    if (createOrReplace)
                    {
                        if (DeleteEventCapability == null)
                        {
                            if (replacement == null)
                            {
                                DeleteEventCapability = new PropertyState<bool>(this);
                            }
                            else
                            {
                                DeleteEventCapability = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = DeleteEventCapability;
                    break;
                }

                case Opc.Ua.BrowseNames.InsertAnnotationCapability:
                {
                    if (createOrReplace)
                    {
                        if (InsertAnnotationCapability == null)
                        {
                            if (replacement == null)
                            {
                                InsertAnnotationCapability = new PropertyState<bool>(this);
                            }
                            else
                            {
                                InsertAnnotationCapability = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = InsertAnnotationCapability;
                    break;
                }

                case Opc.Ua.BrowseNames.AggregateFunctions:
                {
                    if (createOrReplace)
                    {
                        if (AggregateFunctions == null)
                        {
                            if (replacement == null)
                            {
                                AggregateFunctions = new FolderState(this);
                            }
                            else
                            {
                                AggregateFunctions = (FolderState)replacement;
                            }
                        }
                    }

                    instance = AggregateFunctions;
                    break;
                }

                case Opc.Ua.BrowseNames.ServerTimestampSupported:
                {
                    if (createOrReplace)
                    {
                        if (ServerTimestampSupported == null)
                        {
                            if (replacement == null)
                            {
                                ServerTimestampSupported = new PropertyState<bool>(this);
                            }
                            else
                            {
                                ServerTimestampSupported = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = ServerTimestampSupported;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<bool> m_accessHistoryDataCapability;
        private PropertyState<bool> m_accessHistoryEventsCapability;
        private PropertyState<uint> m_maxReturnDataValues;
        private PropertyState<uint> m_maxReturnEventValues;
        private PropertyState<bool> m_insertDataCapability;
        private PropertyState<bool> m_replaceDataCapability;
        private PropertyState<bool> m_updateDataCapability;
        private PropertyState<bool> m_deleteRawCapability;
        private PropertyState<bool> m_deleteAtTimeCapability;
        private PropertyState<bool> m_insertEventCapability;
        private PropertyState<bool> m_replaceEventCapability;
        private PropertyState<bool> m_updateEventCapability;
        private PropertyState<bool> m_deleteEventCapability;
        private PropertyState<bool> m_insertAnnotationCapability;
        private FolderState m_aggregateFunctions;
        private PropertyState<bool> m_serverTimestampSupported;
        #endregion
    }
    #endif
    #endregion

    #region AuditHistoryEventUpdateEventState Class
    #if (!OPCUA_EXCLUDE_AuditHistoryEventUpdateEventState)
    /// <summary>
    /// Stores an instance of the AuditHistoryEventUpdateEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditHistoryEventUpdateEventState : AuditHistoryUpdateEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditHistoryEventUpdateEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditHistoryEventUpdateEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKAAAAEF1ZGl0SGlzdG9yeUV2ZW50VXBkYXRlRXZlbnRUeXBlSW5zdGFu" +
           "Y2UBALcLAQC3C7cLAAD/////EwAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEA2g0ALgBE2g0AAAAP////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEA2w0ALgBE2w0AAAAR/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACgAAAFNvdXJjZU5vZGUBANwNAC4ARNwNAAAAEf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAoAAABTb3VyY2VOYW1lAQDdDQAuAETdDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAA" +
           "VGltZQEA3g0ALgBE3g0AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUB" +
           "AN8NAC4ARN8NAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAOENAC4AROEN" +
           "AAAAFf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEA4g0ALgBE4g0AAAAF/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAADwAAAEFjdGlvblRpbWVTdGFtcAEA4w0ALgBE4w0AAAEAJgH/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAGAAAAU3RhdHVzAQDkDQAuAETkDQAAAAH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAIAAAAU2VydmVySWQBAOUNAC4AROUNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABIAAABD" +
           "bGllbnRBdWRpdEVudHJ5SWQBAOYNAC4AROYNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABD" +
           "bGllbnRVc2VySWQBAOcNAC4AROcNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABMAAABQYXJhbWV0" +
           "ZXJEYXRhVHlwZUlkAQDoDQAuAEToDQAAABH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAVXBkYXRl" +
           "ZE5vZGUBANELAC4ARNELAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAABQAAABQZXJmb3JtSW5zZXJ0" +
           "UmVwbGFjZQEA1AsALgBE1AsAAAEAHSz/////AQH/////AAAAABVgiQoCAAAAAAAGAAAARmlsdGVyAQC7" +
           "CwAuAES7CwAAAQDVAv////8BAf////8AAAAAF2CJCgIAAAAAAAkAAABOZXdWYWx1ZXMBANULAC4ARNUL" +
           "AAABAJgDAQAAAAEAAAAAAAAAAQH/////AAAAABdgiQoCAAAAAAAJAAAAT2xkVmFsdWVzAQDWCwAuAETW" +
           "CwAAAQCYAwEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> UpdatedNode
        {
            get
            {
                return m_updatedNode;
            }

            set
            {
                if (!Object.ReferenceEquals(m_updatedNode, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_updatedNode = value;
            }
        }

        /// <remarks />
        public PropertyState<PerformUpdateType> PerformInsertReplace
        {
            get
            {
                return m_performInsertReplace;
            }

            set
            {
                if (!Object.ReferenceEquals(m_performInsertReplace, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_performInsertReplace = value;
            }
        }

        /// <remarks />
        public PropertyState<EventFilter> Filter
        {
            get
            {
                return m_filter;
            }

            set
            {
                if (!Object.ReferenceEquals(m_filter, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_filter = value;
            }
        }

        /// <remarks />
        public PropertyState<HistoryEventFieldList[]> NewValues
        {
            get
            {
                return m_newValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_newValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_newValues = value;
            }
        }

        /// <remarks />
        public PropertyState<HistoryEventFieldList[]> OldValues
        {
            get
            {
                return m_oldValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_oldValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_oldValues = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_updatedNode != null)
            {
                children.Add(m_updatedNode);
            }

            if (m_performInsertReplace != null)
            {
                children.Add(m_performInsertReplace);
            }

            if (m_filter != null)
            {
                children.Add(m_filter);
            }

            if (m_newValues != null)
            {
                children.Add(m_newValues);
            }

            if (m_oldValues != null)
            {
                children.Add(m_oldValues);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.UpdatedNode:
                {
                    if (createOrReplace)
                    {
                        if (UpdatedNode == null)
                        {
                            if (replacement == null)
                            {
                                UpdatedNode = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                UpdatedNode = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = UpdatedNode;
                    break;
                }

                case Opc.Ua.BrowseNames.PerformInsertReplace:
                {
                    if (createOrReplace)
                    {
                        if (PerformInsertReplace == null)
                        {
                            if (replacement == null)
                            {
                                PerformInsertReplace = new PropertyState<PerformUpdateType>(this);
                            }
                            else
                            {
                                PerformInsertReplace = (PropertyState<PerformUpdateType>)replacement;
                            }
                        }
                    }

                    instance = PerformInsertReplace;
                    break;
                }

                case Opc.Ua.BrowseNames.Filter:
                {
                    if (createOrReplace)
                    {
                        if (Filter == null)
                        {
                            if (replacement == null)
                            {
                                Filter = new PropertyState<EventFilter>(this);
                            }
                            else
                            {
                                Filter = (PropertyState<EventFilter>)replacement;
                            }
                        }
                    }

                    instance = Filter;
                    break;
                }

                case Opc.Ua.BrowseNames.NewValues:
                {
                    if (createOrReplace)
                    {
                        if (NewValues == null)
                        {
                            if (replacement == null)
                            {
                                NewValues = new PropertyState<HistoryEventFieldList[]>(this);
                            }
                            else
                            {
                                NewValues = (PropertyState<HistoryEventFieldList[]>)replacement;
                            }
                        }
                    }

                    instance = NewValues;
                    break;
                }

                case Opc.Ua.BrowseNames.OldValues:
                {
                    if (createOrReplace)
                    {
                        if (OldValues == null)
                        {
                            if (replacement == null)
                            {
                                OldValues = new PropertyState<HistoryEventFieldList[]>(this);
                            }
                            else
                            {
                                OldValues = (PropertyState<HistoryEventFieldList[]>)replacement;
                            }
                        }
                    }

                    instance = OldValues;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_updatedNode;
        private PropertyState<PerformUpdateType> m_performInsertReplace;
        private PropertyState<EventFilter> m_filter;
        private PropertyState<HistoryEventFieldList[]> m_newValues;
        private PropertyState<HistoryEventFieldList[]> m_oldValues;
        #endregion
    }
    #endif
    #endregion

    #region AuditHistoryValueUpdateEventState Class
    #if (!OPCUA_EXCLUDE_AuditHistoryValueUpdateEventState)
    /// <summary>
    /// Stores an instance of the AuditHistoryValueUpdateEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditHistoryValueUpdateEventState : AuditHistoryUpdateEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditHistoryValueUpdateEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditHistoryValueUpdateEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKAAAAEF1ZGl0SGlzdG9yeVZhbHVlVXBkYXRlRXZlbnRUeXBlSW5zdGFu" +
           "Y2UBAL4LAQC+C74LAAD/////EgAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEA6Q0ALgBE6Q0AAAAP////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEA6g0ALgBE6g0AAAAR/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACgAAAFNvdXJjZU5vZGUBAOsNAC4AROsNAAAAEf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAoAAABTb3VyY2VOYW1lAQDsDQAuAETsDQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAA" +
           "VGltZQEA7Q0ALgBE7Q0AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUB" +
           "AO4NAC4ARO4NAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAPANAC4ARPAN" +
           "AAAAFf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEA8Q0ALgBE8Q0AAAAF/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAADwAAAEFjdGlvblRpbWVTdGFtcAEA8g0ALgBE8g0AAAEAJgH/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAGAAAAU3RhdHVzAQDzDQAuAETzDQAAAAH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAIAAAAU2VydmVySWQBAPQNAC4ARPQNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABIAAABD" +
           "bGllbnRBdWRpdEVudHJ5SWQBAPUNAC4ARPUNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABD" +
           "bGllbnRVc2VySWQBAPYNAC4ARPYNAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABMAAABQYXJhbWV0" +
           "ZXJEYXRhVHlwZUlkAQD3DQAuAET3DQAAABH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAVXBkYXRl" +
           "ZE5vZGUBANILAC4ARNILAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAABQAAABQZXJmb3JtSW5zZXJ0" +
           "UmVwbGFjZQEA1wsALgBE1wsAAAEAHSz/////AQH/////AAAAABdgiQoCAAAAAAAJAAAATmV3VmFsdWVz" +
           "AQDYCwAuAETYCwAAABcBAAAAAQAAAAAAAAABAf////8AAAAAF2CJCgIAAAAAAAkAAABPbGRWYWx1ZXMB" +
           "ANkLAC4ARNkLAAAAFwEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> UpdatedNode
        {
            get
            {
                return m_updatedNode;
            }

            set
            {
                if (!Object.ReferenceEquals(m_updatedNode, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_updatedNode = value;
            }
        }

        /// <remarks />
        public PropertyState<PerformUpdateType> PerformInsertReplace
        {
            get
            {
                return m_performInsertReplace;
            }

            set
            {
                if (!Object.ReferenceEquals(m_performInsertReplace, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_performInsertReplace = value;
            }
        }

        /// <remarks />
        public PropertyState<DataValue[]> NewValues
        {
            get
            {
                return m_newValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_newValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_newValues = value;
            }
        }

        /// <remarks />
        public PropertyState<DataValue[]> OldValues
        {
            get
            {
                return m_oldValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_oldValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_oldValues = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_updatedNode != null)
            {
                children.Add(m_updatedNode);
            }

            if (m_performInsertReplace != null)
            {
                children.Add(m_performInsertReplace);
            }

            if (m_newValues != null)
            {
                children.Add(m_newValues);
            }

            if (m_oldValues != null)
            {
                children.Add(m_oldValues);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.UpdatedNode:
                {
                    if (createOrReplace)
                    {
                        if (UpdatedNode == null)
                        {
                            if (replacement == null)
                            {
                                UpdatedNode = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                UpdatedNode = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = UpdatedNode;
                    break;
                }

                case Opc.Ua.BrowseNames.PerformInsertReplace:
                {
                    if (createOrReplace)
                    {
                        if (PerformInsertReplace == null)
                        {
                            if (replacement == null)
                            {
                                PerformInsertReplace = new PropertyState<PerformUpdateType>(this);
                            }
                            else
                            {
                                PerformInsertReplace = (PropertyState<PerformUpdateType>)replacement;
                            }
                        }
                    }

                    instance = PerformInsertReplace;
                    break;
                }

                case Opc.Ua.BrowseNames.NewValues:
                {
                    if (createOrReplace)
                    {
                        if (NewValues == null)
                        {
                            if (replacement == null)
                            {
                                NewValues = new PropertyState<DataValue[]>(this);
                            }
                            else
                            {
                                NewValues = (PropertyState<DataValue[]>)replacement;
                            }
                        }
                    }

                    instance = NewValues;
                    break;
                }

                case Opc.Ua.BrowseNames.OldValues:
                {
                    if (createOrReplace)
                    {
                        if (OldValues == null)
                        {
                            if (replacement == null)
                            {
                                OldValues = new PropertyState<DataValue[]>(this);
                            }
                            else
                            {
                                OldValues = (PropertyState<DataValue[]>)replacement;
                            }
                        }
                    }

                    instance = OldValues;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_updatedNode;
        private PropertyState<PerformUpdateType> m_performInsertReplace;
        private PropertyState<DataValue[]> m_newValues;
        private PropertyState<DataValue[]> m_oldValues;
        #endregion
    }
    #endif
    #endregion

    #region AuditHistoryAnnotationUpdateEventState Class
    #if (!OPCUA_EXCLUDE_AuditHistoryAnnotationUpdateEventState)
    /// <summary>
    /// Stores an instance of the AuditHistoryAnnotationUpdateEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditHistoryAnnotationUpdateEventState : AuditHistoryUpdateEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditHistoryAnnotationUpdateEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditHistoryAnnotationUpdateEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAALQAAAEF1ZGl0SGlzdG9yeUFubm90YXRpb25VcGRhdGVFdmVudFR5cGVJ" +
           "bnN0YW5jZQEAl0oBAJdKl0oAAP////8RAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQCYSgAuAESYSgAA" +
           "AA//////AQH/////AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQCZSgAuAESZSgAAABH/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAKAAAAU291cmNlTm9kZQEAmkoALgBEmkoAAAAR/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACgAAAFNvdXJjZU5hbWUBAJtKAC4ARJtKAAAADP////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAQAAABUaW1lAQCcSgAuAEScSgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZl" +
           "VGltZQEAnUoALgBEnUoAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAn0oA" +
           "LgBEn0oAAAAV/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQCgSgAuAESgSgAAAAX/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQChSgAuAEShSgAAAQAmAf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAYAAABTdGF0dXMBAKJKAC4ARKJKAAAAAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAgAAABTZXJ2ZXJJZAEAWUsALgBEWUsAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "EgAAAENsaWVudEF1ZGl0RW50cnlJZAEAWksALgBEWksAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "DAAAAENsaWVudFVzZXJJZAEAW0sALgBEW0sAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEwAAAFBh" +
           "cmFtZXRlckRhdGFUeXBlSWQBAFxLAC4ARFxLAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAABQAAABQ" +
           "ZXJmb3JtSW5zZXJ0UmVwbGFjZQEAXUsALgBEXUsAAAEAHSz/////AQH/////AAAAABdgiQoCAAAAAAAJ" +
           "AAAATmV3VmFsdWVzAQBeSwAuAEReSwAAABcBAAAAAQAAAAAAAAABAf////8AAAAAF2CJCgIAAAAAAAkA" +
           "AABPbGRWYWx1ZXMBAF9LAC4ARF9LAAAAFwEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<PerformUpdateType> PerformInsertReplace
        {
            get
            {
                return m_performInsertReplace;
            }

            set
            {
                if (!Object.ReferenceEquals(m_performInsertReplace, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_performInsertReplace = value;
            }
        }

        /// <remarks />
        public PropertyState<DataValue[]> NewValues
        {
            get
            {
                return m_newValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_newValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_newValues = value;
            }
        }

        /// <remarks />
        public PropertyState<DataValue[]> OldValues
        {
            get
            {
                return m_oldValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_oldValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_oldValues = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_performInsertReplace != null)
            {
                children.Add(m_performInsertReplace);
            }

            if (m_newValues != null)
            {
                children.Add(m_newValues);
            }

            if (m_oldValues != null)
            {
                children.Add(m_oldValues);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.PerformInsertReplace:
                {
                    if (createOrReplace)
                    {
                        if (PerformInsertReplace == null)
                        {
                            if (replacement == null)
                            {
                                PerformInsertReplace = new PropertyState<PerformUpdateType>(this);
                            }
                            else
                            {
                                PerformInsertReplace = (PropertyState<PerformUpdateType>)replacement;
                            }
                        }
                    }

                    instance = PerformInsertReplace;
                    break;
                }

                case Opc.Ua.BrowseNames.NewValues:
                {
                    if (createOrReplace)
                    {
                        if (NewValues == null)
                        {
                            if (replacement == null)
                            {
                                NewValues = new PropertyState<DataValue[]>(this);
                            }
                            else
                            {
                                NewValues = (PropertyState<DataValue[]>)replacement;
                            }
                        }
                    }

                    instance = NewValues;
                    break;
                }

                case Opc.Ua.BrowseNames.OldValues:
                {
                    if (createOrReplace)
                    {
                        if (OldValues == null)
                        {
                            if (replacement == null)
                            {
                                OldValues = new PropertyState<DataValue[]>(this);
                            }
                            else
                            {
                                OldValues = (PropertyState<DataValue[]>)replacement;
                            }
                        }
                    }

                    instance = OldValues;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<PerformUpdateType> m_performInsertReplace;
        private PropertyState<DataValue[]> m_newValues;
        private PropertyState<DataValue[]> m_oldValues;
        #endregion
    }
    #endif
    #endregion

    #region AuditHistoryDeleteEventState Class
    #if (!OPCUA_EXCLUDE_AuditHistoryDeleteEventState)
    /// <summary>
    /// Stores an instance of the AuditHistoryDeleteEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditHistoryDeleteEventState : AuditHistoryUpdateEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditHistoryDeleteEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditHistoryDeleteEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIwAAAEF1ZGl0SGlzdG9yeURlbGV0ZUV2ZW50VHlwZUluc3RhbmNlAQDE" +
           "CwEAxAvECwAA/////w8AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAPgNAC4ARPgNAAAAD/////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAPkNAC4ARPkNAAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABTb3VyY2VOb2RlAQD6DQAuAET6DQAAABH/////AQH/////AAAAABVgiQoCAAAAAAAK" +
           "AAAAU291cmNlTmFtZQEA+w0ALgBE+w0AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUB" +
           "APwNAC4ARPwNAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQD9DQAu" +
           "AET9DQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQD/DQAuAET/DQAAABX/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAAAOAC4ARAAOAAAABf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABAAEOAC4ARAEOAAABACYB/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAABgAAAFN0YXR1cwEAAg4ALgBEAg4AAAAB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "CAAAAFNlcnZlcklkAQADDgAuAEQDDgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAAQ2xpZW50" +
           "QXVkaXRFbnRyeUlkAQAEDgAuAEQEDgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50" +
           "VXNlcklkAQAFDgAuAEQFDgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAATAAAAUGFyYW1ldGVyRGF0" +
           "YVR5cGVJZAEABg4ALgBEBg4AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFVwZGF0ZWROb2Rl" +
           "AQDTCwAuAETTCwAAABH/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> UpdatedNode
        {
            get
            {
                return m_updatedNode;
            }

            set
            {
                if (!Object.ReferenceEquals(m_updatedNode, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_updatedNode = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_updatedNode != null)
            {
                children.Add(m_updatedNode);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.UpdatedNode:
                {
                    if (createOrReplace)
                    {
                        if (UpdatedNode == null)
                        {
                            if (replacement == null)
                            {
                                UpdatedNode = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                UpdatedNode = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = UpdatedNode;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_updatedNode;
        #endregion
    }
    #endif
    #endregion

    #region AuditHistoryRawModifyDeleteEventState Class
    #if (!OPCUA_EXCLUDE_AuditHistoryRawModifyDeleteEventState)
    /// <summary>
    /// Stores an instance of the AuditHistoryRawModifyDeleteEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditHistoryRawModifyDeleteEventState : AuditHistoryDeleteEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditHistoryRawModifyDeleteEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditHistoryRawModifyDeleteEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAALAAAAEF1ZGl0SGlzdG9yeVJhd01vZGlmeURlbGV0ZUV2ZW50VHlwZUlu" +
           "c3RhbmNlAQDGCwEAxgvGCwAA/////xMAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAAcOAC4ARAcOAAAA" +
           "D/////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAAgOAC4ARAgOAAAAEf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQAJDgAuAEQJDgAAABH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAKAAAAU291cmNlTmFtZQEACg4ALgBECg4AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "BAAAAFRpbWUBAAsOAC4ARAsOAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVU" +
           "aW1lAQAMDgAuAEQMDgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQAODgAu" +
           "AEQODgAAABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAA8OAC4ARA8OAAAABf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABABAOAC4ARBAOAAABACYB////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAABgAAAFN0YXR1cwEAEQ4ALgBEEQ4AAAAB/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACAAAAFNlcnZlcklkAQASDgAuAEQSDgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAS" +
           "AAAAQ2xpZW50QXVkaXRFbnRyeUlkAQATDgAuAEQTDgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAM" +
           "AAAAQ2xpZW50VXNlcklkAQAUDgAuAEQUDgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAATAAAAUGFy" +
           "YW1ldGVyRGF0YVR5cGVJZAEAFQ4ALgBEFQ4AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFVw" +
           "ZGF0ZWROb2RlAQAWDgAuAEQWDgAAABH/////AQH/////AAAAABVgiQoCAAAAAAAQAAAASXNEZWxldGVN" +
           "b2RpZmllZAEAxwsALgBExwsAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAACQAAAFN0YXJ0VGltZQEA" +
           "yAsALgBEyAsAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAARW5kVGltZQEAyQsALgBEyQsA" +
           "AAEAJgH/////AQH/////AAAAABdgiQoCAAAAAAAJAAAAT2xkVmFsdWVzAQDaCwAuAETaCwAAABcBAAAA" +
           "AQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<bool> IsDeleteModified
        {
            get
            {
                return m_isDeleteModified;
            }

            set
            {
                if (!Object.ReferenceEquals(m_isDeleteModified, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_isDeleteModified = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> StartTime
        {
            get
            {
                return m_startTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_startTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_startTime = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> EndTime
        {
            get
            {
                return m_endTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_endTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_endTime = value;
            }
        }

        /// <remarks />
        public PropertyState<DataValue[]> OldValues
        {
            get
            {
                return m_oldValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_oldValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_oldValues = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_isDeleteModified != null)
            {
                children.Add(m_isDeleteModified);
            }

            if (m_startTime != null)
            {
                children.Add(m_startTime);
            }

            if (m_endTime != null)
            {
                children.Add(m_endTime);
            }

            if (m_oldValues != null)
            {
                children.Add(m_oldValues);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.IsDeleteModified:
                {
                    if (createOrReplace)
                    {
                        if (IsDeleteModified == null)
                        {
                            if (replacement == null)
                            {
                                IsDeleteModified = new PropertyState<bool>(this);
                            }
                            else
                            {
                                IsDeleteModified = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = IsDeleteModified;
                    break;
                }

                case Opc.Ua.BrowseNames.StartTime:
                {
                    if (createOrReplace)
                    {
                        if (StartTime == null)
                        {
                            if (replacement == null)
                            {
                                StartTime = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                StartTime = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = StartTime;
                    break;
                }

                case Opc.Ua.BrowseNames.EndTime:
                {
                    if (createOrReplace)
                    {
                        if (EndTime == null)
                        {
                            if (replacement == null)
                            {
                                EndTime = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                EndTime = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = EndTime;
                    break;
                }

                case Opc.Ua.BrowseNames.OldValues:
                {
                    if (createOrReplace)
                    {
                        if (OldValues == null)
                        {
                            if (replacement == null)
                            {
                                OldValues = new PropertyState<DataValue[]>(this);
                            }
                            else
                            {
                                OldValues = (PropertyState<DataValue[]>)replacement;
                            }
                        }
                    }

                    instance = OldValues;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<bool> m_isDeleteModified;
        private PropertyState<DateTime> m_startTime;
        private PropertyState<DateTime> m_endTime;
        private PropertyState<DataValue[]> m_oldValues;
        #endregion
    }
    #endif
    #endregion

    #region AuditHistoryAtTimeDeleteEventState Class
    #if (!OPCUA_EXCLUDE_AuditHistoryAtTimeDeleteEventState)
    /// <summary>
    /// Stores an instance of the AuditHistoryAtTimeDeleteEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditHistoryAtTimeDeleteEventState : AuditHistoryDeleteEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditHistoryAtTimeDeleteEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditHistoryAtTimeDeleteEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKQAAAEF1ZGl0SGlzdG9yeUF0VGltZURlbGV0ZUV2ZW50VHlwZUluc3Rh" +
           "bmNlAQDLCwEAywvLCwAA/////xEAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBABcOAC4ARBcOAAAAD///" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBABgOAC4ARBgOAAAAEf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQAZDgAuAEQZDgAAABH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAKAAAAU291cmNlTmFtZQEAGg4ALgBEGg4AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAA" +
           "AFRpbWUBABsOAC4ARBsOAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1l" +
           "AQAcDgAuAEQcDgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQAeDgAuAEQe" +
           "DgAAABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAB8OAC4ARB8OAAAABf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABACAOAC4ARCAOAAABACYB/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAABgAAAFN0YXR1cwEAIQ4ALgBEIQ4AAAAB/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACAAAAFNlcnZlcklkAQAiDgAuAEQiDgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAA" +
           "Q2xpZW50QXVkaXRFbnRyeUlkAQAjDgAuAEQjDgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAA" +
           "Q2xpZW50VXNlcklkAQAkDgAuAEQkDgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAATAAAAUGFyYW1l" +
           "dGVyRGF0YVR5cGVJZAEAJQ4ALgBEJQ4AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFVwZGF0" +
           "ZWROb2RlAQAmDgAuAEQmDgAAABH/////AQH/////AAAAABdgiQoCAAAAAAAIAAAAUmVxVGltZXMBAMwL" +
           "AC4ARMwLAAABACYBAQAAAAEAAAAAAAAAAQH/////AAAAABdgiQoCAAAAAAAJAAAAT2xkVmFsdWVzAQDN" +
           "CwAuAETNCwAAABcBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<DateTime[]> ReqTimes
        {
            get
            {
                return m_reqTimes;
            }

            set
            {
                if (!Object.ReferenceEquals(m_reqTimes, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_reqTimes = value;
            }
        }

        /// <remarks />
        public PropertyState<DataValue[]> OldValues
        {
            get
            {
                return m_oldValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_oldValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_oldValues = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_reqTimes != null)
            {
                children.Add(m_reqTimes);
            }

            if (m_oldValues != null)
            {
                children.Add(m_oldValues);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ReqTimes:
                {
                    if (createOrReplace)
                    {
                        if (ReqTimes == null)
                        {
                            if (replacement == null)
                            {
                                ReqTimes = new PropertyState<DateTime[]>(this);
                            }
                            else
                            {
                                ReqTimes = (PropertyState<DateTime[]>)replacement;
                            }
                        }
                    }

                    instance = ReqTimes;
                    break;
                }

                case Opc.Ua.BrowseNames.OldValues:
                {
                    if (createOrReplace)
                    {
                        if (OldValues == null)
                        {
                            if (replacement == null)
                            {
                                OldValues = new PropertyState<DataValue[]>(this);
                            }
                            else
                            {
                                OldValues = (PropertyState<DataValue[]>)replacement;
                            }
                        }
                    }

                    instance = OldValues;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<DateTime[]> m_reqTimes;
        private PropertyState<DataValue[]> m_oldValues;
        #endregion
    }
    #endif
    #endregion

    #region AuditHistoryEventDeleteEventState Class
    #if (!OPCUA_EXCLUDE_AuditHistoryEventDeleteEventState)
    /// <summary>
    /// Stores an instance of the AuditHistoryEventDeleteEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuditHistoryEventDeleteEventState : AuditHistoryDeleteEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuditHistoryEventDeleteEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuditHistoryEventDeleteEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKAAAAEF1ZGl0SGlzdG9yeUV2ZW50RGVsZXRlRXZlbnRUeXBlSW5zdGFu" +
           "Y2UBAM4LAQDOC84LAAD/////EQAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEAJw4ALgBEJw4AAAAP////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEAKA4ALgBEKA4AAAAR/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACgAAAFNvdXJjZU5vZGUBACkOAC4ARCkOAAAAEf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAoAAABTb3VyY2VOYW1lAQAqDgAuAEQqDgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAA" +
           "VGltZQEAKw4ALgBEKw4AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUB" +
           "ACwOAC4ARCwOAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAC4OAC4ARC4O" +
           "AAAAFf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEALw4ALgBELw4AAAAF/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAADwAAAEFjdGlvblRpbWVTdGFtcAEAMA4ALgBEMA4AAAEAJgH/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAGAAAAU3RhdHVzAQAxDgAuAEQxDgAAAAH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAIAAAAU2VydmVySWQBADIOAC4ARDIOAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABIAAABD" +
           "bGllbnRBdWRpdEVudHJ5SWQBADMOAC4ARDMOAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABD" +
           "bGllbnRVc2VySWQBADQOAC4ARDQOAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABMAAABQYXJhbWV0" +
           "ZXJEYXRhVHlwZUlkAQA1DgAuAEQ1DgAAABH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAVXBkYXRl" +
           "ZE5vZGUBADYOAC4ARDYOAAAAEf////8BAf////8AAAAAF2CJCgIAAAAAAAgAAABFdmVudElkcwEAzwsA" +
           "LgBEzwsAAAAPAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAAAAAJAAAAT2xkVmFsdWVzAQDQCwAu" +
           "AETQCwAAAQCYA/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<byte[][]> EventIds
        {
            get
            {
                return m_eventIds;
            }

            set
            {
                if (!Object.ReferenceEquals(m_eventIds, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_eventIds = value;
            }
        }

        /// <remarks />
        public PropertyState<HistoryEventFieldList> OldValues
        {
            get
            {
                return m_oldValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_oldValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_oldValues = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_eventIds != null)
            {
                children.Add(m_eventIds);
            }

            if (m_oldValues != null)
            {
                children.Add(m_oldValues);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.EventIds:
                {
                    if (createOrReplace)
                    {
                        if (EventIds == null)
                        {
                            if (replacement == null)
                            {
                                EventIds = new PropertyState<byte[][]>(this);
                            }
                            else
                            {
                                EventIds = (PropertyState<byte[][]>)replacement;
                            }
                        }
                    }

                    instance = EventIds;
                    break;
                }

                case Opc.Ua.BrowseNames.OldValues:
                {
                    if (createOrReplace)
                    {
                        if (OldValues == null)
                        {
                            if (replacement == null)
                            {
                                OldValues = new PropertyState<HistoryEventFieldList>(this);
                            }
                            else
                            {
                                OldValues = (PropertyState<HistoryEventFieldList>)replacement;
                            }
                        }
                    }

                    instance = OldValues;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<byte[][]> m_eventIds;
        private PropertyState<HistoryEventFieldList> m_oldValues;
        #endregion
    }
    #endif
    #endregion

    #region OpenWithMasksMethodState Class
    #if (!OPCUA_EXCLUDE_OpenWithMasksMethodState)
    /// <summary>
    /// Stores an instance of the OpenWithMasksMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class OpenWithMasksMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public OpenWithMasksMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new OpenWithMasksMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAFwAAAE9wZW5XaXRoTWFza3NNZXRob2RUeXBlAQDhMAAvAQDhMOEwAAAB" +
           "Af////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA4jAALgBE4jAAAJYBAAAAAQAqAQEU" +
           "AAAABQAAAE1hc2tzAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAP" +
           "AAAAT3V0cHV0QXJndW1lbnRzAQDjMAAuAETjMAAAlgEAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH" +
           "/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public OpenWithMasksMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            uint masks = (uint)_inputArguments[0];

            uint fileHandle = (uint)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    masks,
                    ref fileHandle);
            }

            _outputArguments[0] = fileHandle;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult OpenWithMasksMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        uint masks,
        ref uint fileHandle);
    #endif
    #endregion

    #region CloseAndUpdateMethodState Class
    #if (!OPCUA_EXCLUDE_CloseAndUpdateMethodState)
    /// <summary>
    /// Stores an instance of the CloseAndUpdateMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class CloseAndUpdateMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public CloseAndUpdateMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new CloseAndUpdateMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGAAAAENsb3NlQW5kVXBkYXRlTWV0aG9kVHlwZQEA5DAALwEA5DDkMAAA" +
           "AQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAKAxAC4ARKAxAACWAQAAAAEAKgEB" +
           "GQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoC" +
           "AAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQDlMAAuAETlMAAAlgEAAAABACoBASMAAAAUAAAAQXBwbHlD" +
           "aGFuZ2VzUmVxdWlyZWQAAf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public CloseAndUpdateMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            uint fileHandle = (uint)_inputArguments[0];

            bool applyChangesRequired = (bool)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    fileHandle,
                    ref applyChangesRequired);
            }

            _outputArguments[0] = applyChangesRequired;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult CloseAndUpdateMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        uint fileHandle,
        ref bool applyChangesRequired);
    #endif
    #endregion

    #region AddCertificateMethodState Class
    #if (!OPCUA_EXCLUDE_AddCertificateMethodState)
    /// <summary>
    /// Stores an instance of the AddCertificateMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AddCertificateMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AddCertificateMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new AddCertificateMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGAAAAEFkZENlcnRpZmljYXRlTWV0aG9kVHlwZQEA5jAALwEA5jDmMAAA" +
           "AQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAOcwAC4AROcwAACWAgAAAAEAKgEB" +
           "GgAAAAsAAABDZXJ0aWZpY2F0ZQAP/////wAAAAAAAQAqAQEjAAAAFAAAAElzVHJ1c3RlZENlcnRpZmlj" +
           "YXRlAAH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public AddCertificateMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            byte[] certificate = (byte[])_inputArguments[0];
            bool isTrustedCertificate = (bool)_inputArguments[1];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    certificate,
                    isTrustedCertificate);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult AddCertificateMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        byte[] certificate,
        bool isTrustedCertificate);
    #endif
    #endregion

    #region RemoveCertificateMethodState Class
    #if (!OPCUA_EXCLUDE_RemoveCertificateMethodState)
    /// <summary>
    /// Stores an instance of the RemoveCertificateMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RemoveCertificateMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RemoveCertificateMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new RemoveCertificateMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGwAAAFJlbW92ZUNlcnRpZmljYXRlTWV0aG9kVHlwZQEA6DAALwEA6DDo" +
           "MAAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAOkwAC4AROkwAACWAgAAAAEA" +
           "KgEBGQAAAAoAAABUaHVtYnByaW50AAz/////AAAAAAABACoBASMAAAAUAAAASXNUcnVzdGVkQ2VydGlm" +
           "aWNhdGUAAf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public RemoveCertificateMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string thumbprint = (string)_inputArguments[0];
            bool isTrustedCertificate = (bool)_inputArguments[1];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    thumbprint,
                    isTrustedCertificate);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult RemoveCertificateMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string thumbprint,
        bool isTrustedCertificate);
    #endif
    #endregion

    #region TrustListState Class
    #if (!OPCUA_EXCLUDE_TrustListState)
    /// <summary>
    /// Stores an instance of the TrustListType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TrustListState : FileState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TrustListState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.TrustListType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (UpdateFrequency != null)
            {
                UpdateFrequency.Initialize(context, UpdateFrequency_InitializationString);
            }

            if (CloseAndUpdate != null)
            {
                CloseAndUpdate.Initialize(context, CloseAndUpdate_InitializationString);
            }

            if (AddCertificate != null)
            {
                AddCertificate.Initialize(context, AddCertificate_InitializationString);
            }

            if (RemoveCertificate != null)
            {
                RemoveCertificate.Initialize(context, RemoveCertificate_InitializationString);
            }
        }

        #region Initialization String
        private const string UpdateFrequency_InitializationString =
           "//////////8VYIkKAgAAAAAADwAAAFVwZGF0ZUZyZXF1ZW5jeQEAYEsALgBEYEsAAAEAIgH/////AQH/" +
           "////AAAAAA==";

        private const string CloseAndUpdate_InitializationString =
           "//////////8EYYIKBAAAAAAADgAAAENsb3NlQW5kVXBkYXRlAQACMQAvAQACMQIxAAABAf////8CAAAA" +
           "F2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAoTEALgBEoTEAAJYBAAAAAQAqAQEZAAAACgAAAEZp" +
           "bGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABP" +
           "dXRwdXRBcmd1bWVudHMBAAMxAC4ARAMxAACWAQAAAAEAKgEBIwAAABQAAABBcHBseUNoYW5nZXNSZXF1" +
           "aXJlZAAB/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string AddCertificate_InitializationString =
           "//////////8EYYIKBAAAAAAADgAAAEFkZENlcnRpZmljYXRlAQAEMQAvAQAEMQQxAAABAf////8BAAAA" +
           "F2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEABTEALgBEBTEAAJYCAAAAAQAqAQEaAAAACwAAAENl" +
           "cnRpZmljYXRlAA//////AAAAAAABACoBASMAAAAUAAAASXNUcnVzdGVkQ2VydGlmaWNhdGUAAf////8A" +
           "AAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";

        private const string RemoveCertificate_InitializationString =
           "//////////8EYYIKBAAAAAAAEQAAAFJlbW92ZUNlcnRpZmljYXRlAQAGMQAvAQAGMQYxAAABAf////8B" +
           "AAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEABzEALgBEBzEAAJYCAAAAAQAqAQEZAAAACgAA" +
           "AFRodW1icHJpbnQADP////8AAAAAAAEAKgEBIwAAABQAAABJc1RydXN0ZWRDZXJ0aWZpY2F0ZQAB////" +
           "/wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFQAAAFRydXN0TGlzdFR5cGVJbnN0YW5jZQEA6jABAOow6jAAAP////8Q" +
           "AAAAFWCJCgIAAAAAAAQAAABTaXplAQDrMAAuAETrMAAAAAn/////AQH/////AAAAABVgiQoCAAAAAAAI" +
           "AAAAV3JpdGFibGUBAJoxAC4ARJoxAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABVc2VyV3Jp" +
           "dGFibGUBAJsxAC4ARJsxAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABPcGVuQ291bnQBAO4w" +
           "AC4ARO4wAAAABf////8BAf////8AAAAABGGCCgQAAAAAAAQAAABPcGVuAQDvMAAvAQA8Le8wAAABAf//" +
           "//8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA8DAALgBE8DAAAJYBAAAAAQAqAQETAAAA" +
           "BAAAAE1vZGUAA/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABP" +
           "dXRwdXRBcmd1bWVudHMBAPEwAC4ARPEwAACWAQAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////" +
           "AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAAFAAAAQ2xvc2UBAPIwAC8BAD8t" +
           "8jAAAAEB/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQDzMAAuAETzMAAAlgEAAAAB" +
           "ACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAE" +
           "YYIKBAAAAAAABAAAAFJlYWQBAPQwAC8BAEEt9DAAAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0" +
           "QXJndW1lbnRzAQD1MAAuAET1MAAAlgIAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAA" +
           "AQAqAQEVAAAABgAAAExlbmd0aAAG/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkK" +
           "AgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEA9jAALgBE9jAAAJYBAAAAAQAqAQETAAAABAAAAERhdGEA" +
           "D/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAUAAABXcml0ZQEA9zAA" +
           "LwEARC33MAAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAPgwAC4ARPgwAACW" +
           "AgAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACoBARMAAAAEAAAARGF0YQAP////" +
           "/wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAACwAAAEdldFBvc2l0aW9uAQD5" +
           "MAAvAQBGLfkwAAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA+jAALgBE+jAA" +
           "AJYBAAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf//" +
           "//8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAPswAC4ARPswAACWAQAAAAEAKgEBFwAA" +
           "AAgAAABQb3NpdGlvbgAJ/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAA" +
           "CwAAAFNldFBvc2l0aW9uAQD8MAAvAQBJLfwwAAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFy" +
           "Z3VtZW50cwEA/TAALgBE/TAAAJYCAAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEA" +
           "KgEBFwAAAAgAAABQb3NpdGlvbgAJ/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkK" +
           "AgAAAAAADgAAAExhc3RVcGRhdGVUaW1lAQD+MAAuAET+MAAAAQAmAf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAA8AAABVcGRhdGVGcmVxdWVuY3kBAGBLAC4ARGBLAAABACIB/////wEB/////wAAAAAEYYIKBAAA" +
           "AAAADQAAAE9wZW5XaXRoTWFza3MBAP8wAC8BAP8w/zAAAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElu" +
           "cHV0QXJndW1lbnRzAQAAMQAuAEQAMQAAlgEAAAABACoBARQAAAAFAAAATWFza3MAB/////8AAAAAAAEA" +
           "KAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAAExAC4A" +
           "RAExAACWAQAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAA" +
           "AQH/////AAAAAARhggoEAAAAAAAOAAAAQ2xvc2VBbmRVcGRhdGUBAAIxAC8BAAIxAjEAAAEB/////wIA" +
           "AAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQChMQAuAEShMQAAlgEAAAABACoBARkAAAAKAAAA" +
           "RmlsZUhhbmRsZQAH/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAA" +
           "AE91dHB1dEFyZ3VtZW50cwEAAzEALgBEAzEAAJYBAAAAAQAqAQEjAAAAFAAAAEFwcGx5Q2hhbmdlc1Jl" +
           "cXVpcmVkAAH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAAOAAAAQWRk" +
           "Q2VydGlmaWNhdGUBAAQxAC8BAAQxBDEAAAEB/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1l" +
           "bnRzAQAFMQAuAEQFMQAAlgIAAAABACoBARoAAAALAAAAQ2VydGlmaWNhdGUAD/////8AAAAAAAEAKgEB" +
           "IwAAABQAAABJc1RydXN0ZWRDZXJ0aWZpY2F0ZQAB/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB////" +
           "/wAAAAAEYYIKBAAAAAAAEQAAAFJlbW92ZUNlcnRpZmljYXRlAQAGMQAvAQAGMQYxAAABAf////8BAAAA" +
           "F2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEABzEALgBEBzEAAJYCAAAAAQAqAQEZAAAACgAAAFRo" +
           "dW1icHJpbnQADP////8AAAAAAAEAKgEBIwAAABQAAABJc1RydXN0ZWRDZXJ0aWZpY2F0ZQAB/////wAA" +
           "AAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<DateTime> LastUpdateTime
        {
            get
            {
                return m_lastUpdateTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastUpdateTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastUpdateTime = value;
            }
        }

        /// <remarks />
        public PropertyState<double> UpdateFrequency
        {
            get
            {
                return m_updateFrequency;
            }

            set
            {
                if (!Object.ReferenceEquals(m_updateFrequency, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_updateFrequency = value;
            }
        }

        /// <remarks />
        public OpenWithMasksMethodState OpenWithMasks
        {
            get
            {
                return m_openWithMasksMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_openWithMasksMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_openWithMasksMethod = value;
            }
        }

        /// <remarks />
        public CloseAndUpdateMethodState CloseAndUpdate
        {
            get
            {
                return m_closeAndUpdateMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_closeAndUpdateMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_closeAndUpdateMethod = value;
            }
        }

        /// <remarks />
        public AddCertificateMethodState AddCertificate
        {
            get
            {
                return m_addCertificateMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addCertificateMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addCertificateMethod = value;
            }
        }

        /// <remarks />
        public RemoveCertificateMethodState RemoveCertificate
        {
            get
            {
                return m_removeCertificateMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removeCertificateMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removeCertificateMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_lastUpdateTime != null)
            {
                children.Add(m_lastUpdateTime);
            }

            if (m_updateFrequency != null)
            {
                children.Add(m_updateFrequency);
            }

            if (m_openWithMasksMethod != null)
            {
                children.Add(m_openWithMasksMethod);
            }

            if (m_closeAndUpdateMethod != null)
            {
                children.Add(m_closeAndUpdateMethod);
            }

            if (m_addCertificateMethod != null)
            {
                children.Add(m_addCertificateMethod);
            }

            if (m_removeCertificateMethod != null)
            {
                children.Add(m_removeCertificateMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.LastUpdateTime:
                {
                    if (createOrReplace)
                    {
                        if (LastUpdateTime == null)
                        {
                            if (replacement == null)
                            {
                                LastUpdateTime = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                LastUpdateTime = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = LastUpdateTime;
                    break;
                }

                case Opc.Ua.BrowseNames.UpdateFrequency:
                {
                    if (createOrReplace)
                    {
                        if (UpdateFrequency == null)
                        {
                            if (replacement == null)
                            {
                                UpdateFrequency = new PropertyState<double>(this);
                            }
                            else
                            {
                                UpdateFrequency = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = UpdateFrequency;
                    break;
                }

                case Opc.Ua.BrowseNames.OpenWithMasks:
                {
                    if (createOrReplace)
                    {
                        if (OpenWithMasks == null)
                        {
                            if (replacement == null)
                            {
                                OpenWithMasks = new OpenWithMasksMethodState(this);
                            }
                            else
                            {
                                OpenWithMasks = (OpenWithMasksMethodState)replacement;
                            }
                        }
                    }

                    instance = OpenWithMasks;
                    break;
                }

                case Opc.Ua.BrowseNames.CloseAndUpdate:
                {
                    if (createOrReplace)
                    {
                        if (CloseAndUpdate == null)
                        {
                            if (replacement == null)
                            {
                                CloseAndUpdate = new CloseAndUpdateMethodState(this);
                            }
                            else
                            {
                                CloseAndUpdate = (CloseAndUpdateMethodState)replacement;
                            }
                        }
                    }

                    instance = CloseAndUpdate;
                    break;
                }

                case Opc.Ua.BrowseNames.AddCertificate:
                {
                    if (createOrReplace)
                    {
                        if (AddCertificate == null)
                        {
                            if (replacement == null)
                            {
                                AddCertificate = new AddCertificateMethodState(this);
                            }
                            else
                            {
                                AddCertificate = (AddCertificateMethodState)replacement;
                            }
                        }
                    }

                    instance = AddCertificate;
                    break;
                }

                case Opc.Ua.BrowseNames.RemoveCertificate:
                {
                    if (createOrReplace)
                    {
                        if (RemoveCertificate == null)
                        {
                            if (replacement == null)
                            {
                                RemoveCertificate = new RemoveCertificateMethodState(this);
                            }
                            else
                            {
                                RemoveCertificate = (RemoveCertificateMethodState)replacement;
                            }
                        }
                    }

                    instance = RemoveCertificate;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<DateTime> m_lastUpdateTime;
        private PropertyState<double> m_updateFrequency;
        private OpenWithMasksMethodState m_openWithMasksMethod;
        private CloseAndUpdateMethodState m_closeAndUpdateMethod;
        private AddCertificateMethodState m_addCertificateMethod;
        private RemoveCertificateMethodState m_removeCertificateMethod;
        #endregion
    }
    #endif
    #endregion

    #region TrustListOutOfDateAlarmState Class
    #if (!OPCUA_EXCLUDE_TrustListOutOfDateAlarmState)
    /// <summary>
    /// Stores an instance of the TrustListOutOfDateAlarmType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TrustListOutOfDateAlarmState : SystemOffNormalAlarmState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TrustListOutOfDateAlarmState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.TrustListOutOfDateAlarmType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIwAAAFRydXN0TGlzdE91dE9mRGF0ZUFsYXJtVHlwZUluc3RhbmNlAQBh" +
           "SwEAYUthSwAA/////x4AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAGJLAC4ARGJLAAAAD/////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAGNLAC4ARGNLAAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABTb3VyY2VOb2RlAQBkSwAuAERkSwAAABH/////AQH/////AAAAABVgiQoCAAAAAAAK" +
           "AAAAU291cmNlTmFtZQEAZUsALgBEZUsAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUB" +
           "AGZLAC4ARGZLAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQBnSwAu" +
           "AERnSwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQBpSwAuAERpSwAAABX/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAGpLAC4ARGpLAAAABf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAABAAAABDb25kaXRpb25DbGFzc0lkAQBrSwAuAERrSwAAABH/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAASAAAAQ29uZGl0aW9uQ2xhc3NOYW1lAQBsSwAuAERsSwAAABX/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAANAAAAQ29uZGl0aW9uTmFtZQEAb0sALgBEb0sAAAAM/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACAAAAEJyYW5jaElkAQBwSwAuAERwSwAAABH/////AQH/////AAAAABVgiQoCAAAAAAAGAAAA" +
           "UmV0YWluAQBxSwAuAERxSwAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAARW5hYmxlZFN0YXRl" +
           "AQBySwAvAQAjI3JLAAAAFf////8BAQUAAAABACwjAAEAiksBACwjAAEAk0sBACwjAAEAoEsBACwjAAEA" +
           "qksBACwjAAEAvEsBAAAAFWCJCgIAAAAAAAIAAABJZAEAc0sALgBEc0sAAAAB/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAABwAAAFF1YWxpdHkBAHtLAC8BACoje0sAAAAT/////wEB/////wEAAAAVYIkKAgAAAAAA" +
           "DwAAAFNvdXJjZVRpbWVzdGFtcAEAfEsALgBEfEsAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAM" +
           "AAAATGFzdFNldmVyaXR5AQB9SwAvAQAqI31LAAAABf////8BAf////8BAAAAFWCJCgIAAAAAAA8AAABT" +
           "b3VyY2VUaW1lc3RhbXABAH5LAC4ARH5LAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAENv" +
           "bW1lbnQBAH9LAC8BACojf0sAAAAV/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRpbWVz" +
           "dGFtcAEAgEsALgBEgEsAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50VXNlcklk" +
           "AQCBSwAuAESBSwAAAAz/////AQH/////AAAAAARhggoEAAAAAAAHAAAARGlzYWJsZQEAgksALwEARCOC" +
           "SwAAAQEBAAAAAQD5CwABAPMKAAAAAARhggoEAAAAAAAGAAAARW5hYmxlAQCDSwAvAQBDI4NLAAABAQEA" +
           "AAABAPkLAAEA8woAAAAABGGCCgQAAAAAAAoAAABBZGRDb21tZW50AQCESwAvAQBFI4RLAAABAQEAAAAB" +
           "APkLAAEADQsBAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAhUsALgBEhUsAAJYCAAAAAQAq" +
           "AQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBl" +
           "dmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBj" +
           "b21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABBY2tlZFN0YXRlAQCKSwAvAQAjI4pLAAAAFf////8BAQEAAAABACwjAQEAcksBAAAA" +
           "FWCJCgIAAAAAAAIAAABJZAEAi0sALgBEi0sAAAAB/////wEB/////wAAAAAEYYIKBAAAAAAACwAAAEFj" +
           "a25vd2xlZGdlAQCcSwAvAQCXI5xLAAABAQEAAAABAPkLAAEA8CIBAAAAF2CpCgIAAAAAAA4AAABJbnB1" +
           "dEFyZ3VtZW50cwEAnUsALgBEnUsAAJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAA" +
           "AAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABD" +
           "b21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9u" +
           "LgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAsAAABBY3RpdmVTdGF0ZQEAoEsALwEA" +
           "IyOgSwAAABX/////AQEBAAAAAQAsIwEBAHJLAQAAABVgiQoCAAAAAAACAAAASWQBAKFLAC4ARKFLAAAA" +
           "Af////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABJbnB1dE5vZGUBAKlLAC4ARKlLAAAAEf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABMAAABTdXBwcmVzc2VkT3JTaGVsdmVkAQDPSwAuAETPSwAAAAH/////AQH/" +
           "////AAAAABVgiQoCAAAAAAALAAAATm9ybWFsU3RhdGUBAPVLAC4ARPVLAAAAEf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAsAAABUcnVzdExpc3RJZAEA9ksALgBE9ksAAAAR/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAADgAAAExhc3RVcGRhdGVUaW1lAQD3SwAuAET3SwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AA8AAABVcGRhdGVGcmVxdWVuY3kBAPhLAC4ARPhLAAABACIB/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> TrustListId
        {
            get
            {
                return m_trustListId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_trustListId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_trustListId = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> LastUpdateTime
        {
            get
            {
                return m_lastUpdateTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_lastUpdateTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_lastUpdateTime = value;
            }
        }

        /// <remarks />
        public PropertyState<double> UpdateFrequency
        {
            get
            {
                return m_updateFrequency;
            }

            set
            {
                if (!Object.ReferenceEquals(m_updateFrequency, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_updateFrequency = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_trustListId != null)
            {
                children.Add(m_trustListId);
            }

            if (m_lastUpdateTime != null)
            {
                children.Add(m_lastUpdateTime);
            }

            if (m_updateFrequency != null)
            {
                children.Add(m_updateFrequency);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.TrustListId:
                {
                    if (createOrReplace)
                    {
                        if (TrustListId == null)
                        {
                            if (replacement == null)
                            {
                                TrustListId = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                TrustListId = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = TrustListId;
                    break;
                }

                case Opc.Ua.BrowseNames.LastUpdateTime:
                {
                    if (createOrReplace)
                    {
                        if (LastUpdateTime == null)
                        {
                            if (replacement == null)
                            {
                                LastUpdateTime = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                LastUpdateTime = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = LastUpdateTime;
                    break;
                }

                case Opc.Ua.BrowseNames.UpdateFrequency:
                {
                    if (createOrReplace)
                    {
                        if (UpdateFrequency == null)
                        {
                            if (replacement == null)
                            {
                                UpdateFrequency = new PropertyState<double>(this);
                            }
                            else
                            {
                                UpdateFrequency = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = UpdateFrequency;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_trustListId;
        private PropertyState<DateTime> m_lastUpdateTime;
        private PropertyState<double> m_updateFrequency;
        #endregion
    }
    #endif
    #endregion

    #region CertificateGroupState Class
    #if (!OPCUA_EXCLUDE_CertificateGroupState)
    /// <summary>
    /// Stores an instance of the CertificateGroupType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class CertificateGroupState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public CertificateGroupState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.CertificateGroupType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (CertificateExpired != null)
            {
                CertificateExpired.Initialize(context, CertificateExpired_InitializationString);
            }

            if (TrustListOutOfDate != null)
            {
                TrustListOutOfDate.Initialize(context, TrustListOutOfDate_InitializationString);
            }

            if (GetRejectedList != null)
            {
                GetRejectedList.Initialize(context, GetRejectedList_InitializationString);
            }
        }

        #region Initialization String
        private const string CertificateExpired_InitializationString =
           "//////////8EYIAKAQAAAAAAEgAAAENlcnRpZmljYXRlRXhwaXJlZAEA+ksALwEAqTP6SwAA/////x4A" +
           "AAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAPtLAC4ARPtLAAAAD/////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAkAAABFdmVudFR5cGUBAPxLAC4ARPxLAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABTb3Vy" +
           "Y2VOb2RlAQD9SwAuAET9SwAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAAU291cmNlTmFtZQEA" +
           "/ksALgBE/ksAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUBAP9LAC4ARP9LAAABACYB" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQAATAAuAEQATAAAAQAmAf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQACTAAuAEQCTAAAABX/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAIAAAAU2V2ZXJpdHkBAANMAC4ARANMAAAABf////8BAf////8AAAAAFWCJCgIAAAAAABAA" +
           "AABDb25kaXRpb25DbGFzc0lkAQAETAAuAEQETAAAABH/////AQH/////AAAAABVgiQoCAAAAAAASAAAA" +
           "Q29uZGl0aW9uQ2xhc3NOYW1lAQAFTAAuAEQFTAAAABX/////AQH/////AAAAABVgiQoCAAAAAAANAAAA" +
           "Q29uZGl0aW9uTmFtZQEACEwALgBECEwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAEJyYW5j" +
           "aElkAQAJTAAuAEQJTAAAABH/////AQH/////AAAAABVgiQoCAAAAAAAGAAAAUmV0YWluAQAKTAAuAEQK" +
           "TAAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAARW5hYmxlZFN0YXRlAQALTAAvAQAjIwtMAAAA" +
           "Ff////8BAQUAAAABACwjAAEAH0wBACwjAAEAKEwBACwjAAEANUwBACwjAAEAP0wBACwjAAEAUUwBAAAA" +
           "FWCJCgIAAAAAAAIAAABJZAEADEwALgBEDEwAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAFF1" +
           "YWxpdHkBABRMAC8BACojFEwAAAAT/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRpbWVz" +
           "dGFtcAEAFUwALgBEFUwAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAATGFzdFNldmVyaXR5" +
           "AQAWTAAvAQAqIxZMAAAABf////8BAf////8BAAAAFWCJCgIAAAAAAA8AAABTb3VyY2VUaW1lc3RhbXAB" +
           "ABdMAC4ARBdMAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAENvbW1lbnQBABhMAC8BACoj" +
           "GEwAAAAV/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRpbWVzdGFtcAEAGUwALgBEGUwA" +
           "AAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50VXNlcklkAQAaTAAuAEQaTAAAAAz/" +
           "////AQH/////AAAAAARhggoEAAAAAAAHAAAARGlzYWJsZQEAG0wALwEARCMbTAAAAQEBAAAAAQD5CwAB" +
           "APMKAAAAAARhggoEAAAAAAAGAAAARW5hYmxlAQAcTAAvAQBDIxxMAAABAQEAAAABAPkLAAEA8woAAAAA" +
           "BGGCCgQAAAAAAAoAAABBZGRDb21tZW50AQAdTAAvAQBFIx1MAAABAQEAAAABAPkLAAEADQsBAAAAF2Cp" +
           "CgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAHkwALgBEHkwAAJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50" +
           "SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBjb21tZW50" +
           "LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRvIGFkZCB0" +
           "byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAoAAABBY2tl" +
           "ZFN0YXRlAQAfTAAvAQAjIx9MAAAAFf////8BAQEAAAABACwjAQEAC0wBAAAAFWCJCgIAAAAAAAIAAABJ" +
           "ZAEAIEwALgBEIEwAAAAB/////wEB/////wAAAAAEYYIKBAAAAAAACwAAAEFja25vd2xlZGdlAQAxTAAv" +
           "AQCXIzFMAAABAQEAAAABAPkLAAEA8CIBAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAMkwA" +
           "LgBEMkwAAJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50" +
           "aWZpZXIgZm9yIHRoZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAA" +
           "AAMAAAAAJAAAAFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAA" +
           "AAABAf////8AAAAAFWCJCgIAAAAAAAsAAABBY3RpdmVTdGF0ZQEANUwALwEAIyM1TAAAABX/////AQEB" +
           "AAAAAQAsIwEBAAtMAQAAABVgiQoCAAAAAAACAAAASWQBADZMAC4ARDZMAAAAAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAkAAABJbnB1dE5vZGUBAD5MAC4ARD5MAAAAEf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "ABMAAABTdXBwcmVzc2VkT3JTaGVsdmVkAQCFTgAuAESFTgAAAAH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAALAAAATm9ybWFsU3RhdGUBAKpOAC4ARKpOAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAA4AAABF" +
           "eHBpcmF0aW9uRGF0ZQEAq04ALgBEq04AAAAN/////wEB/////wAAAAAVYIkKAgAAAAAADwAAAENlcnRp" +
           "ZmljYXRlVHlwZQEArU4ALgBErU4AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAENlcnRpZmlj" +
           "YXRlAQCuTgAuAESuTgAAAA//////AQH/////AAAAAA==";

        private const string TrustListOutOfDate_InitializationString =
           "//////////8EYIAKAQAAAAAAEgAAAFRydXN0TGlzdE91dE9mRGF0ZQEAr04ALwEAYUuvTgAA/////x4A" +
           "AAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBALBOAC4ARLBOAAAAD/////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAkAAABFdmVudFR5cGUBALFOAC4ARLFOAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABTb3Vy" +
           "Y2VOb2RlAQCyTgAuAESyTgAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAAU291cmNlTmFtZQEA" +
           "s04ALgBEs04AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUBALROAC4ARLROAAABACYB" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQC1TgAuAES1TgAAAQAmAf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQC3TgAuAES3TgAAABX/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAIAAAAU2V2ZXJpdHkBALhOAC4ARLhOAAAABf////8BAf////8AAAAAFWCJCgIAAAAAABAA" +
           "AABDb25kaXRpb25DbGFzc0lkAQC5TgAuAES5TgAAABH/////AQH/////AAAAABVgiQoCAAAAAAASAAAA" +
           "Q29uZGl0aW9uQ2xhc3NOYW1lAQC6TgAuAES6TgAAABX/////AQH/////AAAAABVgiQoCAAAAAAANAAAA" +
           "Q29uZGl0aW9uTmFtZQEAvU4ALgBEvU4AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAEJyYW5j" +
           "aElkAQC+TgAuAES+TgAAABH/////AQH/////AAAAABVgiQoCAAAAAAAGAAAAUmV0YWluAQC/TgAuAES/" +
           "TgAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAARW5hYmxlZFN0YXRlAQDATgAvAQAjI8BOAAAA" +
           "Ff////8BAQUAAAABACwjAAEA1E4BACwjAAEA3U4BACwjAAEA6k4BACwjAAEA9E4BACwjAAEABk8BAAAA" +
           "FWCJCgIAAAAAAAIAAABJZAEAwU4ALgBEwU4AAAAB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAFF1" +
           "YWxpdHkBAMlOAC8BACojyU4AAAAT/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRpbWVz" +
           "dGFtcAEAyk4ALgBEyk4AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAATGFzdFNldmVyaXR5" +
           "AQDLTgAvAQAqI8tOAAAABf////8BAf////8BAAAAFWCJCgIAAAAAAA8AAABTb3VyY2VUaW1lc3RhbXAB" +
           "AMxOAC4ARMxOAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAENvbW1lbnQBAM1OAC8BACoj" +
           "zU4AAAAV/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNvdXJjZVRpbWVzdGFtcAEAzk4ALgBEzk4A" +
           "AAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50VXNlcklkAQDPTgAuAETPTgAAAAz/" +
           "////AQH/////AAAAAARhggoEAAAAAAAHAAAARGlzYWJsZQEA0E4ALwEARCPQTgAAAQEBAAAAAQD5CwAB" +
           "APMKAAAAAARhggoEAAAAAAAGAAAARW5hYmxlAQDRTgAvAQBDI9FOAAABAQEAAAABAPkLAAEA8woAAAAA" +
           "BGGCCgQAAAAAAAoAAABBZGRDb21tZW50AQDSTgAvAQBFI9JOAAABAQEAAAABAPkLAAEADQsBAAAAF2Cp" +
           "CgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA004ALgBE004AAJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50" +
           "SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBjb21tZW50" +
           "LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRvIGFkZCB0" +
           "byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAoAAABBY2tl" +
           "ZFN0YXRlAQDUTgAvAQAjI9ROAAAAFf////8BAQEAAAABACwjAQEAwE4BAAAAFWCJCgIAAAAAAAIAAABJ" +
           "ZAEA1U4ALgBE1U4AAAAB/////wEB/////wAAAAAEYYIKBAAAAAAACwAAAEFja25vd2xlZGdlAQDmTgAv" +
           "AQCXI+ZOAAABAQEAAAABAPkLAAEA8CIBAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA504A" +
           "LgBE504AAJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50" +
           "aWZpZXIgZm9yIHRoZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAA" +
           "AAMAAAAAJAAAAFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAA" +
           "AAABAf////8AAAAAFWCJCgIAAAAAAAsAAABBY3RpdmVTdGF0ZQEA6k4ALwEAIyPqTgAAABX/////AQEB" +
           "AAAAAQAsIwEBAMBOAQAAABVgiQoCAAAAAAACAAAASWQBAOtOAC4AROtOAAAAAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAkAAABJbnB1dE5vZGUBAPNOAC4ARPNOAAAAEf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "ABMAAABTdXBwcmVzc2VkT3JTaGVsdmVkAQAZTwAuAEQZTwAAAAH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAALAAAATm9ybWFsU3RhdGUBAD5PAC4ARD5PAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABU" +
           "cnVzdExpc3RJZAEAP08ALgBEP08AAAAR/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAExhc3RVcGRh" +
           "dGVUaW1lAQBATwAuAERATwAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAA8AAABVcGRhdGVGcmVx" +
           "dWVuY3kBAEFPAC4AREFPAAABACIB/////wEB/////wAAAAA=";

        private const string GetRejectedList_InitializationString =
           "//////////8EYYIKBAAAAAAADwAAAEdldFJlamVjdGVkTGlzdAEA5lsALwEA5lvmWwAAAQH/////AQAA" +
           "ABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQDnWwAuAETnWwAAlgEAAAABACoBAR8AAAAMAAAA" +
           "Q2VydGlmaWNhdGVzAA8BAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHAAAAENlcnRpZmljYXRlR3JvdXBUeXBlSW5zdGFuY2UBAAsxAQALMQsx" +
           "AAD/////BQAAAARggAoBAAAAAAAJAAAAVHJ1c3RMaXN0AQAfNQAvAQDqMB81AAD/////DAAAABVgiQoC" +
           "AAAAAAAEAAAAU2l6ZQEAIDUALgBEIDUAAAAJ/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFdyaXRh" +
           "YmxlAQAhNQAuAEQhNQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAVXNlcldyaXRhYmxlAQAi" +
           "NQAuAEQiNQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAJAAAAT3BlbkNvdW50AQAjNQAuAEQjNQAA" +
           "AAX/////AQH/////AAAAAARhggoEAAAAAAAEAAAAT3BlbgEAJTUALwEAPC0lNQAAAQH/////AgAAABdg" +
           "qQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBACY1AC4ARCY1AACWAQAAAAEAKgEBEwAAAAQAAABNb2Rl" +
           "AAP/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJn" +
           "dW1lbnRzAQAnNQAuAEQnNQAAlgEAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAo" +
           "AQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAABQAAAENsb3NlAQAoNQAvAQA/LSg1AAABAf//" +
           "//8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAKTUALgBEKTUAAJYBAAAAAQAqAQEZAAAA" +
           "CgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAA" +
           "AAQAAABSZWFkAQAqNQAvAQBBLSo1AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50" +
           "cwEAKzUALgBEKzUAAJYCAAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKgEBFQAA" +
           "AAYAAABMZW5ndGgABv////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8A" +
           "AABPdXRwdXRBcmd1bWVudHMBACw1AC4ARCw1AACWAQAAAAEAKgEBEwAAAAQAAABEYXRhAA//////AAAA" +
           "AAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAAFAAAAV3JpdGUBAC01AC8BAEQtLTUA" +
           "AAEB/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQAuNQAuAEQuNQAAlgIAAAABACoB" +
           "ARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAqAQETAAAABAAAAERhdGEAD/////8AAAAAAAEA" +
           "KAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAsAAABHZXRQb3NpdGlvbgEALzUALwEARi0v" +
           "NQAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBADA1AC4ARDA1AACWAQAAAAEA" +
           "KgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdg" +
           "qQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQAxNQAuAEQxNQAAlgEAAAABACoBARcAAAAIAAAAUG9z" +
           "aXRpb24ACf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAsAAABTZXRQ" +
           "b3NpdGlvbgEAMjUALwEASS0yNQAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMB" +
           "ADM1AC4ARDM1AACWAgAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACoBARcAAAAI" +
           "AAAAUG9zaXRpb24ACf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAA4A" +
           "AABMYXN0VXBkYXRlVGltZQEANDUALgBENDUAAAEAJgH/////AQH/////AAAAAARhggoEAAAAAAANAAAA" +
           "T3BlbldpdGhNYXNrcwEANTUALwEA/zA1NQAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1" +
           "bWVudHMBADY1AC4ARDY1AACWAQAAAAEAKgEBFAAAAAUAAABNYXNrcwAH/////wAAAAAAAQAoAQEAAAAB" +
           "AAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEANzUALgBENzUAAJYB" +
           "AAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8A" +
           "AAAAF2CJCgIAAAAAABAAAABDZXJ0aWZpY2F0ZVR5cGVzAQA/NQAuAEQ/NQAAABEBAAAAAQAAAAAAAAAB" +
           "Af////8AAAAABGCACgEAAAAAABIAAABDZXJ0aWZpY2F0ZUV4cGlyZWQBAPpLAC8BAKkz+ksAAP////8e" +
           "AAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQD7SwAuAET7SwAAAA//////AQH/////AAAAABVgiQoCAAAA" +
           "AAAJAAAARXZlbnRUeXBlAQD8SwAuAET8SwAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAAU291" +
           "cmNlTm9kZQEA/UsALgBE/UsAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFNvdXJjZU5hbWUB" +
           "AP5LAC4ARP5LAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQAAABUaW1lAQD/SwAuAET/SwAAAQAm" +
           "Af////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGltZQEAAEwALgBEAEwAAAEAJgH/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAAkwALgBEAkwAAAAV/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAACAAAAFNldmVyaXR5AQADTAAuAEQDTAAAAAX/////AQH/////AAAAABVgiQoCAAAAAAAQ" +
           "AAAAQ29uZGl0aW9uQ2xhc3NJZAEABEwALgBEBEwAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAAEgAA" +
           "AENvbmRpdGlvbkNsYXNzTmFtZQEABUwALgBEBUwAAAAV/////wEB/////wAAAAAVYIkKAgAAAAAADQAA" +
           "AENvbmRpdGlvbk5hbWUBAAhMAC4ARAhMAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABCcmFu" +
           "Y2hJZAEACUwALgBECUwAAAAR/////wEB/////wAAAAAVYIkKAgAAAAAABgAAAFJldGFpbgEACkwALgBE" +
           "CkwAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAEVuYWJsZWRTdGF0ZQEAC0wALwEAIyMLTAAA" +
           "ABX/////AQEFAAAAAQAsIwABAB9MAQAsIwABAChMAQAsIwABADVMAQAsIwABAD9MAQAsIwABAFFMAQAA" +
           "ABVgiQoCAAAAAAACAAAASWQBAAxMAC4ARAxMAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABR" +
           "dWFsaXR5AQAUTAAvAQAqIxRMAAAAE/////8BAf////8BAAAAFWCJCgIAAAAAAA8AAABTb3VyY2VUaW1l" +
           "c3RhbXABABVMAC4ARBVMAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAExhc3RTZXZlcml0" +
           "eQEAFkwALwEAKiMWTAAAAAX/////AQH/////AQAAABVgiQoCAAAAAAAPAAAAU291cmNlVGltZXN0YW1w" +
           "AQAXTAAuAEQXTAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABDb21tZW50AQAYTAAvAQAq" +
           "IxhMAAAAFf////8BAf////8BAAAAFWCJCgIAAAAAAA8AAABTb3VyY2VUaW1lc3RhbXABABlMAC4ARBlM" +
           "AAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAENsaWVudFVzZXJJZAEAGkwALgBEGkwAAAAM" +
           "/////wEB/////wAAAAAEYYIKBAAAAAAABwAAAERpc2FibGUBABtMAC8BAEQjG0wAAAEBAQAAAAEA+QsA" +
           "AQDzCgAAAAAEYYIKBAAAAAAABgAAAEVuYWJsZQEAHEwALwEAQyMcTAAAAQEBAAAAAQD5CwABAPMKAAAA" +
           "AARhggoEAAAAAAAKAAAAQWRkQ29tbWVudAEAHUwALwEARSMdTAAAAQEBAAAAAQD5CwABAA0LAQAAABdg" +
           "qQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAB5MAC4ARB5MAACWAgAAAAEAKgEBRgAAAAcAAABFdmVu" +
           "dElkAA//////AAAAAAMAAAAAKAAAAFRoZSBpZGVudGlmaWVyIGZvciB0aGUgZXZlbnQgdG8gY29tbWVu" +
           "dC4BACoBAUIAAAAHAAAAQ29tbWVudAAV/////wAAAAADAAAAACQAAABUaGUgY29tbWVudCB0byBhZGQg" +
           "dG8gdGhlIGNvbmRpdGlvbi4BACgBAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAAAAAKAAAAQWNr" +
           "ZWRTdGF0ZQEAH0wALwEAIyMfTAAAABX/////AQEBAAAAAQAsIwEBAAtMAQAAABVgiQoCAAAAAAACAAAA" +
           "SWQBACBMAC4ARCBMAAAAAf////8BAf////8AAAAABGGCCgQAAAAAAAsAAABBY2tub3dsZWRnZQEAMUwA" +
           "LwEAlyMxTAAAAQEBAAAAAQD5CwABAPAiAQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBADJM" +
           "AC4ARDJMAACWAgAAAAEAKgEBRgAAAAcAAABFdmVudElkAA//////AAAAAAMAAAAAKAAAAFRoZSBpZGVu" +
           "dGlmaWVyIGZvciB0aGUgZXZlbnQgdG8gY29tbWVudC4BACoBAUIAAAAHAAAAQ29tbWVudAAV/////wAA" +
           "AAADAAAAACQAAABUaGUgY29tbWVudCB0byBhZGQgdG8gdGhlIGNvbmRpdGlvbi4BACgBAQAAAAEAAAAA" +
           "AAAAAQH/////AAAAABVgiQoCAAAAAAALAAAAQWN0aXZlU3RhdGUBADVMAC8BACMjNUwAAAAV/////wEB" +
           "AQAAAAEALCMBAQALTAEAAAAVYIkKAgAAAAAAAgAAAElkAQA2TAAuAEQ2TAAAAAH/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAJAAAASW5wdXROb2RlAQA+TAAuAEQ+TAAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAATAAAAU3VwcHJlc3NlZE9yU2hlbHZlZAEAhU4ALgBEhU4AAAAB/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACwAAAE5vcm1hbFN0YXRlAQCqTgAuAESqTgAAABH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAA" +
           "RXhwaXJhdGlvbkRhdGUBAKtOAC4ARKtOAAAADf////8BAf////8AAAAAFWCJCgIAAAAAAA8AAABDZXJ0" +
           "aWZpY2F0ZVR5cGUBAK1OAC4ARK1OAAAAEf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABDZXJ0aWZp" +
           "Y2F0ZQEArk4ALgBErk4AAAAP/////wEB/////wAAAAAEYIAKAQAAAAAAEgAAAFRydXN0TGlzdE91dE9m" +
           "RGF0ZQEAr04ALwEAYUuvTgAA/////x4AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBALBOAC4ARLBOAAAA" +
           "D/////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBALFOAC4ARLFOAAAAEf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQCyTgAuAESyTgAAABH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAKAAAAU291cmNlTmFtZQEAs04ALgBEs04AAAAM/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "BAAAAFRpbWUBALROAC4ARLROAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVU" +
           "aW1lAQC1TgAuAES1TgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQC3TgAu" +
           "AES3TgAAABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBALhOAC4ARLhOAAAABf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAABAAAABDb25kaXRpb25DbGFzc0lkAQC5TgAuAES5TgAAABH/////" +
           "AQH/////AAAAABVgiQoCAAAAAAASAAAAQ29uZGl0aW9uQ2xhc3NOYW1lAQC6TgAuAES6TgAAABX/////" +
           "AQH/////AAAAABVgiQoCAAAAAAANAAAAQ29uZGl0aW9uTmFtZQEAvU4ALgBEvU4AAAAM/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAACAAAAEJyYW5jaElkAQC+TgAuAES+TgAAABH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAGAAAAUmV0YWluAQC/TgAuAES/TgAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAARW5h" +
           "YmxlZFN0YXRlAQDATgAvAQAjI8BOAAAAFf////8BAQUAAAABACwjAAEA1E4BACwjAAEA3U4BACwjAAEA" +
           "6k4BACwjAAEA9E4BACwjAAEABk8BAAAAFWCJCgIAAAAAAAIAAABJZAEAwU4ALgBEwU4AAAAB/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAABwAAAFF1YWxpdHkBAMlOAC8BACojyU4AAAAT/////wEB/////wEAAAAV" +
           "YIkKAgAAAAAADwAAAFNvdXJjZVRpbWVzdGFtcAEAyk4ALgBEyk4AAAEAJgH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAMAAAATGFzdFNldmVyaXR5AQDLTgAvAQAqI8tOAAAABf////8BAf////8BAAAAFWCJCgIA" +
           "AAAAAA8AAABTb3VyY2VUaW1lc3RhbXABAMxOAC4ARMxOAAABACYB/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAABwAAAENvbW1lbnQBAM1OAC8BACojzU4AAAAV/////wEB/////wEAAAAVYIkKAgAAAAAADwAAAFNv" +
           "dXJjZVRpbWVzdGFtcAEAzk4ALgBEzk4AAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xp" +
           "ZW50VXNlcklkAQDPTgAuAETPTgAAAAz/////AQH/////AAAAAARhggoEAAAAAAAHAAAARGlzYWJsZQEA" +
           "0E4ALwEARCPQTgAAAQEBAAAAAQD5CwABAPMKAAAAAARhggoEAAAAAAAGAAAARW5hYmxlAQDRTgAvAQBD" +
           "I9FOAAABAQEAAAABAPkLAAEA8woAAAAABGGCCgQAAAAAAAoAAABBZGRDb21tZW50AQDSTgAvAQBFI9JO" +
           "AAABAQEAAAABAPkLAAEADQsBAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA004ALgBE004A" +
           "AJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50SWQAD/////8AAAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIg" +
           "Zm9yIHRoZSBldmVudCB0byBjb21tZW50LgEAKgEBQgAAAAcAAABDb21tZW50ABX/////AAAAAAMAAAAA" +
           "JAAAAFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUgY29uZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf//" +
           "//8AAAAAFWCJCgIAAAAAAAoAAABBY2tlZFN0YXRlAQDUTgAvAQAjI9ROAAAAFf////8BAQEAAAABACwj" +
           "AQEAwE4BAAAAFWCJCgIAAAAAAAIAAABJZAEA1U4ALgBE1U4AAAAB/////wEB/////wAAAAAEYYIKBAAA" +
           "AAAACwAAAEFja25vd2xlZGdlAQDmTgAvAQCXI+ZOAAABAQEAAAABAPkLAAEA8CIBAAAAF2CpCgIAAAAA" +
           "AA4AAABJbnB1dEFyZ3VtZW50cwEA504ALgBE504AAJYCAAAAAQAqAQFGAAAABwAAAEV2ZW50SWQAD///" +
           "//8AAAAAAwAAAAAoAAAAVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBldmVudCB0byBjb21tZW50LgEAKgEB" +
           "QgAAAAcAAABDb21tZW50ABX/////AAAAAAMAAAAAJAAAAFRoZSBjb21tZW50IHRvIGFkZCB0byB0aGUg" +
           "Y29uZGl0aW9uLgEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAsAAABBY3RpdmVTdGF0" +
           "ZQEA6k4ALwEAIyPqTgAAABX/////AQEBAAAAAQAsIwEBAMBOAQAAABVgiQoCAAAAAAACAAAASWQBAOtO" +
           "AC4AROtOAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABJbnB1dE5vZGUBAPNOAC4ARPNOAAAA" +
           "Ef////8BAf////8AAAAAFWCJCgIAAAAAABMAAABTdXBwcmVzc2VkT3JTaGVsdmVkAQAZTwAuAEQZTwAA" +
           "AAH/////AQH/////AAAAABVgiQoCAAAAAAALAAAATm9ybWFsU3RhdGUBAD5PAC4ARD5PAAAAEf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAsAAABUcnVzdExpc3RJZAEAP08ALgBEP08AAAAR/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAADgAAAExhc3RVcGRhdGVUaW1lAQBATwAuAERATwAAAQAmAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAA8AAABVcGRhdGVGcmVxdWVuY3kBAEFPAC4AREFPAAABACIB/////wEB/////wAAAAAE" +
           "YYIKBAAAAAAADwAAAEdldFJlamVjdGVkTGlzdAEA5lsALwEA5lvmWwAAAQH/////AQAAABdgqQoCAAAA" +
           "AAAPAAAAT3V0cHV0QXJndW1lbnRzAQDnWwAuAETnWwAAlgEAAAABACoBAR8AAAAMAAAAQ2VydGlmaWNh" +
           "dGVzAA8BAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public TrustListState TrustList
        {
            get
            {
                return m_trustList;
            }

            set
            {
                if (!Object.ReferenceEquals(m_trustList, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_trustList = value;
            }
        }

        /// <remarks />
        public PropertyState<NodeId[]> CertificateTypes
        {
            get
            {
                return m_certificateTypes;
            }

            set
            {
                if (!Object.ReferenceEquals(m_certificateTypes, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_certificateTypes = value;
            }
        }

        /// <remarks />
        public CertificateExpirationAlarmState CertificateExpired
        {
            get
            {
                return m_certificateExpired;
            }

            set
            {
                if (!Object.ReferenceEquals(m_certificateExpired, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_certificateExpired = value;
            }
        }

        /// <remarks />
        public TrustListOutOfDateAlarmState TrustListOutOfDate
        {
            get
            {
                return m_trustListOutOfDate;
            }

            set
            {
                if (!Object.ReferenceEquals(m_trustListOutOfDate, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_trustListOutOfDate = value;
            }
        }

        /// <remarks />
        public GetRejectedListMethodState GetRejectedList
        {
            get
            {
                return m_getRejectedListMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_getRejectedListMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_getRejectedListMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_trustList != null)
            {
                children.Add(m_trustList);
            }

            if (m_certificateTypes != null)
            {
                children.Add(m_certificateTypes);
            }

            if (m_certificateExpired != null)
            {
                children.Add(m_certificateExpired);
            }

            if (m_trustListOutOfDate != null)
            {
                children.Add(m_trustListOutOfDate);
            }

            if (m_getRejectedListMethod != null)
            {
                children.Add(m_getRejectedListMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.TrustList:
                {
                    if (createOrReplace)
                    {
                        if (TrustList == null)
                        {
                            if (replacement == null)
                            {
                                TrustList = new TrustListState(this);
                            }
                            else
                            {
                                TrustList = (TrustListState)replacement;
                            }
                        }
                    }

                    instance = TrustList;
                    break;
                }

                case Opc.Ua.BrowseNames.CertificateTypes:
                {
                    if (createOrReplace)
                    {
                        if (CertificateTypes == null)
                        {
                            if (replacement == null)
                            {
                                CertificateTypes = new PropertyState<NodeId[]>(this);
                            }
                            else
                            {
                                CertificateTypes = (PropertyState<NodeId[]>)replacement;
                            }
                        }
                    }

                    instance = CertificateTypes;
                    break;
                }

                case Opc.Ua.BrowseNames.CertificateExpired:
                {
                    if (createOrReplace)
                    {
                        if (CertificateExpired == null)
                        {
                            if (replacement == null)
                            {
                                CertificateExpired = new CertificateExpirationAlarmState(this);
                            }
                            else
                            {
                                CertificateExpired = (CertificateExpirationAlarmState)replacement;
                            }
                        }
                    }

                    instance = CertificateExpired;
                    break;
                }

                case Opc.Ua.BrowseNames.TrustListOutOfDate:
                {
                    if (createOrReplace)
                    {
                        if (TrustListOutOfDate == null)
                        {
                            if (replacement == null)
                            {
                                TrustListOutOfDate = new TrustListOutOfDateAlarmState(this);
                            }
                            else
                            {
                                TrustListOutOfDate = (TrustListOutOfDateAlarmState)replacement;
                            }
                        }
                    }

                    instance = TrustListOutOfDate;
                    break;
                }

                case Opc.Ua.BrowseNames.GetRejectedList:
                {
                    if (createOrReplace)
                    {
                        if (GetRejectedList == null)
                        {
                            if (replacement == null)
                            {
                                GetRejectedList = new GetRejectedListMethodState(this);
                            }
                            else
                            {
                                GetRejectedList = (GetRejectedListMethodState)replacement;
                            }
                        }
                    }

                    instance = GetRejectedList;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private TrustListState m_trustList;
        private PropertyState<NodeId[]> m_certificateTypes;
        private CertificateExpirationAlarmState m_certificateExpired;
        private TrustListOutOfDateAlarmState m_trustListOutOfDate;
        private GetRejectedListMethodState m_getRejectedListMethod;
        #endregion
    }
    #endif
    #endregion

    #region CertificateGroupFolderState Class
    #if (!OPCUA_EXCLUDE_CertificateGroupFolderState)
    /// <summary>
    /// Stores an instance of the CertificateGroupFolderType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class CertificateGroupFolderState : FolderState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public CertificateGroupFolderState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.CertificateGroupFolderType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (DefaultHttpsGroup != null)
            {
                DefaultHttpsGroup.Initialize(context, DefaultHttpsGroup_InitializationString);
            }

            if (DefaultUserTokenGroup != null)
            {
                DefaultUserTokenGroup.Initialize(context, DefaultUserTokenGroup_InitializationString);
            }
        }

        #region Initialization String
        private const string DefaultHttpsGroup_InitializationString =
           "//////////8EYIAKAQAAAAAAEQAAAERlZmF1bHRIdHRwc0dyb3VwAQAYNgAvAQALMRg2AAD/////AgAA" +
           "AARggAoBAAAAAAAJAAAAVHJ1c3RMaXN0AQAZNgAvAQDqMBk2AAD/////DAAAABVgiQoCAAAAAAAEAAAA" +
           "U2l6ZQEAGjYALgBEGjYAAAAJ/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFdyaXRhYmxlAQAbNgAu" +
           "AEQbNgAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAVXNlcldyaXRhYmxlAQAcNgAuAEQcNgAA" +
           "AAH/////AQH/////AAAAABVgiQoCAAAAAAAJAAAAT3BlbkNvdW50AQAdNgAuAEQdNgAAAAX/////AQH/" +
           "////AAAAAARhggoEAAAAAAAEAAAAT3BlbgEAHzYALwEAPC0fNgAAAQH/////AgAAABdgqQoCAAAAAAAO" +
           "AAAASW5wdXRBcmd1bWVudHMBACA2AC4ARCA2AACWAQAAAAEAKgEBEwAAAAQAAABNb2RlAAP/////AAAA" +
           "AAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQAh" +
           "NgAuAEQhNgAAlgEAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAoAQEAAAABAAAA" +
           "AAAAAAEB/////wAAAAAEYYIKBAAAAAAABQAAAENsb3NlAQAiNgAvAQA/LSI2AAABAf////8BAAAAF2Cp" +
           "CgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAIzYALgBEIzYAAJYBAAAAAQAqAQEZAAAACgAAAEZpbGVI" +
           "YW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAQAAABSZWFk" +
           "AQAkNgAvAQBBLSQ2AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAJTYALgBE" +
           "JTYAAJYCAAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKgEBFQAAAAYAAABMZW5n" +
           "dGgABv////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRB" +
           "cmd1bWVudHMBACY2AC4ARCY2AACWAQAAAAEAKgEBEwAAAAQAAABEYXRhAA//////AAAAAAABACgBAQAA" +
           "AAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAAFAAAAV3JpdGUBACc2AC8BAEQtJzYAAAEB/////wEA" +
           "AAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQAoNgAuAEQoNgAAlgIAAAABACoBARkAAAAKAAAA" +
           "RmlsZUhhbmRsZQAH/////wAAAAAAAQAqAQETAAAABAAAAERhdGEAD/////8AAAAAAAEAKAEBAAAAAQAA" +
           "AAAAAAABAf////8AAAAABGGCCgQAAAAAAAsAAABHZXRQb3NpdGlvbgEAKTYALwEARi0pNgAAAQH/////" +
           "AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBACo2AC4ARCo2AACWAQAAAAEAKgEBGQAAAAoA" +
           "AABGaWxlSGFuZGxlAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAP" +
           "AAAAT3V0cHV0QXJndW1lbnRzAQArNgAuAEQrNgAAlgEAAAABACoBARcAAAAIAAAAUG9zaXRpb24ACf//" +
           "//8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAsAAABTZXRQb3NpdGlvbgEA" +
           "LDYALwEASS0sNgAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAC02AC4ARC02" +
           "AACWAgAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACoBARcAAAAIAAAAUG9zaXRp" +
           "b24ACf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAA4AAABMYXN0VXBk" +
           "YXRlVGltZQEALjYALgBELjYAAAEAJgH/////AQH/////AAAAAARhggoEAAAAAAANAAAAT3BlbldpdGhN" +
           "YXNrcwEALzYALwEA/zAvNgAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBADA2" +
           "AC4ARDA2AACWAQAAAAEAKgEBFAAAAAUAAABNYXNrcwAH/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB" +
           "/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEAMTYALgBEMTYAAJYBAAAAAQAqAQEZ" +
           "AAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CJCgIA" +
           "AAAAABAAAABDZXJ0aWZpY2F0ZVR5cGVzAQA5NgAuAEQ5NgAAABEBAAAAAQAAAAAAAAABAf////8AAAAA";

        private const string DefaultUserTokenGroup_InitializationString =
           "//////////8EYIAKAQAAAAAAFQAAAERlZmF1bHRVc2VyVG9rZW5Hcm91cAEAOjYALwEACzE6NgAA////" +
           "/wIAAAAEYIAKAQAAAAAACQAAAFRydXN0TGlzdAEAOzYALwEA6jA7NgAA/////wwAAAAVYIkKAgAAAAAA" +
           "BAAAAFNpemUBADw2AC4ARDw2AAAACf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABXcml0YWJsZQEA" +
           "PTYALgBEPTYAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAFVzZXJXcml0YWJsZQEAPjYALgBE" +
           "PjYAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAACQAAAE9wZW5Db3VudAEAPzYALgBEPzYAAAAF////" +
           "/wEB/////wAAAAAEYYIKBAAAAAAABAAAAE9wZW4BAEE2AC8BADwtQTYAAAEB/////wIAAAAXYKkKAgAA" +
           "AAAADgAAAElucHV0QXJndW1lbnRzAQBCNgAuAERCNgAAlgEAAAABACoBARMAAAAEAAAATW9kZQAD////" +
           "/wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50" +
           "cwEAQzYALgBEQzYAAJYBAAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAA" +
           "AQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAUAAABDbG9zZQEARDYALwEAPy1ENgAAAQH/////AQAA" +
           "ABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAEU2AC4AREU2AACWAQAAAAEAKgEBGQAAAAoAAABG" +
           "aWxlSGFuZGxlAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAAEAAAA" +
           "UmVhZAEARjYALwEAQS1GNgAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAEc2" +
           "AC4AREc2AACWAgAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACoBARUAAAAGAAAA" +
           "TGVuZ3RoAAb/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0" +
           "cHV0QXJndW1lbnRzAQBINgAuAERINgAAlgEAAAABACoBARMAAAAEAAAARGF0YQAP/////wAAAAAAAQAo" +
           "AQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAABQAAAFdyaXRlAQBJNgAvAQBELUk2AAABAf//" +
           "//8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEASjYALgBESjYAAJYCAAAAAQAqAQEZAAAA" +
           "CgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKgEBEwAAAAQAAABEYXRhAA//////AAAAAAABACgBAQAA" +
           "AAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAALAAAAR2V0UG9zaXRpb24BAEs2AC8BAEYtSzYAAAEB" +
           "/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBMNgAuAERMNgAAlgEAAAABACoBARkA" +
           "AAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAA" +
           "AAAADwAAAE91dHB1dEFyZ3VtZW50cwEATTYALgBETTYAAJYBAAAAAQAqAQEXAAAACAAAAFBvc2l0aW9u" +
           "AAn/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAALAAAAU2V0UG9zaXRp" +
           "b24BAE42AC8BAEktTjYAAAEB/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBPNgAu" +
           "AERPNgAAlgIAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAqAQEXAAAACAAAAFBv" +
           "c2l0aW9uAAn/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAAAAAOAAAATGFz" +
           "dFVwZGF0ZVRpbWUBAFA2AC4ARFA2AAABACYB/////wEB/////wAAAAAEYYIKBAAAAAAADQAAAE9wZW5X" +
           "aXRoTWFza3MBAFE2AC8BAP8wUTYAAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRz" +
           "AQBSNgAuAERSNgAAlgEAAAABACoBARQAAAAFAAAATWFza3MAB/////8AAAAAAAEAKAEBAAAAAQAAAAAA" +
           "AAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAFM2AC4ARFM2AACWAQAAAAEA" +
           "KgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdg" +
           "iQoCAAAAAAAQAAAAQ2VydGlmaWNhdGVUeXBlcwEAWzYALgBEWzYAAAARAQAAAAEAAAAAAAAAAQH/////" +
           "AAAAAA==";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIgAAAENlcnRpZmljYXRlR3JvdXBGb2xkZXJUeXBlSW5zdGFuY2UBAPU1" +
           "AQD1NfU1AAD/////AwAAAARggAoBAAAAAAAXAAAARGVmYXVsdEFwcGxpY2F0aW9uR3JvdXABAPY1AC8B" +
           "AAsx9jUAAP////8CAAAABGCACgEAAAAAAAkAAABUcnVzdExpc3QBAPc1AC8BAOow9zUAAP////8MAAAA" +
           "FWCJCgIAAAAAAAQAAABTaXplAQD4NQAuAET4NQAAAAn/////AQH/////AAAAABVgiQoCAAAAAAAIAAAA" +
           "V3JpdGFibGUBAPk1AC4ARPk1AAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABVc2VyV3JpdGFi" +
           "bGUBAPo1AC4ARPo1AAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABPcGVuQ291bnQBAPs1AC4A" +
           "RPs1AAAABf////8BAf////8AAAAABGGCCgQAAAAAAAQAAABPcGVuAQD9NQAvAQA8Lf01AAABAf////8C" +
           "AAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA/jUALgBE/jUAAJYBAAAAAQAqAQETAAAABAAA" +
           "AE1vZGUAA/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRw" +
           "dXRBcmd1bWVudHMBAP81AC4ARP81AACWAQAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAA" +
           "AAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAAFAAAAQ2xvc2UBAAA2AC8BAD8tADYA" +
           "AAEB/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQABNgAuAEQBNgAAlgEAAAABACoB" +
           "ARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIK" +
           "BAAAAAAABAAAAFJlYWQBAAI2AC8BAEEtAjYAAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJn" +
           "dW1lbnRzAQADNgAuAEQDNgAAlgIAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAq" +
           "AQEVAAAABgAAAExlbmd0aAAG/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAA" +
           "AAAADwAAAE91dHB1dEFyZ3VtZW50cwEABDYALgBEBDYAAJYBAAAAAQAqAQETAAAABAAAAERhdGEAD///" +
           "//8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAUAAABXcml0ZQEABTYALwEA" +
           "RC0FNgAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAAY2AC4ARAY2AACWAgAA" +
           "AAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACoBARMAAAAEAAAARGF0YQAP/////wAA" +
           "AAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAACwAAAEdldFBvc2l0aW9uAQAHNgAv" +
           "AQBGLQc2AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEACDYALgBECDYAAJYB" +
           "AAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8A" +
           "AAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAAk2AC4ARAk2AACWAQAAAAEAKgEBFwAAAAgA" +
           "AABQb3NpdGlvbgAJ/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAACwAA" +
           "AFNldFBvc2l0aW9uAQAKNgAvAQBJLQo2AAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3Vt" +
           "ZW50cwEACzYALgBECzYAAJYCAAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKgEB" +
           "FwAAAAgAAABQb3NpdGlvbgAJ/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAA" +
           "AAAADgAAAExhc3RVcGRhdGVUaW1lAQAMNgAuAEQMNgAAAQAmAf////8BAf////8AAAAABGGCCgQAAAAA" +
           "AA0AAABPcGVuV2l0aE1hc2tzAQANNgAvAQD/MA02AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1" +
           "dEFyZ3VtZW50cwEADjYALgBEDjYAAJYBAAAAAQAqAQEUAAAABQAAAE1hc2tzAAf/////AAAAAAABACgB" +
           "AQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQAPNgAuAEQP" +
           "NgAAlgEAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB" +
           "/////wAAAAAXYIkKAgAAAAAAEAAAAENlcnRpZmljYXRlVHlwZXMBABc2AC4ARBc2AAAAEQEAAAABAAAA" +
           "AAAAAAEB/////wAAAAAEYIAKAQAAAAAAEQAAAERlZmF1bHRIdHRwc0dyb3VwAQAYNgAvAQALMRg2AAD/" +
           "////AgAAAARggAoBAAAAAAAJAAAAVHJ1c3RMaXN0AQAZNgAvAQDqMBk2AAD/////DAAAABVgiQoCAAAA" +
           "AAAEAAAAU2l6ZQEAGjYALgBEGjYAAAAJ/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFdyaXRhYmxl" +
           "AQAbNgAuAEQbNgAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAVXNlcldyaXRhYmxlAQAcNgAu" +
           "AEQcNgAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAJAAAAT3BlbkNvdW50AQAdNgAuAEQdNgAAAAX/" +
           "////AQH/////AAAAAARhggoEAAAAAAAEAAAAT3BlbgEAHzYALwEAPC0fNgAAAQH/////AgAAABdgqQoC" +
           "AAAAAAAOAAAASW5wdXRBcmd1bWVudHMBACA2AC4ARCA2AACWAQAAAAEAKgEBEwAAAAQAAABNb2RlAAP/" +
           "////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1l" +
           "bnRzAQAhNgAuAEQhNgAAlgEAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAoAQEA" +
           "AAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAABQAAAENsb3NlAQAiNgAvAQA/LSI2AAABAf////8B" +
           "AAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAIzYALgBEIzYAAJYBAAAAAQAqAQEZAAAACgAA" +
           "AEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAQA" +
           "AABSZWFkAQAkNgAvAQBBLSQ2AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA" +
           "JTYALgBEJTYAAJYCAAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKgEBFQAAAAYA" +
           "AABMZW5ndGgABv////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABP" +
           "dXRwdXRBcmd1bWVudHMBACY2AC4ARCY2AACWAQAAAAEAKgEBEwAAAAQAAABEYXRhAA//////AAAAAAAB" +
           "ACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAAFAAAAV3JpdGUBACc2AC8BAEQtJzYAAAEB" +
           "/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQAoNgAuAEQoNgAAlgIAAAABACoBARkA" +
           "AAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAqAQETAAAABAAAAERhdGEAD/////8AAAAAAAEAKAEB" +
           "AAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAsAAABHZXRQb3NpdGlvbgEAKTYALwEARi0pNgAA" +
           "AQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBACo2AC4ARCo2AACWAQAAAAEAKgEB" +
           "GQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoC" +
           "AAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQArNgAuAEQrNgAAlgEAAAABACoBARcAAAAIAAAAUG9zaXRp" +
           "b24ACf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAsAAABTZXRQb3Np" +
           "dGlvbgEALDYALwEASS0sNgAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAC02" +
           "AC4ARC02AACWAgAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACoBARcAAAAIAAAA" +
           "UG9zaXRpb24ACf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAA4AAABM" +
           "YXN0VXBkYXRlVGltZQEALjYALgBELjYAAAEAJgH/////AQH/////AAAAAARhggoEAAAAAAANAAAAT3Bl" +
           "bldpdGhNYXNrcwEALzYALwEA/zAvNgAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVu" +
           "dHMBADA2AC4ARDA2AACWAQAAAAEAKgEBFAAAAAUAAABNYXNrcwAH/////wAAAAAAAQAoAQEAAAABAAAA" +
           "AAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEAMTYALgBEMTYAAJYBAAAA" +
           "AQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA" +
           "F2CJCgIAAAAAABAAAABDZXJ0aWZpY2F0ZVR5cGVzAQA5NgAuAEQ5NgAAABEBAAAAAQAAAAAAAAABAf//" +
           "//8AAAAABGCACgEAAAAAABUAAABEZWZhdWx0VXNlclRva2VuR3JvdXABADo2AC8BAAsxOjYAAP////8C" +
           "AAAABGCACgEAAAAAAAkAAABUcnVzdExpc3QBADs2AC8BAOowOzYAAP////8MAAAAFWCJCgIAAAAAAAQA" +
           "AABTaXplAQA8NgAuAEQ8NgAAAAn/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAV3JpdGFibGUBAD02" +
           "AC4ARD02AAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABVc2VyV3JpdGFibGUBAD42AC4ARD42" +
           "AAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABPcGVuQ291bnQBAD82AC4ARD82AAAABf////8B" +
           "Af////8AAAAABGGCCgQAAAAAAAQAAABPcGVuAQBBNgAvAQA8LUE2AAABAf////8CAAAAF2CpCgIAAAAA" +
           "AA4AAABJbnB1dEFyZ3VtZW50cwEAQjYALgBEQjYAAJYBAAAAAQAqAQETAAAABAAAAE1vZGUAA/////8A" +
           "AAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMB" +
           "AEM2AC4AREM2AACWAQAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACgBAQAAAAEA" +
           "AAAAAAAAAQH/////AAAAAARhggoEAAAAAAAFAAAAQ2xvc2UBAEQ2AC8BAD8tRDYAAAEB/////wEAAAAX" +
           "YKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBFNgAuAERFNgAAlgEAAAABACoBARkAAAAKAAAARmls" +
           "ZUhhbmRsZQAH/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAABAAAAFJl" +
           "YWQBAEY2AC8BAEEtRjYAAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBHNgAu" +
           "AERHNgAAlgIAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAqAQEVAAAABgAAAExl" +
           "bmd0aAAG/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1" +
           "dEFyZ3VtZW50cwEASDYALgBESDYAAJYBAAAAAQAqAQETAAAABAAAAERhdGEAD/////8AAAAAAAEAKAEB" +
           "AAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAUAAABXcml0ZQEASTYALwEARC1JNgAAAQH/////" +
           "AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAEo2AC4AREo2AACWAgAAAAEAKgEBGQAAAAoA" +
           "AABGaWxlSGFuZGxlAAf/////AAAAAAABACoBARMAAAAEAAAARGF0YQAP/////wAAAAAAAQAoAQEAAAAB" +
           "AAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAACwAAAEdldFBvc2l0aW9uAQBLNgAvAQBGLUs2AAABAf//" +
           "//8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEATDYALgBETDYAAJYBAAAAAQAqAQEZAAAA" +
           "CgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAA" +
           "AA8AAABPdXRwdXRBcmd1bWVudHMBAE02AC4ARE02AACWAQAAAAEAKgEBFwAAAAgAAABQb3NpdGlvbgAJ" +
           "/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAACwAAAFNldFBvc2l0aW9u" +
           "AQBONgAvAQBJLU42AAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEATzYALgBE" +
           "TzYAAJYCAAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKgEBFwAAAAgAAABQb3Np" +
           "dGlvbgAJ/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAADgAAAExhc3RV" +
           "cGRhdGVUaW1lAQBQNgAuAERQNgAAAQAmAf////8BAf////8AAAAABGGCCgQAAAAAAA0AAABPcGVuV2l0" +
           "aE1hc2tzAQBRNgAvAQD/MFE2AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA" +
           "UjYALgBEUjYAAJYBAAAAAQAqAQEUAAAABQAAAE1hc2tzAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAA" +
           "AQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQBTNgAuAERTNgAAlgEAAAABACoB" +
           "ARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYIkK" +
           "AgAAAAAAEAAAAENlcnRpZmljYXRlVHlwZXMBAFs2AC4ARFs2AAAAEQEAAAABAAAAAAAAAAEB/////wAA" +
           "AAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public CertificateGroupState DefaultApplicationGroup
        {
            get
            {
                return m_defaultApplicationGroup;
            }

            set
            {
                if (!Object.ReferenceEquals(m_defaultApplicationGroup, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_defaultApplicationGroup = value;
            }
        }

        /// <remarks />
        public CertificateGroupState DefaultHttpsGroup
        {
            get
            {
                return m_defaultHttpsGroup;
            }

            set
            {
                if (!Object.ReferenceEquals(m_defaultHttpsGroup, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_defaultHttpsGroup = value;
            }
        }

        /// <remarks />
        public CertificateGroupState DefaultUserTokenGroup
        {
            get
            {
                return m_defaultUserTokenGroup;
            }

            set
            {
                if (!Object.ReferenceEquals(m_defaultUserTokenGroup, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_defaultUserTokenGroup = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_defaultApplicationGroup != null)
            {
                children.Add(m_defaultApplicationGroup);
            }

            if (m_defaultHttpsGroup != null)
            {
                children.Add(m_defaultHttpsGroup);
            }

            if (m_defaultUserTokenGroup != null)
            {
                children.Add(m_defaultUserTokenGroup);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.DefaultApplicationGroup:
                {
                    if (createOrReplace)
                    {
                        if (DefaultApplicationGroup == null)
                        {
                            if (replacement == null)
                            {
                                DefaultApplicationGroup = new CertificateGroupState(this);
                            }
                            else
                            {
                                DefaultApplicationGroup = (CertificateGroupState)replacement;
                            }
                        }
                    }

                    instance = DefaultApplicationGroup;
                    break;
                }

                case Opc.Ua.BrowseNames.DefaultHttpsGroup:
                {
                    if (createOrReplace)
                    {
                        if (DefaultHttpsGroup == null)
                        {
                            if (replacement == null)
                            {
                                DefaultHttpsGroup = new CertificateGroupState(this);
                            }
                            else
                            {
                                DefaultHttpsGroup = (CertificateGroupState)replacement;
                            }
                        }
                    }

                    instance = DefaultHttpsGroup;
                    break;
                }

                case Opc.Ua.BrowseNames.DefaultUserTokenGroup:
                {
                    if (createOrReplace)
                    {
                        if (DefaultUserTokenGroup == null)
                        {
                            if (replacement == null)
                            {
                                DefaultUserTokenGroup = new CertificateGroupState(this);
                            }
                            else
                            {
                                DefaultUserTokenGroup = (CertificateGroupState)replacement;
                            }
                        }
                    }

                    instance = DefaultUserTokenGroup;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private CertificateGroupState m_defaultApplicationGroup;
        private CertificateGroupState m_defaultHttpsGroup;
        private CertificateGroupState m_defaultUserTokenGroup;
        #endregion
    }
    #endif
    #endregion

    #region CertificateState Class
    #if (!OPCUA_EXCLUDE_CertificateState)
    /// <summary>
    /// Stores an instance of the CertificateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class CertificateState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public CertificateState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.CertificateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFwAAAENlcnRpZmljYXRlVHlwZUluc3RhbmNlAQAMMQEADDEMMQAA////" +
           "/wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region ApplicationCertificateState Class
    #if (!OPCUA_EXCLUDE_ApplicationCertificateState)
    /// <summary>
    /// Stores an instance of the ApplicationCertificateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ApplicationCertificateState : CertificateState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ApplicationCertificateState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ApplicationCertificateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIgAAAEFwcGxpY2F0aW9uQ2VydGlmaWNhdGVUeXBlSW5zdGFuY2UBAA0x" +
           "AQANMQ0xAAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region HttpsCertificateState Class
    #if (!OPCUA_EXCLUDE_HttpsCertificateState)
    /// <summary>
    /// Stores an instance of the HttpsCertificateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class HttpsCertificateState : CertificateState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public HttpsCertificateState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.HttpsCertificateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHAAAAEh0dHBzQ2VydGlmaWNhdGVUeXBlSW5zdGFuY2UBAA4xAQAOMQ4x" +
           "AAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region UserCredentialCertificateState Class
    #if (!OPCUA_EXCLUDE_UserCredentialCertificateState)
    /// <summary>
    /// Stores an instance of the UserCredentialCertificateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class UserCredentialCertificateState : CertificateState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public UserCredentialCertificateState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.UserCredentialCertificateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJQAAAFVzZXJDcmVkZW50aWFsQ2VydGlmaWNhdGVUeXBlSW5zdGFuY2UB" +
           "AE07AQBNO007AAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region RsaMinApplicationCertificateState Class
    #if (!OPCUA_EXCLUDE_RsaMinApplicationCertificateState)
    /// <summary>
    /// Stores an instance of the RsaMinApplicationCertificateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RsaMinApplicationCertificateState : ApplicationCertificateState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RsaMinApplicationCertificateState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.RsaMinApplicationCertificateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKAAAAFJzYU1pbkFwcGxpY2F0aW9uQ2VydGlmaWNhdGVUeXBlSW5zdGFu" +
           "Y2UBAA8xAQAPMQ8xAAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region RsaSha256ApplicationCertificateState Class
    #if (!OPCUA_EXCLUDE_RsaSha256ApplicationCertificateState)
    /// <summary>
    /// Stores an instance of the RsaSha256ApplicationCertificateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RsaSha256ApplicationCertificateState : ApplicationCertificateState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RsaSha256ApplicationCertificateState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.RsaSha256ApplicationCertificateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKwAAAFJzYVNoYTI1NkFwcGxpY2F0aW9uQ2VydGlmaWNhdGVUeXBlSW5z" +
           "dGFuY2UBABAxAQAQMRAxAAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region EccApplicationCertificateState Class
    #if (!OPCUA_EXCLUDE_EccApplicationCertificateState)
    /// <summary>
    /// Stores an instance of the EccApplicationCertificateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class EccApplicationCertificateState : ApplicationCertificateState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public EccApplicationCertificateState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.EccApplicationCertificateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJQAAAEVjY0FwcGxpY2F0aW9uQ2VydGlmaWNhdGVUeXBlSW5zdGFuY2UB" +
           "APFbAQDxW/FbAAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region EccNistP256ApplicationCertificateState Class
    #if (!OPCUA_EXCLUDE_EccNistP256ApplicationCertificateState)
    /// <summary>
    /// Stores an instance of the EccNistP256ApplicationCertificateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class EccNistP256ApplicationCertificateState : EccApplicationCertificateState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public EccNistP256ApplicationCertificateState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.EccNistP256ApplicationCertificateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAALQAAAEVjY05pc3RQMjU2QXBwbGljYXRpb25DZXJ0aWZpY2F0ZVR5cGVJ" +
           "bnN0YW5jZQEA8lsBAPJb8lsAAP////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region EccNistP384ApplicationCertificateState Class
    #if (!OPCUA_EXCLUDE_EccNistP384ApplicationCertificateState)
    /// <summary>
    /// Stores an instance of the EccNistP384ApplicationCertificateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class EccNistP384ApplicationCertificateState : EccApplicationCertificateState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public EccNistP384ApplicationCertificateState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.EccNistP384ApplicationCertificateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAALQAAAEVjY05pc3RQMzg0QXBwbGljYXRpb25DZXJ0aWZpY2F0ZVR5cGVJ" +
           "bnN0YW5jZQEA81sBAPNb81sAAP////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region EccBrainpoolP256r1ApplicationCertificateState Class
    #if (!OPCUA_EXCLUDE_EccBrainpoolP256r1ApplicationCertificateState)
    /// <summary>
    /// Stores an instance of the EccBrainpoolP256r1ApplicationCertificateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class EccBrainpoolP256r1ApplicationCertificateState : EccApplicationCertificateState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public EccBrainpoolP256r1ApplicationCertificateState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.EccBrainpoolP256r1ApplicationCertificateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAANAAAAEVjY0JyYWlucG9vbFAyNTZyMUFwcGxpY2F0aW9uQ2VydGlmaWNh" +
           "dGVUeXBlSW5zdGFuY2UBAPRbAQD0W/RbAAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region EccBrainpoolP384r1ApplicationCertificateState Class
    #if (!OPCUA_EXCLUDE_EccBrainpoolP384r1ApplicationCertificateState)
    /// <summary>
    /// Stores an instance of the EccBrainpoolP384r1ApplicationCertificateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class EccBrainpoolP384r1ApplicationCertificateState : EccApplicationCertificateState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public EccBrainpoolP384r1ApplicationCertificateState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.EccBrainpoolP384r1ApplicationCertificateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAANAAAAEVjY0JyYWlucG9vbFAzODRyMUFwcGxpY2F0aW9uQ2VydGlmaWNh" +
           "dGVUeXBlSW5zdGFuY2UBAPVbAQD1W/VbAAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region EccCurve25519ApplicationCertificateState Class
    #if (!OPCUA_EXCLUDE_EccCurve25519ApplicationCertificateState)
    /// <summary>
    /// Stores an instance of the EccCurve25519ApplicationCertificateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class EccCurve25519ApplicationCertificateState : EccApplicationCertificateState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public EccCurve25519ApplicationCertificateState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.EccCurve25519ApplicationCertificateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAALwAAAEVjY0N1cnZlMjU1MTlBcHBsaWNhdGlvbkNlcnRpZmljYXRlVHlw" +
           "ZUluc3RhbmNlAQD2WwEA9lv2WwAA/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region EccCurve448ApplicationCertificateState Class
    #if (!OPCUA_EXCLUDE_EccCurve448ApplicationCertificateState)
    /// <summary>
    /// Stores an instance of the EccCurve448ApplicationCertificateType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class EccCurve448ApplicationCertificateState : EccApplicationCertificateState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public EccCurve448ApplicationCertificateState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.EccCurve448ApplicationCertificateType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAALQAAAEVjY0N1cnZlNDQ4QXBwbGljYXRpb25DZXJ0aWZpY2F0ZVR5cGVJ" +
           "bnN0YW5jZQEA91sBAPdb91sAAP////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region TrustListUpdatedAuditEventState Class
    #if (!OPCUA_EXCLUDE_TrustListUpdatedAuditEventState)
    /// <summary>
    /// Stores an instance of the TrustListUpdatedAuditEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TrustListUpdatedAuditEventState : AuditUpdateMethodEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TrustListUpdatedAuditEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.TrustListUpdatedAuditEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJgAAAFRydXN0TGlzdFVwZGF0ZWRBdWRpdEV2ZW50VHlwZUluc3RhbmNl" +
           "AQARMQEAETERMQAA/////w8AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBABIxAC4ARBIxAAAAD/////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBABMxAC4ARBMxAAAAEf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQAUMQAuAEQUMQAAABH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAKAAAAU291cmNlTmFtZQEAFTEALgBEFTEAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRp" +
           "bWUBABYxAC4ARBYxAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQAX" +
           "MQAuAEQXMQAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQAZMQAuAEQZMQAA" +
           "ABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBABoxAC4ARBoxAAAABf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABABsxAC4ARBsxAAABACYB/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAABgAAAFN0YXR1cwEAHDEALgBEHDEAAAAB/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAACAAAAFNlcnZlcklkAQAdMQAuAEQdMQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAAQ2xp" +
           "ZW50QXVkaXRFbnRyeUlkAQAeMQAuAEQeMQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xp" +
           "ZW50VXNlcklkAQAfMQAuAEQfMQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAIAAAATWV0aG9kSWQB" +
           "ACAxAC4ARCAxAAAAEf////8BAf////8AAAAAF2CJCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAITEA" +
           "LgBEITEAAAAYAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region UpdateCertificateMethodState Class
    #if (!OPCUA_EXCLUDE_UpdateCertificateMethodState)
    /// <summary>
    /// Stores an instance of the UpdateCertificateMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class UpdateCertificateMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public UpdateCertificateMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new UpdateCertificateMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGwAAAFVwZGF0ZUNlcnRpZmljYXRlTWV0aG9kVHlwZQEAIjEALwEAIjEi" +
           "MQAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBACMxAC4ARCMxAACWBgAAAAEA" +
           "KgEBIQAAABIAAABDZXJ0aWZpY2F0ZUdyb3VwSWQAEf////8AAAAAAAEAKgEBIAAAABEAAABDZXJ0aWZp" +
           "Y2F0ZVR5cGVJZAAR/////wAAAAAAAQAqAQEaAAAACwAAAENlcnRpZmljYXRlAA//////AAAAAAABACoB" +
           "ASUAAAASAAAASXNzdWVyQ2VydGlmaWNhdGVzAA8BAAAAAQAAAAAAAAAAAQAqAQEfAAAAEAAAAFByaXZh" +
           "dGVLZXlGb3JtYXQADP////8AAAAAAAEAKgEBGQAAAAoAAABQcml2YXRlS2V5AA//////AAAAAAABACgB" +
           "AQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQAkMQAuAEQk" +
           "MQAAlgEAAAABACoBASMAAAAUAAAAQXBwbHlDaGFuZ2VzUmVxdWlyZWQAAf////8AAAAAAAEAKAEBAAAA" +
           "AQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public UpdateCertificateMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            NodeId certificateGroupId = (NodeId)_inputArguments[0];
            NodeId certificateTypeId = (NodeId)_inputArguments[1];
            byte[] certificate = (byte[])_inputArguments[2];
            byte[][] issuerCertificates = (byte[][])_inputArguments[3];
            string privateKeyFormat = (string)_inputArguments[4];
            byte[] privateKey = (byte[])_inputArguments[5];

            bool applyChangesRequired = (bool)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    certificateGroupId,
                    certificateTypeId,
                    certificate,
                    issuerCertificates,
                    privateKeyFormat,
                    privateKey,
                    ref applyChangesRequired);
            }

            _outputArguments[0] = applyChangesRequired;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult UpdateCertificateMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        NodeId certificateGroupId,
        NodeId certificateTypeId,
        byte[] certificate,
        byte[][] issuerCertificates,
        string privateKeyFormat,
        byte[] privateKey,
        ref bool applyChangesRequired);
    #endif
    #endregion

    #region CreateSigningRequestMethodState Class
    #if (!OPCUA_EXCLUDE_CreateSigningRequestMethodState)
    /// <summary>
    /// Stores an instance of the CreateSigningRequestMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class CreateSigningRequestMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public CreateSigningRequestMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new CreateSigningRequestMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAHgAAAENyZWF0ZVNpZ25pbmdSZXF1ZXN0TWV0aG9kVHlwZQEAxTEALwEA" +
           "xTHFMQAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAMYxAC4ARMYxAACWBQAA" +
           "AAEAKgEBIQAAABIAAABDZXJ0aWZpY2F0ZUdyb3VwSWQAEf////8AAAAAAAEAKgEBIAAAABEAAABDZXJ0" +
           "aWZpY2F0ZVR5cGVJZAAR/////wAAAAAAAQAqAQEaAAAACwAAAFN1YmplY3ROYW1lAAz/////AAAAAAAB" +
           "ACoBASMAAAAUAAAAUmVnZW5lcmF0ZVByaXZhdGVLZXkAAf////8AAAAAAAEAKgEBFAAAAAUAAABOb25j" +
           "ZQAP/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFy" +
           "Z3VtZW50cwEAxzEALgBExzEAAJYBAAAAAQAqAQEhAAAAEgAAAENlcnRpZmljYXRlUmVxdWVzdAAP////" +
           "/wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public CreateSigningRequestMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            NodeId certificateGroupId = (NodeId)_inputArguments[0];
            NodeId certificateTypeId = (NodeId)_inputArguments[1];
            string subjectName = (string)_inputArguments[2];
            bool regeneratePrivateKey = (bool)_inputArguments[3];
            byte[] nonce = (byte[])_inputArguments[4];

            byte[] certificateRequest = (byte[])_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    certificateGroupId,
                    certificateTypeId,
                    subjectName,
                    regeneratePrivateKey,
                    nonce,
                    ref certificateRequest);
            }

            _outputArguments[0] = certificateRequest;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult CreateSigningRequestMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        NodeId certificateGroupId,
        NodeId certificateTypeId,
        string subjectName,
        bool regeneratePrivateKey,
        byte[] nonce,
        ref byte[] certificateRequest);
    #endif
    #endregion

    #region GetRejectedListMethodState Class
    #if (!OPCUA_EXCLUDE_GetRejectedListMethodState)
    /// <summary>
    /// Stores an instance of the GetRejectedListMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class GetRejectedListMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public GetRejectedListMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new GetRejectedListMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGQAAAEdldFJlamVjdGVkTGlzdE1ldGhvZFR5cGUBAOUxAC8BAOUx5TEA" +
           "AAEB/////wEAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEA5jEALgBE5jEAAJYBAAAAAQAq" +
           "AQEfAAAADAAAAENlcnRpZmljYXRlcwAPAQAAAAEAAAAAAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8A" +
           "AAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public GetRejectedListMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            byte[][] certificates = (byte[][])_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    ref certificates);
            }

            _outputArguments[0] = certificates;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult GetRejectedListMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        ref byte[][] certificates);
    #endif
    #endregion

    #region ServerConfigurationState Class
    #if (!OPCUA_EXCLUDE_ServerConfigurationState)
    /// <summary>
    /// Stores an instance of the ServerConfigurationType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ServerConfigurationState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ServerConfigurationState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ServerConfigurationType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHwAAAFNlcnZlckNvbmZpZ3VyYXRpb25UeXBlSW5zdGFuY2UBACUxAQAl" +
           "MSUxAAD/////CQAAAARggAoBAAAAAAARAAAAQ2VydGlmaWNhdGVHcm91cHMBAH42AC8BAPU1fjYAAP//" +
           "//8BAAAABGCACgEAAAAAABcAAABEZWZhdWx0QXBwbGljYXRpb25Hcm91cAEAfzYALwEACzF/NgAA////" +
           "/wIAAAAEYIAKAQAAAAAACQAAAFRydXN0TGlzdAEAgDYALwEA6jCANgAA/////wwAAAAVYIkKAgAAAAAA" +
           "BAAAAFNpemUBAIE2AC4ARIE2AAAACf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABXcml0YWJsZQEA" +
           "gjYALgBEgjYAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADAAAAFVzZXJXcml0YWJsZQEAgzYALgBE" +
           "gzYAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAACQAAAE9wZW5Db3VudAEAhDYALgBEhDYAAAAF////" +
           "/wEB/////wAAAAAEYYIKBAAAAAAABAAAAE9wZW4BAIY2AC8BADwthjYAAAEB/////wIAAAAXYKkKAgAA" +
           "AAAADgAAAElucHV0QXJndW1lbnRzAQCHNgAuAESHNgAAlgEAAAABACoBARMAAAAEAAAATW9kZQAD////" +
           "/wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50" +
           "cwEAiDYALgBEiDYAAJYBAAAAAQAqAQEZAAAACgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKAEBAAAA" +
           "AQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAUAAABDbG9zZQEAiTYALwEAPy2JNgAAAQH/////AQAA" +
           "ABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAIo2AC4ARIo2AACWAQAAAAEAKgEBGQAAAAoAAABG" +
           "aWxlSGFuZGxlAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAAEAAAA" +
           "UmVhZAEAizYALwEAQS2LNgAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAIw2" +
           "AC4ARIw2AACWAgAAAAEAKgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACoBARUAAAAGAAAA" +
           "TGVuZ3RoAAb/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0" +
           "cHV0QXJndW1lbnRzAQCNNgAuAESNNgAAlgEAAAABACoBARMAAAAEAAAARGF0YQAP/////wAAAAAAAQAo" +
           "AQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAABQAAAFdyaXRlAQCONgAvAQBELY42AAABAf//" +
           "//8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAjzYALgBEjzYAAJYCAAAAAQAqAQEZAAAA" +
           "CgAAAEZpbGVIYW5kbGUAB/////8AAAAAAAEAKgEBEwAAAAQAAABEYXRhAA//////AAAAAAABACgBAQAA" +
           "AAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAALAAAAR2V0UG9zaXRpb24BAJA2AC8BAEYtkDYAAAEB" +
           "/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQCRNgAuAESRNgAAlgEAAAABACoBARkA" +
           "AAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAA" +
           "AAAADwAAAE91dHB1dEFyZ3VtZW50cwEAkjYALgBEkjYAAJYBAAAAAQAqAQEXAAAACAAAAFBvc2l0aW9u" +
           "AAn/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAALAAAAU2V0UG9zaXRp" +
           "b24BAJM2AC8BAEktkzYAAAEB/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQCUNgAu" +
           "AESUNgAAlgIAAAABACoBARkAAAAKAAAARmlsZUhhbmRsZQAH/////wAAAAAAAQAqAQEXAAAACAAAAFBv" +
           "c2l0aW9uAAn/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAAAAAOAAAATGFz" +
           "dFVwZGF0ZVRpbWUBAJU2AC4ARJU2AAABACYB/////wEB/////wAAAAAEYYIKBAAAAAAADQAAAE9wZW5X" +
           "aXRoTWFza3MBAJY2AC8BAP8wljYAAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRz" +
           "AQCXNgAuAESXNgAAlgEAAAABACoBARQAAAAFAAAATWFza3MAB/////8AAAAAAAEAKAEBAAAAAQAAAAAA" +
           "AAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAJg2AC4ARJg2AACWAQAAAAEA" +
           "KgEBGQAAAAoAAABGaWxlSGFuZGxlAAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdg" +
           "iQoCAAAAAAAQAAAAQ2VydGlmaWNhdGVUeXBlcwEAoDYALgBEoDYAAAARAQAAAAEAAAAAAAAAAQH/////" +
           "AAAAABdgiQoCAAAAAAASAAAAU2VydmVyQ2FwYWJpbGl0aWVzAQCkMQAuAESkMQAAAAwBAAAAAQAAAAAA" +
           "AAABAf////8AAAAAF2CJCgIAAAAAABoAAABTdXBwb3J0ZWRQcml2YXRlS2V5Rm9ybWF0cwEAJzEALgBE" +
           "JzEAAAAMAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAAAAAQAAAATWF4VHJ1c3RMaXN0U2l6ZQEA" +
           "KDEALgBEKDEAAAAH/////wEB/////wAAAAAVYIkKAgAAAAAAEwAAAE11bHRpY2FzdERuc0VuYWJsZWQB" +
           "ACkxAC4ARCkxAAAAAf////8BAf////8AAAAABGGCCgQAAAAAABEAAABVcGRhdGVDZXJ0aWZpY2F0ZQEA" +
           "SDEALwEASDFIMQAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAEkxAC4AREkx" +
           "AACWBgAAAAEAKgEBIQAAABIAAABDZXJ0aWZpY2F0ZUdyb3VwSWQAEf////8AAAAAAAEAKgEBIAAAABEA" +
           "AABDZXJ0aWZpY2F0ZVR5cGVJZAAR/////wAAAAAAAQAqAQEaAAAACwAAAENlcnRpZmljYXRlAA//////" +
           "AAAAAAABACoBASUAAAASAAAASXNzdWVyQ2VydGlmaWNhdGVzAA8BAAAAAQAAAAAAAAAAAQAqAQEfAAAA" +
           "EAAAAFByaXZhdGVLZXlGb3JtYXQADP////8AAAAAAAEAKgEBGQAAAAoAAABQcml2YXRlS2V5AA//////" +
           "AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRz" +
           "AQBKMQAuAERKMQAAlgEAAAABACoBASMAAAAUAAAAQXBwbHlDaGFuZ2VzUmVxdWlyZWQAAf////8AAAAA" +
           "AAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAAwAAABBcHBseUNoYW5nZXMBAL4xAC8B" +
           "AL4xvjEAAAEB/////wAAAAAEYYIKBAAAAAAAFAAAAENyZWF0ZVNpZ25pbmdSZXF1ZXN0AQC7MQAvAQC7" +
           "MbsxAAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAvDEALgBEvDEAAJYFAAAA" +
           "AQAqAQEhAAAAEgAAAENlcnRpZmljYXRlR3JvdXBJZAAR/////wAAAAAAAQAqAQEgAAAAEQAAAENlcnRp" +
           "ZmljYXRlVHlwZUlkABH/////AAAAAAABACoBARoAAAALAAAAU3ViamVjdE5hbWUADP////8AAAAAAAEA" +
           "KgEBIwAAABQAAABSZWdlbmVyYXRlUHJpdmF0ZUtleQAB/////wAAAAAAAQAqAQEUAAAABQAAAE5vbmNl" +
           "AA//////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJn" +
           "dW1lbnRzAQC9MQAuAES9MQAAlgEAAAABACoBASEAAAASAAAAQ2VydGlmaWNhdGVSZXF1ZXN0AA//////" +
           "AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAAPAAAAR2V0UmVqZWN0ZWRMaXN0" +
           "AQDnMQAvAQDnMecxAAABAf////8BAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAOgxAC4A" +
           "ROgxAACWAQAAAAEAKgEBHwAAAAwAAABDZXJ0aWZpY2F0ZXMADwEAAAABAAAAAAAAAAABACgBAQAAAAEA" +
           "AAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public CertificateGroupFolderState CertificateGroups
        {
            get
            {
                return m_certificateGroups;
            }

            set
            {
                if (!Object.ReferenceEquals(m_certificateGroups, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_certificateGroups = value;
            }
        }

        /// <remarks />
        public PropertyState<string[]> ServerCapabilities
        {
            get
            {
                return m_serverCapabilities;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serverCapabilities, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serverCapabilities = value;
            }
        }

        /// <remarks />
        public PropertyState<string[]> SupportedPrivateKeyFormats
        {
            get
            {
                return m_supportedPrivateKeyFormats;
            }

            set
            {
                if (!Object.ReferenceEquals(m_supportedPrivateKeyFormats, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_supportedPrivateKeyFormats = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxTrustListSize
        {
            get
            {
                return m_maxTrustListSize;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxTrustListSize, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxTrustListSize = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> MulticastDnsEnabled
        {
            get
            {
                return m_multicastDnsEnabled;
            }

            set
            {
                if (!Object.ReferenceEquals(m_multicastDnsEnabled, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_multicastDnsEnabled = value;
            }
        }

        /// <remarks />
        public UpdateCertificateMethodState UpdateCertificate
        {
            get
            {
                return m_updateCertificateMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_updateCertificateMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_updateCertificateMethod = value;
            }
        }

        /// <remarks />
        public MethodState ApplyChanges
        {
            get
            {
                return m_applyChangesMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_applyChangesMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_applyChangesMethod = value;
            }
        }

        /// <remarks />
        public CreateSigningRequestMethodState CreateSigningRequest
        {
            get
            {
                return m_createSigningRequestMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_createSigningRequestMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_createSigningRequestMethod = value;
            }
        }

        /// <remarks />
        public GetRejectedListMethodState GetRejectedList
        {
            get
            {
                return m_getRejectedListMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_getRejectedListMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_getRejectedListMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_certificateGroups != null)
            {
                children.Add(m_certificateGroups);
            }

            if (m_serverCapabilities != null)
            {
                children.Add(m_serverCapabilities);
            }

            if (m_supportedPrivateKeyFormats != null)
            {
                children.Add(m_supportedPrivateKeyFormats);
            }

            if (m_maxTrustListSize != null)
            {
                children.Add(m_maxTrustListSize);
            }

            if (m_multicastDnsEnabled != null)
            {
                children.Add(m_multicastDnsEnabled);
            }

            if (m_updateCertificateMethod != null)
            {
                children.Add(m_updateCertificateMethod);
            }

            if (m_applyChangesMethod != null)
            {
                children.Add(m_applyChangesMethod);
            }

            if (m_createSigningRequestMethod != null)
            {
                children.Add(m_createSigningRequestMethod);
            }

            if (m_getRejectedListMethod != null)
            {
                children.Add(m_getRejectedListMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.CertificateGroups:
                {
                    if (createOrReplace)
                    {
                        if (CertificateGroups == null)
                        {
                            if (replacement == null)
                            {
                                CertificateGroups = new CertificateGroupFolderState(this);
                            }
                            else
                            {
                                CertificateGroups = (CertificateGroupFolderState)replacement;
                            }
                        }
                    }

                    instance = CertificateGroups;
                    break;
                }

                case Opc.Ua.BrowseNames.ServerCapabilities:
                {
                    if (createOrReplace)
                    {
                        if (ServerCapabilities == null)
                        {
                            if (replacement == null)
                            {
                                ServerCapabilities = new PropertyState<string[]>(this);
                            }
                            else
                            {
                                ServerCapabilities = (PropertyState<string[]>)replacement;
                            }
                        }
                    }

                    instance = ServerCapabilities;
                    break;
                }

                case Opc.Ua.BrowseNames.SupportedPrivateKeyFormats:
                {
                    if (createOrReplace)
                    {
                        if (SupportedPrivateKeyFormats == null)
                        {
                            if (replacement == null)
                            {
                                SupportedPrivateKeyFormats = new PropertyState<string[]>(this);
                            }
                            else
                            {
                                SupportedPrivateKeyFormats = (PropertyState<string[]>)replacement;
                            }
                        }
                    }

                    instance = SupportedPrivateKeyFormats;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxTrustListSize:
                {
                    if (createOrReplace)
                    {
                        if (MaxTrustListSize == null)
                        {
                            if (replacement == null)
                            {
                                MaxTrustListSize = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxTrustListSize = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxTrustListSize;
                    break;
                }

                case Opc.Ua.BrowseNames.MulticastDnsEnabled:
                {
                    if (createOrReplace)
                    {
                        if (MulticastDnsEnabled == null)
                        {
                            if (replacement == null)
                            {
                                MulticastDnsEnabled = new PropertyState<bool>(this);
                            }
                            else
                            {
                                MulticastDnsEnabled = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = MulticastDnsEnabled;
                    break;
                }

                case Opc.Ua.BrowseNames.UpdateCertificate:
                {
                    if (createOrReplace)
                    {
                        if (UpdateCertificate == null)
                        {
                            if (replacement == null)
                            {
                                UpdateCertificate = new UpdateCertificateMethodState(this);
                            }
                            else
                            {
                                UpdateCertificate = (UpdateCertificateMethodState)replacement;
                            }
                        }
                    }

                    instance = UpdateCertificate;
                    break;
                }

                case Opc.Ua.BrowseNames.ApplyChanges:
                {
                    if (createOrReplace)
                    {
                        if (ApplyChanges == null)
                        {
                            if (replacement == null)
                            {
                                ApplyChanges = new MethodState(this);
                            }
                            else
                            {
                                ApplyChanges = (MethodState)replacement;
                            }
                        }
                    }

                    instance = ApplyChanges;
                    break;
                }

                case Opc.Ua.BrowseNames.CreateSigningRequest:
                {
                    if (createOrReplace)
                    {
                        if (CreateSigningRequest == null)
                        {
                            if (replacement == null)
                            {
                                CreateSigningRequest = new CreateSigningRequestMethodState(this);
                            }
                            else
                            {
                                CreateSigningRequest = (CreateSigningRequestMethodState)replacement;
                            }
                        }
                    }

                    instance = CreateSigningRequest;
                    break;
                }

                case Opc.Ua.BrowseNames.GetRejectedList:
                {
                    if (createOrReplace)
                    {
                        if (GetRejectedList == null)
                        {
                            if (replacement == null)
                            {
                                GetRejectedList = new GetRejectedListMethodState(this);
                            }
                            else
                            {
                                GetRejectedList = (GetRejectedListMethodState)replacement;
                            }
                        }
                    }

                    instance = GetRejectedList;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private CertificateGroupFolderState m_certificateGroups;
        private PropertyState<string[]> m_serverCapabilities;
        private PropertyState<string[]> m_supportedPrivateKeyFormats;
        private PropertyState<uint> m_maxTrustListSize;
        private PropertyState<bool> m_multicastDnsEnabled;
        private UpdateCertificateMethodState m_updateCertificateMethod;
        private MethodState m_applyChangesMethod;
        private CreateSigningRequestMethodState m_createSigningRequestMethod;
        private GetRejectedListMethodState m_getRejectedListMethod;
        #endregion
    }
    #endif
    #endregion

    #region CertificateUpdatedAuditEventState Class
    #if (!OPCUA_EXCLUDE_CertificateUpdatedAuditEventState)
    /// <summary>
    /// Stores an instance of the CertificateUpdatedAuditEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class CertificateUpdatedAuditEventState : AuditUpdateMethodEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public CertificateUpdatedAuditEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.CertificateUpdatedAuditEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKAAAAENlcnRpZmljYXRlVXBkYXRlZEF1ZGl0RXZlbnRUeXBlSW5zdGFu" +
           "Y2UBAEwxAQBMMUwxAAD/////EQAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEATTEALgBETTEAAAAP////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEATjEALgBETjEAAAAR/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACgAAAFNvdXJjZU5vZGUBAE8xAC4ARE8xAAAAEf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAoAAABTb3VyY2VOYW1lAQBQMQAuAERQMQAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAEAAAA" +
           "VGltZQEAUTEALgBEUTEAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRpbWUB" +
           "AFIxAC4ARFIxAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBAFQxAC4ARFQx" +
           "AAAAFf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEAVTEALgBEVTEAAAAF/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAADwAAAEFjdGlvblRpbWVTdGFtcAEAVjEALgBEVjEAAAEAJgH/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAGAAAAU3RhdHVzAQBXMQAuAERXMQAAAAH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAIAAAAU2VydmVySWQBAFgxAC4ARFgxAAAADP////8BAf////8AAAAAFWCJCgIAAAAAABIAAABD" +
           "bGllbnRBdWRpdEVudHJ5SWQBAFkxAC4ARFkxAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAwAAABD" +
           "bGllbnRVc2VySWQBAFoxAC4ARFoxAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABNZXRob2RJ" +
           "ZAEAWzEALgBEWzEAAAAR/////wEB/////wAAAAAXYIkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBc" +
           "MQAuAERcMQAAABgBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAABAAAABDZXJ0aWZpY2F0ZUdy" +
           "b3VwAQCnNQAuAESnNQAAABH/////AQH/////AAAAABVgiQoCAAAAAAAPAAAAQ2VydGlmaWNhdGVUeXBl" +
           "AQCoNQAuAESoNQAAABH/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> CertificateGroup
        {
            get
            {
                return m_certificateGroup;
            }

            set
            {
                if (!Object.ReferenceEquals(m_certificateGroup, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_certificateGroup = value;
            }
        }

        /// <remarks />
        public PropertyState<NodeId> CertificateType
        {
            get
            {
                return m_certificateType;
            }

            set
            {
                if (!Object.ReferenceEquals(m_certificateType, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_certificateType = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_certificateGroup != null)
            {
                children.Add(m_certificateGroup);
            }

            if (m_certificateType != null)
            {
                children.Add(m_certificateType);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.CertificateGroup:
                {
                    if (createOrReplace)
                    {
                        if (CertificateGroup == null)
                        {
                            if (replacement == null)
                            {
                                CertificateGroup = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                CertificateGroup = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = CertificateGroup;
                    break;
                }

                case Opc.Ua.BrowseNames.CertificateType:
                {
                    if (createOrReplace)
                    {
                        if (CertificateType == null)
                        {
                            if (replacement == null)
                            {
                                CertificateType = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                CertificateType = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = CertificateType;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_certificateGroup;
        private PropertyState<NodeId> m_certificateType;
        #endregion
    }
    #endif
    #endregion

    #region CreateCredentialMethodState Class
    #if (!OPCUA_EXCLUDE_CreateCredentialMethodState)
    /// <summary>
    /// Stores an instance of the CreateCredentialMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class CreateCredentialMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public CreateCredentialMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new CreateCredentialMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGgAAAENyZWF0ZUNyZWRlbnRpYWxNZXRob2RUeXBlAQCQOwAvAQCQO5A7" +
           "AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAlTsALgBElTsAAJYDAAAAAQAq" +
           "AQEaAAAACwAAAFJlc291cmNlVXJpAAz/////AAAAAAABACoBARkAAAAKAAAAUHJvZmlsZVVyaQAM////" +
           "/wAAAAAAAQAqAQEfAAAADAAAAEVuZHBvaW50VXJscwAMAQAAAAEAAAAAAAAAAAEAKAEBAAAAAQAAAAAA" +
           "AAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAFdEAC4ARFdEAACWAQAAAAEA" +
           "KgEBHwAAABAAAABDcmVkZW50aWFsTm9kZUlkABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////" +
           "AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public CreateCredentialMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string resourceUri = (string)_inputArguments[0];
            string profileUri = (string)_inputArguments[1];
            string[] endpointUrls = (string[])_inputArguments[2];

            NodeId credentialNodeId = (NodeId)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    resourceUri,
                    profileUri,
                    endpointUrls,
                    ref credentialNodeId);
            }

            _outputArguments[0] = credentialNodeId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult CreateCredentialMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string resourceUri,
        string profileUri,
        string[] endpointUrls,
        ref NodeId credentialNodeId);
    #endif
    #endregion

    #region KeyCredentialConfigurationFolderState Class
    #if (!OPCUA_EXCLUDE_KeyCredentialConfigurationFolderState)
    /// <summary>
    /// Stores an instance of the KeyCredentialConfigurationFolderType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class KeyCredentialConfigurationFolderState : FolderState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public KeyCredentialConfigurationFolderState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.KeyCredentialConfigurationFolderType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (CreateCredential != null)
            {
                CreateCredential.Initialize(context, CreateCredential_InitializationString);
            }
        }

        #region Initialization String
        private const string CreateCredential_InitializationString =
           "//////////8EYYIKBAAAAAAAEAAAAENyZWF0ZUNyZWRlbnRpYWwBAHJEAC8BAHJEckQAAAEB/////wIA" +
           "AAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBzRAAuAERzRAAAlgMAAAABACoBARoAAAALAAAA" +
           "UmVzb3VyY2VVcmkADP////8AAAAAAAEAKgEBGQAAAAoAAABQcm9maWxlVXJpAAz/////AAAAAAABACoB" +
           "AR8AAAAMAAAARW5kcG9pbnRVcmxzAAwBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAA" +
           "AAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEAdEQALgBEdEQAAJYBAAAAAQAqAQEfAAAAEAAA" +
           "AENyZWRlbnRpYWxOb2RlSWQAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAALAAAAEtleUNyZWRlbnRpYWxDb25maWd1cmF0aW9uRm9sZGVyVHlwZUlu" +
           "c3RhbmNlAQBYRAEAWERYRAAA/////wEAAAAEYYIKBAAAAAAAEAAAAENyZWF0ZUNyZWRlbnRpYWwBAHJE" +
           "AC8BAHJEckQAAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBzRAAuAERzRAAA" +
           "lgMAAAABACoBARoAAAALAAAAUmVzb3VyY2VVcmkADP////8AAAAAAAEAKgEBGQAAAAoAAABQcm9maWxl" +
           "VXJpAAz/////AAAAAAABACoBAR8AAAAMAAAARW5kcG9pbnRVcmxzAAwBAAAAAQAAAAAAAAAAAQAoAQEA" +
           "AAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEAdEQALgBEdEQA" +
           "AJYBAAAAAQAqAQEfAAAAEAAAAENyZWRlbnRpYWxOb2RlSWQAEf////8AAAAAAAEAKAEBAAAAAQAAAAAA" +
           "AAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public CreateCredentialMethodState CreateCredential
        {
            get
            {
                return m_createCredentialMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_createCredentialMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_createCredentialMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_createCredentialMethod != null)
            {
                children.Add(m_createCredentialMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.CreateCredential:
                {
                    if (createOrReplace)
                    {
                        if (CreateCredential == null)
                        {
                            if (replacement == null)
                            {
                                CreateCredential = new CreateCredentialMethodState(this);
                            }
                            else
                            {
                                CreateCredential = (CreateCredentialMethodState)replacement;
                            }
                        }
                    }

                    instance = CreateCredential;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private CreateCredentialMethodState m_createCredentialMethod;
        #endregion
    }
    #endif
    #endregion

    #region GetEncryptingKeyMethodState Class
    #if (!OPCUA_EXCLUDE_GetEncryptingKeyMethodState)
    /// <summary>
    /// Stores an instance of the GetEncryptingKeyMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class GetEncryptingKeyMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public GetEncryptingKeyMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new GetEncryptingKeyMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGgAAAEdldEVuY3J5cHRpbmdLZXlNZXRob2RUeXBlAQB7RAAvAQB7RHtE" +
           "AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAfEQALgBEfEQAAJYCAAAAAQAq" +
           "AQEbAAAADAAAAENyZWRlbnRpYWxJZAAM/////wAAAAAAAQAqAQEpAAAAGgAAAFJlcXVlc3RlZFNlY3Vy" +
           "aXR5UG9saWN5VXJpAAz/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAP" +
           "AAAAT3V0cHV0QXJndW1lbnRzAQB9RAAuAER9RAAAlgIAAAABACoBARgAAAAJAAAAUHVibGljS2V5AA//" +
           "////AAAAAAABACoBAScAAAAYAAAAUmV2aXNlZFNlY3VyaXR5UG9saWN5VXJpABH/////AAAAAAABACgB" +
           "AQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public GetEncryptingKeyMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string credentialId = (string)_inputArguments[0];
            string requestedSecurityPolicyUri = (string)_inputArguments[1];

            byte[] publicKey = (byte[])_outputArguments[0];
            NodeId revisedSecurityPolicyUri = (NodeId)_outputArguments[1];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    credentialId,
                    requestedSecurityPolicyUri,
                    ref publicKey,
                    ref revisedSecurityPolicyUri);
            }

            _outputArguments[0] = publicKey;
            _outputArguments[1] = revisedSecurityPolicyUri;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult GetEncryptingKeyMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string credentialId,
        string requestedSecurityPolicyUri,
        ref byte[] publicKey,
        ref NodeId revisedSecurityPolicyUri);
    #endif
    #endregion

    #region KeyCredentialConfigurationState Class
    #if (!OPCUA_EXCLUDE_KeyCredentialConfigurationState)
    /// <summary>
    /// Stores an instance of the KeyCredentialConfigurationType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class KeyCredentialConfigurationState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public KeyCredentialConfigurationState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.KeyCredentialConfigurationType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (EndpointUrls != null)
            {
                EndpointUrls.Initialize(context, EndpointUrls_InitializationString);
            }

            if (ServiceStatus != null)
            {
                ServiceStatus.Initialize(context, ServiceStatus_InitializationString);
            }

            if (GetEncryptingKey != null)
            {
                GetEncryptingKey.Initialize(context, GetEncryptingKey_InitializationString);
            }

            if (UpdateCredential != null)
            {
                UpdateCredential.Initialize(context, UpdateCredential_InitializationString);
            }

            if (DeleteCredential != null)
            {
                DeleteCredential.Initialize(context, DeleteCredential_InitializationString);
            }
        }

        #region Initialization String
        private const string EndpointUrls_InitializationString =
           "//////////8XYIkKAgAAAAAADAAAAEVuZHBvaW50VXJscwEAVEYALgBEVEYAAAAMAQAAAAEAAAAAAAAA" +
           "AQH/////AAAAAA==";

        private const string ServiceStatus_InitializationString =
           "//////////8VYIkKAgAAAAAADQAAAFNlcnZpY2VTdGF0dXMBAFVGAC4ARFVGAAAAE/////8BAf////8A" +
           "AAAA";

        private const string GetEncryptingKey_InitializationString =
           "//////////8EYYIKBAAAAAAAEAAAAEdldEVuY3J5cHRpbmdLZXkBAH5EAC8BAH5EfkQAAAEB/////wIA" +
           "AAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQB/RAAuAER/RAAAlgIAAAABACoBARsAAAAMAAAA" +
           "Q3JlZGVudGlhbElkAAz/////AAAAAAABACoBASkAAAAaAAAAUmVxdWVzdGVkU2VjdXJpdHlQb2xpY3lV" +
           "cmkADP////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRB" +
           "cmd1bWVudHMBAIBEAC4ARIBEAACWAgAAAAEAKgEBGAAAAAkAAABQdWJsaWNLZXkAD/////8AAAAAAAEA" +
           "KgEBJwAAABgAAABSZXZpc2VkU2VjdXJpdHlQb2xpY3lVcmkAEf////8AAAAAAAEAKAEBAAAAAQAAAAAA" +
           "AAABAf////8AAAAA";

        private const string UpdateCredential_InitializationString =
           "//////////8EYYIKBAAAAAAAEAAAAFVwZGF0ZUNyZWRlbnRpYWwBAFZGAC8BAFZGVkYAAAEB/////wEA" +
           "AAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBXRgAuAERXRgAAlgQAAAABACoBARsAAAAMAAAA" +
           "Q3JlZGVudGlhbElkAAz/////AAAAAAABACoBAR8AAAAQAAAAQ3JlZGVudGlhbFNlY3JldAAP/////wAA" +
           "AAAAAQAqAQEkAAAAFQAAAENlcnRpZmljYXRlVGh1bWJwcmludAAM/////wAAAAAAAQAqAQEgAAAAEQAA" +
           "AFNlY3VyaXR5UG9saWN5VXJpAAz/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";

        private const string DeleteCredential_InitializationString =
           "//////////8EYYIKBAAAAAAAEAAAAERlbGV0ZUNyZWRlbnRpYWwBAFhGAC8BAFhGWEYAAAEB/////wAA" +
           "AAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJgAAAEtleUNyZWRlbnRpYWxDb25maWd1cmF0aW9uVHlwZUluc3RhbmNl" +
           "AQBRRgEAUUZRRgAA/////wcAAAAVYIkKAgAAAAAACwAAAFJlc291cmNlVXJpAQCVRgAuAESVRgAAAAz/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAKAAAAUHJvZmlsZVVyaQEA9UYALgBE9UYAAAAM/////wEB////" +
           "/wAAAAAXYIkKAgAAAAAADAAAAEVuZHBvaW50VXJscwEAVEYALgBEVEYAAAAMAQAAAAEAAAAAAAAAAQH/" +
           "////AAAAABVgiQoCAAAAAAANAAAAU2VydmljZVN0YXR1cwEAVUYALgBEVUYAAAAT/////wEB/////wAA" +
           "AAAEYYIKBAAAAAAAEAAAAEdldEVuY3J5cHRpbmdLZXkBAH5EAC8BAH5EfkQAAAEB/////wIAAAAXYKkK" +
           "AgAAAAAADgAAAElucHV0QXJndW1lbnRzAQB/RAAuAER/RAAAlgIAAAABACoBARsAAAAMAAAAQ3JlZGVu" +
           "dGlhbElkAAz/////AAAAAAABACoBASkAAAAaAAAAUmVxdWVzdGVkU2VjdXJpdHlQb2xpY3lVcmkADP//" +
           "//8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVu" +
           "dHMBAIBEAC4ARIBEAACWAgAAAAEAKgEBGAAAAAkAAABQdWJsaWNLZXkAD/////8AAAAAAAEAKgEBJwAA" +
           "ABgAAABSZXZpc2VkU2VjdXJpdHlQb2xpY3lVcmkAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf//" +
           "//8AAAAABGGCCgQAAAAAABAAAABVcGRhdGVDcmVkZW50aWFsAQBWRgAvAQBWRlZGAAABAf////8BAAAA" +
           "F2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAV0YALgBEV0YAAJYEAAAAAQAqAQEbAAAADAAAAENy" +
           "ZWRlbnRpYWxJZAAM/////wAAAAAAAQAqAQEfAAAAEAAAAENyZWRlbnRpYWxTZWNyZXQAD/////8AAAAA" +
           "AAEAKgEBJAAAABUAAABDZXJ0aWZpY2F0ZVRodW1icHJpbnQADP////8AAAAAAAEAKgEBIAAAABEAAABT" +
           "ZWN1cml0eVBvbGljeVVyaQAM/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAA" +
           "AAAAEAAAAERlbGV0ZUNyZWRlbnRpYWwBAFhGAC8BAFhGWEYAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> ResourceUri
        {
            get
            {
                return m_resourceUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_resourceUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_resourceUri = value;
            }
        }

        /// <remarks />
        public PropertyState<string> ProfileUri
        {
            get
            {
                return m_profileUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_profileUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_profileUri = value;
            }
        }

        /// <remarks />
        public PropertyState<string[]> EndpointUrls
        {
            get
            {
                return m_endpointUrls;
            }

            set
            {
                if (!Object.ReferenceEquals(m_endpointUrls, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_endpointUrls = value;
            }
        }

        /// <remarks />
        public PropertyState<StatusCode> ServiceStatus
        {
            get
            {
                return m_serviceStatus;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serviceStatus, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serviceStatus = value;
            }
        }

        /// <remarks />
        public GetEncryptingKeyMethodState GetEncryptingKey
        {
            get
            {
                return m_getEncryptingKeyMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_getEncryptingKeyMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_getEncryptingKeyMethod = value;
            }
        }

        /// <remarks />
        public KeyCredentialUpdateMethodState UpdateCredential
        {
            get
            {
                return m_updateCredentialMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_updateCredentialMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_updateCredentialMethod = value;
            }
        }

        /// <remarks />
        public MethodState DeleteCredential
        {
            get
            {
                return m_deleteCredentialMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_deleteCredentialMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_deleteCredentialMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_resourceUri != null)
            {
                children.Add(m_resourceUri);
            }

            if (m_profileUri != null)
            {
                children.Add(m_profileUri);
            }

            if (m_endpointUrls != null)
            {
                children.Add(m_endpointUrls);
            }

            if (m_serviceStatus != null)
            {
                children.Add(m_serviceStatus);
            }

            if (m_getEncryptingKeyMethod != null)
            {
                children.Add(m_getEncryptingKeyMethod);
            }

            if (m_updateCredentialMethod != null)
            {
                children.Add(m_updateCredentialMethod);
            }

            if (m_deleteCredentialMethod != null)
            {
                children.Add(m_deleteCredentialMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ResourceUri:
                {
                    if (createOrReplace)
                    {
                        if (ResourceUri == null)
                        {
                            if (replacement == null)
                            {
                                ResourceUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                ResourceUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ResourceUri;
                    break;
                }

                case Opc.Ua.BrowseNames.ProfileUri:
                {
                    if (createOrReplace)
                    {
                        if (ProfileUri == null)
                        {
                            if (replacement == null)
                            {
                                ProfileUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                ProfileUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ProfileUri;
                    break;
                }

                case Opc.Ua.BrowseNames.EndpointUrls:
                {
                    if (createOrReplace)
                    {
                        if (EndpointUrls == null)
                        {
                            if (replacement == null)
                            {
                                EndpointUrls = new PropertyState<string[]>(this);
                            }
                            else
                            {
                                EndpointUrls = (PropertyState<string[]>)replacement;
                            }
                        }
                    }

                    instance = EndpointUrls;
                    break;
                }

                case Opc.Ua.BrowseNames.ServiceStatus:
                {
                    if (createOrReplace)
                    {
                        if (ServiceStatus == null)
                        {
                            if (replacement == null)
                            {
                                ServiceStatus = new PropertyState<StatusCode>(this);
                            }
                            else
                            {
                                ServiceStatus = (PropertyState<StatusCode>)replacement;
                            }
                        }
                    }

                    instance = ServiceStatus;
                    break;
                }

                case Opc.Ua.BrowseNames.GetEncryptingKey:
                {
                    if (createOrReplace)
                    {
                        if (GetEncryptingKey == null)
                        {
                            if (replacement == null)
                            {
                                GetEncryptingKey = new GetEncryptingKeyMethodState(this);
                            }
                            else
                            {
                                GetEncryptingKey = (GetEncryptingKeyMethodState)replacement;
                            }
                        }
                    }

                    instance = GetEncryptingKey;
                    break;
                }

                case Opc.Ua.BrowseNames.UpdateCredential:
                {
                    if (createOrReplace)
                    {
                        if (UpdateCredential == null)
                        {
                            if (replacement == null)
                            {
                                UpdateCredential = new KeyCredentialUpdateMethodState(this);
                            }
                            else
                            {
                                UpdateCredential = (KeyCredentialUpdateMethodState)replacement;
                            }
                        }
                    }

                    instance = UpdateCredential;
                    break;
                }

                case Opc.Ua.BrowseNames.DeleteCredential:
                {
                    if (createOrReplace)
                    {
                        if (DeleteCredential == null)
                        {
                            if (replacement == null)
                            {
                                DeleteCredential = new MethodState(this);
                            }
                            else
                            {
                                DeleteCredential = (MethodState)replacement;
                            }
                        }
                    }

                    instance = DeleteCredential;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_resourceUri;
        private PropertyState<string> m_profileUri;
        private PropertyState<string[]> m_endpointUrls;
        private PropertyState<StatusCode> m_serviceStatus;
        private GetEncryptingKeyMethodState m_getEncryptingKeyMethod;
        private KeyCredentialUpdateMethodState m_updateCredentialMethod;
        private MethodState m_deleteCredentialMethod;
        #endregion
    }
    #endif
    #endregion

    #region KeyCredentialUpdateMethodState Class
    #if (!OPCUA_EXCLUDE_KeyCredentialUpdateMethodState)
    /// <summary>
    /// Stores an instance of the KeyCredentialUpdateMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class KeyCredentialUpdateMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public KeyCredentialUpdateMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new KeyCredentialUpdateMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAHQAAAEtleUNyZWRlbnRpYWxVcGRhdGVNZXRob2RUeXBlAQBZRgAvAQBZ" +
           "RllGAAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAWkYALgBEWkYAAJYEAAAA" +
           "AQAqAQEbAAAADAAAAENyZWRlbnRpYWxJZAAM/////wAAAAAAAQAqAQEfAAAAEAAAAENyZWRlbnRpYWxT" +
           "ZWNyZXQAD/////8AAAAAAAEAKgEBJAAAABUAAABDZXJ0aWZpY2F0ZVRodW1icHJpbnQADP////8AAAAA" +
           "AAEAKgEBIAAAABEAAABTZWN1cml0eVBvbGljeVVyaQAM/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB" +
           "/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public KeyCredentialUpdateMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string credentialId = (string)_inputArguments[0];
            byte[] credentialSecret = (byte[])_inputArguments[1];
            string certificateThumbprint = (string)_inputArguments[2];
            string securityPolicyUri = (string)_inputArguments[3];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    credentialId,
                    credentialSecret,
                    certificateThumbprint,
                    securityPolicyUri);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult KeyCredentialUpdateMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string credentialId,
        byte[] credentialSecret,
        string certificateThumbprint,
        string securityPolicyUri);
    #endif
    #endregion

    #region KeyCredentialAuditEventState Class
    #if (!OPCUA_EXCLUDE_KeyCredentialAuditEventState)
    /// <summary>
    /// Stores an instance of the KeyCredentialAuditEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class KeyCredentialAuditEventState : AuditUpdateMethodEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public KeyCredentialAuditEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.KeyCredentialAuditEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIwAAAEtleUNyZWRlbnRpYWxBdWRpdEV2ZW50VHlwZUluc3RhbmNlAQBb" +
           "RgEAW0ZbRgAA/////xAAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAFxGAC4ARFxGAAAAD/////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAF1GAC4ARF1GAAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABTb3VyY2VOb2RlAQBeRgAuAEReRgAAABH/////AQH/////AAAAABVgiQoCAAAAAAAK" +
           "AAAAU291cmNlTmFtZQEAX0YALgBEX0YAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUB" +
           "AGBGAC4ARGBGAAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQBhRgAu" +
           "AERhRgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQBjRgAuAERjRgAAABX/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAGRGAC4ARGRGAAAABf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAA8AAABBY3Rpb25UaW1lU3RhbXABAGVGAC4ARGVGAAABACYB/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAABgAAAFN0YXR1cwEAZkYALgBEZkYAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "CAAAAFNlcnZlcklkAQBnRgAuAERnRgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAAQ2xpZW50" +
           "QXVkaXRFbnRyeUlkAQBoRgAuAERoRgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAMAAAAQ2xpZW50" +
           "VXNlcklkAQBpRgAuAERpRgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAIAAAATWV0aG9kSWQBAGpG" +
           "AC4ARGpGAAAAEf////8BAf////8AAAAAF2CJCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAa0YALgBE" +
           "a0YAAAAYAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAAAAALAAAAUmVzb3VyY2VVcmkBAGxGAC4A" +
           "RGxGAAAADP////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> ResourceUri
        {
            get
            {
                return m_resourceUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_resourceUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_resourceUri = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_resourceUri != null)
            {
                children.Add(m_resourceUri);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ResourceUri:
                {
                    if (createOrReplace)
                    {
                        if (ResourceUri == null)
                        {
                            if (replacement == null)
                            {
                                ResourceUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                ResourceUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ResourceUri;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_resourceUri;
        #endregion
    }
    #endif
    #endregion

    #region KeyCredentialUpdatedAuditEventState Class
    #if (!OPCUA_EXCLUDE_KeyCredentialUpdatedAuditEventState)
    /// <summary>
    /// Stores an instance of the KeyCredentialUpdatedAuditEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class KeyCredentialUpdatedAuditEventState : KeyCredentialAuditEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public KeyCredentialUpdatedAuditEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.KeyCredentialUpdatedAuditEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKgAAAEtleUNyZWRlbnRpYWxVcGRhdGVkQXVkaXRFdmVudFR5cGVJbnN0" +
           "YW5jZQEAbUYBAG1GbUYAAP////8QAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQBuRgAuAERuRgAAAA//" +
           "////AQH/////AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQBvRgAuAERvRgAAABH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAKAAAAU291cmNlTm9kZQEAcEYALgBEcEYAAAAR/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACgAAAFNvdXJjZU5hbWUBAHFGAC4ARHFGAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQA" +
           "AABUaW1lAQByRgAuAERyRgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGlt" +
           "ZQEAc0YALgBEc0YAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAdUYALgBE" +
           "dUYAAAAV/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQB2RgAuAER2RgAAAAX/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQB3RgAuAER3RgAAAQAmAf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAYAAABTdGF0dXMBAHhGAC4ARHhGAAAAAf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAgAAABTZXJ2ZXJJZAEAeUYALgBEeUYAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAA" +
           "AENsaWVudEF1ZGl0RW50cnlJZAEAekYALgBEekYAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAA" +
           "AENsaWVudFVzZXJJZAEAe0YALgBEe0YAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAE1ldGhv" +
           "ZElkAQB8RgAuAER8RgAAABH/////AQH/////AAAAABdgiQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMB" +
           "AH1GAC4ARH1GAAAAGAEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlc291cmNlVXJp" +
           "AQB+RgAuAER+RgAAAAz/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region KeyCredentialDeletedAuditEventState Class
    #if (!OPCUA_EXCLUDE_KeyCredentialDeletedAuditEventState)
    /// <summary>
    /// Stores an instance of the KeyCredentialDeletedAuditEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class KeyCredentialDeletedAuditEventState : KeyCredentialAuditEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public KeyCredentialDeletedAuditEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.KeyCredentialDeletedAuditEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKgAAAEtleUNyZWRlbnRpYWxEZWxldGVkQXVkaXRFdmVudFR5cGVJbnN0" +
           "YW5jZQEAf0YBAH9Gf0YAAP////8QAAAAFWCJCgIAAAAAAAcAAABFdmVudElkAQCARgAuAESARgAAAA//" +
           "////AQH/////AAAAABVgiQoCAAAAAAAJAAAARXZlbnRUeXBlAQCBRgAuAESBRgAAABH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAKAAAAU291cmNlTm9kZQEAgkYALgBEgkYAAAAR/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAACgAAAFNvdXJjZU5hbWUBAINGAC4ARINGAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAAQA" +
           "AABUaW1lAQCERgAuAESERgAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZWNlaXZlVGlt" +
           "ZQEAhUYALgBEhUYAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAAHAAAATWVzc2FnZQEAh0YALgBE" +
           "h0YAAAAV/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAFNldmVyaXR5AQCIRgAuAESIRgAAAAX/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAPAAAAQWN0aW9uVGltZVN0YW1wAQCJRgAuAESJRgAAAQAmAf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAYAAABTdGF0dXMBAIpGAC4ARIpGAAAAAf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAgAAABTZXJ2ZXJJZAEAi0YALgBEi0YAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAAEgAA" +
           "AENsaWVudEF1ZGl0RW50cnlJZAEAjEYALgBEjEYAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAADAAA" +
           "AENsaWVudFVzZXJJZAEAjUYALgBEjUYAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAACAAAAE1ldGhv" +
           "ZElkAQCORgAuAESORgAAABH/////AQH/////AAAAABdgiQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMB" +
           "AI9GAC4ARI9GAAAAGAEAAAABAAAAAAAAAAEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlc291cmNlVXJp" +
           "AQCQRgAuAESQRgAAAAz/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AuthorizationServicesConfigurationFolderState Class
    #if (!OPCUA_EXCLUDE_AuthorizationServicesConfigurationFolderState)
    /// <summary>
    /// Stores an instance of the AuthorizationServicesConfigurationFolderType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuthorizationServicesConfigurationFolderState : FolderState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuthorizationServicesConfigurationFolderState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuthorizationServicesConfigurationFolderType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAANAAAAEF1dGhvcml6YXRpb25TZXJ2aWNlc0NvbmZpZ3VyYXRpb25Gb2xk" +
           "ZXJUeXBlSW5zdGFuY2UBAARcAQAEXARcAAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AuthorizationServiceConfigurationState Class
    #if (!OPCUA_EXCLUDE_AuthorizationServiceConfigurationState)
    /// <summary>
    /// Stores an instance of the AuthorizationServiceConfigurationType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AuthorizationServiceConfigurationState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AuthorizationServiceConfigurationState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AuthorizationServiceConfigurationType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAALQAAAEF1dGhvcml6YXRpb25TZXJ2aWNlQ29uZmlndXJhdGlvblR5cGVJ" +
           "bnN0YW5jZQEAvEUBALxFvEUAAP////8DAAAAFWCJCgIAAAAAAAoAAABTZXJ2aWNlVXJpAQCYRgAuAESY" +
           "RgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAASAAAAU2VydmljZUNlcnRpZmljYXRlAQDERQAuAETE" +
           "RQAAAA//////AQH/////AAAAABVgiQoCAAAAAAARAAAASXNzdWVyRW5kcG9pbnRVcmwBAJlGAC4ARJlG" +
           "AAAADP////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> ServiceUri
        {
            get
            {
                return m_serviceUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serviceUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serviceUri = value;
            }
        }

        /// <remarks />
        public PropertyState<byte[]> ServiceCertificate
        {
            get
            {
                return m_serviceCertificate;
            }

            set
            {
                if (!Object.ReferenceEquals(m_serviceCertificate, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_serviceCertificate = value;
            }
        }

        /// <remarks />
        public PropertyState<string> IssuerEndpointUrl
        {
            get
            {
                return m_issuerEndpointUrl;
            }

            set
            {
                if (!Object.ReferenceEquals(m_issuerEndpointUrl, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_issuerEndpointUrl = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_serviceUri != null)
            {
                children.Add(m_serviceUri);
            }

            if (m_serviceCertificate != null)
            {
                children.Add(m_serviceCertificate);
            }

            if (m_issuerEndpointUrl != null)
            {
                children.Add(m_issuerEndpointUrl);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ServiceUri:
                {
                    if (createOrReplace)
                    {
                        if (ServiceUri == null)
                        {
                            if (replacement == null)
                            {
                                ServiceUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                ServiceUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ServiceUri;
                    break;
                }

                case Opc.Ua.BrowseNames.ServiceCertificate:
                {
                    if (createOrReplace)
                    {
                        if (ServiceCertificate == null)
                        {
                            if (replacement == null)
                            {
                                ServiceCertificate = new PropertyState<byte[]>(this);
                            }
                            else
                            {
                                ServiceCertificate = (PropertyState<byte[]>)replacement;
                            }
                        }
                    }

                    instance = ServiceCertificate;
                    break;
                }

                case Opc.Ua.BrowseNames.IssuerEndpointUrl:
                {
                    if (createOrReplace)
                    {
                        if (IssuerEndpointUrl == null)
                        {
                            if (replacement == null)
                            {
                                IssuerEndpointUrl = new PropertyState<string>(this);
                            }
                            else
                            {
                                IssuerEndpointUrl = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = IssuerEndpointUrl;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_serviceUri;
        private PropertyState<byte[]> m_serviceCertificate;
        private PropertyState<string> m_issuerEndpointUrl;
        #endregion
    }
    #endif
    #endregion

    #region AggregateConfigurationState Class
    #if (!OPCUA_EXCLUDE_AggregateConfigurationState)
    /// <summary>
    /// Stores an instance of the AggregateConfigurationType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AggregateConfigurationState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AggregateConfigurationState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AggregateConfigurationType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIgAAAEFnZ3JlZ2F0ZUNvbmZpZ3VyYXRpb25UeXBlSW5zdGFuY2UBALMr" +
           "AQCzK7MrAAD/////BAAAABVgiQoCAAAAAAATAAAAVHJlYXRVbmNlcnRhaW5Bc0JhZAEAtCsALgBEtCsA" +
           "AAAB/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAFBlcmNlbnREYXRhQmFkAQC1KwAuAES1KwAAAAP/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAPAAAAUGVyY2VudERhdGFHb29kAQC2KwAuAES2KwAAAAP/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAWAAAAVXNlU2xvcGVkRXh0cmFwb2xhdGlvbgEAtysALgBEtysAAAAB" +
           "/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<bool> TreatUncertainAsBad
        {
            get
            {
                return m_treatUncertainAsBad;
            }

            set
            {
                if (!Object.ReferenceEquals(m_treatUncertainAsBad, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_treatUncertainAsBad = value;
            }
        }

        /// <remarks />
        public PropertyState<byte> PercentDataBad
        {
            get
            {
                return m_percentDataBad;
            }

            set
            {
                if (!Object.ReferenceEquals(m_percentDataBad, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_percentDataBad = value;
            }
        }

        /// <remarks />
        public PropertyState<byte> PercentDataGood
        {
            get
            {
                return m_percentDataGood;
            }

            set
            {
                if (!Object.ReferenceEquals(m_percentDataGood, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_percentDataGood = value;
            }
        }

        /// <remarks />
        public PropertyState<bool> UseSlopedExtrapolation
        {
            get
            {
                return m_useSlopedExtrapolation;
            }

            set
            {
                if (!Object.ReferenceEquals(m_useSlopedExtrapolation, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_useSlopedExtrapolation = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_treatUncertainAsBad != null)
            {
                children.Add(m_treatUncertainAsBad);
            }

            if (m_percentDataBad != null)
            {
                children.Add(m_percentDataBad);
            }

            if (m_percentDataGood != null)
            {
                children.Add(m_percentDataGood);
            }

            if (m_useSlopedExtrapolation != null)
            {
                children.Add(m_useSlopedExtrapolation);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.TreatUncertainAsBad:
                {
                    if (createOrReplace)
                    {
                        if (TreatUncertainAsBad == null)
                        {
                            if (replacement == null)
                            {
                                TreatUncertainAsBad = new PropertyState<bool>(this);
                            }
                            else
                            {
                                TreatUncertainAsBad = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = TreatUncertainAsBad;
                    break;
                }

                case Opc.Ua.BrowseNames.PercentDataBad:
                {
                    if (createOrReplace)
                    {
                        if (PercentDataBad == null)
                        {
                            if (replacement == null)
                            {
                                PercentDataBad = new PropertyState<byte>(this);
                            }
                            else
                            {
                                PercentDataBad = (PropertyState<byte>)replacement;
                            }
                        }
                    }

                    instance = PercentDataBad;
                    break;
                }

                case Opc.Ua.BrowseNames.PercentDataGood:
                {
                    if (createOrReplace)
                    {
                        if (PercentDataGood == null)
                        {
                            if (replacement == null)
                            {
                                PercentDataGood = new PropertyState<byte>(this);
                            }
                            else
                            {
                                PercentDataGood = (PropertyState<byte>)replacement;
                            }
                        }
                    }

                    instance = PercentDataGood;
                    break;
                }

                case Opc.Ua.BrowseNames.UseSlopedExtrapolation:
                {
                    if (createOrReplace)
                    {
                        if (UseSlopedExtrapolation == null)
                        {
                            if (replacement == null)
                            {
                                UseSlopedExtrapolation = new PropertyState<bool>(this);
                            }
                            else
                            {
                                UseSlopedExtrapolation = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = UseSlopedExtrapolation;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<bool> m_treatUncertainAsBad;
        private PropertyState<byte> m_percentDataBad;
        private PropertyState<byte> m_percentDataGood;
        private PropertyState<bool> m_useSlopedExtrapolation;
        #endregion
    }
    #endif
    #endregion

    #region PubSubKeyServiceState Class
    #if (!OPCUA_EXCLUDE_PubSubKeyServiceState)
    /// <summary>
    /// Stores an instance of the PubSubKeyServiceType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubKeyServiceState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubKeyServiceState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PubSubKeyServiceType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (GetSecurityKeys != null)
            {
                GetSecurityKeys.Initialize(context, GetSecurityKeys_InitializationString);
            }

            if (GetSecurityGroup != null)
            {
                GetSecurityGroup.Initialize(context, GetSecurityGroup_InitializationString);
            }

            if (SecurityGroups != null)
            {
                SecurityGroups.Initialize(context, SecurityGroups_InitializationString);
            }
        }

        #region Initialization String
        private const string GetSecurityKeys_InitializationString =
           "//////////8EYYIKBAAAAAAADwAAAEdldFNlY3VyaXR5S2V5cwEAIz4ALwEAIz4jPgAAAQH/////AgAA" +
           "ABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBACQ+AC4ARCQ+AACWAwAAAAEAKgEBHgAAAA8AAABT" +
           "ZWN1cml0eUdyb3VwSWQADP////8AAAAAAAEAKgEBIAAAAA8AAABTdGFydGluZ1Rva2VuSWQBACAB////" +
           "/wAAAAAAAQAqAQEgAAAAEQAAAFJlcXVlc3RlZEtleUNvdW50AAf/////AAAAAAABACgBAQAAAAEAAAAA" +
           "AAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQAlPgAuAEQlPgAAlgUAAAAB" +
           "ACoBASAAAAARAAAAU2VjdXJpdHlQb2xpY3lVcmkADP////8AAAAAAAEAKgEBHQAAAAwAAABGaXJzdFRv" +
           "a2VuSWQBACAB/////wAAAAAAAQAqAQEXAAAABAAAAEtleXMADwEAAAABAAAAAAAAAAABACoBAR4AAAAN" +
           "AAAAVGltZVRvTmV4dEtleQEAIgH/////AAAAAAABACoBARwAAAALAAAAS2V5TGlmZXRpbWUBACIB////" +
           "/wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string GetSecurityGroup_InitializationString =
           "//////////8EYYIKBAAAAAAAEAAAAEdldFNlY3VyaXR5R3JvdXABACY+AC8BACY+Jj4AAAEB/////wIA" +
           "AAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQAnPgAuAEQnPgAAlgEAAAABACoBAR4AAAAPAAAA" +
           "U2VjdXJpdHlHcm91cElkAAz/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAA" +
           "AAAPAAAAT3V0cHV0QXJndW1lbnRzAQAoPgAuAEQoPgAAlgEAAAABACoBASIAAAATAAAAU2VjdXJpdHlH" +
           "cm91cE5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string SecurityGroups_InitializationString =
           "//////////8EYIAKAQAAAAAADgAAAFNlY3VyaXR5R3JvdXBzAQApPgAvAQBcPCk+AAD/////AgAAAARh" +
           "ggoEAAAAAAAQAAAAQWRkU2VjdXJpdHlHcm91cAEAKj4ALwEAZTwqPgAAAQH/////AgAAABdgqQoCAAAA" +
           "AAAOAAAASW5wdXRBcmd1bWVudHMBACs+AC4ARCs+AACWBQAAAAEAKgEBIAAAABEAAABTZWN1cml0eUdy" +
           "b3VwTmFtZQAM/////wAAAAAAAQAqAQEcAAAACwAAAEtleUxpZmV0aW1lAQAiAf////8AAAAAAAEAKgEB" +
           "IAAAABEAAABTZWN1cml0eVBvbGljeVVyaQAM/////wAAAAAAAQAqAQEgAAAAEQAAAE1heEZ1dHVyZUtl" +
           "eUNvdW50AAf/////AAAAAAABACoBAR4AAAAPAAAATWF4UGFzdEtleUNvdW50AAf/////AAAAAAABACgB" +
           "AQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQAsPgAuAEQs" +
           "PgAAlgIAAAABACoBAR4AAAAPAAAAU2VjdXJpdHlHcm91cElkAAz/////AAAAAAABACoBASIAAAATAAAA" +
           "U2VjdXJpdHlHcm91cE5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIK" +
           "BAAAAAAAEwAAAFJlbW92ZVNlY3VyaXR5R3JvdXABAC0+AC8BAGg8LT4AAAEB/////wEAAAAXYKkKAgAA" +
           "AAAADgAAAElucHV0QXJndW1lbnRzAQAuPgAuAEQuPgAAlgEAAAABACoBASIAAAATAAAAU2VjdXJpdHlH" +
           "cm91cE5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHAAAAFB1YlN1YktleVNlcnZpY2VUeXBlSW5zdGFuY2UBACI+AQAiPiI+" +
           "AAD/////AwAAAARhggoEAAAAAAAPAAAAR2V0U2VjdXJpdHlLZXlzAQAjPgAvAQAjPiM+AAABAf////8C" +
           "AAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAJD4ALgBEJD4AAJYDAAAAAQAqAQEeAAAADwAA" +
           "AFNlY3VyaXR5R3JvdXBJZAAM/////wAAAAAAAQAqAQEgAAAADwAAAFN0YXJ0aW5nVG9rZW5JZAEAIAH/" +
           "////AAAAAAABACoBASAAAAARAAAAUmVxdWVzdGVkS2V5Q291bnQAB/////8AAAAAAAEAKAEBAAAAAQAA" +
           "AAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBACU+AC4ARCU+AACWBQAA" +
           "AAEAKgEBIAAAABEAAABTZWN1cml0eVBvbGljeVVyaQAM/////wAAAAAAAQAqAQEdAAAADAAAAEZpcnN0" +
           "VG9rZW5JZAEAIAH/////AAAAAAABACoBARcAAAAEAAAAS2V5cwAPAQAAAAEAAAAAAAAAAAEAKgEBHgAA" +
           "AA0AAABUaW1lVG9OZXh0S2V5AQAiAf////8AAAAAAAEAKgEBHAAAAAsAAABLZXlMaWZldGltZQEAIgH/" +
           "////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAAQAAAAR2V0U2VjdXJpdHlH" +
           "cm91cAEAJj4ALwEAJj4mPgAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBACc+" +
           "AC4ARCc+AACWAQAAAAEAKgEBHgAAAA8AAABTZWN1cml0eUdyb3VwSWQADP////8AAAAAAAEAKAEBAAAA" +
           "AQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBACg+AC4ARCg+AACW" +
           "AQAAAAEAKgEBIgAAABMAAABTZWN1cml0eUdyb3VwTm9kZUlkABH/////AAAAAAABACgBAQAAAAEAAAAA" +
           "AAAAAQH/////AAAAAARggAoBAAAAAAAOAAAAU2VjdXJpdHlHcm91cHMBACk+AC8BAFw8KT4AAP////8C" +
           "AAAABGGCCgQAAAAAABAAAABBZGRTZWN1cml0eUdyb3VwAQAqPgAvAQBlPCo+AAABAf////8CAAAAF2Cp" +
           "CgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAKz4ALgBEKz4AAJYFAAAAAQAqAQEgAAAAEQAAAFNlY3Vy" +
           "aXR5R3JvdXBOYW1lAAz/////AAAAAAABACoBARwAAAALAAAAS2V5TGlmZXRpbWUBACIB/////wAAAAAA" +
           "AQAqAQEgAAAAEQAAAFNlY3VyaXR5UG9saWN5VXJpAAz/////AAAAAAABACoBASAAAAARAAAATWF4RnV0" +
           "dXJlS2V5Q291bnQAB/////8AAAAAAAEAKgEBHgAAAA8AAABNYXhQYXN0S2V5Q291bnQAB/////8AAAAA" +
           "AAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBACw+" +
           "AC4ARCw+AACWAgAAAAEAKgEBHgAAAA8AAABTZWN1cml0eUdyb3VwSWQADP////8AAAAAAAEAKgEBIgAA" +
           "ABMAAABTZWN1cml0eUdyb3VwTm9kZUlkABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAA" +
           "AARhggoEAAAAAAATAAAAUmVtb3ZlU2VjdXJpdHlHcm91cAEALT4ALwEAaDwtPgAAAQH/////AQAAABdg" +
           "qQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAC4+AC4ARC4+AACWAQAAAAEAKgEBIgAAABMAAABTZWN1" +
           "cml0eUdyb3VwTm9kZUlkABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public GetSecurityKeysMethodState GetSecurityKeys
        {
            get
            {
                return m_getSecurityKeysMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_getSecurityKeysMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_getSecurityKeysMethod = value;
            }
        }

        /// <remarks />
        public GetSecurityGroupMethodState GetSecurityGroup
        {
            get
            {
                return m_getSecurityGroupMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_getSecurityGroupMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_getSecurityGroupMethod = value;
            }
        }

        /// <remarks />
        public SecurityGroupFolderState SecurityGroups
        {
            get
            {
                return m_securityGroups;
            }

            set
            {
                if (!Object.ReferenceEquals(m_securityGroups, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_securityGroups = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_getSecurityKeysMethod != null)
            {
                children.Add(m_getSecurityKeysMethod);
            }

            if (m_getSecurityGroupMethod != null)
            {
                children.Add(m_getSecurityGroupMethod);
            }

            if (m_securityGroups != null)
            {
                children.Add(m_securityGroups);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.GetSecurityKeys:
                {
                    if (createOrReplace)
                    {
                        if (GetSecurityKeys == null)
                        {
                            if (replacement == null)
                            {
                                GetSecurityKeys = new GetSecurityKeysMethodState(this);
                            }
                            else
                            {
                                GetSecurityKeys = (GetSecurityKeysMethodState)replacement;
                            }
                        }
                    }

                    instance = GetSecurityKeys;
                    break;
                }

                case Opc.Ua.BrowseNames.GetSecurityGroup:
                {
                    if (createOrReplace)
                    {
                        if (GetSecurityGroup == null)
                        {
                            if (replacement == null)
                            {
                                GetSecurityGroup = new GetSecurityGroupMethodState(this);
                            }
                            else
                            {
                                GetSecurityGroup = (GetSecurityGroupMethodState)replacement;
                            }
                        }
                    }

                    instance = GetSecurityGroup;
                    break;
                }

                case Opc.Ua.BrowseNames.SecurityGroups:
                {
                    if (createOrReplace)
                    {
                        if (SecurityGroups == null)
                        {
                            if (replacement == null)
                            {
                                SecurityGroups = new SecurityGroupFolderState(this);
                            }
                            else
                            {
                                SecurityGroups = (SecurityGroupFolderState)replacement;
                            }
                        }
                    }

                    instance = SecurityGroups;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private GetSecurityKeysMethodState m_getSecurityKeysMethod;
        private GetSecurityGroupMethodState m_getSecurityGroupMethod;
        private SecurityGroupFolderState m_securityGroups;
        #endregion
    }
    #endif
    #endregion

    #region GetSecurityKeysMethodState Class
    #if (!OPCUA_EXCLUDE_GetSecurityKeysMethodState)
    /// <summary>
    /// Stores an instance of the GetSecurityKeysMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class GetSecurityKeysMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public GetSecurityKeysMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new GetSecurityKeysMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGQAAAEdldFNlY3VyaXR5S2V5c01ldGhvZFR5cGUBAHI7AC8BAHI7cjsA" +
           "AAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBzOwAuAERzOwAAlgMAAAABACoB" +
           "AR4AAAAPAAAAU2VjdXJpdHlHcm91cElkAAz/////AAAAAAABACoBASAAAAAPAAAAU3RhcnRpbmdUb2tl" +
           "bklkAQAgAf////8AAAAAAAEAKgEBIAAAABEAAABSZXF1ZXN0ZWRLZXlDb3VudAAH/////wAAAAAAAQAo" +
           "AQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEAdDsALgBE" +
           "dDsAAJYFAAAAAQAqAQEgAAAAEQAAAFNlY3VyaXR5UG9saWN5VXJpAAz/////AAAAAAABACoBAR0AAAAM" +
           "AAAARmlyc3RUb2tlbklkAQAgAf////8AAAAAAAEAKgEBFwAAAAQAAABLZXlzAA8BAAAAAQAAAAAAAAAA" +
           "AQAqAQEeAAAADQAAAFRpbWVUb05leHRLZXkBACIB/////wAAAAAAAQAqAQEcAAAACwAAAEtleUxpZmV0" +
           "aW1lAQAiAf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public GetSecurityKeysMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string securityGroupId = (string)_inputArguments[0];
            uint startingTokenId = (uint)_inputArguments[1];
            uint requestedKeyCount = (uint)_inputArguments[2];

            string securityPolicyUri = (string)_outputArguments[0];
            uint firstTokenId = (uint)_outputArguments[1];
            byte[][] keys = (byte[][])_outputArguments[2];
            double timeToNextKey = (double)_outputArguments[3];
            double keyLifetime = (double)_outputArguments[4];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    securityGroupId,
                    startingTokenId,
                    requestedKeyCount,
                    ref securityPolicyUri,
                    ref firstTokenId,
                    ref keys,
                    ref timeToNextKey,
                    ref keyLifetime);
            }

            _outputArguments[0] = securityPolicyUri;
            _outputArguments[1] = firstTokenId;
            _outputArguments[2] = keys;
            _outputArguments[3] = timeToNextKey;
            _outputArguments[4] = keyLifetime;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult GetSecurityKeysMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string securityGroupId,
        uint startingTokenId,
        uint requestedKeyCount,
        ref string securityPolicyUri,
        ref uint firstTokenId,
        ref byte[][] keys,
        ref double timeToNextKey,
        ref double keyLifetime);
    #endif
    #endregion

    #region GetSecurityGroupMethodState Class
    #if (!OPCUA_EXCLUDE_GetSecurityGroupMethodState)
    /// <summary>
    /// Stores an instance of the GetSecurityGroupMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class GetSecurityGroupMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public GetSecurityGroupMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new GetSecurityGroupMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGgAAAEdldFNlY3VyaXR5R3JvdXBNZXRob2RUeXBlAQBZPAAvAQBZPFk8" +
           "AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAWjwALgBEWjwAAJYBAAAAAQAq" +
           "AQEeAAAADwAAAFNlY3VyaXR5R3JvdXBJZAAM/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAA" +
           "AAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEAWzwALgBEWzwAAJYBAAAAAQAqAQEiAAAAEwAA" +
           "AFNlY3VyaXR5R3JvdXBOb2RlSWQAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public GetSecurityGroupMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string securityGroupId = (string)_inputArguments[0];

            NodeId securityGroupNodeId = (NodeId)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    securityGroupId,
                    ref securityGroupNodeId);
            }

            _outputArguments[0] = securityGroupNodeId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult GetSecurityGroupMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string securityGroupId,
        ref NodeId securityGroupNodeId);
    #endif
    #endregion

    #region AddSecurityGroupMethodState Class
    #if (!OPCUA_EXCLUDE_AddSecurityGroupMethodState)
    /// <summary>
    /// Stores an instance of the AddSecurityGroupMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AddSecurityGroupMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AddSecurityGroupMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new AddSecurityGroupMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGgAAAEFkZFNlY3VyaXR5R3JvdXBNZXRob2RUeXBlAQBqPAAvAQBqPGo8" +
           "AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAazwALgBEazwAAJYFAAAAAQAq" +
           "AQEgAAAAEQAAAFNlY3VyaXR5R3JvdXBOYW1lAAz/////AAAAAAABACoBARwAAAALAAAAS2V5TGlmZXRp" +
           "bWUBACIB/////wAAAAAAAQAqAQEgAAAAEQAAAFNlY3VyaXR5UG9saWN5VXJpAAz/////AAAAAAABACoB" +
           "ASAAAAARAAAATWF4RnV0dXJlS2V5Q291bnQAB/////8AAAAAAAEAKgEBHgAAAA8AAABNYXhQYXN0S2V5" +
           "Q291bnQAB/////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRw" +
           "dXRBcmd1bWVudHMBAGw8AC4ARGw8AACWAgAAAAEAKgEBHgAAAA8AAABTZWN1cml0eUdyb3VwSWQADP//" +
           "//8AAAAAAAEAKgEBIgAAABMAAABTZWN1cml0eUdyb3VwTm9kZUlkABH/////AAAAAAABACgBAQAAAAEA" +
           "AAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public AddSecurityGroupMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string securityGroupName = (string)_inputArguments[0];
            double keyLifetime = (double)_inputArguments[1];
            string securityPolicyUri = (string)_inputArguments[2];
            uint maxFutureKeyCount = (uint)_inputArguments[3];
            uint maxPastKeyCount = (uint)_inputArguments[4];

            string securityGroupId = (string)_outputArguments[0];
            NodeId securityGroupNodeId = (NodeId)_outputArguments[1];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    securityGroupName,
                    keyLifetime,
                    securityPolicyUri,
                    maxFutureKeyCount,
                    maxPastKeyCount,
                    ref securityGroupId,
                    ref securityGroupNodeId);
            }

            _outputArguments[0] = securityGroupId;
            _outputArguments[1] = securityGroupNodeId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult AddSecurityGroupMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string securityGroupName,
        double keyLifetime,
        string securityPolicyUri,
        uint maxFutureKeyCount,
        uint maxPastKeyCount,
        ref string securityGroupId,
        ref NodeId securityGroupNodeId);
    #endif
    #endregion

    #region RemoveSecurityGroupMethodState Class
    #if (!OPCUA_EXCLUDE_RemoveSecurityGroupMethodState)
    /// <summary>
    /// Stores an instance of the RemoveSecurityGroupMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RemoveSecurityGroupMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RemoveSecurityGroupMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new RemoveSecurityGroupMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAHQAAAFJlbW92ZVNlY3VyaXR5R3JvdXBNZXRob2RUeXBlAQBtPAAvAQBt" +
           "PG08AAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAbjwALgBEbjwAAJYBAAAA" +
           "AQAqAQEiAAAAEwAAAFNlY3VyaXR5R3JvdXBOb2RlSWQAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAAB" +
           "Af////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public RemoveSecurityGroupMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            NodeId securityGroupNodeId = (NodeId)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    securityGroupNodeId);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult RemoveSecurityGroupMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        NodeId securityGroupNodeId);
    #endif
    #endregion

    #region SecurityGroupFolderState Class
    #if (!OPCUA_EXCLUDE_SecurityGroupFolderState)
    /// <summary>
    /// Stores an instance of the SecurityGroupFolderType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SecurityGroupFolderState : FolderState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SecurityGroupFolderState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.SecurityGroupFolderType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHwAAAFNlY3VyaXR5R3JvdXBGb2xkZXJUeXBlSW5zdGFuY2UBAFw8AQBc" +
           "PFw8AAD/////AgAAAARhggoEAAAAAAAQAAAAQWRkU2VjdXJpdHlHcm91cAEAZTwALwEAZTxlPAAAAQH/" +
           "////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAGY8AC4ARGY8AACWBQAAAAEAKgEBIAAA" +
           "ABEAAABTZWN1cml0eUdyb3VwTmFtZQAM/////wAAAAAAAQAqAQEcAAAACwAAAEtleUxpZmV0aW1lAQAi" +
           "Af////8AAAAAAAEAKgEBIAAAABEAAABTZWN1cml0eVBvbGljeVVyaQAM/////wAAAAAAAQAqAQEgAAAA" +
           "EQAAAE1heEZ1dHVyZUtleUNvdW50AAf/////AAAAAAABACoBAR4AAAAPAAAATWF4UGFzdEtleUNvdW50" +
           "AAf/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJn" +
           "dW1lbnRzAQBnPAAuAERnPAAAlgIAAAABACoBAR4AAAAPAAAAU2VjdXJpdHlHcm91cElkAAz/////AAAA" +
           "AAABACoBASIAAAATAAAAU2VjdXJpdHlHcm91cE5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAA" +
           "AAEB/////wAAAAAEYYIKBAAAAAAAEwAAAFJlbW92ZVNlY3VyaXR5R3JvdXABAGg8AC8BAGg8aDwAAAEB" +
           "/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBpPAAuAERpPAAAlgEAAAABACoBASIA" +
           "AAATAAAAU2VjdXJpdHlHcm91cE5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAA" +
           "AAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public AddSecurityGroupMethodState AddSecurityGroup
        {
            get
            {
                return m_addSecurityGroupMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addSecurityGroupMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addSecurityGroupMethod = value;
            }
        }

        /// <remarks />
        public RemoveSecurityGroupMethodState RemoveSecurityGroup
        {
            get
            {
                return m_removeSecurityGroupMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removeSecurityGroupMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removeSecurityGroupMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_addSecurityGroupMethod != null)
            {
                children.Add(m_addSecurityGroupMethod);
            }

            if (m_removeSecurityGroupMethod != null)
            {
                children.Add(m_removeSecurityGroupMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.AddSecurityGroup:
                {
                    if (createOrReplace)
                    {
                        if (AddSecurityGroup == null)
                        {
                            if (replacement == null)
                            {
                                AddSecurityGroup = new AddSecurityGroupMethodState(this);
                            }
                            else
                            {
                                AddSecurityGroup = (AddSecurityGroupMethodState)replacement;
                            }
                        }
                    }

                    instance = AddSecurityGroup;
                    break;
                }

                case Opc.Ua.BrowseNames.RemoveSecurityGroup:
                {
                    if (createOrReplace)
                    {
                        if (RemoveSecurityGroup == null)
                        {
                            if (replacement == null)
                            {
                                RemoveSecurityGroup = new RemoveSecurityGroupMethodState(this);
                            }
                            else
                            {
                                RemoveSecurityGroup = (RemoveSecurityGroupMethodState)replacement;
                            }
                        }
                    }

                    instance = RemoveSecurityGroup;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private AddSecurityGroupMethodState m_addSecurityGroupMethod;
        private RemoveSecurityGroupMethodState m_removeSecurityGroupMethod;
        #endregion
    }
    #endif
    #endregion

    #region SecurityGroupState Class
    #if (!OPCUA_EXCLUDE_SecurityGroupState)
    /// <summary>
    /// Stores an instance of the SecurityGroupType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SecurityGroupState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SecurityGroupState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.SecurityGroupType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGQAAAFNlY3VyaXR5R3JvdXBUeXBlSW5zdGFuY2UBAG88AQBvPG88AAD/" +
           "////BQAAABVgiQoCAAAAAAAPAAAAU2VjdXJpdHlHcm91cElkAQBwPAAuAERwPAAAAAz/////AQH/////" +
           "AAAAABVgiQoCAAAAAAALAAAAS2V5TGlmZXRpbWUBAMY6AC4ARMY6AAABACIB/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAAEQAAAFNlY3VyaXR5UG9saWN5VXJpAQDHOgAuAETHOgAAAAz/////AQH/////AAAAABVg" +
           "iQoCAAAAAAARAAAATWF4RnV0dXJlS2V5Q291bnQBAMg6AC4ARMg6AAAAB/////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAA8AAABNYXhQYXN0S2V5Q291bnQBANA6AC4ARNA6AAAAB/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> SecurityGroupId
        {
            get
            {
                return m_securityGroupId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_securityGroupId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_securityGroupId = value;
            }
        }

        /// <remarks />
        public PropertyState<double> KeyLifetime
        {
            get
            {
                return m_keyLifetime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_keyLifetime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_keyLifetime = value;
            }
        }

        /// <remarks />
        public PropertyState<string> SecurityPolicyUri
        {
            get
            {
                return m_securityPolicyUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_securityPolicyUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_securityPolicyUri = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxFutureKeyCount
        {
            get
            {
                return m_maxFutureKeyCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxFutureKeyCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxFutureKeyCount = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxPastKeyCount
        {
            get
            {
                return m_maxPastKeyCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxPastKeyCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxPastKeyCount = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_securityGroupId != null)
            {
                children.Add(m_securityGroupId);
            }

            if (m_keyLifetime != null)
            {
                children.Add(m_keyLifetime);
            }

            if (m_securityPolicyUri != null)
            {
                children.Add(m_securityPolicyUri);
            }

            if (m_maxFutureKeyCount != null)
            {
                children.Add(m_maxFutureKeyCount);
            }

            if (m_maxPastKeyCount != null)
            {
                children.Add(m_maxPastKeyCount);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SecurityGroupId:
                {
                    if (createOrReplace)
                    {
                        if (SecurityGroupId == null)
                        {
                            if (replacement == null)
                            {
                                SecurityGroupId = new PropertyState<string>(this);
                            }
                            else
                            {
                                SecurityGroupId = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = SecurityGroupId;
                    break;
                }

                case Opc.Ua.BrowseNames.KeyLifetime:
                {
                    if (createOrReplace)
                    {
                        if (KeyLifetime == null)
                        {
                            if (replacement == null)
                            {
                                KeyLifetime = new PropertyState<double>(this);
                            }
                            else
                            {
                                KeyLifetime = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = KeyLifetime;
                    break;
                }

                case Opc.Ua.BrowseNames.SecurityPolicyUri:
                {
                    if (createOrReplace)
                    {
                        if (SecurityPolicyUri == null)
                        {
                            if (replacement == null)
                            {
                                SecurityPolicyUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                SecurityPolicyUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = SecurityPolicyUri;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxFutureKeyCount:
                {
                    if (createOrReplace)
                    {
                        if (MaxFutureKeyCount == null)
                        {
                            if (replacement == null)
                            {
                                MaxFutureKeyCount = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxFutureKeyCount = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxFutureKeyCount;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxPastKeyCount:
                {
                    if (createOrReplace)
                    {
                        if (MaxPastKeyCount == null)
                        {
                            if (replacement == null)
                            {
                                MaxPastKeyCount = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxPastKeyCount = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxPastKeyCount;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_securityGroupId;
        private PropertyState<double> m_keyLifetime;
        private PropertyState<string> m_securityPolicyUri;
        private PropertyState<uint> m_maxFutureKeyCount;
        private PropertyState<uint> m_maxPastKeyCount;
        #endregion
    }
    #endif
    #endregion

    #region PublishSubscribeState Class
    #if (!OPCUA_EXCLUDE_PublishSubscribeState)
    /// <summary>
    /// Stores an instance of the PublishSubscribeType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PublishSubscribeState : PubSubKeyServiceState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PublishSubscribeState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PublishSubscribeType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (SetSecurityKeys != null)
            {
                SetSecurityKeys.Initialize(context, SetSecurityKeys_InitializationString);
            }

            if (AddConnection != null)
            {
                AddConnection.Initialize(context, AddConnection_InitializationString);
            }

            if (RemoveConnection != null)
            {
                RemoveConnection.Initialize(context, RemoveConnection_InitializationString);
            }

            if (Diagnostics != null)
            {
                Diagnostics.Initialize(context, Diagnostics_InitializationString);
            }
        }

        #region Initialization String
        private const string SetSecurityKeys_InitializationString =
           "//////////8EYYIKBAAAAAAADwAAAFNldFNlY3VyaXR5S2V5cwEAkEMALwEAkEOQQwAAAQH/////AQAA" +
           "ABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAJFDAC4ARJFDAACWBwAAAAEAKgEBHgAAAA8AAABT" +
           "ZWN1cml0eUdyb3VwSWQADP////8AAAAAAAEAKgEBIAAAABEAAABTZWN1cml0eVBvbGljeVVyaQAM////" +
           "/wAAAAAAAQAqAQEfAAAADgAAAEN1cnJlbnRUb2tlbklkAQAgAf////8AAAAAAAEAKgEBGQAAAAoAAABD" +
           "dXJyZW50S2V5AA//////AAAAAAABACoBAR0AAAAKAAAARnV0dXJlS2V5cwAPAQAAAAEAAAAAAAAAAAEA" +
           "KgEBHgAAAA0AAABUaW1lVG9OZXh0S2V5AQAiAf////8AAAAAAAEAKgEBHAAAAAsAAABLZXlMaWZldGlt" +
           "ZQEAIgH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";

        private const string AddConnection_InitializationString =
           "//////////8EYYIKBAAAAAAADQAAAEFkZENvbm5lY3Rpb24BANZAAC8BANZA1kAAAAEB/////wIAAAAX" +
           "YKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQDXQAAuAETXQAAAlgEAAAABACoBAR4AAAANAAAAQ29u" +
           "ZmlndXJhdGlvbgEAAT3/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAP" +
           "AAAAT3V0cHV0QXJndW1lbnRzAQDYQAAuAETYQAAAlgEAAAABACoBARsAAAAMAAAAQ29ubmVjdGlvbklk" +
           "ABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";

        private const string RemoveConnection_InitializationString =
           "//////////8EYYIKBAAAAAAAEAAAAFJlbW92ZUNvbm5lY3Rpb24BAGA4AC8BAGA4YDgAAAEB/////wEA" +
           "AAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBhOAAuAERhOAAAlgEAAAABACoBARsAAAAMAAAA" +
           "Q29ubmVjdGlvbklkABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";

        private const string Diagnostics_InitializationString =
           "//////////8EYIAKAQAAAAAACwAAAERpYWdub3N0aWNzAQAbSQAvAQAUTRtJAAD/////BwAAABVgiQoC" +
           "AAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAHEkALwA/HEkAAAEAC03/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAQAAAAVG90YWxJbmZvcm1hdGlvbgEAHUkALwEADU0dSQAAAAf/////AQH/////AwAAABVgiQoC" +
           "AAAAAAAGAAAAQWN0aXZlAQAeSQAuAEQeSQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAAQ2xh" +
           "c3NpZmljYXRpb24BAB9JAC4ARB9JAAABABJN/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAERpYWdu" +
           "b3N0aWNzTGV2ZWwBACBJAC4ARCBJAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFRvdGFs" +
           "RXJyb3IBACJJAC8BAA1NIkkAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAI0kA" +
           "LgBEI0kAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQAkSQAuAEQk" +
           "SQAAAQASTf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQAlSQAuAEQl" +
           "SQAAAQALTf////8BAf////8AAAAABGGCCgQAAAAAAAUAAABSZXNldAEAJ0kALwEA6UwnSQAAAQH/////" +
           "AAAAABVgiQoCAAAAAAAIAAAAU3ViRXJyb3IBAChJAC8APyhJAAAAAf////8BAf////8AAAAABGCACgEA" +
           "AAAAAAgAAABDb3VudGVycwEAKUkALwA6KUkAAP////8GAAAAFWCJCgIAAAAAAAoAAABTdGF0ZUVycm9y" +
           "AQAqSQAvAQANTSpJAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBACtJAC4ARCtJ" +
           "AAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEALEkALgBELEkAAAYB" +
           "AAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQAtSQAuAEQt" +
           "SQAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAGAAAAFN0YXRlT3BlcmF0aW9uYWxCeU1l" +
           "dGhvZAEAL0kALwEADU0vSQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQAwSQAu" +
           "AEQwSQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BADFJAC4ARDFJ" +
           "AAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAMkkA" +
           "LgBEMkkAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABgAAABTdGF0ZU9wZXJhdGlvbmFs" +
           "QnlQYXJlbnQBADRJAC8BAA1NNEkAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEA" +
           "NUkALgBENUkAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQA2SQAu" +
           "AEQ2SQAABgAAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwB" +
           "ADdJAC4ARDdJAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAZAAAAU3RhdGVPcGVyYXRp" +
           "b25hbEZyb21FcnJvcgEAOUkALwEADU05SQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0" +
           "aXZlAQA6SQAuAEQ6SQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24B" +
           "ADtJAC4ARDtJAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NM" +
           "ZXZlbAEAPEkALgBEPEkAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABMAAABTdGF0ZVBh" +
           "dXNlZEJ5UGFyZW50AQA+SQAvAQANTT5JAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3Rp" +
           "dmUBAD9JAC4ARD9JAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEA" +
           "QEkALgBEQEkAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xl" +
           "dmVsAQBBSQAuAERBSQAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAFQAAAFN0YXRlRGlz" +
           "YWJsZWRCeU1ldGhvZAEAQ0kALwEADU1DSQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0" +
           "aXZlAQBESQAuAERESQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24B" +
           "AEVJAC4AREVJAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NM" +
           "ZXZlbAEARkkALgBERkkAAAYAAAAAAQALTf////8BAf////8AAAAABGCACgEAAAAAAAoAAABMaXZlVmFs" +
           "dWVzAQBISQAvADpISQAA/////wQAAAAVYIkKAgAAAAAAGAAAAENvbmZpZ3VyZWREYXRhU2V0V3JpdGVy" +
           "cwEASUkALwA/SUkAAAAF/////wEB/////wEAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwB" +
           "AEpJAC4AREpJAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAYAAAAQ29uZmlndXJlZERh" +
           "dGFTZXRSZWFkZXJzAQBLSQAvAD9LSQAAAAX/////AQH/////AQAAABVgqQoCAAAAAAAQAAAARGlhZ25v" +
           "c3RpY3NMZXZlbAEATEkALgBETEkAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABkAAABP" +
           "cGVyYXRpb25hbERhdGFTZXRXcml0ZXJzAQBNSQAvAD9NSQAAAAX/////AQH/////AQAAABVgqQoCAAAA" +
           "AAAQAAAARGlhZ25vc3RpY3NMZXZlbAEATkkALgBETkkAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAABkAAABPcGVyYXRpb25hbERhdGFTZXRSZWFkZXJzAQBPSQAvAD9PSQAAAAX/////AQH/////" +
           "AQAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAUEkALgBEUEkAAAYAAAAAAQALTf////8B" +
           "Af////8AAAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHAAAAFB1Ymxpc2hTdWJzY3JpYmVUeXBlSW5zdGFuY2UBAFA4AQBQOFA4" +
           "AAD/////BwAAAARhggoEAAAAAAAPAAAAU2V0U2VjdXJpdHlLZXlzAQCQQwAvAQCQQ5BDAAABAf////8B" +
           "AAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAkUMALgBEkUMAAJYHAAAAAQAqAQEeAAAADwAA" +
           "AFNlY3VyaXR5R3JvdXBJZAAM/////wAAAAAAAQAqAQEgAAAAEQAAAFNlY3VyaXR5UG9saWN5VXJpAAz/" +
           "////AAAAAAABACoBAR8AAAAOAAAAQ3VycmVudFRva2VuSWQBACAB/////wAAAAAAAQAqAQEZAAAACgAA" +
           "AEN1cnJlbnRLZXkAD/////8AAAAAAAEAKgEBHQAAAAoAAABGdXR1cmVLZXlzAA8BAAAAAQAAAAAAAAAA" +
           "AQAqAQEeAAAADQAAAFRpbWVUb05leHRLZXkBACIB/////wAAAAAAAQAqAQEcAAAACwAAAEtleUxpZmV0" +
           "aW1lAQAiAf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAA0AAABBZGRD" +
           "b25uZWN0aW9uAQDWQAAvAQDWQNZAAAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50" +
           "cwEA10AALgBE10AAAJYBAAAAAQAqAQEeAAAADQAAAENvbmZpZ3VyYXRpb24BAAE9/////wAAAAAAAQAo" +
           "AQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEA2EAALgBE" +
           "2EAAAJYBAAAAAQAqAQEbAAAADAAAAENvbm5lY3Rpb25JZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAA" +
           "AAEB/////wAAAAAEYYIKBAAAAAAAEAAAAFJlbW92ZUNvbm5lY3Rpb24BAGA4AC8BAGA4YDgAAAEB////" +
           "/wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBhOAAuAERhOAAAlgEAAAABACoBARsAAAAM" +
           "AAAAQ29ubmVjdGlvbklkABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARggAoBAAAA" +
           "AAARAAAAUHVibGlzaGVkRGF0YVNldHMBAGI4AC8BAI04YjgAAP////8AAAAABGCACgEAAAAAAAYAAABT" +
           "dGF0dXMBAOQ9AC8BADM55D0AAP////8BAAAAFWCJCgIAAAAAAAUAAABTdGF0ZQEA5T0ALwA/5T0AAAEA" +
           "Nzn/////AQH/////AAAAAARggAoBAAAAAAALAAAARGlhZ25vc3RpY3MBABtJAC8BABRNG0kAAP////8H" +
           "AAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQAcSQAvAD8cSQAAAQALTf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAABAAAABUb3RhbEluZm9ybWF0aW9uAQAdSQAvAQANTR1JAAAAB/////8BAf////8D" +
           "AAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAB5JAC4ARB5JAAAAAf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AA4AAABDbGFzc2lmaWNhdGlvbgEAH0kALgBEH0kAAAEAEk3/////AQH/////AAAAABVgiQoCAAAAAAAQ" +
           "AAAARGlhZ25vc3RpY3NMZXZlbAEAIEkALgBEIEkAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAK" +
           "AAAAVG90YWxFcnJvcgEAIkkALwEADU0iSQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0" +
           "aXZlAQAjSQAuAEQjSQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24B" +
           "ACRJAC4ARCRJAAABABJN/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwB" +
           "ACVJAC4ARCVJAAABAAtN/////wEB/////wAAAAAEYYIKBAAAAAAABQAAAFJlc2V0AQAnSQAvAQDpTCdJ" +
           "AAABAf////8AAAAAFWCJCgIAAAAAAAgAAABTdWJFcnJvcgEAKEkALwA/KEkAAAAB/////wEB/////wAA" +
           "AAAEYIAKAQAAAAAACAAAAENvdW50ZXJzAQApSQAvADopSQAA/////wYAAAAVYIkKAgAAAAAACgAAAFN0" +
           "YXRlRXJyb3IBACpJAC8BAA1NKkkAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEA" +
           "K0kALgBEK0kAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQAsSQAu" +
           "AEQsSQAABgEAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwB" +
           "AC1JAC4ARC1JAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAYAAAAU3RhdGVPcGVyYXRp" +
           "b25hbEJ5TWV0aG9kAQAvSQAvAQANTS9JAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3Rp" +
           "dmUBADBJAC4ARDBJAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEA" +
           "MUkALgBEMUkAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xl" +
           "dmVsAQAySQAuAEQySQAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAGAAAAFN0YXRlT3Bl" +
           "cmF0aW9uYWxCeVBhcmVudAEANEkALwEADU00SQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAA" +
           "QWN0aXZlAQA1SQAuAEQ1SQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRp" +
           "b24BADZJAC4ARDZJAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3Rp" +
           "Y3NMZXZlbAEAN0kALgBEN0kAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABkAAABTdGF0" +
           "ZU9wZXJhdGlvbmFsRnJvbUVycm9yAQA5SQAvAQANTTlJAAAAB/////8BAf////8DAAAAFWCJCgIAAAAA" +
           "AAYAAABBY3RpdmUBADpJAC4ARDpJAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lm" +
           "aWNhdGlvbgEAO0kALgBEO0kAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFn" +
           "bm9zdGljc0xldmVsAQA8SQAuAEQ8SQAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAEwAA" +
           "AFN0YXRlUGF1c2VkQnlQYXJlbnQBAD5JAC8BAA1NPkkAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAA" +
           "BgAAAEFjdGl2ZQEAP0kALgBEP0kAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZp" +
           "Y2F0aW9uAQBASQAuAERASQAABgAAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdu" +
           "b3N0aWNzTGV2ZWwBAEFJAC4AREFJAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAVAAAA" +
           "U3RhdGVEaXNhYmxlZEJ5TWV0aG9kAQBDSQAvAQANTUNJAAAAB/////8BAf////8DAAAAFWCJCgIAAAAA" +
           "AAYAAABBY3RpdmUBAERJAC4ARERJAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lm" +
           "aWNhdGlvbgEARUkALgBERUkAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFn" +
           "bm9zdGljc0xldmVsAQBGSQAuAERGSQAABgAAAAABAAtN/////wEB/////wAAAAAEYIAKAQAAAAAACgAA" +
           "AExpdmVWYWx1ZXMBAEhJAC8AOkhJAAD/////BAAAABVgiQoCAAAAAAAYAAAAQ29uZmlndXJlZERhdGFT" +
           "ZXRXcml0ZXJzAQBJSQAvAD9JSQAAAAX/////AQH/////AQAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3Rp" +
           "Y3NMZXZlbAEASkkALgBESkkAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABgAAABDb25m" +
           "aWd1cmVkRGF0YVNldFJlYWRlcnMBAEtJAC8AP0tJAAAABf////8BAf////8BAAAAFWCpCgIAAAAAABAA" +
           "AABEaWFnbm9zdGljc0xldmVsAQBMSQAuAERMSQAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAAGQAAAE9wZXJhdGlvbmFsRGF0YVNldFdyaXRlcnMBAE1JAC8AP01JAAAABf////8BAf////8BAAAA" +
           "FWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBOSQAuAEROSQAABgAAAAABAAtN/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAAGQAAAE9wZXJhdGlvbmFsRGF0YVNldFJlYWRlcnMBAE9JAC8AP09JAAAABf//" +
           "//8BAf////8BAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBQSQAuAERQSQAABgAAAAAB" +
           "AAtN/////wEB/////wAAAAAXYIkKAgAAAAAAGgAAAFN1cHBvcnRlZFRyYW5zcG9ydFByb2ZpbGVzAQBH" +
           "RAAuAERHRAAAAAwBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public SetSecurityKeysMethodState SetSecurityKeys
        {
            get
            {
                return m_setSecurityKeysMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_setSecurityKeysMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_setSecurityKeysMethod = value;
            }
        }

        /// <remarks />
        public AddConnectionMethodState AddConnection
        {
            get
            {
                return m_addConnectionMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addConnectionMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addConnectionMethod = value;
            }
        }

        /// <remarks />
        public RemoveConnectionMethodState RemoveConnection
        {
            get
            {
                return m_removeConnectionMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removeConnectionMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removeConnectionMethod = value;
            }
        }

        /// <remarks />
        public DataSetFolderState PublishedDataSets
        {
            get
            {
                return m_publishedDataSets;
            }

            set
            {
                if (!Object.ReferenceEquals(m_publishedDataSets, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_publishedDataSets = value;
            }
        }

        /// <remarks />
        public PubSubStatusState Status
        {
            get
            {
                return m_status;
            }

            set
            {
                if (!Object.ReferenceEquals(m_status, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_status = value;
            }
        }

        /// <remarks />
        public PubSubDiagnosticsRootState Diagnostics
        {
            get
            {
                return m_diagnostics;
            }

            set
            {
                if (!Object.ReferenceEquals(m_diagnostics, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_diagnostics = value;
            }
        }

        /// <remarks />
        public PropertyState<string[]> SupportedTransportProfiles
        {
            get
            {
                return m_supportedTransportProfiles;
            }

            set
            {
                if (!Object.ReferenceEquals(m_supportedTransportProfiles, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_supportedTransportProfiles = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_setSecurityKeysMethod != null)
            {
                children.Add(m_setSecurityKeysMethod);
            }

            if (m_addConnectionMethod != null)
            {
                children.Add(m_addConnectionMethod);
            }

            if (m_removeConnectionMethod != null)
            {
                children.Add(m_removeConnectionMethod);
            }

            if (m_publishedDataSets != null)
            {
                children.Add(m_publishedDataSets);
            }

            if (m_status != null)
            {
                children.Add(m_status);
            }

            if (m_diagnostics != null)
            {
                children.Add(m_diagnostics);
            }

            if (m_supportedTransportProfiles != null)
            {
                children.Add(m_supportedTransportProfiles);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SetSecurityKeys:
                {
                    if (createOrReplace)
                    {
                        if (SetSecurityKeys == null)
                        {
                            if (replacement == null)
                            {
                                SetSecurityKeys = new SetSecurityKeysMethodState(this);
                            }
                            else
                            {
                                SetSecurityKeys = (SetSecurityKeysMethodState)replacement;
                            }
                        }
                    }

                    instance = SetSecurityKeys;
                    break;
                }

                case Opc.Ua.BrowseNames.AddConnection:
                {
                    if (createOrReplace)
                    {
                        if (AddConnection == null)
                        {
                            if (replacement == null)
                            {
                                AddConnection = new AddConnectionMethodState(this);
                            }
                            else
                            {
                                AddConnection = (AddConnectionMethodState)replacement;
                            }
                        }
                    }

                    instance = AddConnection;
                    break;
                }

                case Opc.Ua.BrowseNames.RemoveConnection:
                {
                    if (createOrReplace)
                    {
                        if (RemoveConnection == null)
                        {
                            if (replacement == null)
                            {
                                RemoveConnection = new RemoveConnectionMethodState(this);
                            }
                            else
                            {
                                RemoveConnection = (RemoveConnectionMethodState)replacement;
                            }
                        }
                    }

                    instance = RemoveConnection;
                    break;
                }

                case Opc.Ua.BrowseNames.PublishedDataSets:
                {
                    if (createOrReplace)
                    {
                        if (PublishedDataSets == null)
                        {
                            if (replacement == null)
                            {
                                PublishedDataSets = new DataSetFolderState(this);
                            }
                            else
                            {
                                PublishedDataSets = (DataSetFolderState)replacement;
                            }
                        }
                    }

                    instance = PublishedDataSets;
                    break;
                }

                case Opc.Ua.BrowseNames.Status:
                {
                    if (createOrReplace)
                    {
                        if (Status == null)
                        {
                            if (replacement == null)
                            {
                                Status = new PubSubStatusState(this);
                            }
                            else
                            {
                                Status = (PubSubStatusState)replacement;
                            }
                        }
                    }

                    instance = Status;
                    break;
                }

                case Opc.Ua.BrowseNames.Diagnostics:
                {
                    if (createOrReplace)
                    {
                        if (Diagnostics == null)
                        {
                            if (replacement == null)
                            {
                                Diagnostics = new PubSubDiagnosticsRootState(this);
                            }
                            else
                            {
                                Diagnostics = (PubSubDiagnosticsRootState)replacement;
                            }
                        }
                    }

                    instance = Diagnostics;
                    break;
                }

                case Opc.Ua.BrowseNames.SupportedTransportProfiles:
                {
                    if (createOrReplace)
                    {
                        if (SupportedTransportProfiles == null)
                        {
                            if (replacement == null)
                            {
                                SupportedTransportProfiles = new PropertyState<string[]>(this);
                            }
                            else
                            {
                                SupportedTransportProfiles = (PropertyState<string[]>)replacement;
                            }
                        }
                    }

                    instance = SupportedTransportProfiles;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private SetSecurityKeysMethodState m_setSecurityKeysMethod;
        private AddConnectionMethodState m_addConnectionMethod;
        private RemoveConnectionMethodState m_removeConnectionMethod;
        private DataSetFolderState m_publishedDataSets;
        private PubSubStatusState m_status;
        private PubSubDiagnosticsRootState m_diagnostics;
        private PropertyState<string[]> m_supportedTransportProfiles;
        #endregion
    }
    #endif
    #endregion

    #region SetSecurityKeysMethodState Class
    #if (!OPCUA_EXCLUDE_SetSecurityKeysMethodState)
    /// <summary>
    /// Stores an instance of the SetSecurityKeysMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SetSecurityKeysMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SetSecurityKeysMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new SetSecurityKeysMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGQAAAFNldFNlY3VyaXR5S2V5c01ldGhvZFR5cGUBAJJDAC8BAJJDkkMA" +
           "AAEB/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQCTQwAuAESTQwAAlgcAAAABACoB" +
           "AR4AAAAPAAAAU2VjdXJpdHlHcm91cElkAAz/////AAAAAAABACoBASAAAAARAAAAU2VjdXJpdHlQb2xp" +
           "Y3lVcmkADP////8AAAAAAAEAKgEBHwAAAA4AAABDdXJyZW50VG9rZW5JZAEAIAH/////AAAAAAABACoB" +
           "ARkAAAAKAAAAQ3VycmVudEtleQAP/////wAAAAAAAQAqAQEdAAAACgAAAEZ1dHVyZUtleXMADwEAAAAB" +
           "AAAAAAAAAAABACoBAR4AAAANAAAAVGltZVRvTmV4dEtleQEAIgH/////AAAAAAABACoBARwAAAALAAAA" +
           "S2V5TGlmZXRpbWUBACIB/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public SetSecurityKeysMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string securityGroupId = (string)_inputArguments[0];
            string securityPolicyUri = (string)_inputArguments[1];
            uint currentTokenId = (uint)_inputArguments[2];
            byte[] currentKey = (byte[])_inputArguments[3];
            byte[][] futureKeys = (byte[][])_inputArguments[4];
            double timeToNextKey = (double)_inputArguments[5];
            double keyLifetime = (double)_inputArguments[6];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    securityGroupId,
                    securityPolicyUri,
                    currentTokenId,
                    currentKey,
                    futureKeys,
                    timeToNextKey,
                    keyLifetime);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult SetSecurityKeysMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string securityGroupId,
        string securityPolicyUri,
        uint currentTokenId,
        byte[] currentKey,
        byte[][] futureKeys,
        double timeToNextKey,
        double keyLifetime);
    #endif
    #endregion

    #region AddConnectionMethodState Class
    #if (!OPCUA_EXCLUDE_AddConnectionMethodState)
    /// <summary>
    /// Stores an instance of the AddConnectionMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AddConnectionMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AddConnectionMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new AddConnectionMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAFwAAAEFkZENvbm5lY3Rpb25NZXRob2RUeXBlAQAzQQAvAQAzQTNBAAAB" +
           "Af////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEATkEALgBETkEAAJYBAAAAAQAqAQEe" +
           "AAAADQAAAENvbmZpZ3VyYXRpb24BAAE9/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAX" +
           "YKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEAT0EALgBET0EAAJYBAAAAAQAqAQEbAAAADAAAAENv" +
           "bm5lY3Rpb25JZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public AddConnectionMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            PubSubConnectionDataType configuration = (PubSubConnectionDataType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[0]);

            NodeId connectionId = (NodeId)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    configuration,
                    ref connectionId);
            }

            _outputArguments[0] = connectionId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult AddConnectionMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        PubSubConnectionDataType configuration,
        ref NodeId connectionId);
    #endif
    #endregion

    #region RemoveConnectionMethodState Class
    #if (!OPCUA_EXCLUDE_RemoveConnectionMethodState)
    /// <summary>
    /// Stores an instance of the RemoveConnectionMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RemoveConnectionMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RemoveConnectionMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new RemoveConnectionMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGgAAAFJlbW92ZUNvbm5lY3Rpb25NZXRob2RUeXBlAQBnNwAvAQBnN2c3" +
           "AAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAaDcALgBEaDcAAJYBAAAAAQAq" +
           "AQEbAAAADAAAAENvbm5lY3Rpb25JZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public RemoveConnectionMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            NodeId connectionId = (NodeId)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    connectionId);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult RemoveConnectionMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        NodeId connectionId);
    #endif
    #endregion

    #region PublishedDataSetState Class
    #if (!OPCUA_EXCLUDE_PublishedDataSetState)
    /// <summary>
    /// Stores an instance of the PublishedDataSetType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PublishedDataSetState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PublishedDataSetState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PublishedDataSetType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (DataSetClassId != null)
            {
                DataSetClassId.Initialize(context, DataSetClassId_InitializationString);
            }

            if (ExtensionFields != null)
            {
                ExtensionFields.Initialize(context, ExtensionFields_InitializationString);
            }
        }

        #region Initialization String
        private const string DataSetClassId_InitializationString =
           "//////////8VYIkKAgAAAAAADgAAAERhdGFTZXRDbGFzc0lkAQB3QQAuAER3QQAAAA7/////AQH/////" +
           "AAAAAA==";

        private const string ExtensionFields_InitializationString =
           "//////////8EYIAKAQAAAAAADwAAAEV4dGVuc2lvbkZpZWxkcwEAeTwALwEAgTx5PAAA/////wIAAAAE" +
           "YYIKBAAAAAAAEQAAAEFkZEV4dGVuc2lvbkZpZWxkAQB6PAAvAQCDPHo8AAABAf////8CAAAAF2CpCgIA" +
           "AAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAezwALgBEezwAAJYCAAAAAQAqAQEYAAAACQAAAEZpZWxkTmFt" +
           "ZQAU/////wAAAAAAAQAqAQEZAAAACgAAAEZpZWxkVmFsdWUAGP7///8AAAAAAAEAKAEBAAAAAQAAAAAA" +
           "AAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAHw8AC4ARHw8AACWAQAAAAEA" +
           "KgEBFgAAAAcAAABGaWVsZElkABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoE" +
           "AAAAAAAUAAAAUmVtb3ZlRXh0ZW5zaW9uRmllbGQBAH08AC8BAIY8fTwAAAEB/////wEAAAAXYKkKAgAA" +
           "AAAADgAAAElucHV0QXJndW1lbnRzAQB+PAAuAER+PAAAlgEAAAABACoBARYAAAAHAAAARmllbGRJZAAR" +
           "/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHAAAAFB1Ymxpc2hlZERhdGFTZXRUeXBlSW5zdGFuY2UBAK04AQCtOK04" +
           "AAD/////BAAAABVgiQoCAAAAAAAUAAAAQ29uZmlndXJhdGlvblZlcnNpb24BALc4AC4ARLc4AAABAAE5" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAADwAAAERhdGFTZXRNZXRhRGF0YQEAfTsALgBEfTsAAAEAuzj/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAOAAAARGF0YVNldENsYXNzSWQBAHdBAC4ARHdBAAAADv////8B" +
           "Af////8AAAAABGCACgEAAAAAAA8AAABFeHRlbnNpb25GaWVsZHMBAHk8AC8BAIE8eTwAAP////8CAAAA" +
           "BGGCCgQAAAAAABEAAABBZGRFeHRlbnNpb25GaWVsZAEAejwALwEAgzx6PAAAAQH/////AgAAABdgqQoC" +
           "AAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAHs8AC4ARHs8AACWAgAAAAEAKgEBGAAAAAkAAABGaWVsZE5h" +
           "bWUAFP////8AAAAAAAEAKgEBGQAAAAoAAABGaWVsZFZhbHVlABj+////AAAAAAABACgBAQAAAAEAAAAA" +
           "AAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQB8PAAuAER8PAAAlgEAAAAB" +
           "ACoBARYAAAAHAAAARmllbGRJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIK" +
           "BAAAAAAAFAAAAFJlbW92ZUV4dGVuc2lvbkZpZWxkAQB9PAAvAQCGPH08AAABAf////8BAAAAF2CpCgIA" +
           "AAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAfjwALgBEfjwAAJYBAAAAAQAqAQEWAAAABwAAAEZpZWxkSWQA" +
           "Ef////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<ConfigurationVersionDataType> ConfigurationVersion
        {
            get
            {
                return m_configurationVersion;
            }

            set
            {
                if (!Object.ReferenceEquals(m_configurationVersion, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_configurationVersion = value;
            }
        }

        /// <remarks />
        public PropertyState<DataSetMetaDataType> DataSetMetaData
        {
            get
            {
                return m_dataSetMetaData;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetMetaData, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetMetaData = value;
            }
        }

        /// <remarks />
        public PropertyState<Guid> DataSetClassId
        {
            get
            {
                return m_dataSetClassId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetClassId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetClassId = value;
            }
        }

        /// <remarks />
        public ExtensionFieldsState ExtensionFields
        {
            get
            {
                return m_extensionFields;
            }

            set
            {
                if (!Object.ReferenceEquals(m_extensionFields, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_extensionFields = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_configurationVersion != null)
            {
                children.Add(m_configurationVersion);
            }

            if (m_dataSetMetaData != null)
            {
                children.Add(m_dataSetMetaData);
            }

            if (m_dataSetClassId != null)
            {
                children.Add(m_dataSetClassId);
            }

            if (m_extensionFields != null)
            {
                children.Add(m_extensionFields);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ConfigurationVersion:
                {
                    if (createOrReplace)
                    {
                        if (ConfigurationVersion == null)
                        {
                            if (replacement == null)
                            {
                                ConfigurationVersion = new PropertyState<ConfigurationVersionDataType>(this);
                            }
                            else
                            {
                                ConfigurationVersion = (PropertyState<ConfigurationVersionDataType>)replacement;
                            }
                        }
                    }

                    instance = ConfigurationVersion;
                    break;
                }

                case Opc.Ua.BrowseNames.DataSetMetaData:
                {
                    if (createOrReplace)
                    {
                        if (DataSetMetaData == null)
                        {
                            if (replacement == null)
                            {
                                DataSetMetaData = new PropertyState<DataSetMetaDataType>(this);
                            }
                            else
                            {
                                DataSetMetaData = (PropertyState<DataSetMetaDataType>)replacement;
                            }
                        }
                    }

                    instance = DataSetMetaData;
                    break;
                }

                case Opc.Ua.BrowseNames.DataSetClassId:
                {
                    if (createOrReplace)
                    {
                        if (DataSetClassId == null)
                        {
                            if (replacement == null)
                            {
                                DataSetClassId = new PropertyState<Guid>(this);
                            }
                            else
                            {
                                DataSetClassId = (PropertyState<Guid>)replacement;
                            }
                        }
                    }

                    instance = DataSetClassId;
                    break;
                }

                case Opc.Ua.BrowseNames.ExtensionFields:
                {
                    if (createOrReplace)
                    {
                        if (ExtensionFields == null)
                        {
                            if (replacement == null)
                            {
                                ExtensionFields = new ExtensionFieldsState(this);
                            }
                            else
                            {
                                ExtensionFields = (ExtensionFieldsState)replacement;
                            }
                        }
                    }

                    instance = ExtensionFields;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<ConfigurationVersionDataType> m_configurationVersion;
        private PropertyState<DataSetMetaDataType> m_dataSetMetaData;
        private PropertyState<Guid> m_dataSetClassId;
        private ExtensionFieldsState m_extensionFields;
        #endregion
    }
    #endif
    #endregion

    #region ExtensionFieldsState Class
    #if (!OPCUA_EXCLUDE_ExtensionFieldsState)
    /// <summary>
    /// Stores an instance of the ExtensionFieldsType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ExtensionFieldsState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ExtensionFieldsState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ExtensionFieldsType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGwAAAEV4dGVuc2lvbkZpZWxkc1R5cGVJbnN0YW5jZQEAgTwBAIE8gTwA" +
           "AP////8CAAAABGGCCgQAAAAAABEAAABBZGRFeHRlbnNpb25GaWVsZAEAgzwALwEAgzyDPAAAAQH/////" +
           "AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAIQ8AC4ARIQ8AACWAgAAAAEAKgEBGAAAAAkA" +
           "AABGaWVsZE5hbWUAFP////8AAAAAAAEAKgEBGQAAAAoAAABGaWVsZFZhbHVlABj+////AAAAAAABACgB" +
           "AQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQCFPAAuAESF" +
           "PAAAlgEAAAABACoBARYAAAAHAAAARmllbGRJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB////" +
           "/wAAAAAEYYIKBAAAAAAAFAAAAFJlbW92ZUV4dGVuc2lvbkZpZWxkAQCGPAAvAQCGPIY8AAABAf////8B" +
           "AAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAhzwALgBEhzwAAJYBAAAAAQAqAQEWAAAABwAA" +
           "AEZpZWxkSWQAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public AddExtensionFieldMethodState AddExtensionField
        {
            get
            {
                return m_addExtensionFieldMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addExtensionFieldMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addExtensionFieldMethod = value;
            }
        }

        /// <remarks />
        public RemoveExtensionFieldMethodState RemoveExtensionField
        {
            get
            {
                return m_removeExtensionFieldMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removeExtensionFieldMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removeExtensionFieldMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_addExtensionFieldMethod != null)
            {
                children.Add(m_addExtensionFieldMethod);
            }

            if (m_removeExtensionFieldMethod != null)
            {
                children.Add(m_removeExtensionFieldMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.AddExtensionField:
                {
                    if (createOrReplace)
                    {
                        if (AddExtensionField == null)
                        {
                            if (replacement == null)
                            {
                                AddExtensionField = new AddExtensionFieldMethodState(this);
                            }
                            else
                            {
                                AddExtensionField = (AddExtensionFieldMethodState)replacement;
                            }
                        }
                    }

                    instance = AddExtensionField;
                    break;
                }

                case Opc.Ua.BrowseNames.RemoveExtensionField:
                {
                    if (createOrReplace)
                    {
                        if (RemoveExtensionField == null)
                        {
                            if (replacement == null)
                            {
                                RemoveExtensionField = new RemoveExtensionFieldMethodState(this);
                            }
                            else
                            {
                                RemoveExtensionField = (RemoveExtensionFieldMethodState)replacement;
                            }
                        }
                    }

                    instance = RemoveExtensionField;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private AddExtensionFieldMethodState m_addExtensionFieldMethod;
        private RemoveExtensionFieldMethodState m_removeExtensionFieldMethod;
        #endregion
    }
    #endif
    #endregion

    #region AddExtensionFieldMethodState Class
    #if (!OPCUA_EXCLUDE_AddExtensionFieldMethodState)
    /// <summary>
    /// Stores an instance of the AddExtensionFieldMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AddExtensionFieldMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AddExtensionFieldMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new AddExtensionFieldMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGwAAAEFkZEV4dGVuc2lvbkZpZWxkTWV0aG9kVHlwZQEAiDwALwEAiDyI" +
           "PAAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAIk8AC4ARIk8AACWAgAAAAEA" +
           "KgEBGAAAAAkAAABGaWVsZE5hbWUAFP////8AAAAAAAEAKgEBGQAAAAoAAABGaWVsZFZhbHVlABj+////" +
           "AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRz" +
           "AQCKPAAuAESKPAAAlgEAAAABACoBARYAAAAHAAAARmllbGRJZAAR/////wAAAAAAAQAoAQEAAAABAAAA" +
           "AAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public AddExtensionFieldMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            QualifiedName fieldName = (QualifiedName)_inputArguments[0];
            object fieldValue = (object)_inputArguments[1];

            NodeId fieldId = (NodeId)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    fieldName,
                    fieldValue,
                    ref fieldId);
            }

            _outputArguments[0] = fieldId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult AddExtensionFieldMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        QualifiedName fieldName,
        object fieldValue,
        ref NodeId fieldId);
    #endif
    #endregion

    #region RemoveExtensionFieldMethodState Class
    #if (!OPCUA_EXCLUDE_RemoveExtensionFieldMethodState)
    /// <summary>
    /// Stores an instance of the RemoveExtensionFieldMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RemoveExtensionFieldMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RemoveExtensionFieldMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new RemoveExtensionFieldMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAHgAAAFJlbW92ZUV4dGVuc2lvbkZpZWxkTWV0aG9kVHlwZQEAizwALwEA" +
           "izyLPAAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAIw8AC4ARIw8AACWAQAA" +
           "AAEAKgEBFgAAAAcAAABGaWVsZElkABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public RemoveExtensionFieldMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            NodeId fieldId = (NodeId)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    fieldId);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult RemoveExtensionFieldMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        NodeId fieldId);
    #endif
    #endregion

    #region PublishedDataItemsState Class
    #if (!OPCUA_EXCLUDE_PublishedDataItemsState)
    /// <summary>
    /// Stores an instance of the PublishedDataItemsType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PublishedDataItemsState : PublishedDataSetState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PublishedDataItemsState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PublishedDataItemsType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (AddVariables != null)
            {
                AddVariables.Initialize(context, AddVariables_InitializationString);
            }

            if (RemoveVariables != null)
            {
                RemoveVariables.Initialize(context, RemoveVariables_InitializationString);
            }
        }

        #region Initialization String
        private const string AddVariables_InitializationString =
           "//////////8EYYIKBAAAAAAADAAAAEFkZFZhcmlhYmxlcwEA2zgALwEA2zjbOAAAAQH/////AgAAABdg" +
           "qQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBANw4AC4ARNw4AACWBAAAAAEAKgEBJQAAABQAAABDb25m" +
           "aWd1cmF0aW9uVmVyc2lvbgEAATn/////AAAAAAABACoBASMAAAAQAAAARmllbGROYW1lQWxpYXNlcwAM" +
           "AQAAAAEAAAAAAAAAAAEAKgEBIQAAAA4AAABQcm9tb3RlZEZpZWxkcwABAQAAAAEAAAAAAAAAAAEAKgEB" +
           "IwAAAA4AAABWYXJpYWJsZXNUb0FkZAEAwTcBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAAAAEB////" +
           "/wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEA3TgALgBE3TgAAJYCAAAAAQAqAQEoAAAA" +
           "FwAAAE5ld0NvbmZpZ3VyYXRpb25WZXJzaW9uAQABOf////8AAAAAAAEAKgEBHQAAAAoAAABBZGRSZXN1" +
           "bHRzABMBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string RemoveVariables_InitializationString =
           "//////////8EYYIKBAAAAAAADwAAAFJlbW92ZVZhcmlhYmxlcwEA3jgALwEA3jjeOAAAAQH/////AgAA" +
           "ABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAN84AC4ARN84AACWAgAAAAEAKgEBJQAAABQAAABD" +
           "b25maWd1cmF0aW9uVmVyc2lvbgEAATn/////AAAAAAABACoBASQAAAARAAAAVmFyaWFibGVzVG9SZW1v" +
           "dmUABwEAAAABAAAAAAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0" +
           "cHV0QXJndW1lbnRzAQDgOAAuAETgOAAAlgIAAAABACoBASgAAAAXAAAATmV3Q29uZmlndXJhdGlvblZl" +
           "cnNpb24BAAE5/////wAAAAAAAQAqAQEgAAAADQAAAFJlbW92ZVJlc3VsdHMAEwEAAAABAAAAAAAAAAAB" +
           "ACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHgAAAFB1Ymxpc2hlZERhdGFJdGVtc1R5cGVJbnN0YW5jZQEAxjgBAMY4" +
           "xjgAAP////8FAAAAFWCJCgIAAAAAABQAAABDb25maWd1cmF0aW9uVmVyc2lvbgEA0DgALgBE0DgAAAEA" +
           "ATn/////AQH/////AAAAABVgiQoCAAAAAAAPAAAARGF0YVNldE1ldGFEYXRhAQCFOwAuAESFOwAAAQC7" +
           "OP////8BAf////8AAAAAF2CJCgIAAAAAAA0AAABQdWJsaXNoZWREYXRhAQDUOAAuAETUOAAAAQDBNwEA" +
           "AAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAADAAAAEFkZFZhcmlhYmxlcwEA2zgALwEA2zjbOAAA" +
           "AQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBANw4AC4ARNw4AACWBAAAAAEAKgEB" +
           "JQAAABQAAABDb25maWd1cmF0aW9uVmVyc2lvbgEAATn/////AAAAAAABACoBASMAAAAQAAAARmllbGRO" +
           "YW1lQWxpYXNlcwAMAQAAAAEAAAAAAAAAAAEAKgEBIQAAAA4AAABQcm9tb3RlZEZpZWxkcwABAQAAAAEA" +
           "AAAAAAAAAAEAKgEBIwAAAA4AAABWYXJpYWJsZXNUb0FkZAEAwTcBAAAAAQAAAAAAAAAAAQAoAQEAAAAB" +
           "AAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEA3TgALgBE3TgAAJYC" +
           "AAAAAQAqAQEoAAAAFwAAAE5ld0NvbmZpZ3VyYXRpb25WZXJzaW9uAQABOf////8AAAAAAAEAKgEBHQAA" +
           "AAoAAABBZGRSZXN1bHRzABMBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIK" +
           "BAAAAAAADwAAAFJlbW92ZVZhcmlhYmxlcwEA3jgALwEA3jjeOAAAAQH/////AgAAABdgqQoCAAAAAAAO" +
           "AAAASW5wdXRBcmd1bWVudHMBAN84AC4ARN84AACWAgAAAAEAKgEBJQAAABQAAABDb25maWd1cmF0aW9u" +
           "VmVyc2lvbgEAATn/////AAAAAAABACoBASQAAAARAAAAVmFyaWFibGVzVG9SZW1vdmUABwEAAAABAAAA" +
           "AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRz" +
           "AQDgOAAuAETgOAAAlgIAAAABACoBASgAAAAXAAAATmV3Q29uZmlndXJhdGlvblZlcnNpb24BAAE5////" +
           "/wAAAAAAAQAqAQEgAAAADQAAAFJlbW92ZVJlc3VsdHMAEwEAAAABAAAAAAAAAAABACgBAQAAAAEAAAAA" +
           "AAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<PublishedVariableDataType[]> PublishedData
        {
            get
            {
                return m_publishedData;
            }

            set
            {
                if (!Object.ReferenceEquals(m_publishedData, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_publishedData = value;
            }
        }

        /// <remarks />
        public PublishedDataItemsAddVariablesMethodState AddVariables
        {
            get
            {
                return m_addVariablesMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addVariablesMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addVariablesMethod = value;
            }
        }

        /// <remarks />
        public PublishedDataItemsRemoveVariablesMethodState RemoveVariables
        {
            get
            {
                return m_removeVariablesMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removeVariablesMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removeVariablesMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_publishedData != null)
            {
                children.Add(m_publishedData);
            }

            if (m_addVariablesMethod != null)
            {
                children.Add(m_addVariablesMethod);
            }

            if (m_removeVariablesMethod != null)
            {
                children.Add(m_removeVariablesMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.PublishedData:
                {
                    if (createOrReplace)
                    {
                        if (PublishedData == null)
                        {
                            if (replacement == null)
                            {
                                PublishedData = new PropertyState<PublishedVariableDataType[]>(this);
                            }
                            else
                            {
                                PublishedData = (PropertyState<PublishedVariableDataType[]>)replacement;
                            }
                        }
                    }

                    instance = PublishedData;
                    break;
                }

                case Opc.Ua.BrowseNames.AddVariables:
                {
                    if (createOrReplace)
                    {
                        if (AddVariables == null)
                        {
                            if (replacement == null)
                            {
                                AddVariables = new PublishedDataItemsAddVariablesMethodState(this);
                            }
                            else
                            {
                                AddVariables = (PublishedDataItemsAddVariablesMethodState)replacement;
                            }
                        }
                    }

                    instance = AddVariables;
                    break;
                }

                case Opc.Ua.BrowseNames.RemoveVariables:
                {
                    if (createOrReplace)
                    {
                        if (RemoveVariables == null)
                        {
                            if (replacement == null)
                            {
                                RemoveVariables = new PublishedDataItemsRemoveVariablesMethodState(this);
                            }
                            else
                            {
                                RemoveVariables = (PublishedDataItemsRemoveVariablesMethodState)replacement;
                            }
                        }
                    }

                    instance = RemoveVariables;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<PublishedVariableDataType[]> m_publishedData;
        private PublishedDataItemsAddVariablesMethodState m_addVariablesMethod;
        private PublishedDataItemsRemoveVariablesMethodState m_removeVariablesMethod;
        #endregion
    }
    #endif
    #endregion

    #region PublishedDataItemsAddVariablesMethodState Class
    #if (!OPCUA_EXCLUDE_PublishedDataItemsAddVariablesMethodState)
    /// <summary>
    /// Stores an instance of the PublishedDataItemsAddVariablesMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PublishedDataItemsAddVariablesMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PublishedDataItemsAddVariablesMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new PublishedDataItemsAddVariablesMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAKAAAAFB1Ymxpc2hlZERhdGFJdGVtc0FkZFZhcmlhYmxlc01ldGhvZFR5" +
           "cGUBAOQ4AC8BAOQ45DgAAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQDlOAAu" +
           "AETlOAAAlgQAAAABACoBASUAAAAUAAAAQ29uZmlndXJhdGlvblZlcnNpb24BAAE5/////wAAAAAAAQAq" +
           "AQEjAAAAEAAAAEZpZWxkTmFtZUFsaWFzZXMADAEAAAABAAAAAAAAAAABACoBASEAAAAOAAAAUHJvbW90" +
           "ZWRGaWVsZHMAAQEAAAABAAAAAAAAAAABACoBASMAAAAOAAAAVmFyaWFibGVzVG9BZGQBAME3AQAAAAEA" +
           "AAAAAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVu" +
           "dHMBAOY4AC4AROY4AACWAgAAAAEAKgEBKAAAABcAAABOZXdDb25maWd1cmF0aW9uVmVyc2lvbgEAATn/" +
           "////AAAAAAABACoBAR0AAAAKAAAAQWRkUmVzdWx0cwATAQAAAAEAAAAAAAAAAAEAKAEBAAAAAQAAAAAA" +
           "AAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public PublishedDataItemsAddVariablesMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            ConfigurationVersionDataType configurationVersion = (ConfigurationVersionDataType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[0]);
            string[] fieldNameAliases = (string[])_inputArguments[1];
            bool[] promotedFields = (bool[])_inputArguments[2];
            PublishedVariableDataType[] variablesToAdd = (PublishedVariableDataType[])ExtensionObject.ToArray(_inputArguments[3], typeof(PublishedVariableDataType));

            ConfigurationVersionDataType newConfigurationVersion = (ConfigurationVersionDataType)_outputArguments[0];
            StatusCode[] addResults = (StatusCode[])_outputArguments[1];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    configurationVersion,
                    fieldNameAliases,
                    promotedFields,
                    variablesToAdd,
                    ref newConfigurationVersion,
                    ref addResults);
            }

            _outputArguments[0] = newConfigurationVersion;
            _outputArguments[1] = addResults;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult PublishedDataItemsAddVariablesMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        ConfigurationVersionDataType configurationVersion,
        string[] fieldNameAliases,
        bool[] promotedFields,
        PublishedVariableDataType[] variablesToAdd,
        ref ConfigurationVersionDataType newConfigurationVersion,
        ref StatusCode[] addResults);
    #endif
    #endregion

    #region PublishedDataItemsRemoveVariablesMethodState Class
    #if (!OPCUA_EXCLUDE_PublishedDataItemsRemoveVariablesMethodState)
    /// <summary>
    /// Stores an instance of the PublishedDataItemsRemoveVariablesMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PublishedDataItemsRemoveVariablesMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PublishedDataItemsRemoveVariablesMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new PublishedDataItemsRemoveVariablesMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAKwAAAFB1Ymxpc2hlZERhdGFJdGVtc1JlbW92ZVZhcmlhYmxlc01ldGhv" +
           "ZFR5cGUBAOc4AC8BAOc45zgAAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQDo" +
           "OAAuAEToOAAAlgIAAAABACoBASUAAAAUAAAAQ29uZmlndXJhdGlvblZlcnNpb24BAAE5/////wAAAAAA" +
           "AQAqAQEkAAAAEQAAAFZhcmlhYmxlc1RvUmVtb3ZlAAcBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAA" +
           "AAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEA6TgALgBE6TgAAJYCAAAAAQAq" +
           "AQEoAAAAFwAAAE5ld0NvbmZpZ3VyYXRpb25WZXJzaW9uAQABOf////8AAAAAAAEAKgEBIAAAAA0AAABS" +
           "ZW1vdmVSZXN1bHRzABMBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public PublishedDataItemsRemoveVariablesMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            ConfigurationVersionDataType configurationVersion = (ConfigurationVersionDataType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[0]);
            uint[] variablesToRemove = (uint[])_inputArguments[1];

            ConfigurationVersionDataType newConfigurationVersion = (ConfigurationVersionDataType)_outputArguments[0];
            StatusCode[] removeResults = (StatusCode[])_outputArguments[1];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    configurationVersion,
                    variablesToRemove,
                    ref newConfigurationVersion,
                    ref removeResults);
            }

            _outputArguments[0] = newConfigurationVersion;
            _outputArguments[1] = removeResults;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult PublishedDataItemsRemoveVariablesMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        ConfigurationVersionDataType configurationVersion,
        uint[] variablesToRemove,
        ref ConfigurationVersionDataType newConfigurationVersion,
        ref StatusCode[] removeResults);
    #endif
    #endregion

    #region PublishedEventsState Class
    #if (!OPCUA_EXCLUDE_PublishedEventsState)
    /// <summary>
    /// Stores an instance of the PublishedEventsType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PublishedEventsState : PublishedDataSetState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PublishedEventsState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PublishedEventsType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (ModifyFieldSelection != null)
            {
                ModifyFieldSelection.Initialize(context, ModifyFieldSelection_InitializationString);
            }
        }

        #region Initialization String
        private const string ModifyFieldSelection_InitializationString =
           "//////////8EYYIKBAAAAAAAFAAAAE1vZGlmeUZpZWxkU2VsZWN0aW9uAQDMOgAvAQDMOsw6AAABAf//" +
           "//8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAzToALgBEzToAAJYEAAAAAQAqAQElAAAA" +
           "FAAAAENvbmZpZ3VyYXRpb25WZXJzaW9uAQABOf////8AAAAAAAEAKgEBIwAAABAAAABGaWVsZE5hbWVB" +
           "bGlhc2VzAAwBAAAAAQAAAAAAAAAAAQAqAQEhAAAADgAAAFByb21vdGVkRmllbGRzAAEBAAAAAQAAAAAA" +
           "AAAAAQAqAQEjAAAADgAAAFNlbGVjdGVkRmllbGRzAQBZAgEAAAABAAAAAAAAAAABACgBAQAAAAEAAAAA" +
           "AAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQCdPAAuAESdPAAAlgEAAAAB" +
           "ACoBASgAAAAXAAAATmV3Q29uZmlndXJhdGlvblZlcnNpb24BAAE5/////wAAAAAAAQAoAQEAAAABAAAA" +
           "AAAAAAEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGwAAAFB1Ymxpc2hlZEV2ZW50c1R5cGVJbnN0YW5jZQEA7DgBAOw47DgA" +
           "AP////8GAAAAFWCJCgIAAAAAABQAAABDb25maWd1cmF0aW9uVmVyc2lvbgEA9jgALgBE9jgAAAEAATn/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAPAAAARGF0YVNldE1ldGFEYXRhAQCNOwAuAESNOwAAAQC7OP//" +
           "//8BAf////8AAAAAFWDJCgIAAAATAAAAUHViU3ViRXZlbnROb3RpZmllcgAADQAAAEV2ZW50Tm90aWZp" +
           "ZXIBAPo4AC4ARPo4AAAAEf////8BAf////8AAAAAF2CJCgIAAAAAAA4AAABTZWxlY3RlZEZpZWxkcwEA" +
           "+zgALgBE+zgAAAEAWQIBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAYAAABGaWx0ZXIBAPw4" +
           "AC4ARPw4AAABAEoC/////wEB/////wAAAAAEYYIKBAAAAAAAFAAAAE1vZGlmeUZpZWxkU2VsZWN0aW9u" +
           "AQDMOgAvAQDMOsw6AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAzToALgBE" +
           "zToAAJYEAAAAAQAqAQElAAAAFAAAAENvbmZpZ3VyYXRpb25WZXJzaW9uAQABOf////8AAAAAAAEAKgEB" +
           "IwAAABAAAABGaWVsZE5hbWVBbGlhc2VzAAwBAAAAAQAAAAAAAAAAAQAqAQEhAAAADgAAAFByb21vdGVk" +
           "RmllbGRzAAEBAAAAAQAAAAAAAAAAAQAqAQEjAAAADgAAAFNlbGVjdGVkRmllbGRzAQBZAgEAAAABAAAA" +
           "AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRz" +
           "AQCdPAAuAESdPAAAlgEAAAABACoBASgAAAAXAAAATmV3Q29uZmlndXJhdGlvblZlcnNpb24BAAE5////" +
           "/wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> PubSubEventNotifier
        {
            get
            {
                return m_pubSubEventNotifier;
            }

            set
            {
                if (!Object.ReferenceEquals(m_pubSubEventNotifier, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_pubSubEventNotifier = value;
            }
        }

        /// <remarks />
        public PropertyState<SimpleAttributeOperand[]> SelectedFields
        {
            get
            {
                return m_selectedFields;
            }

            set
            {
                if (!Object.ReferenceEquals(m_selectedFields, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_selectedFields = value;
            }
        }

        /// <remarks />
        public PropertyState<ContentFilter> Filter
        {
            get
            {
                return m_filter;
            }

            set
            {
                if (!Object.ReferenceEquals(m_filter, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_filter = value;
            }
        }

        /// <remarks />
        public PublishedEventsTypeModifyFieldSelectionMethodState ModifyFieldSelection
        {
            get
            {
                return m_modifyFieldSelectionMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_modifyFieldSelectionMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_modifyFieldSelectionMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_pubSubEventNotifier != null)
            {
                children.Add(m_pubSubEventNotifier);
            }

            if (m_selectedFields != null)
            {
                children.Add(m_selectedFields);
            }

            if (m_filter != null)
            {
                children.Add(m_filter);
            }

            if (m_modifyFieldSelectionMethod != null)
            {
                children.Add(m_modifyFieldSelectionMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.PubSubEventNotifier:
                {
                    if (createOrReplace)
                    {
                        if (PubSubEventNotifier == null)
                        {
                            if (replacement == null)
                            {
                                PubSubEventNotifier = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                PubSubEventNotifier = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = PubSubEventNotifier;
                    break;
                }

                case Opc.Ua.BrowseNames.SelectedFields:
                {
                    if (createOrReplace)
                    {
                        if (SelectedFields == null)
                        {
                            if (replacement == null)
                            {
                                SelectedFields = new PropertyState<SimpleAttributeOperand[]>(this);
                            }
                            else
                            {
                                SelectedFields = (PropertyState<SimpleAttributeOperand[]>)replacement;
                            }
                        }
                    }

                    instance = SelectedFields;
                    break;
                }

                case Opc.Ua.BrowseNames.Filter:
                {
                    if (createOrReplace)
                    {
                        if (Filter == null)
                        {
                            if (replacement == null)
                            {
                                Filter = new PropertyState<ContentFilter>(this);
                            }
                            else
                            {
                                Filter = (PropertyState<ContentFilter>)replacement;
                            }
                        }
                    }

                    instance = Filter;
                    break;
                }

                case Opc.Ua.BrowseNames.ModifyFieldSelection:
                {
                    if (createOrReplace)
                    {
                        if (ModifyFieldSelection == null)
                        {
                            if (replacement == null)
                            {
                                ModifyFieldSelection = new PublishedEventsTypeModifyFieldSelectionMethodState(this);
                            }
                            else
                            {
                                ModifyFieldSelection = (PublishedEventsTypeModifyFieldSelectionMethodState)replacement;
                            }
                        }
                    }

                    instance = ModifyFieldSelection;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_pubSubEventNotifier;
        private PropertyState<SimpleAttributeOperand[]> m_selectedFields;
        private PropertyState<ContentFilter> m_filter;
        private PublishedEventsTypeModifyFieldSelectionMethodState m_modifyFieldSelectionMethod;
        #endregion
    }
    #endif
    #endregion

    #region PublishedEventsTypeModifyFieldSelectionMethodState Class
    #if (!OPCUA_EXCLUDE_PublishedEventsTypeModifyFieldSelectionMethodState)
    /// <summary>
    /// Stores an instance of the PublishedEventsTypeModifyFieldSelectionMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PublishedEventsTypeModifyFieldSelectionMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PublishedEventsTypeModifyFieldSelectionMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new PublishedEventsTypeModifyFieldSelectionMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAMQAAAFB1Ymxpc2hlZEV2ZW50c1R5cGVNb2RpZnlGaWVsZFNlbGVjdGlv" +
           "bk1ldGhvZFR5cGUBAM46AC8BAM46zjoAAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1l" +
           "bnRzAQDPOgAuAETPOgAAlgQAAAABACoBASUAAAAUAAAAQ29uZmlndXJhdGlvblZlcnNpb24BAAE5////" +
           "/wAAAAAAAQAqAQEjAAAAEAAAAEZpZWxkTmFtZUFsaWFzZXMADAEAAAABAAAAAAAAAAABACoBASEAAAAO" +
           "AAAAUHJvbW90ZWRGaWVsZHMAAQEAAAABAAAAAAAAAAABACoBASMAAAAOAAAAU2VsZWN0ZWRGaWVsZHMB" +
           "AFkCAQAAAAEAAAAAAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRw" +
           "dXRBcmd1bWVudHMBAJ48AC4ARJ48AACWAQAAAAEAKgEBKAAAABcAAABOZXdDb25maWd1cmF0aW9uVmVy" +
           "c2lvbgEAATn/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public PublishedEventsTypeModifyFieldSelectionMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            ConfigurationVersionDataType configurationVersion = (ConfigurationVersionDataType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[0]);
            string[] fieldNameAliases = (string[])_inputArguments[1];
            bool[] promotedFields = (bool[])_inputArguments[2];
            SimpleAttributeOperand[] selectedFields = (SimpleAttributeOperand[])ExtensionObject.ToArray(_inputArguments[3], typeof(SimpleAttributeOperand));

            ConfigurationVersionDataType newConfigurationVersion = (ConfigurationVersionDataType)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    configurationVersion,
                    fieldNameAliases,
                    promotedFields,
                    selectedFields,
                    ref newConfigurationVersion);
            }

            _outputArguments[0] = newConfigurationVersion;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult PublishedEventsTypeModifyFieldSelectionMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        ConfigurationVersionDataType configurationVersion,
        string[] fieldNameAliases,
        bool[] promotedFields,
        SimpleAttributeOperand[] selectedFields,
        ref ConfigurationVersionDataType newConfigurationVersion);
    #endif
    #endregion

    #region DataSetFolderState Class
    #if (!OPCUA_EXCLUDE_DataSetFolderState)
    /// <summary>
    /// Stores an instance of the DataSetFolderType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DataSetFolderState : FolderState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DataSetFolderState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.DataSetFolderType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (AddPublishedDataItems != null)
            {
                AddPublishedDataItems.Initialize(context, AddPublishedDataItems_InitializationString);
            }

            if (AddPublishedEvents != null)
            {
                AddPublishedEvents.Initialize(context, AddPublishedEvents_InitializationString);
            }

            if (AddPublishedDataItemsTemplate != null)
            {
                AddPublishedDataItemsTemplate.Initialize(context, AddPublishedDataItemsTemplate_InitializationString);
            }

            if (AddPublishedEventsTemplate != null)
            {
                AddPublishedEventsTemplate.Initialize(context, AddPublishedEventsTemplate_InitializationString);
            }

            if (RemovePublishedDataSet != null)
            {
                RemovePublishedDataSet.Initialize(context, RemovePublishedDataSet_InitializationString);
            }

            if (AddDataSetFolder != null)
            {
                AddDataSetFolder.Initialize(context, AddDataSetFolder_InitializationString);
            }

            if (RemoveDataSetFolder != null)
            {
                RemoveDataSetFolder.Initialize(context, RemoveDataSetFolder_InitializationString);
            }
        }

        #region Initialization String
        private const string AddPublishedDataItems_InitializationString =
           "//////////8EYYIKBAAAAAAAFQAAAEFkZFB1Ymxpc2hlZERhdGFJdGVtcwEAnTgALwEAnTidOAAAAQH/" +
           "////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAJ44AC4ARJ44AACWBAAAAAEAKgEBEwAA" +
           "AAQAAABOYW1lAAz/////AAAAAAABACoBASMAAAAQAAAARmllbGROYW1lQWxpYXNlcwAMAQAAAAEAAAAA" +
           "AAAAAAEAKgEBHwAAAAoAAABGaWVsZEZsYWdzAQAgPgEAAAABAAAAAAAAAAABACoBASMAAAAOAAAAVmFy" +
           "aWFibGVzVG9BZGQBAME3AQAAAAEAAAAAAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIA" +
           "AAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAJ84AC4ARJ84AACWAwAAAAEAKgEBHAAAAA0AAABEYXRhU2V0" +
           "Tm9kZUlkABH/////AAAAAAABACoBASUAAAAUAAAAQ29uZmlndXJhdGlvblZlcnNpb24BAAE5/////wAA" +
           "AAAAAQAqAQEdAAAACgAAAEFkZFJlc3VsdHMAEwEAAAABAAAAAAAAAAABACgBAQAAAAEAAAAAAAAAAQH/" +
           "////AAAAAA==";

        private const string AddPublishedEvents_InitializationString =
           "//////////8EYYIKBAAAAAAAEgAAAEFkZFB1Ymxpc2hlZEV2ZW50cwEAoDgALwEAoDigOAAAAQH/////" +
           "AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAKE4AC4ARKE4AACWBgAAAAEAKgEBEwAAAAQA" +
           "AABOYW1lAAz/////AAAAAAABACoBARwAAAANAAAARXZlbnROb3RpZmllcgAR/////wAAAAAAAQAqAQEj" +
           "AAAAEAAAAEZpZWxkTmFtZUFsaWFzZXMADAEAAAABAAAAAAAAAAABACoBAR8AAAAKAAAARmllbGRGbGFn" +
           "cwEAID4BAAAAAQAAAAAAAAAAAQAqAQEjAAAADgAAAFNlbGVjdGVkRmllbGRzAQBZAgEAAAABAAAAAAAA" +
           "AAABACoBARcAAAAGAAAARmlsdGVyAQBKAv////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA" +
           "F2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAKI4AC4ARKI4AACWAgAAAAEAKgEBJQAAABQAAABD" +
           "b25maWd1cmF0aW9uVmVyc2lvbgEAATn/////AAAAAAABACoBARwAAAANAAAARGF0YVNldE5vZGVJZAAR" +
           "/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string AddPublishedDataItemsTemplate_InitializationString =
           "//////////8EYYIKBAAAAAAAHQAAAEFkZFB1Ymxpc2hlZERhdGFJdGVtc1RlbXBsYXRlAQAnQgAvAQAn" +
           "QidCAAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAPkIALgBEPkIAAJYDAAAA" +
           "AQAqAQETAAAABAAAAE5hbWUADP////8AAAAAAAEAKgEBIAAAAA8AAABEYXRhU2V0TWV0YURhdGEBALs4" +
           "/////wAAAAAAAQAqAQEjAAAADgAAAFZhcmlhYmxlc1RvQWRkAQDBNwEAAAABAAAAAAAAAAABACgBAQAA" +
           "AAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQA/QgAuAEQ/QgAA" +
           "lgIAAAABACoBARwAAAANAAAARGF0YVNldE5vZGVJZAAR/////wAAAAAAAQAqAQEdAAAACgAAAEFkZFJl" +
           "c3VsdHMAEwEAAAABAAAAAAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";

        private const string AddPublishedEventsTemplate_InitializationString =
           "//////////8EYYIKBAAAAAAAGgAAAEFkZFB1Ymxpc2hlZEV2ZW50c1RlbXBsYXRlAQBAQgAvAQBAQkBC" +
           "AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAQUIALgBEQUIAAJYFAAAAAQAq" +
           "AQETAAAABAAAAE5hbWUADP////8AAAAAAAEAKgEBIAAAAA8AAABEYXRhU2V0TWV0YURhdGEBALs4////" +
           "/wAAAAAAAQAqAQEcAAAADQAAAEV2ZW50Tm90aWZpZXIAEf////8AAAAAAAEAKgEBIwAAAA4AAABTZWxl" +
           "Y3RlZEZpZWxkcwEAWQIBAAAAAQAAAAAAAAAAAQAqAQEXAAAABgAAAEZpbHRlcgEASgL/////AAAAAAAB" +
           "ACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQBLQgAu" +
           "AERLQgAAlgEAAAABACoBARwAAAANAAAARGF0YVNldE5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAA" +
           "AAAAAAEB/////wAAAAA=";

        private const string RemovePublishedDataSet_InitializationString =
           "//////////8EYYIKBAAAAAAAFgAAAFJlbW92ZVB1Ymxpc2hlZERhdGFTZXQBAKM4AC8BAKM4ozgAAAEB" +
           "/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQCkOAAuAESkOAAAlgEAAAABACoBARwA" +
           "AAANAAAARGF0YVNldE5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string AddDataSetFolder_InitializationString =
           "//////////8EYYIKBAAAAAAAEAAAAEFkZERhdGFTZXRGb2xkZXIBAGJCAC8BAGJCYkIAAAEB/////wIA" +
           "AAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBjQgAuAERjQgAAlgEAAAABACoBARMAAAAEAAAA" +
           "TmFtZQAM/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1" +
           "dEFyZ3VtZW50cwEAZEIALgBEZEIAAJYBAAAAAQAqAQEiAAAAEwAAAERhdGFTZXRGb2xkZXJOb2RlSWQA" +
           "Ef////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";

        private const string RemoveDataSetFolder_InitializationString =
           "//////////8EYYIKBAAAAAAAEwAAAFJlbW92ZURhdGFTZXRGb2xkZXIBAGVCAC8BAGVCZUIAAAEB////" +
           "/wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBvQgAuAERvQgAAlgEAAAABACoBASIAAAAT" +
           "AAAARGF0YVNldEZvbGRlck5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGQAAAERhdGFTZXRGb2xkZXJUeXBlSW5zdGFuY2UBAI04AQCNOI04AAD/" +
           "////BwAAAARhggoEAAAAAAAVAAAAQWRkUHVibGlzaGVkRGF0YUl0ZW1zAQCdOAAvAQCdOJ04AAABAf//" +
           "//8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAnjgALgBEnjgAAJYEAAAAAQAqAQETAAAA" +
           "BAAAAE5hbWUADP////8AAAAAAAEAKgEBIwAAABAAAABGaWVsZE5hbWVBbGlhc2VzAAwBAAAAAQAAAAAA" +
           "AAAAAQAqAQEfAAAACgAAAEZpZWxkRmxhZ3MBACA+AQAAAAEAAAAAAAAAAAEAKgEBIwAAAA4AAABWYXJp" +
           "YWJsZXNUb0FkZAEAwTcBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAA" +
           "AAAADwAAAE91dHB1dEFyZ3VtZW50cwEAnzgALgBEnzgAAJYDAAAAAQAqAQEcAAAADQAAAERhdGFTZXRO" +
           "b2RlSWQAEf////8AAAAAAAEAKgEBJQAAABQAAABDb25maWd1cmF0aW9uVmVyc2lvbgEAATn/////AAAA" +
           "AAABACoBAR0AAAAKAAAAQWRkUmVzdWx0cwATAQAAAAEAAAAAAAAAAAEAKAEBAAAAAQAAAAAAAAABAf//" +
           "//8AAAAABGGCCgQAAAAAABIAAABBZGRQdWJsaXNoZWRFdmVudHMBAKA4AC8BAKA4oDgAAAEB/////wIA" +
           "AAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQChOAAuAEShOAAAlgYAAAABACoBARMAAAAEAAAA" +
           "TmFtZQAM/////wAAAAAAAQAqAQEcAAAADQAAAEV2ZW50Tm90aWZpZXIAEf////8AAAAAAAEAKgEBIwAA" +
           "ABAAAABGaWVsZE5hbWVBbGlhc2VzAAwBAAAAAQAAAAAAAAAAAQAqAQEfAAAACgAAAEZpZWxkRmxhZ3MB" +
           "ACA+AQAAAAEAAAAAAAAAAAEAKgEBIwAAAA4AAABTZWxlY3RlZEZpZWxkcwEAWQIBAAAAAQAAAAAAAAAA" +
           "AQAqAQEXAAAABgAAAEZpbHRlcgEASgL/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdg" +
           "qQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQCiOAAuAESiOAAAlgIAAAABACoBASUAAAAUAAAAQ29u" +
           "ZmlndXJhdGlvblZlcnNpb24BAAE5/////wAAAAAAAQAqAQEcAAAADQAAAERhdGFTZXROb2RlSWQAEf//" +
           "//8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAAB0AAABBZGRQdWJsaXNoZWRE" +
           "YXRhSXRlbXNUZW1wbGF0ZQEAJ0IALwEAJ0InQgAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRB" +
           "cmd1bWVudHMBAD5CAC4ARD5CAACWAwAAAAEAKgEBEwAAAAQAAABOYW1lAAz/////AAAAAAABACoBASAA" +
           "AAAPAAAARGF0YVNldE1ldGFEYXRhAQC7OP////8AAAAAAAEAKgEBIwAAAA4AAABWYXJpYWJsZXNUb0Fk" +
           "ZAEAwTcBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91" +
           "dHB1dEFyZ3VtZW50cwEAP0IALgBEP0IAAJYCAAAAAQAqAQEcAAAADQAAAERhdGFTZXROb2RlSWQAEf//" +
           "//8AAAAAAAEAKgEBHQAAAAoAAABBZGRSZXN1bHRzABMBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAA" +
           "AAEB/////wAAAAAEYYIKBAAAAAAAGgAAAEFkZFB1Ymxpc2hlZEV2ZW50c1RlbXBsYXRlAQBAQgAvAQBA" +
           "QkBCAAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAQUIALgBEQUIAAJYFAAAA" +
           "AQAqAQETAAAABAAAAE5hbWUADP////8AAAAAAAEAKgEBIAAAAA8AAABEYXRhU2V0TWV0YURhdGEBALs4" +
           "/////wAAAAAAAQAqAQEcAAAADQAAAEV2ZW50Tm90aWZpZXIAEf////8AAAAAAAEAKgEBIwAAAA4AAABT" +
           "ZWxlY3RlZEZpZWxkcwEAWQIBAAAAAQAAAAAAAAAAAQAqAQEXAAAABgAAAEZpbHRlcgEASgL/////AAAA" +
           "AAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQBL" +
           "QgAuAERLQgAAlgEAAAABACoBARwAAAANAAAARGF0YVNldE5vZGVJZAAR/////wAAAAAAAQAoAQEAAAAB" +
           "AAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAAFgAAAFJlbW92ZVB1Ymxpc2hlZERhdGFTZXQBAKM4AC8B" +
           "AKM4ozgAAAEB/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQCkOAAuAESkOAAAlgEA" +
           "AAABACoBARwAAAANAAAARGF0YVNldE5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB////" +
           "/wAAAAAEYYIKBAAAAAAAEAAAAEFkZERhdGFTZXRGb2xkZXIBAGJCAC8BAGJCYkIAAAEB/////wIAAAAX" +
           "YKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBjQgAuAERjQgAAlgEAAAABACoBARMAAAAEAAAATmFt" +
           "ZQAM/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFy" +
           "Z3VtZW50cwEAZEIALgBEZEIAAJYBAAAAAQAqAQEiAAAAEwAAAERhdGFTZXRGb2xkZXJOb2RlSWQAEf//" +
           "//8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAABGGCCgQAAAAAABMAAABSZW1vdmVEYXRhU2V0" +
           "Rm9sZGVyAQBlQgAvAQBlQmVCAAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA" +
           "b0IALgBEb0IAAJYBAAAAAQAqAQEiAAAAEwAAAERhdGFTZXRGb2xkZXJOb2RlSWQAEf////8AAAAAAAEA" +
           "KAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public AddPublishedDataItemsMethodState AddPublishedDataItems
        {
            get
            {
                return m_addPublishedDataItemsMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addPublishedDataItemsMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addPublishedDataItemsMethod = value;
            }
        }

        /// <remarks />
        public AddPublishedEventsMethodState AddPublishedEvents
        {
            get
            {
                return m_addPublishedEventsMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addPublishedEventsMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addPublishedEventsMethod = value;
            }
        }

        /// <remarks />
        public AddPublishedDataItemsTemplateMethodState AddPublishedDataItemsTemplate
        {
            get
            {
                return m_addPublishedDataItemsTemplateMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addPublishedDataItemsTemplateMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addPublishedDataItemsTemplateMethod = value;
            }
        }

        /// <remarks />
        public AddPublishedEventsTemplateMethodState AddPublishedEventsTemplate
        {
            get
            {
                return m_addPublishedEventsTemplateMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addPublishedEventsTemplateMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addPublishedEventsTemplateMethod = value;
            }
        }

        /// <remarks />
        public RemovePublishedDataSetMethodState RemovePublishedDataSet
        {
            get
            {
                return m_removePublishedDataSetMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removePublishedDataSetMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removePublishedDataSetMethod = value;
            }
        }

        /// <remarks />
        public AddDataSetFolderMethodState AddDataSetFolder
        {
            get
            {
                return m_addDataSetFolderMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addDataSetFolderMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addDataSetFolderMethod = value;
            }
        }

        /// <remarks />
        public RemoveDataSetFolderMethodState RemoveDataSetFolder
        {
            get
            {
                return m_removeDataSetFolderMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removeDataSetFolderMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removeDataSetFolderMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_addPublishedDataItemsMethod != null)
            {
                children.Add(m_addPublishedDataItemsMethod);
            }

            if (m_addPublishedEventsMethod != null)
            {
                children.Add(m_addPublishedEventsMethod);
            }

            if (m_addPublishedDataItemsTemplateMethod != null)
            {
                children.Add(m_addPublishedDataItemsTemplateMethod);
            }

            if (m_addPublishedEventsTemplateMethod != null)
            {
                children.Add(m_addPublishedEventsTemplateMethod);
            }

            if (m_removePublishedDataSetMethod != null)
            {
                children.Add(m_removePublishedDataSetMethod);
            }

            if (m_addDataSetFolderMethod != null)
            {
                children.Add(m_addDataSetFolderMethod);
            }

            if (m_removeDataSetFolderMethod != null)
            {
                children.Add(m_removeDataSetFolderMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.AddPublishedDataItems:
                {
                    if (createOrReplace)
                    {
                        if (AddPublishedDataItems == null)
                        {
                            if (replacement == null)
                            {
                                AddPublishedDataItems = new AddPublishedDataItemsMethodState(this);
                            }
                            else
                            {
                                AddPublishedDataItems = (AddPublishedDataItemsMethodState)replacement;
                            }
                        }
                    }

                    instance = AddPublishedDataItems;
                    break;
                }

                case Opc.Ua.BrowseNames.AddPublishedEvents:
                {
                    if (createOrReplace)
                    {
                        if (AddPublishedEvents == null)
                        {
                            if (replacement == null)
                            {
                                AddPublishedEvents = new AddPublishedEventsMethodState(this);
                            }
                            else
                            {
                                AddPublishedEvents = (AddPublishedEventsMethodState)replacement;
                            }
                        }
                    }

                    instance = AddPublishedEvents;
                    break;
                }

                case Opc.Ua.BrowseNames.AddPublishedDataItemsTemplate:
                {
                    if (createOrReplace)
                    {
                        if (AddPublishedDataItemsTemplate == null)
                        {
                            if (replacement == null)
                            {
                                AddPublishedDataItemsTemplate = new AddPublishedDataItemsTemplateMethodState(this);
                            }
                            else
                            {
                                AddPublishedDataItemsTemplate = (AddPublishedDataItemsTemplateMethodState)replacement;
                            }
                        }
                    }

                    instance = AddPublishedDataItemsTemplate;
                    break;
                }

                case Opc.Ua.BrowseNames.AddPublishedEventsTemplate:
                {
                    if (createOrReplace)
                    {
                        if (AddPublishedEventsTemplate == null)
                        {
                            if (replacement == null)
                            {
                                AddPublishedEventsTemplate = new AddPublishedEventsTemplateMethodState(this);
                            }
                            else
                            {
                                AddPublishedEventsTemplate = (AddPublishedEventsTemplateMethodState)replacement;
                            }
                        }
                    }

                    instance = AddPublishedEventsTemplate;
                    break;
                }

                case Opc.Ua.BrowseNames.RemovePublishedDataSet:
                {
                    if (createOrReplace)
                    {
                        if (RemovePublishedDataSet == null)
                        {
                            if (replacement == null)
                            {
                                RemovePublishedDataSet = new RemovePublishedDataSetMethodState(this);
                            }
                            else
                            {
                                RemovePublishedDataSet = (RemovePublishedDataSetMethodState)replacement;
                            }
                        }
                    }

                    instance = RemovePublishedDataSet;
                    break;
                }

                case Opc.Ua.BrowseNames.AddDataSetFolder:
                {
                    if (createOrReplace)
                    {
                        if (AddDataSetFolder == null)
                        {
                            if (replacement == null)
                            {
                                AddDataSetFolder = new AddDataSetFolderMethodState(this);
                            }
                            else
                            {
                                AddDataSetFolder = (AddDataSetFolderMethodState)replacement;
                            }
                        }
                    }

                    instance = AddDataSetFolder;
                    break;
                }

                case Opc.Ua.BrowseNames.RemoveDataSetFolder:
                {
                    if (createOrReplace)
                    {
                        if (RemoveDataSetFolder == null)
                        {
                            if (replacement == null)
                            {
                                RemoveDataSetFolder = new RemoveDataSetFolderMethodState(this);
                            }
                            else
                            {
                                RemoveDataSetFolder = (RemoveDataSetFolderMethodState)replacement;
                            }
                        }
                    }

                    instance = RemoveDataSetFolder;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private AddPublishedDataItemsMethodState m_addPublishedDataItemsMethod;
        private AddPublishedEventsMethodState m_addPublishedEventsMethod;
        private AddPublishedDataItemsTemplateMethodState m_addPublishedDataItemsTemplateMethod;
        private AddPublishedEventsTemplateMethodState m_addPublishedEventsTemplateMethod;
        private RemovePublishedDataSetMethodState m_removePublishedDataSetMethod;
        private AddDataSetFolderMethodState m_addDataSetFolderMethod;
        private RemoveDataSetFolderMethodState m_removeDataSetFolderMethod;
        #endregion
    }
    #endif
    #endregion

    #region AddPublishedDataItemsMethodState Class
    #if (!OPCUA_EXCLUDE_AddPublishedDataItemsMethodState)
    /// <summary>
    /// Stores an instance of the AddPublishedDataItemsMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AddPublishedDataItemsMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AddPublishedDataItemsMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new AddPublishedDataItemsMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAHwAAAEFkZFB1Ymxpc2hlZERhdGFJdGVtc01ldGhvZFR5cGUBAKU4AC8B" +
           "AKU4pTgAAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQCmOAAuAESmOAAAlgQA" +
           "AAABACoBARMAAAAEAAAATmFtZQAM/////wAAAAAAAQAqAQEjAAAAEAAAAEZpZWxkTmFtZUFsaWFzZXMA" +
           "DAEAAAABAAAAAAAAAAABACoBAR8AAAAKAAAARmllbGRGbGFncwEAID4BAAAAAQAAAAAAAAAAAQAqAQEj" +
           "AAAADgAAAFZhcmlhYmxlc1RvQWRkAQDBNwEAAAABAAAAAAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////" +
           "AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQCnOAAuAESnOAAAlgMAAAABACoBARwAAAAN" +
           "AAAARGF0YVNldE5vZGVJZAAR/////wAAAAAAAQAqAQElAAAAFAAAAENvbmZpZ3VyYXRpb25WZXJzaW9u" +
           "AQABOf////8AAAAAAAEAKgEBHQAAAAoAAABBZGRSZXN1bHRzABMBAAAAAQAAAAAAAAAAAQAoAQEAAAAB" +
           "AAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public AddPublishedDataItemsMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string name = (string)_inputArguments[0];
            string[] fieldNameAliases = (string[])_inputArguments[1];
            ushort[] fieldFlags = (ushort[])_inputArguments[2];
            PublishedVariableDataType[] variablesToAdd = (PublishedVariableDataType[])ExtensionObject.ToArray(_inputArguments[3], typeof(PublishedVariableDataType));

            NodeId dataSetNodeId = (NodeId)_outputArguments[0];
            ConfigurationVersionDataType configurationVersion = (ConfigurationVersionDataType)_outputArguments[1];
            StatusCode[] addResults = (StatusCode[])_outputArguments[2];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    name,
                    fieldNameAliases,
                    fieldFlags,
                    variablesToAdd,
                    ref dataSetNodeId,
                    ref configurationVersion,
                    ref addResults);
            }

            _outputArguments[0] = dataSetNodeId;
            _outputArguments[1] = configurationVersion;
            _outputArguments[2] = addResults;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult AddPublishedDataItemsMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string name,
        string[] fieldNameAliases,
        ushort[] fieldFlags,
        PublishedVariableDataType[] variablesToAdd,
        ref NodeId dataSetNodeId,
        ref ConfigurationVersionDataType configurationVersion,
        ref StatusCode[] addResults);
    #endif
    #endregion

    #region AddPublishedEventsMethodState Class
    #if (!OPCUA_EXCLUDE_AddPublishedEventsMethodState)
    /// <summary>
    /// Stores an instance of the AddPublishedEventsMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AddPublishedEventsMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AddPublishedEventsMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new AddPublishedEventsMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAHAAAAEFkZFB1Ymxpc2hlZEV2ZW50c01ldGhvZFR5cGUBAKg4AC8BAKg4" +
           "qDgAAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQCpOAAuAESpOAAAlgYAAAAB" +
           "ACoBARMAAAAEAAAATmFtZQAM/////wAAAAAAAQAqAQEcAAAADQAAAEV2ZW50Tm90aWZpZXIAEf////8A" +
           "AAAAAAEAKgEBIwAAABAAAABGaWVsZE5hbWVBbGlhc2VzAAwBAAAAAQAAAAAAAAAAAQAqAQEfAAAACgAA" +
           "AEZpZWxkRmxhZ3MBACA+AQAAAAEAAAAAAAAAAAEAKgEBIwAAAA4AAABTZWxlY3RlZEZpZWxkcwEAWQIB" +
           "AAAAAQAAAAAAAAAAAQAqAQEXAAAABgAAAEZpbHRlcgEASgL/////AAAAAAABACgBAQAAAAEAAAAAAAAA" +
           "AQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQCqOAAuAESqOAAAlgIAAAABACoB" +
           "ASUAAAAUAAAAQ29uZmlndXJhdGlvblZlcnNpb24BAAE5/////wAAAAAAAQAqAQEcAAAADQAAAERhdGFT" +
           "ZXROb2RlSWQAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public AddPublishedEventsMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string name = (string)_inputArguments[0];
            NodeId eventNotifier = (NodeId)_inputArguments[1];
            string[] fieldNameAliases = (string[])_inputArguments[2];
            ushort[] fieldFlags = (ushort[])_inputArguments[3];
            SimpleAttributeOperand[] selectedFields = (SimpleAttributeOperand[])ExtensionObject.ToArray(_inputArguments[4], typeof(SimpleAttributeOperand));
            ContentFilter filter = (ContentFilter)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[5]);

            ConfigurationVersionDataType configurationVersion = (ConfigurationVersionDataType)_outputArguments[0];
            NodeId dataSetNodeId = (NodeId)_outputArguments[1];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    name,
                    eventNotifier,
                    fieldNameAliases,
                    fieldFlags,
                    selectedFields,
                    filter,
                    ref configurationVersion,
                    ref dataSetNodeId);
            }

            _outputArguments[0] = configurationVersion;
            _outputArguments[1] = dataSetNodeId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult AddPublishedEventsMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string name,
        NodeId eventNotifier,
        string[] fieldNameAliases,
        ushort[] fieldFlags,
        SimpleAttributeOperand[] selectedFields,
        ContentFilter filter,
        ref ConfigurationVersionDataType configurationVersion,
        ref NodeId dataSetNodeId);
    #endif
    #endregion

    #region AddPublishedDataItemsTemplateMethodState Class
    #if (!OPCUA_EXCLUDE_AddPublishedDataItemsTemplateMethodState)
    /// <summary>
    /// Stores an instance of the AddPublishedDataItemsTemplateMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AddPublishedDataItemsTemplateMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AddPublishedDataItemsTemplateMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new AddPublishedDataItemsTemplateMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAJwAAAEFkZFB1Ymxpc2hlZERhdGFJdGVtc1RlbXBsYXRlTWV0aG9kVHlw" +
           "ZQEAhkIALwEAhkKGQgAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAIdCAC4A" +
           "RIdCAACWAwAAAAEAKgEBEwAAAAQAAABOYW1lAAz/////AAAAAAABACoBASAAAAAPAAAARGF0YVNldE1l" +
           "dGFEYXRhAQC7OP////8AAAAAAAEAKgEBIwAAAA4AAABWYXJpYWJsZXNUb0FkZAEAwTcBAAAAAQAAAAAA" +
           "AAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEA" +
           "iEIALgBEiEIAAJYCAAAAAQAqAQEcAAAADQAAAERhdGFTZXROb2RlSWQAEf////8AAAAAAAEAKgEBHQAA" +
           "AAoAAABBZGRSZXN1bHRzABMBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public AddPublishedDataItemsTemplateMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string name = (string)_inputArguments[0];
            DataSetMetaDataType dataSetMetaData = (DataSetMetaDataType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[1]);
            PublishedVariableDataType[] variablesToAdd = (PublishedVariableDataType[])ExtensionObject.ToArray(_inputArguments[2], typeof(PublishedVariableDataType));

            NodeId dataSetNodeId = (NodeId)_outputArguments[0];
            StatusCode[] addResults = (StatusCode[])_outputArguments[1];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    name,
                    dataSetMetaData,
                    variablesToAdd,
                    ref dataSetNodeId,
                    ref addResults);
            }

            _outputArguments[0] = dataSetNodeId;
            _outputArguments[1] = addResults;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult AddPublishedDataItemsTemplateMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string name,
        DataSetMetaDataType dataSetMetaData,
        PublishedVariableDataType[] variablesToAdd,
        ref NodeId dataSetNodeId,
        ref StatusCode[] addResults);
    #endif
    #endregion

    #region AddPublishedEventsTemplateMethodState Class
    #if (!OPCUA_EXCLUDE_AddPublishedEventsTemplateMethodState)
    /// <summary>
    /// Stores an instance of the AddPublishedEventsTemplateMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AddPublishedEventsTemplateMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AddPublishedEventsTemplateMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new AddPublishedEventsTemplateMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAJAAAAEFkZFB1Ymxpc2hlZEV2ZW50c1RlbXBsYXRlTWV0aG9kVHlwZQEA" +
           "iUIALwEAiUKJQgAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAJNCAC4ARJNC" +
           "AACWBQAAAAEAKgEBEwAAAAQAAABOYW1lAAz/////AAAAAAABACoBASAAAAAPAAAARGF0YVNldE1ldGFE" +
           "YXRhAQC7OP////8AAAAAAAEAKgEBHAAAAA0AAABFdmVudE5vdGlmaWVyABH/////AAAAAAABACoBASMA" +
           "AAAOAAAAU2VsZWN0ZWRGaWVsZHMBAFkCAQAAAAEAAAAAAAAAAAEAKgEBFwAAAAYAAABGaWx0ZXIBAEoC" +
           "/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3Vt" +
           "ZW50cwEAqkIALgBEqkIAAJYBAAAAAQAqAQEcAAAADQAAAERhdGFTZXROb2RlSWQAEf////8AAAAAAAEA" +
           "KAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public AddPublishedEventsTemplateMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string name = (string)_inputArguments[0];
            DataSetMetaDataType dataSetMetaData = (DataSetMetaDataType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[1]);
            NodeId eventNotifier = (NodeId)_inputArguments[2];
            SimpleAttributeOperand[] selectedFields = (SimpleAttributeOperand[])ExtensionObject.ToArray(_inputArguments[3], typeof(SimpleAttributeOperand));
            ContentFilter filter = (ContentFilter)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[4]);

            NodeId dataSetNodeId = (NodeId)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    name,
                    dataSetMetaData,
                    eventNotifier,
                    selectedFields,
                    filter,
                    ref dataSetNodeId);
            }

            _outputArguments[0] = dataSetNodeId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult AddPublishedEventsTemplateMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string name,
        DataSetMetaDataType dataSetMetaData,
        NodeId eventNotifier,
        SimpleAttributeOperand[] selectedFields,
        ContentFilter filter,
        ref NodeId dataSetNodeId);
    #endif
    #endregion

    #region RemovePublishedDataSetMethodState Class
    #if (!OPCUA_EXCLUDE_RemovePublishedDataSetMethodState)
    /// <summary>
    /// Stores an instance of the RemovePublishedDataSetMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RemovePublishedDataSetMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RemovePublishedDataSetMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new RemovePublishedDataSetMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAIAAAAFJlbW92ZVB1Ymxpc2hlZERhdGFTZXRNZXRob2RUeXBlAQCrOAAv" +
           "AQCrOKs4AAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEArDgALgBErDgAAJYB" +
           "AAAAAQAqAQEcAAAADQAAAERhdGFTZXROb2RlSWQAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf//" +
           "//8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public RemovePublishedDataSetMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            NodeId dataSetNodeId = (NodeId)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    dataSetNodeId);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult RemovePublishedDataSetMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        NodeId dataSetNodeId);
    #endif
    #endregion

    #region AddDataSetFolderMethodState Class
    #if (!OPCUA_EXCLUDE_AddDataSetFolderMethodState)
    /// <summary>
    /// Stores an instance of the AddDataSetFolderMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AddDataSetFolderMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AddDataSetFolderMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new AddDataSetFolderMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAGgAAAEFkZERhdGFTZXRGb2xkZXJNZXRob2RUeXBlAQCrQgAvAQCrQqtC" +
           "AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEArEIALgBErEIAAJYBAAAAAQAq" +
           "AQETAAAABAAAAE5hbWUADP////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAA" +
           "AA8AAABPdXRwdXRBcmd1bWVudHMBAK1CAC4ARK1CAACWAQAAAAEAKgEBIgAAABMAAABEYXRhU2V0Rm9s" +
           "ZGVyTm9kZUlkABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public AddDataSetFolderMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string name = (string)_inputArguments[0];

            NodeId dataSetFolderNodeId = (NodeId)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    name,
                    ref dataSetFolderNodeId);
            }

            _outputArguments[0] = dataSetFolderNodeId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult AddDataSetFolderMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string name,
        ref NodeId dataSetFolderNodeId);
    #endif
    #endregion

    #region RemoveDataSetFolderMethodState Class
    #if (!OPCUA_EXCLUDE_RemoveDataSetFolderMethodState)
    /// <summary>
    /// Stores an instance of the RemoveDataSetFolderMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class RemoveDataSetFolderMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public RemoveDataSetFolderMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new RemoveDataSetFolderMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAHQAAAFJlbW92ZURhdGFTZXRGb2xkZXJNZXRob2RUeXBlAQC3QgAvAQC3" +
           "QrdCAAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAMUMALgBEMUMAAJYBAAAA" +
           "AQAqAQEiAAAAEwAAAERhdGFTZXRGb2xkZXJOb2RlSWQAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAAB" +
           "Af////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public RemoveDataSetFolderMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            NodeId dataSetFolderNodeId = (NodeId)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    dataSetFolderNodeId);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult RemoveDataSetFolderMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        NodeId dataSetFolderNodeId);
    #endif
    #endregion

    #region PubSubConnectionState Class
    #if (!OPCUA_EXCLUDE_PubSubConnectionState)
    /// <summary>
    /// Stores an instance of the PubSubConnectionType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubConnectionState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubConnectionState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PubSubConnectionType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (TransportSettings != null)
            {
                TransportSettings.Initialize(context, TransportSettings_InitializationString);
            }

            if (Diagnostics != null)
            {
                Diagnostics.Initialize(context, Diagnostics_InitializationString);
            }

            if (AddWriterGroup != null)
            {
                AddWriterGroup.Initialize(context, AddWriterGroup_InitializationString);
            }

            if (AddReaderGroup != null)
            {
                AddReaderGroup.Initialize(context, AddReaderGroup_InitializationString);
            }

            if (RemoveGroup != null)
            {
                RemoveGroup.Initialize(context, RemoveGroup_InitializationString);
            }
        }

        #region Initialization String
        private const string TransportSettings_InitializationString =
           "//////////8EYIAKAQAAAAAAEQAAAFRyYW5zcG9ydFNldHRpbmdzAQAzQwAvAQA5RTNDAAD/////AAAA" +
           "AA==";

        private const string Diagnostics_InitializationString =
           "//////////8EYIAKAQAAAAAACwAAAERpYWdub3N0aWNzAQApSwAvAQBKTSlLAAD/////BwAAABVgiQoC" +
           "AAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAKksALwA/KksAAAEAC03/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAQAAAAVG90YWxJbmZvcm1hdGlvbgEAK0sALwEADU0rSwAAAAf/////AQH/////AwAAABVgiQoC" +
           "AAAAAAAGAAAAQWN0aXZlAQAsSwAuAEQsSwAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAAQ2xh" +
           "c3NpZmljYXRpb24BAC1LAC4ARC1LAAABABJN/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAERpYWdu" +
           "b3N0aWNzTGV2ZWwBAC5LAC4ARC5LAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFRvdGFs" +
           "RXJyb3IBADBLAC8BAA1NMEsAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAMUsA" +
           "LgBEMUsAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQAySwAuAEQy" +
           "SwAAAQASTf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQAzSwAuAEQz" +
           "SwAAAQALTf////8BAf////8AAAAABGGCCgQAAAAAAAUAAABSZXNldAEANUsALwEA6Uw1SwAAAQH/////" +
           "AAAAABVgiQoCAAAAAAAIAAAAU3ViRXJyb3IBADZLAC8APzZLAAAAAf////8BAf////8AAAAABGCACgEA" +
           "AAAAAAgAAABDb3VudGVycwEAN0sALwA6N0sAAP////8GAAAAFWCJCgIAAAAAAAoAAABTdGF0ZUVycm9y" +
           "AQA4SwAvAQANTThLAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBADlLAC4ARDlL" +
           "AAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAOksALgBEOksAAAYB" +
           "AAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQA7SwAuAEQ7" +
           "SwAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAGAAAAFN0YXRlT3BlcmF0aW9uYWxCeU1l" +
           "dGhvZAEAPUsALwEADU09SwAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQA+SwAu" +
           "AEQ+SwAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAD9LAC4ARD9L" +
           "AAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAQEsA" +
           "LgBEQEsAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABgAAABTdGF0ZU9wZXJhdGlvbmFs" +
           "QnlQYXJlbnQBAEJLAC8BAA1NQksAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEA" +
           "Q0sALgBEQ0sAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQBESwAu" +
           "AERESwAABgAAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwB" +
           "AEVLAC4AREVLAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAZAAAAU3RhdGVPcGVyYXRp" +
           "b25hbEZyb21FcnJvcgEAR0sALwEADU1HSwAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0" +
           "aXZlAQBISwAuAERISwAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24B" +
           "AElLAC4ARElLAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NM" +
           "ZXZlbAEASksALgBESksAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABMAAABTdGF0ZVBh" +
           "dXNlZEJ5UGFyZW50AQBMSwAvAQANTUxLAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3Rp" +
           "dmUBAE1LAC4ARE1LAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEA" +
           "TksALgBETksAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xl" +
           "dmVsAQBPSwAuAERPSwAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAFQAAAFN0YXRlRGlz" +
           "YWJsZWRCeU1ldGhvZAEAUUsALwEADU1RSwAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0" +
           "aXZlAQBSSwAuAERSSwAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24B" +
           "AFNLAC4ARFNLAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NM" +
           "ZXZlbAEAVEsALgBEVEsAAAYAAAAAAQALTf////8BAf////8AAAAABGCACgEAAAAAAAoAAABMaXZlVmFs" +
           "dWVzAQBWSwAvADpWSwAA/////wEAAAAVYIkKAgAAAAAADwAAAFJlc29sdmVkQWRkcmVzcwEAV0sALwA/" +
           "V0sAAAAM/////wEB/////wEAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAFhLAC4ARFhL" +
           "AAAGAAAAAAEAC03/////AQH/////AAAAAA==";

        private const string AddWriterGroup_InitializationString =
           "//////////8EYYIKBAAAAAAADgAAAEFkZFdyaXRlckdyb3VwAQATRAAvAQATRBNEAAABAf////8CAAAA" +
           "F2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAFEQALgBEFEQAAJYBAAAAAQAqAQEeAAAADQAAAENv" +
           "bmZpZ3VyYXRpb24BAHg8/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAA" +
           "DwAAAE91dHB1dEFyZ3VtZW50cwEAMEQALgBEMEQAAJYBAAAAAQAqAQEWAAAABwAAAEdyb3VwSWQAEf//" +
           "//8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";

        private const string AddReaderGroup_InitializationString =
           "//////////8EYYIKBAAAAAAADgAAAEFkZFJlYWRlckdyb3VwAQA5RAAvAQA5RDlEAAABAf////8CAAAA" +
           "F2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAY0QALgBEY0QAAJYBAAAAAQAqAQEeAAAADQAAAENv" +
           "bmZpZ3VyYXRpb24BAKA8/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAA" +
           "DwAAAE91dHB1dEFyZ3VtZW50cwEAZEQALgBEZEQAAJYBAAAAAQAqAQEWAAAABwAAAEdyb3VwSWQAEf//" +
           "//8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";

        private const string RemoveGroup_InitializationString =
           "//////////8EYYIKBAAAAAAACwAAAFJlbW92ZUdyb3VwAQCRNwAvAQCRN5E3AAABAf////8BAAAAF2Cp" +
           "CgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAkjcALgBEkjcAAJYBAAAAAQAqAQEWAAAABwAAAEdyb3Vw" +
           "SWQAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHAAAAFB1YlN1YkNvbm5lY3Rpb25UeXBlSW5zdGFuY2UBAIE3AQCBN4E3" +
           "AAD/////CgAAABVgiQoCAAAAAAALAAAAUHVibGlzaGVySWQBAAM5AC4ARAM5AAAAGP////8BAf////8A" +
           "AAAAFWCJCgIAAAAAABMAAABUcmFuc3BvcnRQcm9maWxlVXJpAQCaQwAvAQC1P5pDAAAADP////8BAf//" +
           "//8BAAAAF2CJCgIAAAAAAAoAAABTZWxlY3Rpb25zAQAuRQAuAEQuRQAAABgBAAAAAQAAAAAAAAABAf//" +
           "//8AAAAAF2CJCgIAAAAAABQAAABDb25uZWN0aW9uUHJvcGVydGllcwEATUQALgBETUQAAAEAxTgBAAAA" +
           "AQAAAAAAAAABAf////8AAAAABGCACgEAAAAAAAcAAABBZGRyZXNzAQCNNwAvAQCZUo03AAD/////AQAA" +
           "ABVgiQoCAAAAAAAQAAAATmV0d29ya0ludGVyZmFjZQEAMkMALwEAtT8yQwAAAAz/////AQH/////AQAA" +
           "ABdgiQoCAAAAAAAKAAAAU2VsZWN0aW9ucwEAqEQALgBEqEQAAAAYAQAAAAEAAAAAAAAAAQH/////AAAA" +
           "AARggAoBAAAAAAARAAAAVHJhbnNwb3J0U2V0dGluZ3MBADNDAC8BADlFM0MAAP////8AAAAABGCACgEA" +
           "AAAAAAYAAABTdGF0dXMBAAg5AC8BADM5CDkAAP////8BAAAAFWCJCgIAAAAAAAUAAABTdGF0ZQEACTkA" +
           "LwA/CTkAAAEANzn/////AQH/////AAAAAARggAoBAAAAAAALAAAARGlhZ25vc3RpY3MBAClLAC8BAEpN" +
           "KUsAAP////8HAAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQAqSwAvAD8qSwAAAQALTf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAABAAAABUb3RhbEluZm9ybWF0aW9uAQArSwAvAQANTStLAAAAB///" +
           "//8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBACxLAC4ARCxLAAAAAf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEALUsALgBELUsAAAEAEk3/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEALksALgBELksAAAEAC03/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAKAAAAVG90YWxFcnJvcgEAMEsALwEADU0wSwAAAAf/////AQH/////AwAAABVgiQoCAAAA" +
           "AAAGAAAAQWN0aXZlAQAxSwAuAEQxSwAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAAQ2xhc3Np" +
           "ZmljYXRpb24BADJLAC4ARDJLAAABABJN/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAERpYWdub3N0" +
           "aWNzTGV2ZWwBADNLAC4ARDNLAAABAAtN/////wEB/////wAAAAAEYYIKBAAAAAAABQAAAFJlc2V0AQA1" +
           "SwAvAQDpTDVLAAABAf////8AAAAAFWCJCgIAAAAAAAgAAABTdWJFcnJvcgEANksALwA/NksAAAAB////" +
           "/wEB/////wAAAAAEYIAKAQAAAAAACAAAAENvdW50ZXJzAQA3SwAvADo3SwAA/////wYAAAAVYIkKAgAA" +
           "AAAACgAAAFN0YXRlRXJyb3IBADhLAC8BAA1NOEsAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAA" +
           "AEFjdGl2ZQEAOUsALgBEOUsAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0" +
           "aW9uAQA6SwAuAEQ6SwAABgEAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0" +
           "aWNzTGV2ZWwBADtLAC4ARDtLAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAYAAAAU3Rh" +
           "dGVPcGVyYXRpb25hbEJ5TWV0aG9kAQA9SwAvAQANTT1LAAAAB/////8BAf////8DAAAAFWCJCgIAAAAA" +
           "AAYAAABBY3RpdmUBAD5LAC4ARD5LAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lm" +
           "aWNhdGlvbgEAP0sALgBEP0sAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFn" +
           "bm9zdGljc0xldmVsAQBASwAuAERASwAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAGAAA" +
           "AFN0YXRlT3BlcmF0aW9uYWxCeVBhcmVudAEAQksALwEADU1CSwAAAAf/////AQH/////AwAAABVgiQoC" +
           "AAAAAAAGAAAAQWN0aXZlAQBDSwAuAERDSwAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xh" +
           "c3NpZmljYXRpb24BAERLAC4ARERLAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAA" +
           "RGlhZ25vc3RpY3NMZXZlbAEARUsALgBERUsAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "ABkAAABTdGF0ZU9wZXJhdGlvbmFsRnJvbUVycm9yAQBHSwAvAQANTUdLAAAAB/////8BAf////8DAAAA" +
           "FWCJCgIAAAAAAAYAAABBY3RpdmUBAEhLAC4AREhLAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4A" +
           "AABDbGFzc2lmaWNhdGlvbgEASUsALgBESUsAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAA" +
           "ABAAAABEaWFnbm9zdGljc0xldmVsAQBKSwAuAERKSwAABgAAAAABAAtN/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAAEwAAAFN0YXRlUGF1c2VkQnlQYXJlbnQBAExLAC8BAA1NTEsAAAAH/////wEB/////wMAAAAV" +
           "YIkKAgAAAAAABgAAAEFjdGl2ZQEATUsALgBETUsAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAA" +
           "AENsYXNzaWZpY2F0aW9uAQBOSwAuAEROSwAABgAAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAA" +
           "EAAAAERpYWdub3N0aWNzTGV2ZWwBAE9LAC4ARE9LAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAVAAAAU3RhdGVEaXNhYmxlZEJ5TWV0aG9kAQBRSwAvAQANTVFLAAAAB/////8BAf////8DAAAA" +
           "FWCJCgIAAAAAAAYAAABBY3RpdmUBAFJLAC4ARFJLAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4A" +
           "AABDbGFzc2lmaWNhdGlvbgEAU0sALgBEU0sAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAA" +
           "ABAAAABEaWFnbm9zdGljc0xldmVsAQBUSwAuAERUSwAABgAAAAABAAtN/////wEB/////wAAAAAEYIAK" +
           "AQAAAAAACgAAAExpdmVWYWx1ZXMBAFZLAC8AOlZLAAD/////AQAAABVgiQoCAAAAAAAPAAAAUmVzb2x2" +
           "ZWRBZGRyZXNzAQBXSwAvAD9XSwAAAAz/////AQH/////AQAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3Rp" +
           "Y3NMZXZlbAEAWEsALgBEWEsAAAYAAAAAAQALTf////8BAf////8AAAAABGGCCgQAAAAAAA4AAABBZGRX" +
           "cml0ZXJHcm91cAEAE0QALwEAE0QTRAAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVu" +
           "dHMBABREAC4ARBREAACWAQAAAAEAKgEBHgAAAA0AAABDb25maWd1cmF0aW9uAQB4PP////8AAAAAAAEA" +
           "KAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBADBEAC4A" +
           "RDBEAACWAQAAAAEAKgEBFgAAAAcAAABHcm91cElkABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/" +
           "////AAAAAARhggoEAAAAAAAOAAAAQWRkUmVhZGVyR3JvdXABADlEAC8BADlEOUQAAAEB/////wIAAAAX" +
           "YKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBjRAAuAERjRAAAlgEAAAABACoBAR4AAAANAAAAQ29u" +
           "ZmlndXJhdGlvbgEAoDz/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAP" +
           "AAAAT3V0cHV0QXJndW1lbnRzAQBkRAAuAERkRAAAlgEAAAABACoBARYAAAAHAAAAR3JvdXBJZAAR////" +
           "/wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAEYYIKBAAAAAAACwAAAFJlbW92ZUdyb3VwAQCR" +
           "NwAvAQCRN5E3AAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEAkjcALgBEkjcA" +
           "AJYBAAAAAQAqAQEWAAAABwAAAEdyb3VwSWQAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8A" +
           "AAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState PublisherId
        {
            get
            {
                return m_publisherId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_publisherId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_publisherId = value;
            }
        }

        /// <remarks />
        public SelectionListState<string> TransportProfileUri
        {
            get
            {
                return m_transportProfileUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transportProfileUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transportProfileUri = value;
            }
        }

        /// <remarks />
        public PropertyState<KeyValuePair[]> ConnectionProperties
        {
            get
            {
                return m_connectionProperties;
            }

            set
            {
                if (!Object.ReferenceEquals(m_connectionProperties, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_connectionProperties = value;
            }
        }

        /// <remarks />
        public NetworkAddressState Address
        {
            get
            {
                return m_address;
            }

            set
            {
                if (!Object.ReferenceEquals(m_address, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_address = value;
            }
        }

        /// <remarks />
        public ConnectionTransportState TransportSettings
        {
            get
            {
                return m_transportSettings;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transportSettings, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transportSettings = value;
            }
        }

        /// <remarks />
        public PubSubStatusState Status
        {
            get
            {
                return m_status;
            }

            set
            {
                if (!Object.ReferenceEquals(m_status, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_status = value;
            }
        }

        /// <remarks />
        public PubSubDiagnosticsConnectionState Diagnostics
        {
            get
            {
                return m_diagnostics;
            }

            set
            {
                if (!Object.ReferenceEquals(m_diagnostics, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_diagnostics = value;
            }
        }

        /// <remarks />
        public PubSubConnectionTypeAddWriterGroupMethodState AddWriterGroup
        {
            get
            {
                return m_addWriterGroupMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addWriterGroupMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addWriterGroupMethod = value;
            }
        }

        /// <remarks />
        public PubSubConnectionAddReaderGroupGroupMethodState AddReaderGroup
        {
            get
            {
                return m_addReaderGroupMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addReaderGroupMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addReaderGroupMethod = value;
            }
        }

        /// <remarks />
        public PubSubConnectionTypeRemoveGroupMethodState RemoveGroup
        {
            get
            {
                return m_removeGroupMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removeGroupMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removeGroupMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_publisherId != null)
            {
                children.Add(m_publisherId);
            }

            if (m_transportProfileUri != null)
            {
                children.Add(m_transportProfileUri);
            }

            if (m_connectionProperties != null)
            {
                children.Add(m_connectionProperties);
            }

            if (m_address != null)
            {
                children.Add(m_address);
            }

            if (m_transportSettings != null)
            {
                children.Add(m_transportSettings);
            }

            if (m_status != null)
            {
                children.Add(m_status);
            }

            if (m_diagnostics != null)
            {
                children.Add(m_diagnostics);
            }

            if (m_addWriterGroupMethod != null)
            {
                children.Add(m_addWriterGroupMethod);
            }

            if (m_addReaderGroupMethod != null)
            {
                children.Add(m_addReaderGroupMethod);
            }

            if (m_removeGroupMethod != null)
            {
                children.Add(m_removeGroupMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.PublisherId:
                {
                    if (createOrReplace)
                    {
                        if (PublisherId == null)
                        {
                            if (replacement == null)
                            {
                                PublisherId = new PropertyState(this);
                            }
                            else
                            {
                                PublisherId = (PropertyState)replacement;
                            }
                        }
                    }

                    instance = PublisherId;
                    break;
                }

                case Opc.Ua.BrowseNames.TransportProfileUri:
                {
                    if (createOrReplace)
                    {
                        if (TransportProfileUri == null)
                        {
                            if (replacement == null)
                            {
                                TransportProfileUri = new SelectionListState<string>(this);
                            }
                            else
                            {
                                TransportProfileUri = (SelectionListState<string>)replacement;
                            }
                        }
                    }

                    instance = TransportProfileUri;
                    break;
                }

                case Opc.Ua.BrowseNames.ConnectionProperties:
                {
                    if (createOrReplace)
                    {
                        if (ConnectionProperties == null)
                        {
                            if (replacement == null)
                            {
                                ConnectionProperties = new PropertyState<KeyValuePair[]>(this);
                            }
                            else
                            {
                                ConnectionProperties = (PropertyState<KeyValuePair[]>)replacement;
                            }
                        }
                    }

                    instance = ConnectionProperties;
                    break;
                }

                case Opc.Ua.BrowseNames.Address:
                {
                    if (createOrReplace)
                    {
                        if (Address == null)
                        {
                            if (replacement == null)
                            {
                                Address = new NetworkAddressState(this);
                            }
                            else
                            {
                                Address = (NetworkAddressState)replacement;
                            }
                        }
                    }

                    instance = Address;
                    break;
                }

                case Opc.Ua.BrowseNames.TransportSettings:
                {
                    if (createOrReplace)
                    {
                        if (TransportSettings == null)
                        {
                            if (replacement == null)
                            {
                                TransportSettings = new ConnectionTransportState(this);
                            }
                            else
                            {
                                TransportSettings = (ConnectionTransportState)replacement;
                            }
                        }
                    }

                    instance = TransportSettings;
                    break;
                }

                case Opc.Ua.BrowseNames.Status:
                {
                    if (createOrReplace)
                    {
                        if (Status == null)
                        {
                            if (replacement == null)
                            {
                                Status = new PubSubStatusState(this);
                            }
                            else
                            {
                                Status = (PubSubStatusState)replacement;
                            }
                        }
                    }

                    instance = Status;
                    break;
                }

                case Opc.Ua.BrowseNames.Diagnostics:
                {
                    if (createOrReplace)
                    {
                        if (Diagnostics == null)
                        {
                            if (replacement == null)
                            {
                                Diagnostics = new PubSubDiagnosticsConnectionState(this);
                            }
                            else
                            {
                                Diagnostics = (PubSubDiagnosticsConnectionState)replacement;
                            }
                        }
                    }

                    instance = Diagnostics;
                    break;
                }

                case Opc.Ua.BrowseNames.AddWriterGroup:
                {
                    if (createOrReplace)
                    {
                        if (AddWriterGroup == null)
                        {
                            if (replacement == null)
                            {
                                AddWriterGroup = new PubSubConnectionTypeAddWriterGroupMethodState(this);
                            }
                            else
                            {
                                AddWriterGroup = (PubSubConnectionTypeAddWriterGroupMethodState)replacement;
                            }
                        }
                    }

                    instance = AddWriterGroup;
                    break;
                }

                case Opc.Ua.BrowseNames.AddReaderGroup:
                {
                    if (createOrReplace)
                    {
                        if (AddReaderGroup == null)
                        {
                            if (replacement == null)
                            {
                                AddReaderGroup = new PubSubConnectionAddReaderGroupGroupMethodState(this);
                            }
                            else
                            {
                                AddReaderGroup = (PubSubConnectionAddReaderGroupGroupMethodState)replacement;
                            }
                        }
                    }

                    instance = AddReaderGroup;
                    break;
                }

                case Opc.Ua.BrowseNames.RemoveGroup:
                {
                    if (createOrReplace)
                    {
                        if (RemoveGroup == null)
                        {
                            if (replacement == null)
                            {
                                RemoveGroup = new PubSubConnectionTypeRemoveGroupMethodState(this);
                            }
                            else
                            {
                                RemoveGroup = (PubSubConnectionTypeRemoveGroupMethodState)replacement;
                            }
                        }
                    }

                    instance = RemoveGroup;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState m_publisherId;
        private SelectionListState<string> m_transportProfileUri;
        private PropertyState<KeyValuePair[]> m_connectionProperties;
        private NetworkAddressState m_address;
        private ConnectionTransportState m_transportSettings;
        private PubSubStatusState m_status;
        private PubSubDiagnosticsConnectionState m_diagnostics;
        private PubSubConnectionTypeAddWriterGroupMethodState m_addWriterGroupMethod;
        private PubSubConnectionAddReaderGroupGroupMethodState m_addReaderGroupMethod;
        private PubSubConnectionTypeRemoveGroupMethodState m_removeGroupMethod;
        #endregion
    }
    #endif
    #endregion

    #region PubSubConnectionTypeAddWriterGroupMethodState Class
    #if (!OPCUA_EXCLUDE_PubSubConnectionTypeAddWriterGroupMethodState)
    /// <summary>
    /// Stores an instance of the PubSubConnectionTypeAddWriterGroupMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubConnectionTypeAddWriterGroupMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubConnectionTypeAddWriterGroupMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new PubSubConnectionTypeAddWriterGroupMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAALAAAAFB1YlN1YkNvbm5lY3Rpb25UeXBlQWRkV3JpdGVyR3JvdXBNZXRo" +
           "b2RUeXBlAQCZRAAvAQCZRJlEAAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEA" +
           "zUQALgBEzUQAAJYBAAAAAQAqAQEeAAAADQAAAENvbmZpZ3VyYXRpb24BAHg8/////wAAAAAAAQAoAQEA" +
           "AAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEAzkQALgBEzkQA" +
           "AJYBAAAAAQAqAQEWAAAABwAAAEdyb3VwSWQAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8A" +
           "AAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public PubSubConnectionTypeAddWriterGroupMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            WriterGroupDataType configuration = (WriterGroupDataType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[0]);

            NodeId groupId = (NodeId)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    configuration,
                    ref groupId);
            }

            _outputArguments[0] = groupId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult PubSubConnectionTypeAddWriterGroupMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        WriterGroupDataType configuration,
        ref NodeId groupId);
    #endif
    #endregion

    #region PubSubConnectionAddReaderGroupGroupMethodState Class
    #if (!OPCUA_EXCLUDE_PubSubConnectionAddReaderGroupGroupMethodState)
    /// <summary>
    /// Stores an instance of the PubSubConnectionAddReaderGroupGroupMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubConnectionAddReaderGroupGroupMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubConnectionAddReaderGroupGroupMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new PubSubConnectionAddReaderGroupGroupMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAALQAAAFB1YlN1YkNvbm5lY3Rpb25BZGRSZWFkZXJHcm91cEdyb3VwTWV0" +
           "aG9kVHlwZQEA3kQALwEA3kTeRAAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMB" +
           "AN9EAC4ARN9EAACWAQAAAAEAKgEBHgAAAA0AAABDb25maWd1cmF0aW9uAQCgPP////8AAAAAAAEAKAEB" +
           "AAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBADhFAC4ARDhF" +
           "AACWAQAAAAEAKgEBFgAAAAcAAABHcm91cElkABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////" +
           "AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public PubSubConnectionAddReaderGroupGroupMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            ReaderGroupDataType configuration = (ReaderGroupDataType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[0]);

            NodeId groupId = (NodeId)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    configuration,
                    ref groupId);
            }

            _outputArguments[0] = groupId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult PubSubConnectionAddReaderGroupGroupMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        ReaderGroupDataType configuration,
        ref NodeId groupId);
    #endif
    #endregion

    #region PubSubConnectionTypeRemoveGroupMethodState Class
    #if (!OPCUA_EXCLUDE_PubSubConnectionTypeRemoveGroupMethodState)
    /// <summary>
    /// Stores an instance of the PubSubConnectionTypeRemoveGroupMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubConnectionTypeRemoveGroupMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubConnectionTypeRemoveGroupMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new PubSubConnectionTypeRemoveGroupMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAKQAAAFB1YlN1YkNvbm5lY3Rpb25UeXBlUmVtb3ZlR3JvdXBNZXRob2RU" +
           "eXBlAQAMOQAvAQAMOQw5AAABAf////8BAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEADTkA" +
           "LgBEDTkAAJYBAAAAAQAqAQEWAAAABwAAAEdyb3VwSWQAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAAB" +
           "Af////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public PubSubConnectionTypeRemoveGroupMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            NodeId groupId = (NodeId)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    groupId);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult PubSubConnectionTypeRemoveGroupMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        NodeId groupId);
    #endif
    #endregion

    #region ConnectionTransportState Class
    #if (!OPCUA_EXCLUDE_ConnectionTransportState)
    /// <summary>
    /// Stores an instance of the ConnectionTransportType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ConnectionTransportState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ConnectionTransportState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ConnectionTransportType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHwAAAENvbm5lY3Rpb25UcmFuc3BvcnRUeXBlSW5zdGFuY2UBADlFAQA5" +
           "RTlFAAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region PubSubGroupState Class
    #if (!OPCUA_EXCLUDE_PubSubGroupState)
    /// <summary>
    /// Stores an instance of the PubSubGroupType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubGroupState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubGroupState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PubSubGroupType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (SecurityGroupId != null)
            {
                SecurityGroupId.Initialize(context, SecurityGroupId_InitializationString);
            }

            if (SecurityKeyServices != null)
            {
                SecurityKeyServices.Initialize(context, SecurityKeyServices_InitializationString);
            }
        }

        #region Initialization String
        private const string SecurityGroupId_InitializationString =
           "//////////8VYIkKAgAAAAAADwAAAFNlY3VyaXR5R3JvdXBJZAEANz4ALgBENz4AAAAM/////wEB////" +
           "/wAAAAA=";

        private const string SecurityKeyServices_InitializationString =
           "//////////8XYIkKAgAAAAAAEwAAAFNlY3VyaXR5S2V5U2VydmljZXMBADg+AC4ARDg+AAABADgBAQAA" +
           "AAEAAAAAAAAAAQH/////AAAAAA==";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFwAAAFB1YlN1Ykdyb3VwVHlwZUluc3RhbmNlAQCYNwEAmDeYNwAA////" +
           "/wYAAAAVYIkKAgAAAAAADAAAAFNlY3VyaXR5TW9kZQEANj4ALgBENj4AAAEALgH/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAPAAAAU2VjdXJpdHlHcm91cElkAQA3PgAuAEQ3PgAAAAz/////AQH/////AAAAABdg" +
           "iQoCAAAAAAATAAAAU2VjdXJpdHlLZXlTZXJ2aWNlcwEAOD4ALgBEOD4AAAEAOAEBAAAAAQAAAAAAAAAB" +
           "Af////8AAAAAFWCJCgIAAAAAABUAAABNYXhOZXR3b3JrTWVzc2FnZVNpemUBADxFAC4ARDxFAAAAB///" +
           "//8BAf////8AAAAAF2CJCgIAAAAAAA8AAABHcm91cFByb3BlcnRpZXMBAFBEAC4ARFBEAAABAMU4AQAA" +
           "AAEAAAAAAAAAAQH/////AAAAAARggAoBAAAAAAAGAAAAU3RhdHVzAQChOwAvAQAzOaE7AAD/////AQAA" +
           "ABVgiQoCAAAAAAAFAAAAU3RhdGUBAKI7AC8AP6I7AAABADc5/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<MessageSecurityMode> SecurityMode
        {
            get
            {
                return m_securityMode;
            }

            set
            {
                if (!Object.ReferenceEquals(m_securityMode, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_securityMode = value;
            }
        }

        /// <remarks />
        public PropertyState<string> SecurityGroupId
        {
            get
            {
                return m_securityGroupId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_securityGroupId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_securityGroupId = value;
            }
        }

        /// <remarks />
        public PropertyState<EndpointDescription[]> SecurityKeyServices
        {
            get
            {
                return m_securityKeyServices;
            }

            set
            {
                if (!Object.ReferenceEquals(m_securityKeyServices, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_securityKeyServices = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> MaxNetworkMessageSize
        {
            get
            {
                return m_maxNetworkMessageSize;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxNetworkMessageSize, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxNetworkMessageSize = value;
            }
        }

        /// <remarks />
        public PropertyState<KeyValuePair[]> GroupProperties
        {
            get
            {
                return m_groupProperties;
            }

            set
            {
                if (!Object.ReferenceEquals(m_groupProperties, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_groupProperties = value;
            }
        }

        /// <remarks />
        public PubSubStatusState Status
        {
            get
            {
                return m_status;
            }

            set
            {
                if (!Object.ReferenceEquals(m_status, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_status = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_securityMode != null)
            {
                children.Add(m_securityMode);
            }

            if (m_securityGroupId != null)
            {
                children.Add(m_securityGroupId);
            }

            if (m_securityKeyServices != null)
            {
                children.Add(m_securityKeyServices);
            }

            if (m_maxNetworkMessageSize != null)
            {
                children.Add(m_maxNetworkMessageSize);
            }

            if (m_groupProperties != null)
            {
                children.Add(m_groupProperties);
            }

            if (m_status != null)
            {
                children.Add(m_status);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.SecurityMode:
                {
                    if (createOrReplace)
                    {
                        if (SecurityMode == null)
                        {
                            if (replacement == null)
                            {
                                SecurityMode = new PropertyState<MessageSecurityMode>(this);
                            }
                            else
                            {
                                SecurityMode = (PropertyState<MessageSecurityMode>)replacement;
                            }
                        }
                    }

                    instance = SecurityMode;
                    break;
                }

                case Opc.Ua.BrowseNames.SecurityGroupId:
                {
                    if (createOrReplace)
                    {
                        if (SecurityGroupId == null)
                        {
                            if (replacement == null)
                            {
                                SecurityGroupId = new PropertyState<string>(this);
                            }
                            else
                            {
                                SecurityGroupId = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = SecurityGroupId;
                    break;
                }

                case Opc.Ua.BrowseNames.SecurityKeyServices:
                {
                    if (createOrReplace)
                    {
                        if (SecurityKeyServices == null)
                        {
                            if (replacement == null)
                            {
                                SecurityKeyServices = new PropertyState<EndpointDescription[]>(this);
                            }
                            else
                            {
                                SecurityKeyServices = (PropertyState<EndpointDescription[]>)replacement;
                            }
                        }
                    }

                    instance = SecurityKeyServices;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxNetworkMessageSize:
                {
                    if (createOrReplace)
                    {
                        if (MaxNetworkMessageSize == null)
                        {
                            if (replacement == null)
                            {
                                MaxNetworkMessageSize = new PropertyState<uint>(this);
                            }
                            else
                            {
                                MaxNetworkMessageSize = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxNetworkMessageSize;
                    break;
                }

                case Opc.Ua.BrowseNames.GroupProperties:
                {
                    if (createOrReplace)
                    {
                        if (GroupProperties == null)
                        {
                            if (replacement == null)
                            {
                                GroupProperties = new PropertyState<KeyValuePair[]>(this);
                            }
                            else
                            {
                                GroupProperties = (PropertyState<KeyValuePair[]>)replacement;
                            }
                        }
                    }

                    instance = GroupProperties;
                    break;
                }

                case Opc.Ua.BrowseNames.Status:
                {
                    if (createOrReplace)
                    {
                        if (Status == null)
                        {
                            if (replacement == null)
                            {
                                Status = new PubSubStatusState(this);
                            }
                            else
                            {
                                Status = (PubSubStatusState)replacement;
                            }
                        }
                    }

                    instance = Status;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<MessageSecurityMode> m_securityMode;
        private PropertyState<string> m_securityGroupId;
        private PropertyState<EndpointDescription[]> m_securityKeyServices;
        private PropertyState<uint> m_maxNetworkMessageSize;
        private PropertyState<KeyValuePair[]> m_groupProperties;
        private PubSubStatusState m_status;
        #endregion
    }
    #endif
    #endregion

    #region WriterGroupState Class
    #if (!OPCUA_EXCLUDE_WriterGroupState)
    /// <summary>
    /// Stores an instance of the WriterGroupType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class WriterGroupState : PubSubGroupState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public WriterGroupState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.WriterGroupType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (TransportSettings != null)
            {
                TransportSettings.Initialize(context, TransportSettings_InitializationString);
            }

            if (MessageSettings != null)
            {
                MessageSettings.Initialize(context, MessageSettings_InitializationString);
            }

            if (Diagnostics != null)
            {
                Diagnostics.Initialize(context, Diagnostics_InitializationString);
            }

            if (AddDataSetWriter != null)
            {
                AddDataSetWriter.Initialize(context, AddDataSetWriter_InitializationString);
            }

            if (RemoveDataSetWriter != null)
            {
                RemoveDataSetWriter.Initialize(context, RemoveDataSetWriter_InitializationString);
            }
        }

        #region Initialization String
        private const string TransportSettings_InitializationString =
           "//////////8EYIAKAQAAAAAAEQAAAFRyYW5zcG9ydFNldHRpbmdzAQBNRQAvAQBNRk1FAAD/////AAAA" +
           "AA==";

        private const string MessageSettings_InitializationString =
           "//////////8EYIAKAQAAAAAADwAAAE1lc3NhZ2VTZXR0aW5ncwEATkUALwEATkZORQAA/////wAAAAA=";

        private const string Diagnostics_InitializationString =
           "//////////8EYIAKAQAAAAAACwAAAERpYWdub3N0aWNzAQCURQAvAQB6TZRFAAD/////BwAAABVgiQoC" +
           "AAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAlUUALwA/lUUAAAEAC03/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAQAAAAVG90YWxJbmZvcm1hdGlvbgEAlkUALwEADU2WRQAAAAf/////AQH/////AwAAABVgiQoC" +
           "AAAAAAAGAAAAQWN0aXZlAQCXRQAuAESXRQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAAQ2xh" +
           "c3NpZmljYXRpb24BAJhFAC4ARJhFAAABABJN/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAERpYWdu" +
           "b3N0aWNzTGV2ZWwBAJlFAC4ARJlFAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFRvdGFs" +
           "RXJyb3IBAJtFAC8BAA1Nm0UAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAnEUA" +
           "LgBEnEUAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQCdRQAuAESd" +
           "RQAAAQASTf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQCeRQAuAESe" +
           "RQAAAQALTf////8BAf////8AAAAABGGCCgQAAAAAAAUAAABSZXNldAEAoEUALwEA6UygRQAAAQH/////" +
           "AAAAABVgiQoCAAAAAAAIAAAAU3ViRXJyb3IBAKFFAC8AP6FFAAAAAf////8BAf////8AAAAABGCACgEA" +
           "AAAAAAgAAABDb3VudGVycwEAokUALwA6okUAAP////8JAAAAFWCJCgIAAAAAAAoAAABTdGF0ZUVycm9y" +
           "AQCjRQAvAQANTaNFAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAKRFAC4ARKRF" +
           "AAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEApUUALgBEpUUAAAYB" +
           "AAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQCmRQAuAESm" +
           "RQAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAGAAAAFN0YXRlT3BlcmF0aW9uYWxCeU1l" +
           "dGhvZAEAqEUALwEADU2oRQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQCpRQAu" +
           "AESpRQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAKpFAC4ARKpF" +
           "AAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAq0UA" +
           "LgBEq0UAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABgAAABTdGF0ZU9wZXJhdGlvbmFs" +
           "QnlQYXJlbnQBAK1FAC8BAA1NrUUAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEA" +
           "rkUALgBErkUAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQCvRQAu" +
           "AESvRQAABgAAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwB" +
           "ALBFAC4ARLBFAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAZAAAAU3RhdGVPcGVyYXRp" +
           "b25hbEZyb21FcnJvcgEAskUALwEADU2yRQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0" +
           "aXZlAQCzRQAuAESzRQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24B" +
           "ALRFAC4ARLRFAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NM" +
           "ZXZlbAEAtUUALgBEtUUAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABMAAABTdGF0ZVBh" +
           "dXNlZEJ5UGFyZW50AQC3RQAvAQANTbdFAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3Rp" +
           "dmUBALhFAC4ARLhFAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEA" +
           "uUUALgBEuUUAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xl" +
           "dmVsAQC6RQAuAES6RQAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAFQAAAFN0YXRlRGlz" +
           "YWJsZWRCeU1ldGhvZAEAvUUALwEADU29RQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0" +
           "aXZlAQC+RQAuAES+RQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24B" +
           "AL9FAC4ARL9FAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NM" +
           "ZXZlbAEAwEUALgBEwEUAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABMAAABTZW50TmV0" +
           "d29ya01lc3NhZ2VzAQDDRQAvAQANTcNFAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3Rp" +
           "dmUBAMhFAC4ARMhFAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEA" +
           "z0UALgBEz0UAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xl" +
           "dmVsAQDQRQAuAETQRQAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAEwAAAEZhaWxlZFRy" +
           "YW5zbWlzc2lvbnMBANJFAC8BAA1N0kUAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2" +
           "ZQEA1kUALgBE1kUAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQDd" +
           "RQAuAETdRQAABgEAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2" +
           "ZWwBAORFAC4ARORFAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAQAAAARW5jcnlwdGlv" +
           "bkVycm9ycwEA7EUALwEADU3sRQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQDt" +
           "RQAuAETtRQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAO5FAC4A" +
           "RO5FAAAGAQAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEA" +
           "70UALgBE70UAAAYBAAAAAQALTf////8BAf////8AAAAABGCACgEAAAAAAAoAAABMaXZlVmFsdWVzAQDC" +
           "RQAvADrCRQAA/////wIAAAAVYIkKAgAAAAAAGAAAAENvbmZpZ3VyZWREYXRhU2V0V3JpdGVycwEA+UUA" +
           "LwA/+UUAAAAF/////wEB/////wEAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAABGAC4A" +
           "RABGAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAZAAAAT3BlcmF0aW9uYWxEYXRhU2V0" +
           "V3JpdGVycwEAB0YALwA/B0YAAAAF/////wEB/////wEAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNz" +
           "TGV2ZWwBAA5GAC4ARA5GAAAGAAAAAAEAC03/////AQH/////AAAAAA==";

        private const string AddDataSetWriter_InitializationString =
           "//////////8EYYIKBAAAAAAAEAAAAEFkZERhdGFTZXRXcml0ZXIBADFGAC8BADFGMUYAAAEB/////wIA" +
           "AAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQA4RgAuAEQ4RgAAlgEAAAABACoBAR4AAAANAAAA" +
           "Q29uZmlndXJhdGlvbgEA7Tz/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAA" +
           "AAAPAAAAT3V0cHV0QXJndW1lbnRzAQBDRgAuAERDRgAAlgEAAAABACoBASIAAAATAAAARGF0YVNldFdy" +
           "aXRlck5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string RemoveDataSetWriter_InitializationString =
           "//////////8EYYIKBAAAAAAAEwAAAFJlbW92ZURhdGFTZXRXcml0ZXIBAEhGAC8BAEhGSEYAAAEB////" +
           "/wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBJRgAuAERJRgAAlgEAAAABACoBASIAAAAT" +
           "AAAARGF0YVNldFdyaXRlck5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFwAAAFdyaXRlckdyb3VwVHlwZUluc3RhbmNlAQA9RQEAPUU9RQAA////" +
           "/w8AAAAVYIkKAgAAAAAADAAAAFNlY3VyaXR5TW9kZQEAPkUALgBEPkUAAAEALgH/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAVAAAATWF4TmV0d29ya01lc3NhZ2VTaXplAQBBRQAuAERBRQAAAAf/////AQH/////" +
           "AAAAABdgiQoCAAAAAAAPAAAAR3JvdXBQcm9wZXJ0aWVzAQBRRAAuAERRRAAAAQDFOAEAAAABAAAAAAAA" +
           "AAEB/////wAAAAAEYIAKAQAAAAAABgAAAFN0YXR1cwEAQkUALwEAMzlCRQAA/////wEAAAAVYIkKAgAA" +
           "AAAABQAAAFN0YXRlAQBDRQAvAD9DRQAAAQA3Of////8BAf////8AAAAAFWCJCgIAAAAAAA0AAABXcml0" +
           "ZXJHcm91cElkAQBIRQAuAERIRQAAAAX/////AQH/////AAAAABVgiQoCAAAAAAASAAAAUHVibGlzaGlu" +
           "Z0ludGVydmFsAQBJRQAuAERJRQAAAQAiAf////8BAf////8AAAAAFWCJCgIAAAAAAA0AAABLZWVwQWxp" +
           "dmVUaW1lAQBKRQAuAERKRQAAAQAiAf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABQcmlvcml0eQEA" +
           "S0UALgBES0UAAAAD/////wEB/////wAAAAAXYIkKAgAAAAAACQAAAExvY2FsZUlkcwEATEUALgBETEUA" +
           "AAEAJwEBAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAA8AAABIZWFkZXJMYXlvdXRVcmkBAJdE" +
           "AC4ARJdEAAAADP////8BAf////8AAAAABGCACgEAAAAAABEAAABUcmFuc3BvcnRTZXR0aW5ncwEATUUA" +
           "LwEATUZNRQAA/////wAAAAAEYIAKAQAAAAAADwAAAE1lc3NhZ2VTZXR0aW5ncwEATkUALwEATkZORQAA" +
           "/////wAAAAAEYIAKAQAAAAAACwAAAERpYWdub3N0aWNzAQCURQAvAQB6TZRFAAD/////BwAAABVgiQoC" +
           "AAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAlUUALwA/lUUAAAEAC03/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAQAAAAVG90YWxJbmZvcm1hdGlvbgEAlkUALwEADU2WRQAAAAf/////AQH/////AwAAABVgiQoC" +
           "AAAAAAAGAAAAQWN0aXZlAQCXRQAuAESXRQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAAQ2xh" +
           "c3NpZmljYXRpb24BAJhFAC4ARJhFAAABABJN/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAERpYWdu" +
           "b3N0aWNzTGV2ZWwBAJlFAC4ARJlFAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFRvdGFs" +
           "RXJyb3IBAJtFAC8BAA1Nm0UAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAnEUA" +
           "LgBEnEUAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQCdRQAuAESd" +
           "RQAAAQASTf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQCeRQAuAESe" +
           "RQAAAQALTf////8BAf////8AAAAABGGCCgQAAAAAAAUAAABSZXNldAEAoEUALwEA6UygRQAAAQH/////" +
           "AAAAABVgiQoCAAAAAAAIAAAAU3ViRXJyb3IBAKFFAC8AP6FFAAAAAf////8BAf////8AAAAABGCACgEA" +
           "AAAAAAgAAABDb3VudGVycwEAokUALwA6okUAAP////8JAAAAFWCJCgIAAAAAAAoAAABTdGF0ZUVycm9y" +
           "AQCjRQAvAQANTaNFAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAKRFAC4ARKRF" +
           "AAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEApUUALgBEpUUAAAYB" +
           "AAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQCmRQAuAESm" +
           "RQAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAGAAAAFN0YXRlT3BlcmF0aW9uYWxCeU1l" +
           "dGhvZAEAqEUALwEADU2oRQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQCpRQAu" +
           "AESpRQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAKpFAC4ARKpF" +
           "AAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAq0UA" +
           "LgBEq0UAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABgAAABTdGF0ZU9wZXJhdGlvbmFs" +
           "QnlQYXJlbnQBAK1FAC8BAA1NrUUAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEA" +
           "rkUALgBErkUAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQCvRQAu" +
           "AESvRQAABgAAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwB" +
           "ALBFAC4ARLBFAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAZAAAAU3RhdGVPcGVyYXRp" +
           "b25hbEZyb21FcnJvcgEAskUALwEADU2yRQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0" +
           "aXZlAQCzRQAuAESzRQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24B" +
           "ALRFAC4ARLRFAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NM" +
           "ZXZlbAEAtUUALgBEtUUAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABMAAABTdGF0ZVBh" +
           "dXNlZEJ5UGFyZW50AQC3RQAvAQANTbdFAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3Rp" +
           "dmUBALhFAC4ARLhFAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEA" +
           "uUUALgBEuUUAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xl" +
           "dmVsAQC6RQAuAES6RQAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAFQAAAFN0YXRlRGlz" +
           "YWJsZWRCeU1ldGhvZAEAvUUALwEADU29RQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0" +
           "aXZlAQC+RQAuAES+RQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24B" +
           "AL9FAC4ARL9FAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NM" +
           "ZXZlbAEAwEUALgBEwEUAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABMAAABTZW50TmV0" +
           "d29ya01lc3NhZ2VzAQDDRQAvAQANTcNFAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3Rp" +
           "dmUBAMhFAC4ARMhFAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEA" +
           "z0UALgBEz0UAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xl" +
           "dmVsAQDQRQAuAETQRQAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAEwAAAEZhaWxlZFRy" +
           "YW5zbWlzc2lvbnMBANJFAC8BAA1N0kUAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2" +
           "ZQEA1kUALgBE1kUAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQDd" +
           "RQAuAETdRQAABgEAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2" +
           "ZWwBAORFAC4ARORFAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAQAAAARW5jcnlwdGlv" +
           "bkVycm9ycwEA7EUALwEADU3sRQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQDt" +
           "RQAuAETtRQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAO5FAC4A" +
           "RO5FAAAGAQAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEA" +
           "70UALgBE70UAAAYBAAAAAQALTf////8BAf////8AAAAABGCACgEAAAAAAAoAAABMaXZlVmFsdWVzAQDC" +
           "RQAvADrCRQAA/////wIAAAAVYIkKAgAAAAAAGAAAAENvbmZpZ3VyZWREYXRhU2V0V3JpdGVycwEA+UUA" +
           "LwA/+UUAAAAF/////wEB/////wEAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAABGAC4A" +
           "RABGAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAZAAAAT3BlcmF0aW9uYWxEYXRhU2V0" +
           "V3JpdGVycwEAB0YALwA/B0YAAAAF/////wEB/////wEAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNz" +
           "TGV2ZWwBAA5GAC4ARA5GAAAGAAAAAAEAC03/////AQH/////AAAAAARhggoEAAAAAAAQAAAAQWRkRGF0" +
           "YVNldFdyaXRlcgEAMUYALwEAMUYxRgAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVu" +
           "dHMBADhGAC4ARDhGAACWAQAAAAEAKgEBHgAAAA0AAABDb25maWd1cmF0aW9uAQDtPP////8AAAAAAAEA" +
           "KAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAENGAC4A" +
           "RENGAACWAQAAAAEAKgEBIgAAABMAAABEYXRhU2V0V3JpdGVyTm9kZUlkABH/////AAAAAAABACgBAQAA" +
           "AAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAATAAAAUmVtb3ZlRGF0YVNldFdyaXRlcgEASEYALwEA" +
           "SEZIRgAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAElGAC4ARElGAACWAQAA" +
           "AAEAKgEBIgAAABMAAABEYXRhU2V0V3JpdGVyTm9kZUlkABH/////AAAAAAABACgBAQAAAAEAAAAAAAAA" +
           "AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<ushort> WriterGroupId
        {
            get
            {
                return m_writerGroupId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_writerGroupId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_writerGroupId = value;
            }
        }

        /// <remarks />
        public PropertyState<double> PublishingInterval
        {
            get
            {
                return m_publishingInterval;
            }

            set
            {
                if (!Object.ReferenceEquals(m_publishingInterval, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_publishingInterval = value;
            }
        }

        /// <remarks />
        public PropertyState<double> KeepAliveTime
        {
            get
            {
                return m_keepAliveTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_keepAliveTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_keepAliveTime = value;
            }
        }

        /// <remarks />
        public PropertyState<byte> Priority
        {
            get
            {
                return m_priority;
            }

            set
            {
                if (!Object.ReferenceEquals(m_priority, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_priority = value;
            }
        }

        /// <remarks />
        public PropertyState<string[]> LocaleIds
        {
            get
            {
                return m_localeIds;
            }

            set
            {
                if (!Object.ReferenceEquals(m_localeIds, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_localeIds = value;
            }
        }

        /// <remarks />
        public PropertyState<string> HeaderLayoutUri
        {
            get
            {
                return m_headerLayoutUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_headerLayoutUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_headerLayoutUri = value;
            }
        }

        /// <remarks />
        public WriterGroupTransportState TransportSettings
        {
            get
            {
                return m_transportSettings;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transportSettings, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transportSettings = value;
            }
        }

        /// <remarks />
        public WriterGroupMessageState MessageSettings
        {
            get
            {
                return m_messageSettings;
            }

            set
            {
                if (!Object.ReferenceEquals(m_messageSettings, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_messageSettings = value;
            }
        }

        /// <remarks />
        public PubSubDiagnosticsWriterGroupState Diagnostics
        {
            get
            {
                return m_diagnostics;
            }

            set
            {
                if (!Object.ReferenceEquals(m_diagnostics, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_diagnostics = value;
            }
        }

        /// <remarks />
        public PubSubGroupTypeAddWriterMethodState AddDataSetWriter
        {
            get
            {
                return m_addDataSetWriterMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addDataSetWriterMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addDataSetWriterMethod = value;
            }
        }

        /// <remarks />
        public PubSubGroupTypeRemoveWriterMethodState RemoveDataSetWriter
        {
            get
            {
                return m_removeDataSetWriterMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removeDataSetWriterMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removeDataSetWriterMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_writerGroupId != null)
            {
                children.Add(m_writerGroupId);
            }

            if (m_publishingInterval != null)
            {
                children.Add(m_publishingInterval);
            }

            if (m_keepAliveTime != null)
            {
                children.Add(m_keepAliveTime);
            }

            if (m_priority != null)
            {
                children.Add(m_priority);
            }

            if (m_localeIds != null)
            {
                children.Add(m_localeIds);
            }

            if (m_headerLayoutUri != null)
            {
                children.Add(m_headerLayoutUri);
            }

            if (m_transportSettings != null)
            {
                children.Add(m_transportSettings);
            }

            if (m_messageSettings != null)
            {
                children.Add(m_messageSettings);
            }

            if (m_diagnostics != null)
            {
                children.Add(m_diagnostics);
            }

            if (m_addDataSetWriterMethod != null)
            {
                children.Add(m_addDataSetWriterMethod);
            }

            if (m_removeDataSetWriterMethod != null)
            {
                children.Add(m_removeDataSetWriterMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.WriterGroupId:
                {
                    if (createOrReplace)
                    {
                        if (WriterGroupId == null)
                        {
                            if (replacement == null)
                            {
                                WriterGroupId = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                WriterGroupId = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = WriterGroupId;
                    break;
                }

                case Opc.Ua.BrowseNames.PublishingInterval:
                {
                    if (createOrReplace)
                    {
                        if (PublishingInterval == null)
                        {
                            if (replacement == null)
                            {
                                PublishingInterval = new PropertyState<double>(this);
                            }
                            else
                            {
                                PublishingInterval = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = PublishingInterval;
                    break;
                }

                case Opc.Ua.BrowseNames.KeepAliveTime:
                {
                    if (createOrReplace)
                    {
                        if (KeepAliveTime == null)
                        {
                            if (replacement == null)
                            {
                                KeepAliveTime = new PropertyState<double>(this);
                            }
                            else
                            {
                                KeepAliveTime = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = KeepAliveTime;
                    break;
                }

                case Opc.Ua.BrowseNames.Priority:
                {
                    if (createOrReplace)
                    {
                        if (Priority == null)
                        {
                            if (replacement == null)
                            {
                                Priority = new PropertyState<byte>(this);
                            }
                            else
                            {
                                Priority = (PropertyState<byte>)replacement;
                            }
                        }
                    }

                    instance = Priority;
                    break;
                }

                case Opc.Ua.BrowseNames.LocaleIds:
                {
                    if (createOrReplace)
                    {
                        if (LocaleIds == null)
                        {
                            if (replacement == null)
                            {
                                LocaleIds = new PropertyState<string[]>(this);
                            }
                            else
                            {
                                LocaleIds = (PropertyState<string[]>)replacement;
                            }
                        }
                    }

                    instance = LocaleIds;
                    break;
                }

                case Opc.Ua.BrowseNames.HeaderLayoutUri:
                {
                    if (createOrReplace)
                    {
                        if (HeaderLayoutUri == null)
                        {
                            if (replacement == null)
                            {
                                HeaderLayoutUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                HeaderLayoutUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = HeaderLayoutUri;
                    break;
                }

                case Opc.Ua.BrowseNames.TransportSettings:
                {
                    if (createOrReplace)
                    {
                        if (TransportSettings == null)
                        {
                            if (replacement == null)
                            {
                                TransportSettings = new WriterGroupTransportState(this);
                            }
                            else
                            {
                                TransportSettings = (WriterGroupTransportState)replacement;
                            }
                        }
                    }

                    instance = TransportSettings;
                    break;
                }

                case Opc.Ua.BrowseNames.MessageSettings:
                {
                    if (createOrReplace)
                    {
                        if (MessageSettings == null)
                        {
                            if (replacement == null)
                            {
                                MessageSettings = new WriterGroupMessageState(this);
                            }
                            else
                            {
                                MessageSettings = (WriterGroupMessageState)replacement;
                            }
                        }
                    }

                    instance = MessageSettings;
                    break;
                }

                case Opc.Ua.BrowseNames.Diagnostics:
                {
                    if (createOrReplace)
                    {
                        if (Diagnostics == null)
                        {
                            if (replacement == null)
                            {
                                Diagnostics = new PubSubDiagnosticsWriterGroupState(this);
                            }
                            else
                            {
                                Diagnostics = (PubSubDiagnosticsWriterGroupState)replacement;
                            }
                        }
                    }

                    instance = Diagnostics;
                    break;
                }

                case Opc.Ua.BrowseNames.AddDataSetWriter:
                {
                    if (createOrReplace)
                    {
                        if (AddDataSetWriter == null)
                        {
                            if (replacement == null)
                            {
                                AddDataSetWriter = new PubSubGroupTypeAddWriterMethodState(this);
                            }
                            else
                            {
                                AddDataSetWriter = (PubSubGroupTypeAddWriterMethodState)replacement;
                            }
                        }
                    }

                    instance = AddDataSetWriter;
                    break;
                }

                case Opc.Ua.BrowseNames.RemoveDataSetWriter:
                {
                    if (createOrReplace)
                    {
                        if (RemoveDataSetWriter == null)
                        {
                            if (replacement == null)
                            {
                                RemoveDataSetWriter = new PubSubGroupTypeRemoveWriterMethodState(this);
                            }
                            else
                            {
                                RemoveDataSetWriter = (PubSubGroupTypeRemoveWriterMethodState)replacement;
                            }
                        }
                    }

                    instance = RemoveDataSetWriter;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<ushort> m_writerGroupId;
        private PropertyState<double> m_publishingInterval;
        private PropertyState<double> m_keepAliveTime;
        private PropertyState<byte> m_priority;
        private PropertyState<string[]> m_localeIds;
        private PropertyState<string> m_headerLayoutUri;
        private WriterGroupTransportState m_transportSettings;
        private WriterGroupMessageState m_messageSettings;
        private PubSubDiagnosticsWriterGroupState m_diagnostics;
        private PubSubGroupTypeAddWriterMethodState m_addDataSetWriterMethod;
        private PubSubGroupTypeRemoveWriterMethodState m_removeDataSetWriterMethod;
        #endregion
    }
    #endif
    #endregion

    #region PubSubGroupTypeAddWriterMethodState Class
    #if (!OPCUA_EXCLUDE_PubSubGroupTypeAddWriterMethodState)
    /// <summary>
    /// Stores an instance of the PubSubGroupTypeAddWriterMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubGroupTypeAddWriterMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubGroupTypeAddWriterMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new PubSubGroupTypeAddWriterMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAIgAAAFB1YlN1Ykdyb3VwVHlwZUFkZFdyaXRlck1ldGhvZFR5cGUBAEpG" +
           "AC8BAEpGSkYAAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBLRgAuAERLRgAA" +
           "lgEAAAABACoBAR4AAAANAAAAQ29uZmlndXJhdGlvbgEA7Tz/////AAAAAAABACgBAQAAAAEAAAAAAAAA" +
           "AQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQBMRgAuAERMRgAAlgEAAAABACoB" +
           "ASIAAAATAAAARGF0YVNldFdyaXRlck5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB////" +
           "/wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public PubSubGroupTypeAddWriterMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            DataSetWriterDataType configuration = (DataSetWriterDataType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[0]);

            NodeId dataSetWriterNodeId = (NodeId)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    configuration,
                    ref dataSetWriterNodeId);
            }

            _outputArguments[0] = dataSetWriterNodeId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult PubSubGroupTypeAddWriterMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        DataSetWriterDataType configuration,
        ref NodeId dataSetWriterNodeId);
    #endif
    #endregion

    #region PubSubGroupTypeRemoveWriterMethodState Class
    #if (!OPCUA_EXCLUDE_PubSubGroupTypeRemoveWriterMethodState)
    /// <summary>
    /// Stores an instance of the PubSubGroupTypeRemoveWriterMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubGroupTypeRemoveWriterMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubGroupTypeRemoveWriterMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new PubSubGroupTypeRemoveWriterMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAJQAAAFB1YlN1Ykdyb3VwVHlwZVJlbW92ZVdyaXRlck1ldGhvZFR5cGUB" +
           "AB85AC8BAB85HzkAAAEB/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQAgOQAuAEQg" +
           "OQAAlgEAAAABACoBASIAAAATAAAARGF0YVNldFdyaXRlck5vZGVJZAAR/////wAAAAAAAQAoAQEAAAAB" +
           "AAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public PubSubGroupTypeRemoveWriterMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            NodeId dataSetWriterNodeId = (NodeId)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    dataSetWriterNodeId);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult PubSubGroupTypeRemoveWriterMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        NodeId dataSetWriterNodeId);
    #endif
    #endregion

    #region WriterGroupTransportState Class
    #if (!OPCUA_EXCLUDE_WriterGroupTransportState)
    /// <summary>
    /// Stores an instance of the WriterGroupTransportType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class WriterGroupTransportState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public WriterGroupTransportState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.WriterGroupTransportType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIAAAAFdyaXRlckdyb3VwVHJhbnNwb3J0VHlwZUluc3RhbmNlAQBNRgEA" +
           "TUZNRgAA/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region WriterGroupMessageState Class
    #if (!OPCUA_EXCLUDE_WriterGroupMessageState)
    /// <summary>
    /// Stores an instance of the WriterGroupMessageType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class WriterGroupMessageState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public WriterGroupMessageState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.WriterGroupMessageType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHgAAAFdyaXRlckdyb3VwTWVzc2FnZVR5cGVJbnN0YW5jZQEATkYBAE5G" +
           "TkYAAP////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region ReaderGroupState Class
    #if (!OPCUA_EXCLUDE_ReaderGroupState)
    /// <summary>
    /// Stores an instance of the ReaderGroupType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ReaderGroupState : PubSubGroupState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ReaderGroupState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ReaderGroupType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (Diagnostics != null)
            {
                Diagnostics.Initialize(context, Diagnostics_InitializationString);
            }

            if (TransportSettings != null)
            {
                TransportSettings.Initialize(context, TransportSettings_InitializationString);
            }

            if (MessageSettings != null)
            {
                MessageSettings.Initialize(context, MessageSettings_InitializationString);
            }

            if (AddDataSetReader != null)
            {
                AddDataSetReader.Initialize(context, AddDataSetReader_InitializationString);
            }

            if (RemoveDataSetReader != null)
            {
                RemoveDataSetReader.Initialize(context, RemoveDataSetReader_InitializationString);
            }
        }

        #region Initialization String
        private const string Diagnostics_InitializationString =
           "//////////8EYIAKAQAAAAAACwAAAERpYWdub3N0aWNzAQAXUgAvAQC/TRdSAAD/////BwAAABVgiQoC" +
           "AAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAGFIALwA/GFIAAAEAC03/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAQAAAAVG90YWxJbmZvcm1hdGlvbgEAGVIALwEADU0ZUgAAAAf/////AQH/////AwAAABVgiQoC" +
           "AAAAAAAGAAAAQWN0aXZlAQAaUgAuAEQaUgAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAAQ2xh" +
           "c3NpZmljYXRpb24BABtSAC4ARBtSAAABABJN/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAERpYWdu" +
           "b3N0aWNzTGV2ZWwBABxSAC4ARBxSAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFRvdGFs" +
           "RXJyb3IBAB5SAC8BAA1NHlIAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAH1IA" +
           "LgBEH1IAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQAgUgAuAEQg" +
           "UgAAAQASTf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQAhUgAuAEQh" +
           "UgAAAQALTf////8BAf////8AAAAABGGCCgQAAAAAAAUAAABSZXNldAEAI1IALwEA6UwjUgAAAQH/////" +
           "AAAAABVgiQoCAAAAAAAIAAAAU3ViRXJyb3IBACRSAC8APyRSAAAAAf////8BAf////8AAAAABGCACgEA" +
           "AAAAAAgAAABDb3VudGVycwEAJVIALwA6JVIAAP////8HAAAAFWCJCgIAAAAAAAoAAABTdGF0ZUVycm9y" +
           "AQAmUgAvAQANTSZSAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBACdSAC4ARCdS" +
           "AAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAKFIALgBEKFIAAAYB" +
           "AAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQApUgAuAEQp" +
           "UgAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAGAAAAFN0YXRlT3BlcmF0aW9uYWxCeU1l" +
           "dGhvZAEAK1IALwEADU0rUgAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQAsUgAu" +
           "AEQsUgAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAC1SAC4ARC1S" +
           "AAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEALlIA" +
           "LgBELlIAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABgAAABTdGF0ZU9wZXJhdGlvbmFs" +
           "QnlQYXJlbnQBADBSAC8BAA1NMFIAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEA" +
           "MVIALgBEMVIAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQAyUgAu" +
           "AEQyUgAABgAAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwB" +
           "ADNSAC4ARDNSAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAZAAAAU3RhdGVPcGVyYXRp" +
           "b25hbEZyb21FcnJvcgEANVIALwEADU01UgAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0" +
           "aXZlAQA2UgAuAEQ2UgAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24B" +
           "ADdSAC4ARDdSAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NM" +
           "ZXZlbAEAOFIALgBEOFIAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABMAAABTdGF0ZVBh" +
           "dXNlZEJ5UGFyZW50AQA6UgAvAQANTTpSAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3Rp" +
           "dmUBADtSAC4ARDtSAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEA" +
           "PFIALgBEPFIAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xl" +
           "dmVsAQA9UgAuAEQ9UgAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAFQAAAFN0YXRlRGlz" +
           "YWJsZWRCeU1ldGhvZAEAP1IALwEADU0/UgAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0" +
           "aXZlAQBAUgAuAERAUgAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24B" +
           "AEFSAC4AREFSAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NM" +
           "ZXZlbAEAQlIALgBEQlIAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABcAAABSZWNlaXZl" +
           "ZE5ldHdvcmtNZXNzYWdlcwEARVIALwEADU1FUgAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAA" +
           "QWN0aXZlAQBGUgAuAERGUgAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRp" +
           "b24BAEdSAC4AREdSAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3Rp" +
           "Y3NMZXZlbAEASFIALgBESFIAAAYAAAAAAQALTf////8BAf////8AAAAABGCACgEAAAAAAAoAAABMaXZl" +
           "VmFsdWVzAQBEUgAvADpEUgAA/////wIAAAAVYIkKAgAAAAAAGAAAAENvbmZpZ3VyZWREYXRhU2V0UmVh" +
           "ZGVycwEAVFIALwA/VFIAAAAF/////wEB/////wEAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2" +
           "ZWwBAFVSAC4ARFVSAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAZAAAAT3BlcmF0aW9u" +
           "YWxEYXRhU2V0UmVhZGVycwEAVlIALwA/VlIAAAAF/////wEB/////wEAAAAVYKkKAgAAAAAAEAAAAERp" +
           "YWdub3N0aWNzTGV2ZWwBAFdSAC4ARFdSAAAGAAAAAAEAC03/////AQH/////AAAAAA==";

        private const string TransportSettings_InitializationString =
           "//////////8EYIAKAQAAAAAAEQAAAFRyYW5zcG9ydFNldHRpbmdzAQBYUgAvAQBiUlhSAAD/////AAAA" +
           "AA==";

        private const string MessageSettings_InitializationString =
           "//////////8EYIAKAQAAAAAADwAAAE1lc3NhZ2VTZXR0aW5ncwEAWVIALwEAY1JZUgAA/////wAAAAA=";

        private const string AddDataSetReader_InitializationString =
           "//////////8EYYIKBAAAAAAAEAAAAEFkZERhdGFTZXRSZWFkZXIBAFpSAC8BAFpSWlIAAAEB/////wIA" +
           "AAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBbUgAuAERbUgAAlgEAAAABACoBAR4AAAANAAAA" +
           "Q29uZmlndXJhdGlvbgEABz3/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAA" +
           "AAAPAAAAT3V0cHV0QXJndW1lbnRzAQBcUgAuAERcUgAAlgEAAAABACoBASIAAAATAAAARGF0YVNldFJl" +
           "YWRlck5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string RemoveDataSetReader_InitializationString =
           "//////////8EYYIKBAAAAAAAEwAAAFJlbW92ZURhdGFTZXRSZWFkZXIBAF1SAC8BAF1SXVIAAAEB////" +
           "/wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBeUgAuAEReUgAAlgEAAAABACoBASIAAAAT" +
           "AAAARGF0YVNldFJlYWRlck5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFwAAAFJlYWRlckdyb3VwVHlwZUluc3RhbmNlAQBPRgEAT0ZPRgAA////" +
           "/wkAAAAVYIkKAgAAAAAADAAAAFNlY3VyaXR5TW9kZQEAUEYALgBEUEYAAAEALgH/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAVAAAATWF4TmV0d29ya01lc3NhZ2VTaXplAQCRRgAuAESRRgAAAAf/////AQH/////" +
           "AAAAABdgiQoCAAAAAAAPAAAAR3JvdXBQcm9wZXJ0aWVzAQBTRAAuAERTRAAAAQDFOAEAAAABAAAAAAAA" +
           "AAEB/////wAAAAAEYIAKAQAAAAAABgAAAFN0YXR1cwEAk0YALwEAMzmTRgAA/////wEAAAAVYIkKAgAA" +
           "AAAABQAAAFN0YXRlAQCURgAvAD+URgAAAQA3Of////8BAf////8AAAAABGCACgEAAAAAAAsAAABEaWFn" +
           "bm9zdGljcwEAF1IALwEAv00XUgAA/////wcAAAAVYIkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwB" +
           "ABhSAC8APxhSAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAFRvdGFsSW5mb3JtYXRpb24B" +
           "ABlSAC8BAA1NGVIAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAGlIALgBEGlIA" +
           "AAAB/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQAbUgAuAEQbUgAAAQAS" +
           "Tf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQAcUgAuAEQcUgAAAQAL" +
           "Tf////8BAf////8AAAAAFWCJCgIAAAAAAAoAAABUb3RhbEVycm9yAQAeUgAvAQANTR5SAAAAB/////8B" +
           "Af////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAB9SAC4ARB9SAAAAAf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAIFIALgBEIFIAAAEAEk3/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAIVIALgBEIVIAAAEAC03/////AQH/////AAAAAARhggoE" +
           "AAAAAAAFAAAAUmVzZXQBACNSAC8BAOlMI1IAAAEB/////wAAAAAVYIkKAgAAAAAACAAAAFN1YkVycm9y" +
           "AQAkUgAvAD8kUgAAAAH/////AQH/////AAAAAARggAoBAAAAAAAIAAAAQ291bnRlcnMBACVSAC8AOiVS" +
           "AAD/////BwAAABVgiQoCAAAAAAAKAAAAU3RhdGVFcnJvcgEAJlIALwEADU0mUgAAAAf/////AQH/////" +
           "AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQAnUgAuAEQnUgAAAAH/////AQH/////AAAAABVgqQoCAAAA" +
           "AAAOAAAAQ2xhc3NpZmljYXRpb24BAChSAC4ARChSAAAGAQAAAAEAEk3/////AQH/////AAAAABVgqQoC" +
           "AAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAKVIALgBEKVIAAAYAAAAAAQALTf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAABgAAABTdGF0ZU9wZXJhdGlvbmFsQnlNZXRob2QBACtSAC8BAA1NK1IAAAAH/////wEB" +
           "/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEALFIALgBELFIAAAAB/////wEB/////wAAAAAVYKkK" +
           "AgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQAtUgAuAEQtUgAABgAAAAABABJN/////wEB/////wAAAAAV" +
           "YKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAC5SAC4ARC5SAAAGAAAAAAEAC03/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAYAAAAU3RhdGVPcGVyYXRpb25hbEJ5UGFyZW50AQAwUgAvAQANTTBSAAAAB///" +
           "//8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBADFSAC4ARDFSAAAAAf////8BAf////8AAAAA" +
           "FWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAMlIALgBEMlIAAAYAAAAAAQASTf////8BAf////8A" +
           "AAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQAzUgAuAEQzUgAABgAAAAABAAtN/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAAGQAAAFN0YXRlT3BlcmF0aW9uYWxGcm9tRXJyb3IBADVSAC8BAA1NNVIA" +
           "AAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEANlIALgBENlIAAAAB/////wEB////" +
           "/wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQA3UgAuAEQ3UgAABgAAAAABABJN/////wEB" +
           "/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBADhSAC4ARDhSAAAGAAAAAAEAC03/" +
           "////AQH/////AAAAABVgiQoCAAAAAAATAAAAU3RhdGVQYXVzZWRCeVBhcmVudAEAOlIALwEADU06UgAA" +
           "AAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQA7UgAuAEQ7UgAAAAH/////AQH/////" +
           "AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BADxSAC4ARDxSAAAGAAAAAAEAEk3/////AQH/" +
           "////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAPVIALgBEPVIAAAYAAAAAAQALTf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAABUAAABTdGF0ZURpc2FibGVkQnlNZXRob2QBAD9SAC8BAA1NP1IA" +
           "AAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAQFIALgBEQFIAAAAB/////wEB////" +
           "/wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQBBUgAuAERBUgAABgAAAAABABJN/////wEB" +
           "/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAEJSAC4AREJSAAAGAAAAAAEAC03/" +
           "////AQH/////AAAAABVgiQoCAAAAAAAXAAAAUmVjZWl2ZWROZXR3b3JrTWVzc2FnZXMBAEVSAC8BAA1N" +
           "RVIAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEARlIALgBERlIAAAAB/////wEB" +
           "/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQBHUgAuAERHUgAABgAAAAABABJN////" +
           "/wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAEhSAC4AREhSAAAGAAAAAAEA" +
           "C03/////AQH/////AAAAAARggAoBAAAAAAAKAAAATGl2ZVZhbHVlcwEARFIALwA6RFIAAP////8CAAAA" +
           "FWCJCgIAAAAAABgAAABDb25maWd1cmVkRGF0YVNldFJlYWRlcnMBAFRSAC8AP1RSAAAABf////8BAf//" +
           "//8BAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBVUgAuAERVUgAABgAAAAABAAtN////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAAGQAAAE9wZXJhdGlvbmFsRGF0YVNldFJlYWRlcnMBAFZSAC8AP1ZS" +
           "AAAABf////8BAf////8BAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBXUgAuAERXUgAA" +
           "BgAAAAABAAtN/////wEB/////wAAAAAEYIAKAQAAAAAAEQAAAFRyYW5zcG9ydFNldHRpbmdzAQBYUgAv" +
           "AQBiUlhSAAD/////AAAAAARggAoBAAAAAAAPAAAATWVzc2FnZVNldHRpbmdzAQBZUgAvAQBjUllSAAD/" +
           "////AAAAAARhggoEAAAAAAAQAAAAQWRkRGF0YVNldFJlYWRlcgEAWlIALwEAWlJaUgAAAQH/////AgAA" +
           "ABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAFtSAC4ARFtSAACWAQAAAAEAKgEBHgAAAA0AAABD" +
           "b25maWd1cmF0aW9uAQAHPf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAA" +
           "AA8AAABPdXRwdXRBcmd1bWVudHMBAFxSAC4ARFxSAACWAQAAAAEAKgEBIgAAABMAAABEYXRhU2V0UmVh" +
           "ZGVyTm9kZUlkABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAATAAAA" +
           "UmVtb3ZlRGF0YVNldFJlYWRlcgEAXVIALwEAXVJdUgAAAQH/////AQAAABdgqQoCAAAAAAAOAAAASW5w" +
           "dXRBcmd1bWVudHMBAF5SAC4ARF5SAACWAQAAAAEAKgEBIgAAABMAAABEYXRhU2V0UmVhZGVyTm9kZUlk" +
           "ABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PubSubDiagnosticsReaderGroupState Diagnostics
        {
            get
            {
                return m_diagnostics;
            }

            set
            {
                if (!Object.ReferenceEquals(m_diagnostics, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_diagnostics = value;
            }
        }

        /// <remarks />
        public ReaderGroupTransportState TransportSettings
        {
            get
            {
                return m_transportSettings;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transportSettings, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transportSettings = value;
            }
        }

        /// <remarks />
        public ReaderGroupMessageState MessageSettings
        {
            get
            {
                return m_messageSettings;
            }

            set
            {
                if (!Object.ReferenceEquals(m_messageSettings, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_messageSettings = value;
            }
        }

        /// <remarks />
        public PubSubGroupTypeAddReaderMethodState AddDataSetReader
        {
            get
            {
                return m_addDataSetReaderMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addDataSetReaderMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addDataSetReaderMethod = value;
            }
        }

        /// <remarks />
        public PubSubGroupTypeRemoveReaderMethodState RemoveDataSetReader
        {
            get
            {
                return m_removeDataSetReaderMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removeDataSetReaderMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removeDataSetReaderMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_diagnostics != null)
            {
                children.Add(m_diagnostics);
            }

            if (m_transportSettings != null)
            {
                children.Add(m_transportSettings);
            }

            if (m_messageSettings != null)
            {
                children.Add(m_messageSettings);
            }

            if (m_addDataSetReaderMethod != null)
            {
                children.Add(m_addDataSetReaderMethod);
            }

            if (m_removeDataSetReaderMethod != null)
            {
                children.Add(m_removeDataSetReaderMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Diagnostics:
                {
                    if (createOrReplace)
                    {
                        if (Diagnostics == null)
                        {
                            if (replacement == null)
                            {
                                Diagnostics = new PubSubDiagnosticsReaderGroupState(this);
                            }
                            else
                            {
                                Diagnostics = (PubSubDiagnosticsReaderGroupState)replacement;
                            }
                        }
                    }

                    instance = Diagnostics;
                    break;
                }

                case Opc.Ua.BrowseNames.TransportSettings:
                {
                    if (createOrReplace)
                    {
                        if (TransportSettings == null)
                        {
                            if (replacement == null)
                            {
                                TransportSettings = new ReaderGroupTransportState(this);
                            }
                            else
                            {
                                TransportSettings = (ReaderGroupTransportState)replacement;
                            }
                        }
                    }

                    instance = TransportSettings;
                    break;
                }

                case Opc.Ua.BrowseNames.MessageSettings:
                {
                    if (createOrReplace)
                    {
                        if (MessageSettings == null)
                        {
                            if (replacement == null)
                            {
                                MessageSettings = new ReaderGroupMessageState(this);
                            }
                            else
                            {
                                MessageSettings = (ReaderGroupMessageState)replacement;
                            }
                        }
                    }

                    instance = MessageSettings;
                    break;
                }

                case Opc.Ua.BrowseNames.AddDataSetReader:
                {
                    if (createOrReplace)
                    {
                        if (AddDataSetReader == null)
                        {
                            if (replacement == null)
                            {
                                AddDataSetReader = new PubSubGroupTypeAddReaderMethodState(this);
                            }
                            else
                            {
                                AddDataSetReader = (PubSubGroupTypeAddReaderMethodState)replacement;
                            }
                        }
                    }

                    instance = AddDataSetReader;
                    break;
                }

                case Opc.Ua.BrowseNames.RemoveDataSetReader:
                {
                    if (createOrReplace)
                    {
                        if (RemoveDataSetReader == null)
                        {
                            if (replacement == null)
                            {
                                RemoveDataSetReader = new PubSubGroupTypeRemoveReaderMethodState(this);
                            }
                            else
                            {
                                RemoveDataSetReader = (PubSubGroupTypeRemoveReaderMethodState)replacement;
                            }
                        }
                    }

                    instance = RemoveDataSetReader;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PubSubDiagnosticsReaderGroupState m_diagnostics;
        private ReaderGroupTransportState m_transportSettings;
        private ReaderGroupMessageState m_messageSettings;
        private PubSubGroupTypeAddReaderMethodState m_addDataSetReaderMethod;
        private PubSubGroupTypeRemoveReaderMethodState m_removeDataSetReaderMethod;
        #endregion
    }
    #endif
    #endregion

    #region PubSubGroupTypeAddReaderMethodState Class
    #if (!OPCUA_EXCLUDE_PubSubGroupTypeAddReaderMethodState)
    /// <summary>
    /// Stores an instance of the PubSubGroupTypeAddReaderMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubGroupTypeAddReaderMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubGroupTypeAddReaderMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new PubSubGroupTypeAddReaderMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAIgAAAFB1YlN1Ykdyb3VwVHlwZUFkZFJlYWRlck1ldGhvZFR5cGUBAF9S" +
           "AC8BAF9SX1IAAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQBgUgAuAERgUgAA" +
           "lgEAAAABACoBAR4AAAANAAAAQ29uZmlndXJhdGlvbgEABz3/////AAAAAAABACgBAQAAAAEAAAAAAAAA" +
           "AQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQBhUgAuAERhUgAAlgEAAAABACoB" +
           "ASIAAAATAAAARGF0YVNldFJlYWRlck5vZGVJZAAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB////" +
           "/wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public PubSubGroupTypeAddReaderMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            DataSetReaderDataType configuration = (DataSetReaderDataType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[0]);

            NodeId dataSetReaderNodeId = (NodeId)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    configuration,
                    ref dataSetReaderNodeId);
            }

            _outputArguments[0] = dataSetReaderNodeId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult PubSubGroupTypeAddReaderMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        DataSetReaderDataType configuration,
        ref NodeId dataSetReaderNodeId);
    #endif
    #endregion

    #region PubSubGroupTypeRemoveReaderMethodState Class
    #if (!OPCUA_EXCLUDE_PubSubGroupTypeRemoveReaderMethodState)
    /// <summary>
    /// Stores an instance of the PubSubGroupTypeRemoveReaderMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubGroupTypeRemoveReaderMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubGroupTypeRemoveReaderMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new PubSubGroupTypeRemoveReaderMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAJQAAAFB1YlN1Ykdyb3VwVHlwZVJlbW92ZVJlYWRlck1ldGhvZFR5cGUB" +
           "ACE5AC8BACE5ITkAAAEB/////wEAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQAiOQAuAEQi" +
           "OQAAlgEAAAABACoBASIAAAATAAAARGF0YVNldFJlYWRlck5vZGVJZAAR/////wAAAAAAAQAoAQEAAAAB" +
           "AAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public PubSubGroupTypeRemoveReaderMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            NodeId dataSetReaderNodeId = (NodeId)_inputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    dataSetReaderNodeId);
            }

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult PubSubGroupTypeRemoveReaderMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        NodeId dataSetReaderNodeId);
    #endif
    #endregion

    #region ReaderGroupTransportState Class
    #if (!OPCUA_EXCLUDE_ReaderGroupTransportState)
    /// <summary>
    /// Stores an instance of the ReaderGroupTransportType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ReaderGroupTransportState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ReaderGroupTransportState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ReaderGroupTransportType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIAAAAFJlYWRlckdyb3VwVHJhbnNwb3J0VHlwZUluc3RhbmNlAQBiUgEA" +
           "YlJiUgAA/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region ReaderGroupMessageState Class
    #if (!OPCUA_EXCLUDE_ReaderGroupMessageState)
    /// <summary>
    /// Stores an instance of the ReaderGroupMessageType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ReaderGroupMessageState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ReaderGroupMessageState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ReaderGroupMessageType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHgAAAFJlYWRlckdyb3VwTWVzc2FnZVR5cGVJbnN0YW5jZQEAY1IBAGNS" +
           "Y1IAAP////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region DataSetWriterState Class
    #if (!OPCUA_EXCLUDE_DataSetWriterState)
    /// <summary>
    /// Stores an instance of the DataSetWriterType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DataSetWriterState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DataSetWriterState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.DataSetWriterType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (KeyFrameCount != null)
            {
                KeyFrameCount.Initialize(context, KeyFrameCount_InitializationString);
            }

            if (TransportSettings != null)
            {
                TransportSettings.Initialize(context, TransportSettings_InitializationString);
            }

            if (MessageSettings != null)
            {
                MessageSettings.Initialize(context, MessageSettings_InitializationString);
            }

            if (Diagnostics != null)
            {
                Diagnostics.Initialize(context, Diagnostics_InitializationString);
            }
        }

        #region Initialization String
        private const string KeyFrameCount_InitializationString =
           "//////////8VYIkKAgAAAAAADQAAAEtleUZyYW1lQ291bnQBAGZSAC4ARGZSAAAAB/////8BAf////8A" +
           "AAAA";

        private const string TransportSettings_InitializationString =
           "//////////8EYIAKAQAAAAAAEQAAAFRyYW5zcG9ydFNldHRpbmdzAQDHOwAvAQDJO8c7AAD/////AAAA" +
           "AA==";

        private const string MessageSettings_InitializationString =
           "//////////8EYIAKAQAAAAAADwAAAE1lc3NhZ2VTZXR0aW5ncwEAZ1IALwEAaFJnUgAA/////wAAAAA=";

        private const string Diagnostics_InitializationString =
           "//////////8EYIAKAQAAAAAACwAAAERpYWdub3N0aWNzAQBeTAAvAQAATl5MAAD/////BwAAABVgiQoC" +
           "AAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAX0wALwA/X0wAAAEAC03/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAQAAAAVG90YWxJbmZvcm1hdGlvbgEAYEwALwEADU1gTAAAAAf/////AQH/////AwAAABVgiQoC" +
           "AAAAAAAGAAAAQWN0aXZlAQBhTAAuAERhTAAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAAQ2xh" +
           "c3NpZmljYXRpb24BAGJMAC4ARGJMAAABABJN/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAERpYWdu" +
           "b3N0aWNzTGV2ZWwBAGNMAC4ARGNMAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFRvdGFs" +
           "RXJyb3IBAGVMAC8BAA1NZUwAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAZkwA" +
           "LgBEZkwAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQBnTAAuAERn" +
           "TAAAAQASTf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBoTAAuAERo" +
           "TAAAAQALTf////8BAf////8AAAAABGGCCgQAAAAAAAUAAABSZXNldAEAakwALwEA6UxqTAAAAQH/////" +
           "AAAAABVgiQoCAAAAAAAIAAAAU3ViRXJyb3IBAGtMAC8AP2tMAAAAAf////8BAf////8AAAAABGCACgEA" +
           "AAAAAAgAAABDb3VudGVycwEAbEwALwA6bEwAAP////8HAAAAFWCJCgIAAAAAAAoAAABTdGF0ZUVycm9y" +
           "AQBtTAAvAQANTW1MAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAG5MAC4ARG5M" +
           "AAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAb0wALgBEb0wAAAYB" +
           "AAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBwTAAuAERw" +
           "TAAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAGAAAAFN0YXRlT3BlcmF0aW9uYWxCeU1l" +
           "dGhvZAEAckwALwEADU1yTAAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQBzTAAu" +
           "AERzTAAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAHRMAC4ARHRM" +
           "AAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAdUwA" +
           "LgBEdUwAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABgAAABTdGF0ZU9wZXJhdGlvbmFs" +
           "QnlQYXJlbnQBAHdMAC8BAA1Nd0wAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEA" +
           "eEwALgBEeEwAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQB5TAAu" +
           "AER5TAAABgAAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwB" +
           "AHpMAC4ARHpMAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAZAAAAU3RhdGVPcGVyYXRp" +
           "b25hbEZyb21FcnJvcgEAfEwALwEADU18TAAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0" +
           "aXZlAQB9TAAuAER9TAAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24B" +
           "AH5MAC4ARH5MAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NM" +
           "ZXZlbAEAf0wALgBEf0wAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABMAAABTdGF0ZVBh" +
           "dXNlZEJ5UGFyZW50AQCBTAAvAQANTYFMAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3Rp" +
           "dmUBAIJMAC4ARIJMAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEA" +
           "g0wALgBEg0wAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xl" +
           "dmVsAQCETAAuAESETAAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAFQAAAFN0YXRlRGlz" +
           "YWJsZWRCeU1ldGhvZAEAhkwALwEADU2GTAAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0" +
           "aXZlAQCHTAAuAESHTAAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24B" +
           "AIhMAC4ARIhMAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NM" +
           "ZXZlbAEAiUwALgBEiUwAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABUAAABGYWlsZWRE" +
           "YXRhU2V0TWVzc2FnZXMBAIxMAC8BAA1NjEwAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFj" +
           "dGl2ZQEAjUwALgBEjUwAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9u" +
           "AQCOTAAuAESOTAAABgEAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNz" +
           "TGV2ZWwBAI9MAC4ARI9MAAAGAAAAAAEAC03/////AQH/////AAAAAARggAoBAAAAAAAKAAAATGl2ZVZh" +
           "bHVlcwEAi0wALwA6i0wAAP////8AAAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGQAAAERhdGFTZXRXcml0ZXJUeXBlSW5zdGFuY2UBAMI7AQDCO8I7AAD/" +
           "////CAAAABVgiQoCAAAAAAAPAAAARGF0YVNldFdyaXRlcklkAQBkUgAuAERkUgAAAAX/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAXAAAARGF0YVNldEZpZWxkQ29udGVudE1hc2sBAGVSAC4ARGVSAAABAN88////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAADQAAAEtleUZyYW1lQ291bnQBAGZSAC4ARGZSAAAAB/////8BAf//" +
           "//8AAAAAF2CJCgIAAAAAABcAAABEYXRhU2V0V3JpdGVyUHJvcGVydGllcwEAVUQALgBEVUQAAAEAxTgB" +
           "AAAAAQAAAAAAAAABAf////8AAAAABGCACgEAAAAAABEAAABUcmFuc3BvcnRTZXR0aW5ncwEAxzsALwEA" +
           "yTvHOwAA/////wAAAAAEYIAKAQAAAAAADwAAAE1lc3NhZ2VTZXR0aW5ncwEAZ1IALwEAaFJnUgAA////" +
           "/wAAAAAEYIAKAQAAAAAABgAAAFN0YXR1cwEAwzsALwEAMznDOwAA/////wEAAAAVYIkKAgAAAAAABQAA" +
           "AFN0YXRlAQDEOwAvAD/EOwAAAQA3Of////8BAf////8AAAAABGCACgEAAAAAAAsAAABEaWFnbm9zdGlj" +
           "cwEAXkwALwEAAE5eTAAA/////wcAAAAVYIkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAF9MAC8A" +
           "P19MAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAFRvdGFsSW5mb3JtYXRpb24BAGBMAC8B" +
           "AA1NYEwAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAYUwALgBEYUwAAAAB////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQBiTAAuAERiTAAAAQASTf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBjTAAuAERjTAAAAQALTf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAAoAAABUb3RhbEVycm9yAQBlTAAvAQANTWVMAAAAB/////8BAf////8D" +
           "AAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAGZMAC4ARGZMAAAAAf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AA4AAABDbGFzc2lmaWNhdGlvbgEAZ0wALgBEZ0wAAAEAEk3/////AQH/////AAAAABVgiQoCAAAAAAAQ" +
           "AAAARGlhZ25vc3RpY3NMZXZlbAEAaEwALgBEaEwAAAEAC03/////AQH/////AAAAAARhggoEAAAAAAAF" +
           "AAAAUmVzZXQBAGpMAC8BAOlMakwAAAEB/////wAAAAAVYIkKAgAAAAAACAAAAFN1YkVycm9yAQBrTAAv" +
           "AD9rTAAAAAH/////AQH/////AAAAAARggAoBAAAAAAAIAAAAQ291bnRlcnMBAGxMAC8AOmxMAAD/////" +
           "BwAAABVgiQoCAAAAAAAKAAAAU3RhdGVFcnJvcgEAbUwALwEADU1tTAAAAAf/////AQH/////AwAAABVg" +
           "iQoCAAAAAAAGAAAAQWN0aXZlAQBuTAAuAERuTAAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAA" +
           "Q2xhc3NpZmljYXRpb24BAG9MAC4ARG9MAAAGAQAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQ" +
           "AAAARGlhZ25vc3RpY3NMZXZlbAEAcEwALgBEcEwAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAABgAAABTdGF0ZU9wZXJhdGlvbmFsQnlNZXRob2QBAHJMAC8BAA1NckwAAAAH/////wEB/////wMA" +
           "AAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAc0wALgBEc0wAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAA" +
           "DgAAAENsYXNzaWZpY2F0aW9uAQB0TAAuAER0TAAABgAAAAABABJN/////wEB/////wAAAAAVYKkKAgAA" +
           "AAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAHVMAC4ARHVMAAAGAAAAAAEAC03/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAYAAAAU3RhdGVPcGVyYXRpb25hbEJ5UGFyZW50AQB3TAAvAQANTXdMAAAAB/////8BAf//" +
           "//8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAHhMAC4ARHhMAAAAAf////8BAf////8AAAAAFWCpCgIA" +
           "AAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAeUwALgBEeUwAAAYAAAAAAQASTf////8BAf////8AAAAAFWCp" +
           "CgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQB6TAAuAER6TAAABgAAAAABAAtN/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAAGQAAAFN0YXRlT3BlcmF0aW9uYWxGcm9tRXJyb3IBAHxMAC8BAA1NfEwAAAAH////" +
           "/wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAfUwALgBEfUwAAAAB/////wEB/////wAAAAAV" +
           "YKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQB+TAAuAER+TAAABgAAAAABABJN/////wEB/////wAA" +
           "AAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAH9MAC4ARH9MAAAGAAAAAAEAC03/////AQH/" +
           "////AAAAABVgiQoCAAAAAAATAAAAU3RhdGVQYXVzZWRCeVBhcmVudAEAgUwALwEADU2BTAAAAAf/////" +
           "AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQCCTAAuAESCTAAAAAH/////AQH/////AAAAABVg" +
           "qQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAINMAC4ARINMAAAGAAAAAAEAEk3/////AQH/////AAAA" +
           "ABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAhEwALgBEhEwAAAYAAAAAAQALTf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABUAAABTdGF0ZURpc2FibGVkQnlNZXRob2QBAIZMAC8BAA1NhkwAAAAH////" +
           "/wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAh0wALgBEh0wAAAAB/////wEB/////wAAAAAV" +
           "YKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQCITAAuAESITAAABgAAAAABABJN/////wEB/////wAA" +
           "AAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAIlMAC4ARIlMAAAGAAAAAAEAC03/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAVAAAARmFpbGVkRGF0YVNldE1lc3NhZ2VzAQCMTAAvAQANTYxMAAAAB///" +
           "//8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAI1MAC4ARI1MAAAAAf////8BAf////8AAAAA" +
           "FWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAjkwALgBEjkwAAAYBAAAAAQASTf////8BAf////8A" +
           "AAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQCPTAAuAESPTAAABgAAAAABAAtN/////wEB" +
           "/////wAAAAAEYIAKAQAAAAAACgAAAExpdmVWYWx1ZXMBAItMAC8AOotMAAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<ushort> DataSetWriterId
        {
            get
            {
                return m_dataSetWriterId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetWriterId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetWriterId = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> DataSetFieldContentMask
        {
            get
            {
                return m_dataSetFieldContentMask;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetFieldContentMask, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetFieldContentMask = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> KeyFrameCount
        {
            get
            {
                return m_keyFrameCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_keyFrameCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_keyFrameCount = value;
            }
        }

        /// <remarks />
        public PropertyState<KeyValuePair[]> DataSetWriterProperties
        {
            get
            {
                return m_dataSetWriterProperties;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetWriterProperties, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetWriterProperties = value;
            }
        }

        /// <remarks />
        public DataSetWriterTransportState TransportSettings
        {
            get
            {
                return m_transportSettings;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transportSettings, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transportSettings = value;
            }
        }

        /// <remarks />
        public DataSetWriterMessageState MessageSettings
        {
            get
            {
                return m_messageSettings;
            }

            set
            {
                if (!Object.ReferenceEquals(m_messageSettings, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_messageSettings = value;
            }
        }

        /// <remarks />
        public PubSubStatusState Status
        {
            get
            {
                return m_status;
            }

            set
            {
                if (!Object.ReferenceEquals(m_status, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_status = value;
            }
        }

        /// <remarks />
        public PubSubDiagnosticsDataSetWriterState Diagnostics
        {
            get
            {
                return m_diagnostics;
            }

            set
            {
                if (!Object.ReferenceEquals(m_diagnostics, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_diagnostics = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_dataSetWriterId != null)
            {
                children.Add(m_dataSetWriterId);
            }

            if (m_dataSetFieldContentMask != null)
            {
                children.Add(m_dataSetFieldContentMask);
            }

            if (m_keyFrameCount != null)
            {
                children.Add(m_keyFrameCount);
            }

            if (m_dataSetWriterProperties != null)
            {
                children.Add(m_dataSetWriterProperties);
            }

            if (m_transportSettings != null)
            {
                children.Add(m_transportSettings);
            }

            if (m_messageSettings != null)
            {
                children.Add(m_messageSettings);
            }

            if (m_status != null)
            {
                children.Add(m_status);
            }

            if (m_diagnostics != null)
            {
                children.Add(m_diagnostics);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.DataSetWriterId:
                {
                    if (createOrReplace)
                    {
                        if (DataSetWriterId == null)
                        {
                            if (replacement == null)
                            {
                                DataSetWriterId = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                DataSetWriterId = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = DataSetWriterId;
                    break;
                }

                case Opc.Ua.BrowseNames.DataSetFieldContentMask:
                {
                    if (createOrReplace)
                    {
                        if (DataSetFieldContentMask == null)
                        {
                            if (replacement == null)
                            {
                                DataSetFieldContentMask = new PropertyState<uint>(this);
                            }
                            else
                            {
                                DataSetFieldContentMask = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = DataSetFieldContentMask;
                    break;
                }

                case Opc.Ua.BrowseNames.KeyFrameCount:
                {
                    if (createOrReplace)
                    {
                        if (KeyFrameCount == null)
                        {
                            if (replacement == null)
                            {
                                KeyFrameCount = new PropertyState<uint>(this);
                            }
                            else
                            {
                                KeyFrameCount = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = KeyFrameCount;
                    break;
                }

                case Opc.Ua.BrowseNames.DataSetWriterProperties:
                {
                    if (createOrReplace)
                    {
                        if (DataSetWriterProperties == null)
                        {
                            if (replacement == null)
                            {
                                DataSetWriterProperties = new PropertyState<KeyValuePair[]>(this);
                            }
                            else
                            {
                                DataSetWriterProperties = (PropertyState<KeyValuePair[]>)replacement;
                            }
                        }
                    }

                    instance = DataSetWriterProperties;
                    break;
                }

                case Opc.Ua.BrowseNames.TransportSettings:
                {
                    if (createOrReplace)
                    {
                        if (TransportSettings == null)
                        {
                            if (replacement == null)
                            {
                                TransportSettings = new DataSetWriterTransportState(this);
                            }
                            else
                            {
                                TransportSettings = (DataSetWriterTransportState)replacement;
                            }
                        }
                    }

                    instance = TransportSettings;
                    break;
                }

                case Opc.Ua.BrowseNames.MessageSettings:
                {
                    if (createOrReplace)
                    {
                        if (MessageSettings == null)
                        {
                            if (replacement == null)
                            {
                                MessageSettings = new DataSetWriterMessageState(this);
                            }
                            else
                            {
                                MessageSettings = (DataSetWriterMessageState)replacement;
                            }
                        }
                    }

                    instance = MessageSettings;
                    break;
                }

                case Opc.Ua.BrowseNames.Status:
                {
                    if (createOrReplace)
                    {
                        if (Status == null)
                        {
                            if (replacement == null)
                            {
                                Status = new PubSubStatusState(this);
                            }
                            else
                            {
                                Status = (PubSubStatusState)replacement;
                            }
                        }
                    }

                    instance = Status;
                    break;
                }

                case Opc.Ua.BrowseNames.Diagnostics:
                {
                    if (createOrReplace)
                    {
                        if (Diagnostics == null)
                        {
                            if (replacement == null)
                            {
                                Diagnostics = new PubSubDiagnosticsDataSetWriterState(this);
                            }
                            else
                            {
                                Diagnostics = (PubSubDiagnosticsDataSetWriterState)replacement;
                            }
                        }
                    }

                    instance = Diagnostics;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<ushort> m_dataSetWriterId;
        private PropertyState<uint> m_dataSetFieldContentMask;
        private PropertyState<uint> m_keyFrameCount;
        private PropertyState<KeyValuePair[]> m_dataSetWriterProperties;
        private DataSetWriterTransportState m_transportSettings;
        private DataSetWriterMessageState m_messageSettings;
        private PubSubStatusState m_status;
        private PubSubDiagnosticsDataSetWriterState m_diagnostics;
        #endregion
    }
    #endif
    #endregion

    #region DataSetWriterTransportState Class
    #if (!OPCUA_EXCLUDE_DataSetWriterTransportState)
    /// <summary>
    /// Stores an instance of the DataSetWriterTransportType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DataSetWriterTransportState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DataSetWriterTransportState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.DataSetWriterTransportType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIgAAAERhdGFTZXRXcml0ZXJUcmFuc3BvcnRUeXBlSW5zdGFuY2UBAMk7" +
           "AQDJO8k7AAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region DataSetWriterMessageState Class
    #if (!OPCUA_EXCLUDE_DataSetWriterMessageState)
    /// <summary>
    /// Stores an instance of the DataSetWriterMessageType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DataSetWriterMessageState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DataSetWriterMessageState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.DataSetWriterMessageType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIAAAAERhdGFTZXRXcml0ZXJNZXNzYWdlVHlwZUluc3RhbmNlAQBoUgEA" +
           "aFJoUgAA/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region DataSetReaderState Class
    #if (!OPCUA_EXCLUDE_DataSetReaderState)
    /// <summary>
    /// Stores an instance of the DataSetReaderType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DataSetReaderState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DataSetReaderState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.DataSetReaderType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (SecurityMode != null)
            {
                SecurityMode.Initialize(context, SecurityMode_InitializationString);
            }

            if (SecurityGroupId != null)
            {
                SecurityGroupId.Initialize(context, SecurityGroupId_InitializationString);
            }

            if (SecurityKeyServices != null)
            {
                SecurityKeyServices.Initialize(context, SecurityKeyServices_InitializationString);
            }

            if (TransportSettings != null)
            {
                TransportSettings.Initialize(context, TransportSettings_InitializationString);
            }

            if (MessageSettings != null)
            {
                MessageSettings.Initialize(context, MessageSettings_InitializationString);
            }

            if (Diagnostics != null)
            {
                Diagnostics.Initialize(context, Diagnostics_InitializationString);
            }

            if (CreateTargetVariables != null)
            {
                CreateTargetVariables.Initialize(context, CreateTargetVariables_InitializationString);
            }

            if (CreateDataSetMirror != null)
            {
                CreateDataSetMirror.Initialize(context, CreateDataSetMirror_InitializationString);
            }
        }

        #region Initialization String
        private const string SecurityMode_InitializationString =
           "//////////8VYIkKAgAAAAAADAAAAFNlY3VyaXR5TW9kZQEAPD4ALgBEPD4AAAEALgH/////AQH/////" +
           "AAAAAA==";

        private const string SecurityGroupId_InitializationString =
           "//////////8VYIkKAgAAAAAADwAAAFNlY3VyaXR5R3JvdXBJZAEAPT4ALgBEPT4AAAAM/////wEB////" +
           "/wAAAAA=";

        private const string SecurityKeyServices_InitializationString =
           "//////////8XYIkKAgAAAAAAEwAAAFNlY3VyaXR5S2V5U2VydmljZXMBAD4+AC4ARD4+AAABADgBAQAA" +
           "AAEAAAAAAAAAAQH/////AAAAAA==";

        private const string TransportSettings_InitializationString =
           "//////////8EYIAKAQAAAAAAEQAAAFRyYW5zcG9ydFNldHRpbmdzAQDPOwAvAQDXO887AAD/////AAAA" +
           "AA==";

        private const string MessageSettings_InitializationString =
           "//////////8EYIAKAQAAAAAADwAAAE1lc3NhZ2VTZXR0aW5ncwEAb1IALwEAcFJvUgAA/////wAAAAA=";

        private const string Diagnostics_InitializationString =
           "//////////8EYIAKAQAAAAAACwAAAERpYWdub3N0aWNzAQCZTAAvAQA7TplMAAD/////BwAAABVgiQoC" +
           "AAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAmkwALwA/mkwAAAEAC03/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAQAAAAVG90YWxJbmZvcm1hdGlvbgEAm0wALwEADU2bTAAAAAf/////AQH/////AwAAABVgiQoC" +
           "AAAAAAAGAAAAQWN0aXZlAQCcTAAuAEScTAAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAAQ2xh" +
           "c3NpZmljYXRpb24BAJ1MAC4ARJ1MAAABABJN/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAERpYWdu" +
           "b3N0aWNzTGV2ZWwBAJ5MAC4ARJ5MAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAFRvdGFs" +
           "RXJyb3IBAKBMAC8BAA1NoEwAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAoUwA" +
           "LgBEoUwAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQCiTAAuAESi" +
           "TAAAAQASTf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQCjTAAuAESj" +
           "TAAAAQALTf////8BAf////8AAAAABGGCCgQAAAAAAAUAAABSZXNldAEApUwALwEA6UylTAAAAQH/////" +
           "AAAAABVgiQoCAAAAAAAIAAAAU3ViRXJyb3IBAKZMAC8AP6ZMAAAAAf////8BAf////8AAAAABGCACgEA" +
           "AAAAAAgAAABDb3VudGVycwEAp0wALwA6p0wAAP////8HAAAAFWCJCgIAAAAAAAoAAABTdGF0ZUVycm9y" +
           "AQCoTAAvAQANTahMAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAKlMAC4ARKlM" +
           "AAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAqkwALgBEqkwAAAYB" +
           "AAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQCrTAAuAESr" +
           "TAAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAGAAAAFN0YXRlT3BlcmF0aW9uYWxCeU1l" +
           "dGhvZAEArUwALwEADU2tTAAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQCuTAAu" +
           "AESuTAAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAK9MAC4ARK9M" +
           "AAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAsEwA" +
           "LgBEsEwAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABgAAABTdGF0ZU9wZXJhdGlvbmFs" +
           "QnlQYXJlbnQBALJMAC8BAA1NskwAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEA" +
           "s0wALgBEs0wAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQC0TAAu" +
           "AES0TAAABgAAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwB" +
           "ALVMAC4ARLVMAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAZAAAAU3RhdGVPcGVyYXRp" +
           "b25hbEZyb21FcnJvcgEAt0wALwEADU23TAAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0" +
           "aXZlAQC4TAAuAES4TAAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24B" +
           "ALlMAC4ARLlMAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NM" +
           "ZXZlbAEAukwALgBEukwAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABMAAABTdGF0ZVBh" +
           "dXNlZEJ5UGFyZW50AQC8TAAvAQANTbxMAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3Rp" +
           "dmUBAL1MAC4ARL1MAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEA" +
           "vkwALgBEvkwAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xl" +
           "dmVsAQC/TAAuAES/TAAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAFQAAAFN0YXRlRGlz" +
           "YWJsZWRCeU1ldGhvZAEAwUwALwEADU3BTAAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0" +
           "aXZlAQDCTAAuAETCTAAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24B" +
           "AMNMAC4ARMNMAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NM" +
           "ZXZlbAEAxEwALgBExEwAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABUAAABGYWlsZWRE" +
           "YXRhU2V0TWVzc2FnZXMBAMdMAC8BAA1Nx0wAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFj" +
           "dGl2ZQEAyEwALgBEyEwAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9u" +
           "AQDJTAAuAETJTAAABgEAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNz" +
           "TGV2ZWwBAMpMAC4ARMpMAAAGAAAAAAEAC03/////AQH/////AAAAAARggAoBAAAAAAAKAAAATGl2ZVZh" +
           "bHVlcwEAxkwALwA6xkwAAP////8AAAAA";

        private const string CreateTargetVariables_InitializationString =
           "//////////8EYYIKBAAAAAAAFQAAAENyZWF0ZVRhcmdldFZhcmlhYmxlcwEA6kMALwEA6kPqQwAAAQH/" +
           "////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAOtDAC4AROtDAACWAgAAAAEAKgEBJQAA" +
           "ABQAAABDb25maWd1cmF0aW9uVmVyc2lvbgEAATn/////AAAAAAABACoBASkAAAAUAAAAVGFyZ2V0VmFy" +
           "aWFibGVzVG9BZGQBAJg5AQAAAAEAAAAAAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIA" +
           "AAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAOxDAC4AROxDAACWAQAAAAEAKgEBHQAAAAoAAABBZGRSZXN1" +
           "bHRzABMBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string CreateDataSetMirror_InitializationString =
           "//////////8EYYIKBAAAAAAAEwAAAENyZWF0ZURhdGFTZXRNaXJyb3IBAO1DAC8BAO1D7UMAAAEB////" +
           "/wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQDuQwAuAETuQwAAlgIAAAABACoBAR0AAAAO" +
           "AAAAUGFyZW50Tm9kZU5hbWUADP////8AAAAAAAEAKgEBIgAAAA8AAABSb2xlUGVybWlzc2lvbnMAYAEA" +
           "AAABAAAAAAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJn" +
           "dW1lbnRzAQDvQwAuAETvQwAAlgEAAAABACoBARsAAAAMAAAAUGFyZW50Tm9kZUlkABH/////AAAAAAAB" +
           "ACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGQAAAERhdGFTZXRSZWFkZXJUeXBlSW5zdGFuY2UBAMo7AQDKO8o7AAD/" +
           "////EwAAABVgiQoCAAAAAAALAAAAUHVibGlzaGVySWQBAGlSAC4ARGlSAAAAGP////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAA0AAABXcml0ZXJHcm91cElkAQBqUgAuAERqUgAAAAX/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAPAAAARGF0YVNldFdyaXRlcklkAQBrUgAuAERrUgAAAAX/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAPAAAARGF0YVNldE1ldGFEYXRhAQBsUgAuAERsUgAAAQC7OP////8BAf////8AAAAAFWCJCgIAAAAA" +
           "ABcAAABEYXRhU2V0RmllbGRDb250ZW50TWFzawEAbVIALgBEbVIAAAEA3zz/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAVAAAATWVzc2FnZVJlY2VpdmVUaW1lb3V0AQBuUgAuAERuUgAAAQAiAf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAA0AAABLZXlGcmFtZUNvdW50AQCbRAAuAESbRAAAAAf/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAPAAAASGVhZGVyTGF5b3V0VXJpAQCcRAAuAEScRAAAAAz/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAMAAAAU2VjdXJpdHlNb2RlAQA8PgAuAEQ8PgAAAQAuAf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AA8AAABTZWN1cml0eUdyb3VwSWQBAD0+AC4ARD0+AAAADP////8BAf////8AAAAAF2CJCgIAAAAAABMA" +
           "AABTZWN1cml0eUtleVNlcnZpY2VzAQA+PgAuAEQ+PgAAAQA4AQEAAAABAAAAAAAAAAEB/////wAAAAAX" +
           "YIkKAgAAAAAAFwAAAERhdGFTZXRSZWFkZXJQcm9wZXJ0aWVzAQBWRAAuAERWRAAAAQDFOAEAAAABAAAA" +
           "AAAAAAEB/////wAAAAAEYIAKAQAAAAAAEQAAAFRyYW5zcG9ydFNldHRpbmdzAQDPOwAvAQDXO887AAD/" +
           "////AAAAAARggAoBAAAAAAAPAAAATWVzc2FnZVNldHRpbmdzAQBvUgAvAQBwUm9SAAD/////AAAAAARg" +
           "gAoBAAAAAAAGAAAAU3RhdHVzAQDLOwAvAQAzOcs7AAD/////AQAAABVgiQoCAAAAAAAFAAAAU3RhdGUB" +
           "AMw7AC8AP8w7AAABADc5/////wEB/////wAAAAAEYIAKAQAAAAAACwAAAERpYWdub3N0aWNzAQCZTAAv" +
           "AQA7TplMAAD/////BwAAABVgiQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAmkwALwA/mkwAAAEA" +
           "C03/////AQH/////AAAAABVgiQoCAAAAAAAQAAAAVG90YWxJbmZvcm1hdGlvbgEAm0wALwEADU2bTAAA" +
           "AAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQCcTAAuAEScTAAAAAH/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAJ1MAC4ARJ1MAAABABJN/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAJ5MAC4ARJ5MAAABAAtN/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAACgAAAFRvdGFsRXJyb3IBAKBMAC8BAA1NoEwAAAAH/////wEB/////wMAAAAVYIkK" +
           "AgAAAAAABgAAAEFjdGl2ZQEAoUwALgBEoUwAAAAB/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAENs" +
           "YXNzaWZpY2F0aW9uAQCiTAAuAESiTAAAAQASTf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABEaWFn" +
           "bm9zdGljc0xldmVsAQCjTAAuAESjTAAAAQALTf////8BAf////8AAAAABGGCCgQAAAAAAAUAAABSZXNl" +
           "dAEApUwALwEA6UylTAAAAQH/////AAAAABVgiQoCAAAAAAAIAAAAU3ViRXJyb3IBAKZMAC8AP6ZMAAAA" +
           "Af////8BAf////8AAAAABGCACgEAAAAAAAgAAABDb3VudGVycwEAp0wALwA6p0wAAP////8HAAAAFWCJ" +
           "CgIAAAAAAAoAAABTdGF0ZUVycm9yAQCoTAAvAQANTahMAAAAB/////8BAf////8DAAAAFWCJCgIAAAAA" +
           "AAYAAABBY3RpdmUBAKlMAC4ARKlMAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFzc2lm" +
           "aWNhdGlvbgEAqkwALgBEqkwAAAYBAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABEaWFn" +
           "bm9zdGljc0xldmVsAQCrTAAuAESrTAAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAAGAAA" +
           "AFN0YXRlT3BlcmF0aW9uYWxCeU1ldGhvZAEArUwALwEADU2tTAAAAAf/////AQH/////AwAAABVgiQoC" +
           "AAAAAAAGAAAAQWN0aXZlAQCuTAAuAESuTAAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xh" +
           "c3NpZmljYXRpb24BAK9MAC4ARK9MAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAA" +
           "RGlhZ25vc3RpY3NMZXZlbAEAsEwALgBEsEwAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "ABgAAABTdGF0ZU9wZXJhdGlvbmFsQnlQYXJlbnQBALJMAC8BAA1NskwAAAAH/////wEB/////wMAAAAV" +
           "YIkKAgAAAAAABgAAAEFjdGl2ZQEAs0wALgBEs0wAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAA" +
           "AENsYXNzaWZpY2F0aW9uAQC0TAAuAES0TAAABgAAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAA" +
           "EAAAAERpYWdub3N0aWNzTGV2ZWwBALVMAC4ARLVMAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAZAAAAU3RhdGVPcGVyYXRpb25hbEZyb21FcnJvcgEAt0wALwEADU23TAAAAAf/////AQH/////" +
           "AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQC4TAAuAES4TAAAAAH/////AQH/////AAAAABVgqQoCAAAA" +
           "AAAOAAAAQ2xhc3NpZmljYXRpb24BALlMAC4ARLlMAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoC" +
           "AAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAukwALgBEukwAAAYAAAAAAQALTf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAABMAAABTdGF0ZVBhdXNlZEJ5UGFyZW50AQC8TAAvAQANTbxMAAAAB/////8BAf////8D" +
           "AAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAL1MAC4ARL1MAAAAAf////8BAf////8AAAAAFWCpCgIAAAAA" +
           "AA4AAABDbGFzc2lmaWNhdGlvbgEAvkwALgBEvkwAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIA" +
           "AAAAABAAAABEaWFnbm9zdGljc0xldmVsAQC/TAAuAES/TAAABgAAAAABAAtN/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAAFQAAAFN0YXRlRGlzYWJsZWRCeU1ldGhvZAEAwUwALwEADU3BTAAAAAf/////AQH/////" +
           "AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQDCTAAuAETCTAAAAAH/////AQH/////AAAAABVgqQoCAAAA" +
           "AAAOAAAAQ2xhc3NpZmljYXRpb24BAMNMAC4ARMNMAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoC" +
           "AAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAxEwALgBExEwAAAYAAAAAAQALTf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAABUAAABGYWlsZWREYXRhU2V0TWVzc2FnZXMBAMdMAC8BAA1Nx0wAAAAH/////wEB////" +
           "/wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAyEwALgBEyEwAAAAB/////wEB/////wAAAAAVYKkKAgAA" +
           "AAAADgAAAENsYXNzaWZpY2F0aW9uAQDJTAAuAETJTAAABgEAAAABABJN/////wEB/////wAAAAAVYKkK" +
           "AgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAMpMAC4ARMpMAAAGAAAAAAEAC03/////AQH/////AAAA" +
           "AARggAoBAAAAAAAKAAAATGl2ZVZhbHVlcwEAxkwALwA6xkwAAP////8AAAAABGCACgEAAAAAABEAAABT" +
           "dWJzY3JpYmVkRGF0YVNldAEA1DsALwEABDvUOwAA/////wAAAAAEYYIKBAAAAAAAFQAAAENyZWF0ZVRh" +
           "cmdldFZhcmlhYmxlcwEA6kMALwEA6kPqQwAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1" +
           "bWVudHMBAOtDAC4AROtDAACWAgAAAAEAKgEBJQAAABQAAABDb25maWd1cmF0aW9uVmVyc2lvbgEAATn/" +
           "////AAAAAAABACoBASkAAAAUAAAAVGFyZ2V0VmFyaWFibGVzVG9BZGQBAJg5AQAAAAEAAAAAAAAAAAEA" +
           "KAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAOxDAC4A" +
           "ROxDAACWAQAAAAEAKgEBHQAAAAoAAABBZGRSZXN1bHRzABMBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAA" +
           "AAAAAAEB/////wAAAAAEYYIKBAAAAAAAEwAAAENyZWF0ZURhdGFTZXRNaXJyb3IBAO1DAC8BAO1D7UMA" +
           "AAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQDuQwAuAETuQwAAlgIAAAABACoB" +
           "AR0AAAAOAAAAUGFyZW50Tm9kZU5hbWUADP////8AAAAAAAEAKgEBIgAAAA8AAABSb2xlUGVybWlzc2lv" +
           "bnMAYAEAAAABAAAAAAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0" +
           "cHV0QXJndW1lbnRzAQDvQwAuAETvQwAAlgEAAAABACoBARsAAAAMAAAAUGFyZW50Tm9kZUlkABH/////" +
           "AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState PublisherId
        {
            get
            {
                return m_publisherId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_publisherId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_publisherId = value;
            }
        }

        /// <remarks />
        public PropertyState<ushort> WriterGroupId
        {
            get
            {
                return m_writerGroupId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_writerGroupId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_writerGroupId = value;
            }
        }

        /// <remarks />
        public PropertyState<ushort> DataSetWriterId
        {
            get
            {
                return m_dataSetWriterId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetWriterId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetWriterId = value;
            }
        }

        /// <remarks />
        public PropertyState<DataSetMetaDataType> DataSetMetaData
        {
            get
            {
                return m_dataSetMetaData;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetMetaData, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetMetaData = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> DataSetFieldContentMask
        {
            get
            {
                return m_dataSetFieldContentMask;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetFieldContentMask, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetFieldContentMask = value;
            }
        }

        /// <remarks />
        public PropertyState<double> MessageReceiveTimeout
        {
            get
            {
                return m_messageReceiveTimeout;
            }

            set
            {
                if (!Object.ReferenceEquals(m_messageReceiveTimeout, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_messageReceiveTimeout = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> KeyFrameCount
        {
            get
            {
                return m_keyFrameCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_keyFrameCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_keyFrameCount = value;
            }
        }

        /// <remarks />
        public PropertyState<string> HeaderLayoutUri
        {
            get
            {
                return m_headerLayoutUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_headerLayoutUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_headerLayoutUri = value;
            }
        }

        /// <remarks />
        public PropertyState<MessageSecurityMode> SecurityMode
        {
            get
            {
                return m_securityMode;
            }

            set
            {
                if (!Object.ReferenceEquals(m_securityMode, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_securityMode = value;
            }
        }

        /// <remarks />
        public PropertyState<string> SecurityGroupId
        {
            get
            {
                return m_securityGroupId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_securityGroupId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_securityGroupId = value;
            }
        }

        /// <remarks />
        public PropertyState<EndpointDescription[]> SecurityKeyServices
        {
            get
            {
                return m_securityKeyServices;
            }

            set
            {
                if (!Object.ReferenceEquals(m_securityKeyServices, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_securityKeyServices = value;
            }
        }

        /// <remarks />
        public PropertyState<KeyValuePair[]> DataSetReaderProperties
        {
            get
            {
                return m_dataSetReaderProperties;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetReaderProperties, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetReaderProperties = value;
            }
        }

        /// <remarks />
        public DataSetReaderTransportState TransportSettings
        {
            get
            {
                return m_transportSettings;
            }

            set
            {
                if (!Object.ReferenceEquals(m_transportSettings, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_transportSettings = value;
            }
        }

        /// <remarks />
        public DataSetReaderMessageState MessageSettings
        {
            get
            {
                return m_messageSettings;
            }

            set
            {
                if (!Object.ReferenceEquals(m_messageSettings, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_messageSettings = value;
            }
        }

        /// <remarks />
        public PubSubStatusState Status
        {
            get
            {
                return m_status;
            }

            set
            {
                if (!Object.ReferenceEquals(m_status, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_status = value;
            }
        }

        /// <remarks />
        public PubSubDiagnosticsDataSetReaderState Diagnostics
        {
            get
            {
                return m_diagnostics;
            }

            set
            {
                if (!Object.ReferenceEquals(m_diagnostics, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_diagnostics = value;
            }
        }

        /// <remarks />
        public SubscribedDataSetState SubscribedDataSet
        {
            get
            {
                return m_subscribedDataSet;
            }

            set
            {
                if (!Object.ReferenceEquals(m_subscribedDataSet, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_subscribedDataSet = value;
            }
        }

        /// <remarks />
        public DataSetReaderTypeCreateTargetVariablesMethodState CreateTargetVariables
        {
            get
            {
                return m_createTargetVariablesMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_createTargetVariablesMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_createTargetVariablesMethod = value;
            }
        }

        /// <remarks />
        public DataSetReaderTypeCreateDataSetMirrorMethodState CreateDataSetMirror
        {
            get
            {
                return m_createDataSetMirrorMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_createDataSetMirrorMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_createDataSetMirrorMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_publisherId != null)
            {
                children.Add(m_publisherId);
            }

            if (m_writerGroupId != null)
            {
                children.Add(m_writerGroupId);
            }

            if (m_dataSetWriterId != null)
            {
                children.Add(m_dataSetWriterId);
            }

            if (m_dataSetMetaData != null)
            {
                children.Add(m_dataSetMetaData);
            }

            if (m_dataSetFieldContentMask != null)
            {
                children.Add(m_dataSetFieldContentMask);
            }

            if (m_messageReceiveTimeout != null)
            {
                children.Add(m_messageReceiveTimeout);
            }

            if (m_keyFrameCount != null)
            {
                children.Add(m_keyFrameCount);
            }

            if (m_headerLayoutUri != null)
            {
                children.Add(m_headerLayoutUri);
            }

            if (m_securityMode != null)
            {
                children.Add(m_securityMode);
            }

            if (m_securityGroupId != null)
            {
                children.Add(m_securityGroupId);
            }

            if (m_securityKeyServices != null)
            {
                children.Add(m_securityKeyServices);
            }

            if (m_dataSetReaderProperties != null)
            {
                children.Add(m_dataSetReaderProperties);
            }

            if (m_transportSettings != null)
            {
                children.Add(m_transportSettings);
            }

            if (m_messageSettings != null)
            {
                children.Add(m_messageSettings);
            }

            if (m_status != null)
            {
                children.Add(m_status);
            }

            if (m_diagnostics != null)
            {
                children.Add(m_diagnostics);
            }

            if (m_subscribedDataSet != null)
            {
                children.Add(m_subscribedDataSet);
            }

            if (m_createTargetVariablesMethod != null)
            {
                children.Add(m_createTargetVariablesMethod);
            }

            if (m_createDataSetMirrorMethod != null)
            {
                children.Add(m_createDataSetMirrorMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.PublisherId:
                {
                    if (createOrReplace)
                    {
                        if (PublisherId == null)
                        {
                            if (replacement == null)
                            {
                                PublisherId = new PropertyState(this);
                            }
                            else
                            {
                                PublisherId = (PropertyState)replacement;
                            }
                        }
                    }

                    instance = PublisherId;
                    break;
                }

                case Opc.Ua.BrowseNames.WriterGroupId:
                {
                    if (createOrReplace)
                    {
                        if (WriterGroupId == null)
                        {
                            if (replacement == null)
                            {
                                WriterGroupId = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                WriterGroupId = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = WriterGroupId;
                    break;
                }

                case Opc.Ua.BrowseNames.DataSetWriterId:
                {
                    if (createOrReplace)
                    {
                        if (DataSetWriterId == null)
                        {
                            if (replacement == null)
                            {
                                DataSetWriterId = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                DataSetWriterId = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = DataSetWriterId;
                    break;
                }

                case Opc.Ua.BrowseNames.DataSetMetaData:
                {
                    if (createOrReplace)
                    {
                        if (DataSetMetaData == null)
                        {
                            if (replacement == null)
                            {
                                DataSetMetaData = new PropertyState<DataSetMetaDataType>(this);
                            }
                            else
                            {
                                DataSetMetaData = (PropertyState<DataSetMetaDataType>)replacement;
                            }
                        }
                    }

                    instance = DataSetMetaData;
                    break;
                }

                case Opc.Ua.BrowseNames.DataSetFieldContentMask:
                {
                    if (createOrReplace)
                    {
                        if (DataSetFieldContentMask == null)
                        {
                            if (replacement == null)
                            {
                                DataSetFieldContentMask = new PropertyState<uint>(this);
                            }
                            else
                            {
                                DataSetFieldContentMask = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = DataSetFieldContentMask;
                    break;
                }

                case Opc.Ua.BrowseNames.MessageReceiveTimeout:
                {
                    if (createOrReplace)
                    {
                        if (MessageReceiveTimeout == null)
                        {
                            if (replacement == null)
                            {
                                MessageReceiveTimeout = new PropertyState<double>(this);
                            }
                            else
                            {
                                MessageReceiveTimeout = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = MessageReceiveTimeout;
                    break;
                }

                case Opc.Ua.BrowseNames.KeyFrameCount:
                {
                    if (createOrReplace)
                    {
                        if (KeyFrameCount == null)
                        {
                            if (replacement == null)
                            {
                                KeyFrameCount = new PropertyState<uint>(this);
                            }
                            else
                            {
                                KeyFrameCount = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = KeyFrameCount;
                    break;
                }

                case Opc.Ua.BrowseNames.HeaderLayoutUri:
                {
                    if (createOrReplace)
                    {
                        if (HeaderLayoutUri == null)
                        {
                            if (replacement == null)
                            {
                                HeaderLayoutUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                HeaderLayoutUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = HeaderLayoutUri;
                    break;
                }

                case Opc.Ua.BrowseNames.SecurityMode:
                {
                    if (createOrReplace)
                    {
                        if (SecurityMode == null)
                        {
                            if (replacement == null)
                            {
                                SecurityMode = new PropertyState<MessageSecurityMode>(this);
                            }
                            else
                            {
                                SecurityMode = (PropertyState<MessageSecurityMode>)replacement;
                            }
                        }
                    }

                    instance = SecurityMode;
                    break;
                }

                case Opc.Ua.BrowseNames.SecurityGroupId:
                {
                    if (createOrReplace)
                    {
                        if (SecurityGroupId == null)
                        {
                            if (replacement == null)
                            {
                                SecurityGroupId = new PropertyState<string>(this);
                            }
                            else
                            {
                                SecurityGroupId = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = SecurityGroupId;
                    break;
                }

                case Opc.Ua.BrowseNames.SecurityKeyServices:
                {
                    if (createOrReplace)
                    {
                        if (SecurityKeyServices == null)
                        {
                            if (replacement == null)
                            {
                                SecurityKeyServices = new PropertyState<EndpointDescription[]>(this);
                            }
                            else
                            {
                                SecurityKeyServices = (PropertyState<EndpointDescription[]>)replacement;
                            }
                        }
                    }

                    instance = SecurityKeyServices;
                    break;
                }

                case Opc.Ua.BrowseNames.DataSetReaderProperties:
                {
                    if (createOrReplace)
                    {
                        if (DataSetReaderProperties == null)
                        {
                            if (replacement == null)
                            {
                                DataSetReaderProperties = new PropertyState<KeyValuePair[]>(this);
                            }
                            else
                            {
                                DataSetReaderProperties = (PropertyState<KeyValuePair[]>)replacement;
                            }
                        }
                    }

                    instance = DataSetReaderProperties;
                    break;
                }

                case Opc.Ua.BrowseNames.TransportSettings:
                {
                    if (createOrReplace)
                    {
                        if (TransportSettings == null)
                        {
                            if (replacement == null)
                            {
                                TransportSettings = new DataSetReaderTransportState(this);
                            }
                            else
                            {
                                TransportSettings = (DataSetReaderTransportState)replacement;
                            }
                        }
                    }

                    instance = TransportSettings;
                    break;
                }

                case Opc.Ua.BrowseNames.MessageSettings:
                {
                    if (createOrReplace)
                    {
                        if (MessageSettings == null)
                        {
                            if (replacement == null)
                            {
                                MessageSettings = new DataSetReaderMessageState(this);
                            }
                            else
                            {
                                MessageSettings = (DataSetReaderMessageState)replacement;
                            }
                        }
                    }

                    instance = MessageSettings;
                    break;
                }

                case Opc.Ua.BrowseNames.Status:
                {
                    if (createOrReplace)
                    {
                        if (Status == null)
                        {
                            if (replacement == null)
                            {
                                Status = new PubSubStatusState(this);
                            }
                            else
                            {
                                Status = (PubSubStatusState)replacement;
                            }
                        }
                    }

                    instance = Status;
                    break;
                }

                case Opc.Ua.BrowseNames.Diagnostics:
                {
                    if (createOrReplace)
                    {
                        if (Diagnostics == null)
                        {
                            if (replacement == null)
                            {
                                Diagnostics = new PubSubDiagnosticsDataSetReaderState(this);
                            }
                            else
                            {
                                Diagnostics = (PubSubDiagnosticsDataSetReaderState)replacement;
                            }
                        }
                    }

                    instance = Diagnostics;
                    break;
                }

                case Opc.Ua.BrowseNames.SubscribedDataSet:
                {
                    if (createOrReplace)
                    {
                        if (SubscribedDataSet == null)
                        {
                            if (replacement == null)
                            {
                                SubscribedDataSet = new SubscribedDataSetState(this);
                            }
                            else
                            {
                                SubscribedDataSet = (SubscribedDataSetState)replacement;
                            }
                        }
                    }

                    instance = SubscribedDataSet;
                    break;
                }

                case Opc.Ua.BrowseNames.CreateTargetVariables:
                {
                    if (createOrReplace)
                    {
                        if (CreateTargetVariables == null)
                        {
                            if (replacement == null)
                            {
                                CreateTargetVariables = new DataSetReaderTypeCreateTargetVariablesMethodState(this);
                            }
                            else
                            {
                                CreateTargetVariables = (DataSetReaderTypeCreateTargetVariablesMethodState)replacement;
                            }
                        }
                    }

                    instance = CreateTargetVariables;
                    break;
                }

                case Opc.Ua.BrowseNames.CreateDataSetMirror:
                {
                    if (createOrReplace)
                    {
                        if (CreateDataSetMirror == null)
                        {
                            if (replacement == null)
                            {
                                CreateDataSetMirror = new DataSetReaderTypeCreateDataSetMirrorMethodState(this);
                            }
                            else
                            {
                                CreateDataSetMirror = (DataSetReaderTypeCreateDataSetMirrorMethodState)replacement;
                            }
                        }
                    }

                    instance = CreateDataSetMirror;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState m_publisherId;
        private PropertyState<ushort> m_writerGroupId;
        private PropertyState<ushort> m_dataSetWriterId;
        private PropertyState<DataSetMetaDataType> m_dataSetMetaData;
        private PropertyState<uint> m_dataSetFieldContentMask;
        private PropertyState<double> m_messageReceiveTimeout;
        private PropertyState<uint> m_keyFrameCount;
        private PropertyState<string> m_headerLayoutUri;
        private PropertyState<MessageSecurityMode> m_securityMode;
        private PropertyState<string> m_securityGroupId;
        private PropertyState<EndpointDescription[]> m_securityKeyServices;
        private PropertyState<KeyValuePair[]> m_dataSetReaderProperties;
        private DataSetReaderTransportState m_transportSettings;
        private DataSetReaderMessageState m_messageSettings;
        private PubSubStatusState m_status;
        private PubSubDiagnosticsDataSetReaderState m_diagnostics;
        private SubscribedDataSetState m_subscribedDataSet;
        private DataSetReaderTypeCreateTargetVariablesMethodState m_createTargetVariablesMethod;
        private DataSetReaderTypeCreateDataSetMirrorMethodState m_createDataSetMirrorMethod;
        #endregion
    }
    #endif
    #endregion

    #region DataSetReaderTransportState Class
    #if (!OPCUA_EXCLUDE_DataSetReaderTransportState)
    /// <summary>
    /// Stores an instance of the DataSetReaderTransportType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DataSetReaderTransportState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DataSetReaderTransportState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.DataSetReaderTransportType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIgAAAERhdGFTZXRSZWFkZXJUcmFuc3BvcnRUeXBlSW5zdGFuY2UBANc7" +
           "AQDXO9c7AAD/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region DataSetReaderMessageState Class
    #if (!OPCUA_EXCLUDE_DataSetReaderMessageState)
    /// <summary>
    /// Stores an instance of the DataSetReaderMessageType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DataSetReaderMessageState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DataSetReaderMessageState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.DataSetReaderMessageType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIAAAAERhdGFTZXRSZWFkZXJNZXNzYWdlVHlwZUluc3RhbmNlAQBwUgEA" +
           "cFJwUgAA/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region DataSetReaderTypeCreateTargetVariablesMethodState Class
    #if (!OPCUA_EXCLUDE_DataSetReaderTypeCreateTargetVariablesMethodState)
    /// <summary>
    /// Stores an instance of the DataSetReaderTypeCreateTargetVariablesMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DataSetReaderTypeCreateTargetVariablesMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DataSetReaderTypeCreateTargetVariablesMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new DataSetReaderTypeCreateTargetVariablesMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAMAAAAERhdGFTZXRSZWFkZXJUeXBlQ3JlYXRlVGFyZ2V0VmFyaWFibGVz" +
           "TWV0aG9kVHlwZQEA8EMALwEA8EPwQwAAAQH/////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVu" +
           "dHMBAPFDAC4ARPFDAACWAgAAAAEAKgEBJQAAABQAAABDb25maWd1cmF0aW9uVmVyc2lvbgEAATn/////" +
           "AAAAAAABACoBASkAAAAUAAAAVGFyZ2V0VmFyaWFibGVzVG9BZGQBAJg5AQAAAAEAAAAAAAAAAAEAKAEB" +
           "AAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABPdXRwdXRBcmd1bWVudHMBAPJDAC4ARPJD" +
           "AACWAQAAAAEAKgEBHQAAAAoAAABBZGRSZXN1bHRzABMBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAA" +
           "AAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public DataSetReaderTypeCreateTargetVariablesMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            ConfigurationVersionDataType configurationVersion = (ConfigurationVersionDataType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[0]);
            FieldTargetDataType[] targetVariablesToAdd = (FieldTargetDataType[])ExtensionObject.ToArray(_inputArguments[1], typeof(FieldTargetDataType));

            StatusCode[] addResults = (StatusCode[])_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    configurationVersion,
                    targetVariablesToAdd,
                    ref addResults);
            }

            _outputArguments[0] = addResults;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult DataSetReaderTypeCreateTargetVariablesMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        ConfigurationVersionDataType configurationVersion,
        FieldTargetDataType[] targetVariablesToAdd,
        ref StatusCode[] addResults);
    #endif
    #endregion

    #region DataSetReaderTypeCreateDataSetMirrorMethodState Class
    #if (!OPCUA_EXCLUDE_DataSetReaderTypeCreateDataSetMirrorMethodState)
    /// <summary>
    /// Stores an instance of the DataSetReaderTypeCreateDataSetMirrorMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DataSetReaderTypeCreateDataSetMirrorMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DataSetReaderTypeCreateDataSetMirrorMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new DataSetReaderTypeCreateDataSetMirrorMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAALgAAAERhdGFTZXRSZWFkZXJUeXBlQ3JlYXRlRGF0YVNldE1pcnJvck1l" +
           "dGhvZFR5cGUBAPNDAC8BAPND80MAAAEB/////wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRz" +
           "AQD0QwAuAET0QwAAlgIAAAABACoBAR0AAAAOAAAAUGFyZW50Tm9kZU5hbWUADP////8AAAAAAAEAKgEB" +
           "IgAAAA8AAABSb2xlUGVybWlzc2lvbnMAYAEAAAABAAAAAAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////" +
           "AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQD1QwAuAET1QwAAlgEAAAABACoBARsAAAAM" +
           "AAAAUGFyZW50Tm9kZUlkABH/////AAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public DataSetReaderTypeCreateDataSetMirrorMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string parentNodeName = (string)_inputArguments[0];
            RolePermissionType[] rolePermissions = (RolePermissionType[])ExtensionObject.ToArray(_inputArguments[1], typeof(RolePermissionType));

            NodeId parentNodeId = (NodeId)_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    parentNodeName,
                    rolePermissions,
                    ref parentNodeId);
            }

            _outputArguments[0] = parentNodeId;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult DataSetReaderTypeCreateDataSetMirrorMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string parentNodeName,
        RolePermissionType[] rolePermissions,
        ref NodeId parentNodeId);
    #endif
    #endregion

    #region SubscribedDataSetState Class
    #if (!OPCUA_EXCLUDE_SubscribedDataSetState)
    /// <summary>
    /// Stores an instance of the SubscribedDataSetType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SubscribedDataSetState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SubscribedDataSetState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.SubscribedDataSetType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHQAAAFN1YnNjcmliZWREYXRhU2V0VHlwZUluc3RhbmNlAQAEOwEABDsE" +
           "OwAA/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region TargetVariablesState Class
    #if (!OPCUA_EXCLUDE_TargetVariablesState)
    /// <summary>
    /// Stores an instance of the TargetVariablesType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TargetVariablesState : SubscribedDataSetState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TargetVariablesState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.TargetVariablesType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (AddTargetVariables != null)
            {
                AddTargetVariables.Initialize(context, AddTargetVariables_InitializationString);
            }

            if (RemoveTargetVariables != null)
            {
                RemoveTargetVariables.Initialize(context, RemoveTargetVariables_InitializationString);
            }
        }

        #region Initialization String
        private const string AddTargetVariables_InitializationString =
           "//////////8EYYIKBAAAAAAAEgAAAEFkZFRhcmdldFZhcmlhYmxlcwEACzsALwEACzsLOwAAAQH/////" +
           "AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAAw7AC4ARAw7AACWAgAAAAEAKgEBJQAAABQA" +
           "AABDb25maWd1cmF0aW9uVmVyc2lvbgEAATn/////AAAAAAABACoBASkAAAAUAAAAVGFyZ2V0VmFyaWFi" +
           "bGVzVG9BZGQBAJg5AQAAAAEAAAAAAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAA" +
           "AA8AAABPdXRwdXRBcmd1bWVudHMBAA07AC4ARA07AACWAQAAAAEAKgEBHQAAAAoAAABBZGRSZXN1bHRz" +
           "ABMBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAA=";

        private const string RemoveTargetVariables_InitializationString =
           "//////////8EYYIKBAAAAAAAFQAAAFJlbW92ZVRhcmdldFZhcmlhYmxlcwEADjsALwEADjsOOwAAAQH/" +
           "////AgAAABdgqQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAA87AC4ARA87AACWAgAAAAEAKgEBJQAA" +
           "ABQAAABDb25maWd1cmF0aW9uVmVyc2lvbgEAATn/////AAAAAAABACoBASIAAAAPAAAAVGFyZ2V0c1Rv" +
           "UmVtb3ZlAAcBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAA" +
           "AE91dHB1dEFyZ3VtZW50cwEAEDsALgBEEDsAAJYBAAAAAQAqAQEgAAAADQAAAFJlbW92ZVJlc3VsdHMA" +
           "EwEAAAABAAAAAAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGwAAAFRhcmdldFZhcmlhYmxlc1R5cGVJbnN0YW5jZQEABzsBAAc7BzsA" +
           "AP////8DAAAAF2CJCgIAAAAAAA8AAABUYXJnZXRWYXJpYWJsZXMBAAo7AC4ARAo7AAABAJg5AQAAAAEA" +
           "AAAAAAAAAQH/////AAAAAARhggoEAAAAAAASAAAAQWRkVGFyZ2V0VmFyaWFibGVzAQALOwAvAQALOws7" +
           "AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50cwEADDsALgBEDDsAAJYCAAAAAQAq" +
           "AQElAAAAFAAAAENvbmZpZ3VyYXRpb25WZXJzaW9uAQABOf////8AAAAAAAEAKgEBKQAAABQAAABUYXJn" +
           "ZXRWYXJpYWJsZXNUb0FkZAEAmDkBAAAAAQAAAAAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAX" +
           "YKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEADTsALgBEDTsAAJYBAAAAAQAqAQEdAAAACgAAAEFk" +
           "ZFJlc3VsdHMAEwEAAAABAAAAAAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAARhggoEAAAAAAAV" +
           "AAAAUmVtb3ZlVGFyZ2V0VmFyaWFibGVzAQAOOwAvAQAOOw47AAABAf////8CAAAAF2CpCgIAAAAAAA4A" +
           "AABJbnB1dEFyZ3VtZW50cwEADzsALgBEDzsAAJYCAAAAAQAqAQElAAAAFAAAAENvbmZpZ3VyYXRpb25W" +
           "ZXJzaW9uAQABOf////8AAAAAAAEAKgEBIgAAAA8AAABUYXJnZXRzVG9SZW1vdmUABwEAAAABAAAAAAAA" +
           "AAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQAQ" +
           "OwAuAEQQOwAAlgEAAAABACoBASAAAAANAAAAUmVtb3ZlUmVzdWx0cwATAQAAAAEAAAAAAAAAAAEAKAEB" +
           "AAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<FieldTargetDataType[]> TargetVariables
        {
            get
            {
                return m_targetVariables;
            }

            set
            {
                if (!Object.ReferenceEquals(m_targetVariables, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_targetVariables = value;
            }
        }

        /// <remarks />
        public TargetVariablesTypeAddTargetVariablesMethodState AddTargetVariables
        {
            get
            {
                return m_addTargetVariablesMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_addTargetVariablesMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_addTargetVariablesMethod = value;
            }
        }

        /// <remarks />
        public TargetVariablesTypeRemoveTargetVariablesMethodState RemoveTargetVariables
        {
            get
            {
                return m_removeTargetVariablesMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_removeTargetVariablesMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_removeTargetVariablesMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_targetVariables != null)
            {
                children.Add(m_targetVariables);
            }

            if (m_addTargetVariablesMethod != null)
            {
                children.Add(m_addTargetVariablesMethod);
            }

            if (m_removeTargetVariablesMethod != null)
            {
                children.Add(m_removeTargetVariablesMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.TargetVariables:
                {
                    if (createOrReplace)
                    {
                        if (TargetVariables == null)
                        {
                            if (replacement == null)
                            {
                                TargetVariables = new PropertyState<FieldTargetDataType[]>(this);
                            }
                            else
                            {
                                TargetVariables = (PropertyState<FieldTargetDataType[]>)replacement;
                            }
                        }
                    }

                    instance = TargetVariables;
                    break;
                }

                case Opc.Ua.BrowseNames.AddTargetVariables:
                {
                    if (createOrReplace)
                    {
                        if (AddTargetVariables == null)
                        {
                            if (replacement == null)
                            {
                                AddTargetVariables = new TargetVariablesTypeAddTargetVariablesMethodState(this);
                            }
                            else
                            {
                                AddTargetVariables = (TargetVariablesTypeAddTargetVariablesMethodState)replacement;
                            }
                        }
                    }

                    instance = AddTargetVariables;
                    break;
                }

                case Opc.Ua.BrowseNames.RemoveTargetVariables:
                {
                    if (createOrReplace)
                    {
                        if (RemoveTargetVariables == null)
                        {
                            if (replacement == null)
                            {
                                RemoveTargetVariables = new TargetVariablesTypeRemoveTargetVariablesMethodState(this);
                            }
                            else
                            {
                                RemoveTargetVariables = (TargetVariablesTypeRemoveTargetVariablesMethodState)replacement;
                            }
                        }
                    }

                    instance = RemoveTargetVariables;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<FieldTargetDataType[]> m_targetVariables;
        private TargetVariablesTypeAddTargetVariablesMethodState m_addTargetVariablesMethod;
        private TargetVariablesTypeRemoveTargetVariablesMethodState m_removeTargetVariablesMethod;
        #endregion
    }
    #endif
    #endregion

    #region TargetVariablesTypeAddTargetVariablesMethodState Class
    #if (!OPCUA_EXCLUDE_TargetVariablesTypeAddTargetVariablesMethodState)
    /// <summary>
    /// Stores an instance of the TargetVariablesTypeAddTargetVariablesMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TargetVariablesTypeAddTargetVariablesMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TargetVariablesTypeAddTargetVariablesMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new TargetVariablesTypeAddTargetVariablesMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAALwAAAFRhcmdldFZhcmlhYmxlc1R5cGVBZGRUYXJnZXRWYXJpYWJsZXNN" +
           "ZXRob2RUeXBlAQAROwAvAQAROxE7AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3VtZW50" +
           "cwEAEjsALgBEEjsAAJYCAAAAAQAqAQElAAAAFAAAAENvbmZpZ3VyYXRpb25WZXJzaW9uAQABOf////8A" +
           "AAAAAAEAKgEBKQAAABQAAABUYXJnZXRWYXJpYWJsZXNUb0FkZAEAmDkBAAAAAQAAAAAAAAAAAQAoAQEA" +
           "AAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFyZ3VtZW50cwEAEzsALgBEEzsA" +
           "AJYBAAAAAQAqAQEdAAAACgAAAEFkZFJlc3VsdHMAEwEAAAABAAAAAAAAAAABACgBAQAAAAEAAAAAAAAA" +
           "AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public TargetVariablesTypeAddTargetVariablesMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            ConfigurationVersionDataType configurationVersion = (ConfigurationVersionDataType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[0]);
            FieldTargetDataType[] targetVariablesToAdd = (FieldTargetDataType[])ExtensionObject.ToArray(_inputArguments[1], typeof(FieldTargetDataType));

            StatusCode[] addResults = (StatusCode[])_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    configurationVersion,
                    targetVariablesToAdd,
                    ref addResults);
            }

            _outputArguments[0] = addResults;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult TargetVariablesTypeAddTargetVariablesMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        ConfigurationVersionDataType configurationVersion,
        FieldTargetDataType[] targetVariablesToAdd,
        ref StatusCode[] addResults);
    #endif
    #endregion

    #region TargetVariablesTypeRemoveTargetVariablesMethodState Class
    #if (!OPCUA_EXCLUDE_TargetVariablesTypeRemoveTargetVariablesMethodState)
    /// <summary>
    /// Stores an instance of the TargetVariablesTypeRemoveTargetVariablesMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class TargetVariablesTypeRemoveTargetVariablesMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public TargetVariablesTypeRemoveTargetVariablesMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new TargetVariablesTypeRemoveTargetVariablesMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAMgAAAFRhcmdldFZhcmlhYmxlc1R5cGVSZW1vdmVUYXJnZXRWYXJpYWJs" +
           "ZXNNZXRob2RUeXBlAQAUOwAvAQAUOxQ7AAABAf////8CAAAAF2CpCgIAAAAAAA4AAABJbnB1dEFyZ3Vt" +
           "ZW50cwEAFTsALgBEFTsAAJYCAAAAAQAqAQElAAAAFAAAAENvbmZpZ3VyYXRpb25WZXJzaW9uAQABOf//" +
           "//8AAAAAAAEAKgEBIgAAAA8AAABUYXJnZXRzVG9SZW1vdmUABwEAAAABAAAAAAAAAAABACgBAQAAAAEA" +
           "AAAAAAAAAQH/////AAAAABdgqQoCAAAAAAAPAAAAT3V0cHV0QXJndW1lbnRzAQAWOwAuAEQWOwAAlgEA" +
           "AAABACoBASAAAAANAAAAUmVtb3ZlUmVzdWx0cwATAQAAAAEAAAAAAAAAAAEAKAEBAAAAAQAAAAAAAAAB" +
           "Af////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public TargetVariablesTypeRemoveTargetVariablesMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            ConfigurationVersionDataType configurationVersion = (ConfigurationVersionDataType)ExtensionObject.ToEncodeable((ExtensionObject)_inputArguments[0]);
            uint[] targetsToRemove = (uint[])_inputArguments[1];

            StatusCode[] removeResults = (StatusCode[])_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    configurationVersion,
                    targetsToRemove,
                    ref removeResults);
            }

            _outputArguments[0] = removeResults;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult TargetVariablesTypeRemoveTargetVariablesMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        ConfigurationVersionDataType configurationVersion,
        uint[] targetsToRemove,
        ref StatusCode[] removeResults);
    #endif
    #endregion

    #region SubscribedDataSetMirrorState Class
    #if (!OPCUA_EXCLUDE_SubscribedDataSetMirrorState)
    /// <summary>
    /// Stores an instance of the SubscribedDataSetMirrorType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class SubscribedDataSetMirrorState : SubscribedDataSetState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public SubscribedDataSetMirrorState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.SubscribedDataSetMirrorType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIwAAAFN1YnNjcmliZWREYXRhU2V0TWlycm9yVHlwZUluc3RhbmNlAQAX" +
           "OwEAFzsXOwAA/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region PubSubStatusState Class
    #if (!OPCUA_EXCLUDE_PubSubStatusState)
    /// <summary>
    /// Stores an instance of the PubSubStatusType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubStatusState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubStatusState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PubSubStatusType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (Enable != null)
            {
                Enable.Initialize(context, Enable_InitializationString);
            }

            if (Disable != null)
            {
                Disable.Initialize(context, Disable_InitializationString);
            }
        }

        #region Initialization String
        private const string Enable_InitializationString =
           "//////////8EYYIKBAAAAAAABgAAAEVuYWJsZQEANTkALwEANTk1OQAAAQH/////AAAAAA==";

        private const string Disable_InitializationString =
           "//////////8EYYIKBAAAAAAABwAAAERpc2FibGUBADY5AC8BADY5NjkAAAEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGAAAAFB1YlN1YlN0YXR1c1R5cGVJbnN0YW5jZQEAMzkBADM5MzkAAP//" +
           "//8DAAAAFWCJCgIAAAAAAAUAAABTdGF0ZQEANDkALwA/NDkAAAEANzn/////AQH/////AAAAAARhggoE" +
           "AAAAAAAGAAAARW5hYmxlAQA1OQAvAQA1OTU5AAABAf////8AAAAABGGCCgQAAAAAAAcAAABEaXNhYmxl" +
           "AQA2OQAvAQA2OTY5AAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<PubSubState> State
        {
            get
            {
                return m_state;
            }

            set
            {
                if (!Object.ReferenceEquals(m_state, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_state = value;
            }
        }

        /// <remarks />
        public MethodState Enable
        {
            get
            {
                return m_enableMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_enableMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_enableMethod = value;
            }
        }

        /// <remarks />
        public MethodState Disable
        {
            get
            {
                return m_disableMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_disableMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_disableMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_state != null)
            {
                children.Add(m_state);
            }

            if (m_enableMethod != null)
            {
                children.Add(m_enableMethod);
            }

            if (m_disableMethod != null)
            {
                children.Add(m_disableMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.State:
                {
                    if (createOrReplace)
                    {
                        if (State == null)
                        {
                            if (replacement == null)
                            {
                                State = new BaseDataVariableState<PubSubState>(this);
                            }
                            else
                            {
                                State = (BaseDataVariableState<PubSubState>)replacement;
                            }
                        }
                    }

                    instance = State;
                    break;
                }

                case Opc.Ua.BrowseNames.Enable:
                {
                    if (createOrReplace)
                    {
                        if (Enable == null)
                        {
                            if (replacement == null)
                            {
                                Enable = new MethodState(this);
                            }
                            else
                            {
                                Enable = (MethodState)replacement;
                            }
                        }
                    }

                    instance = Enable;
                    break;
                }

                case Opc.Ua.BrowseNames.Disable:
                {
                    if (createOrReplace)
                    {
                        if (Disable == null)
                        {
                            if (replacement == null)
                            {
                                Disable = new MethodState(this);
                            }
                            else
                            {
                                Disable = (MethodState)replacement;
                            }
                        }
                    }

                    instance = Disable;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<PubSubState> m_state;
        private MethodState m_enableMethod;
        private MethodState m_disableMethod;
        #endregion
    }
    #endif
    #endregion

    #region PubSubDiagnosticsState Class
    #if (!OPCUA_EXCLUDE_PubSubDiagnosticsState)
    /// <summary>
    /// Stores an instance of the PubSubDiagnosticsType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubDiagnosticsState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubDiagnosticsState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PubSubDiagnosticsType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHQAAAFB1YlN1YkRpYWdub3N0aWNzVHlwZUluc3RhbmNlAQDdTAEA3Uzd" +
           "TAAA/////wcAAAAVYIkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAN5MAC8AP95MAAABAAtN////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAAEAAAAFRvdGFsSW5mb3JtYXRpb24BAN9MAC8BAA1N30wAAAAH////" +
           "/wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEA4EwALgBE4EwAAAAB/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQDhTAAuAEThTAAAAQASTf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQDiTAAuAETiTAAAAQALTf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABUb3RhbEVycm9yAQDkTAAvAQANTeRMAAAAB/////8BAf////8DAAAAFWCJCgIAAAAA" +
           "AAYAAABBY3RpdmUBAOVMAC4AROVMAAAAAf////8BAf////8AAAAAFWCJCgIAAAAAAA4AAABDbGFzc2lm" +
           "aWNhdGlvbgEA5kwALgBE5kwAAAEAEk3/////AQH/////AAAAABVgiQoCAAAAAAAQAAAARGlhZ25vc3Rp" +
           "Y3NMZXZlbAEA50wALgBE50wAAAEAC03/////AQH/////AAAAAARhggoEAAAAAAAFAAAAUmVzZXQBAOlM" +
           "AC8BAOlM6UwAAAEB/////wAAAAAVYIkKAgAAAAAACAAAAFN1YkVycm9yAQDqTAAvAD/qTAAAAAH/////" +
           "AQH/////AAAAAARggAoBAAAAAAAIAAAAQ291bnRlcnMBAOtMAC8AOutMAAD/////BgAAABVgiQoCAAAA" +
           "AAAKAAAAU3RhdGVFcnJvcgEA7EwALwEADU3sTAAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAA" +
           "QWN0aXZlAQDtTAAuAETtTAAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRp" +
           "b24BAO5MAC4ARO5MAAAGAQAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3Rp" +
           "Y3NMZXZlbAEA70wALgBE70wAAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABgAAABTdGF0" +
           "ZU9wZXJhdGlvbmFsQnlNZXRob2QBAPFMAC8BAA1N8UwAAAAH/////wEB/////wMAAAAVYIkKAgAAAAAA" +
           "BgAAAEFjdGl2ZQEA8kwALgBE8kwAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZp" +
           "Y2F0aW9uAQDzTAAuAETzTAAABgAAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdu" +
           "b3N0aWNzTGV2ZWwBAPRMAC4ARPRMAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAYAAAA" +
           "U3RhdGVPcGVyYXRpb25hbEJ5UGFyZW50AQD2TAAvAQANTfZMAAAAB/////8BAf////8DAAAAFWCJCgIA" +
           "AAAAAAYAAABBY3RpdmUBAPdMAC4ARPdMAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFz" +
           "c2lmaWNhdGlvbgEA+EwALgBE+EwAAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABE" +
           "aWFnbm9zdGljc0xldmVsAQD5TAAuAET5TAAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "GQAAAFN0YXRlT3BlcmF0aW9uYWxGcm9tRXJyb3IBAPtMAC8BAA1N+0wAAAAH/////wEB/////wMAAAAV" +
           "YIkKAgAAAAAABgAAAEFjdGl2ZQEA/EwALgBE/EwAAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAA" +
           "AENsYXNzaWZpY2F0aW9uAQD9TAAuAET9TAAABgAAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAA" +
           "EAAAAERpYWdub3N0aWNzTGV2ZWwBAP5MAC4ARP5MAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoC" +
           "AAAAAAATAAAAU3RhdGVQYXVzZWRCeVBhcmVudAEAAE0ALwEADU0ATQAAAAf/////AQH/////AwAAABVg" +
           "iQoCAAAAAAAGAAAAQWN0aXZlAQABTQAuAEQBTQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAA" +
           "Q2xhc3NpZmljYXRpb24BAAJNAC4ARAJNAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQ" +
           "AAAARGlhZ25vc3RpY3NMZXZlbAEAA00ALgBEA00AAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAABUAAABTdGF0ZURpc2FibGVkQnlNZXRob2QBAAVNAC8BAA1NBU0AAAAH/////wEB/////wMAAAAV" +
           "YIkKAgAAAAAABgAAAEFjdGl2ZQEABk0ALgBEBk0AAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAA" +
           "AENsYXNzaWZpY2F0aW9uAQAHTQAuAEQHTQAABgAAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAA" +
           "EAAAAERpYWdub3N0aWNzTGV2ZWwBAAhNAC4ARAhNAAAGAAAAAAEAC03/////AQH/////AAAAAARggAoB" +
           "AAAAAAAKAAAATGl2ZVZhbHVlcwEACk0ALwA6Ck0AAP////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<DiagnosticsLevel> DiagnosticsLevel
        {
            get
            {
                return m_diagnosticsLevel;
            }

            set
            {
                if (!Object.ReferenceEquals(m_diagnosticsLevel, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_diagnosticsLevel = value;
            }
        }

        /// <remarks />
        public PubSubDiagnosticsCounterState TotalInformation
        {
            get
            {
                return m_totalInformation;
            }

            set
            {
                if (!Object.ReferenceEquals(m_totalInformation, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_totalInformation = value;
            }
        }

        /// <remarks />
        public PubSubDiagnosticsCounterState TotalError
        {
            get
            {
                return m_totalError;
            }

            set
            {
                if (!Object.ReferenceEquals(m_totalError, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_totalError = value;
            }
        }

        /// <remarks />
        public MethodState Reset
        {
            get
            {
                return m_resetMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_resetMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_resetMethod = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<bool> SubError
        {
            get
            {
                return m_subError;
            }

            set
            {
                if (!Object.ReferenceEquals(m_subError, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_subError = value;
            }
        }

        /// <remarks />
        public BaseObjectState Counters
        {
            get
            {
                return m_counters;
            }

            set
            {
                if (!Object.ReferenceEquals(m_counters, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_counters = value;
            }
        }

        /// <remarks />
        public BaseObjectState LiveValues
        {
            get
            {
                return m_liveValues;
            }

            set
            {
                if (!Object.ReferenceEquals(m_liveValues, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_liveValues = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_diagnosticsLevel != null)
            {
                children.Add(m_diagnosticsLevel);
            }

            if (m_totalInformation != null)
            {
                children.Add(m_totalInformation);
            }

            if (m_totalError != null)
            {
                children.Add(m_totalError);
            }

            if (m_resetMethod != null)
            {
                children.Add(m_resetMethod);
            }

            if (m_subError != null)
            {
                children.Add(m_subError);
            }

            if (m_counters != null)
            {
                children.Add(m_counters);
            }

            if (m_liveValues != null)
            {
                children.Add(m_liveValues);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.DiagnosticsLevel:
                {
                    if (createOrReplace)
                    {
                        if (DiagnosticsLevel == null)
                        {
                            if (replacement == null)
                            {
                                DiagnosticsLevel = new BaseDataVariableState<DiagnosticsLevel>(this);
                            }
                            else
                            {
                                DiagnosticsLevel = (BaseDataVariableState<DiagnosticsLevel>)replacement;
                            }
                        }
                    }

                    instance = DiagnosticsLevel;
                    break;
                }

                case Opc.Ua.BrowseNames.TotalInformation:
                {
                    if (createOrReplace)
                    {
                        if (TotalInformation == null)
                        {
                            if (replacement == null)
                            {
                                TotalInformation = new PubSubDiagnosticsCounterState(this);
                            }
                            else
                            {
                                TotalInformation = (PubSubDiagnosticsCounterState)replacement;
                            }
                        }
                    }

                    instance = TotalInformation;
                    break;
                }

                case Opc.Ua.BrowseNames.TotalError:
                {
                    if (createOrReplace)
                    {
                        if (TotalError == null)
                        {
                            if (replacement == null)
                            {
                                TotalError = new PubSubDiagnosticsCounterState(this);
                            }
                            else
                            {
                                TotalError = (PubSubDiagnosticsCounterState)replacement;
                            }
                        }
                    }

                    instance = TotalError;
                    break;
                }

                case Opc.Ua.BrowseNames.Reset:
                {
                    if (createOrReplace)
                    {
                        if (Reset == null)
                        {
                            if (replacement == null)
                            {
                                Reset = new MethodState(this);
                            }
                            else
                            {
                                Reset = (MethodState)replacement;
                            }
                        }
                    }

                    instance = Reset;
                    break;
                }

                case Opc.Ua.BrowseNames.SubError:
                {
                    if (createOrReplace)
                    {
                        if (SubError == null)
                        {
                            if (replacement == null)
                            {
                                SubError = new BaseDataVariableState<bool>(this);
                            }
                            else
                            {
                                SubError = (BaseDataVariableState<bool>)replacement;
                            }
                        }
                    }

                    instance = SubError;
                    break;
                }

                case Opc.Ua.BrowseNames.Counters:
                {
                    if (createOrReplace)
                    {
                        if (Counters == null)
                        {
                            if (replacement == null)
                            {
                                Counters = new BaseObjectState(this);
                            }
                            else
                            {
                                Counters = (BaseObjectState)replacement;
                            }
                        }
                    }

                    instance = Counters;
                    break;
                }

                case Opc.Ua.BrowseNames.LiveValues:
                {
                    if (createOrReplace)
                    {
                        if (LiveValues == null)
                        {
                            if (replacement == null)
                            {
                                LiveValues = new BaseObjectState(this);
                            }
                            else
                            {
                                LiveValues = (BaseObjectState)replacement;
                            }
                        }
                    }

                    instance = LiveValues;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<DiagnosticsLevel> m_diagnosticsLevel;
        private PubSubDiagnosticsCounterState m_totalInformation;
        private PubSubDiagnosticsCounterState m_totalError;
        private MethodState m_resetMethod;
        private BaseDataVariableState<bool> m_subError;
        private BaseObjectState m_counters;
        private BaseObjectState m_liveValues;
        #endregion
    }
    #endif
    #endregion

    #region PubSubDiagnosticsCounterState Class
    #if (!OPCUA_EXCLUDE_PubSubDiagnosticsCounterState)
    /// <summary>
    /// Stores an instance of the PubSubDiagnosticsCounterType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubDiagnosticsCounterState : BaseDataVariableState<uint>
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubDiagnosticsCounterState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.PubSubDiagnosticsCounterType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.UInt32, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Scalar;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (TimeFirstChange != null)
            {
                TimeFirstChange.Initialize(context, TimeFirstChange_InitializationString);
            }
        }

        #region Initialization String
        private const string TimeFirstChange_InitializationString =
           "//////////8VYIkKAgAAAAAADwAAAFRpbWVGaXJzdENoYW5nZQEAEU0ALgBEEU0AAAAN/////wEB////" +
           "/wAAAAA=";

        private const string InitializationString =
           "//////////8VYIkCAgAAAAAAJAAAAFB1YlN1YkRpYWdub3N0aWNzQ291bnRlclR5cGVJbnN0YW5jZQEA" +
           "DU0BAA1NDU0AAAAH/////wEB/////wQAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEADk0ALgBEDk0AAAAB" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQAPTQAuAEQPTQAAAQASTf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQAQTQAuAEQQTQAAAQALTf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAA8AAABUaW1lRmlyc3RDaGFuZ2UBABFNAC4ARBFNAAAADf////8B" +
           "Af////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<bool> Active
        {
            get
            {
                return m_active;
            }

            set
            {
                if (!Object.ReferenceEquals(m_active, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_active = value;
            }
        }

        /// <remarks />
        public PropertyState<PubSubDiagnosticsCounterClassification> Classification
        {
            get
            {
                return m_classification;
            }

            set
            {
                if (!Object.ReferenceEquals(m_classification, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_classification = value;
            }
        }

        /// <remarks />
        public PropertyState<DiagnosticsLevel> DiagnosticsLevel
        {
            get
            {
                return m_diagnosticsLevel;
            }

            set
            {
                if (!Object.ReferenceEquals(m_diagnosticsLevel, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_diagnosticsLevel = value;
            }
        }

        /// <remarks />
        public PropertyState<DateTime> TimeFirstChange
        {
            get
            {
                return m_timeFirstChange;
            }

            set
            {
                if (!Object.ReferenceEquals(m_timeFirstChange, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_timeFirstChange = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_active != null)
            {
                children.Add(m_active);
            }

            if (m_classification != null)
            {
                children.Add(m_classification);
            }

            if (m_diagnosticsLevel != null)
            {
                children.Add(m_diagnosticsLevel);
            }

            if (m_timeFirstChange != null)
            {
                children.Add(m_timeFirstChange);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Active:
                {
                    if (createOrReplace)
                    {
                        if (Active == null)
                        {
                            if (replacement == null)
                            {
                                Active = new PropertyState<bool>(this);
                            }
                            else
                            {
                                Active = (PropertyState<bool>)replacement;
                            }
                        }
                    }

                    instance = Active;
                    break;
                }

                case Opc.Ua.BrowseNames.Classification:
                {
                    if (createOrReplace)
                    {
                        if (Classification == null)
                        {
                            if (replacement == null)
                            {
                                Classification = new PropertyState<PubSubDiagnosticsCounterClassification>(this);
                            }
                            else
                            {
                                Classification = (PropertyState<PubSubDiagnosticsCounterClassification>)replacement;
                            }
                        }
                    }

                    instance = Classification;
                    break;
                }

                case Opc.Ua.BrowseNames.DiagnosticsLevel:
                {
                    if (createOrReplace)
                    {
                        if (DiagnosticsLevel == null)
                        {
                            if (replacement == null)
                            {
                                DiagnosticsLevel = new PropertyState<DiagnosticsLevel>(this);
                            }
                            else
                            {
                                DiagnosticsLevel = (PropertyState<DiagnosticsLevel>)replacement;
                            }
                        }
                    }

                    instance = DiagnosticsLevel;
                    break;
                }

                case Opc.Ua.BrowseNames.TimeFirstChange:
                {
                    if (createOrReplace)
                    {
                        if (TimeFirstChange == null)
                        {
                            if (replacement == null)
                            {
                                TimeFirstChange = new PropertyState<DateTime>(this);
                            }
                            else
                            {
                                TimeFirstChange = (PropertyState<DateTime>)replacement;
                            }
                        }
                    }

                    instance = TimeFirstChange;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<bool> m_active;
        private PropertyState<PubSubDiagnosticsCounterClassification> m_classification;
        private PropertyState<DiagnosticsLevel> m_diagnosticsLevel;
        private PropertyState<DateTime> m_timeFirstChange;
        #endregion
    }
    #endif
    #endregion

    #region PubSubDiagnosticsRootState Class
    #if (!OPCUA_EXCLUDE_PubSubDiagnosticsRootState)
    /// <summary>
    /// Stores an instance of the PubSubDiagnosticsRootType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubDiagnosticsRootState : PubSubDiagnosticsState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubDiagnosticsRootState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PubSubDiagnosticsRootType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIQAAAFB1YlN1YkRpYWdub3N0aWNzUm9vdFR5cGVJbnN0YW5jZQEAFE0B" +
           "ABRNFE0AAP////8HAAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQAVTQAvAD8VTQAAAQAL" +
           "Tf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABUb3RhbEluZm9ybWF0aW9uAQAWTQAvAQANTRZNAAAA" +
           "B/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBABdNAC4ARBdNAAAAAf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAGE0ALgBEGE0AAAEAEk3/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAGU0ALgBEGU0AAAEAC03/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAKAAAAVG90YWxFcnJvcgEAG00ALwEADU0bTQAAAAf/////AQH/////AwAAABVgiQoC" +
           "AAAAAAAGAAAAQWN0aXZlAQAcTQAuAEQcTQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAOAAAAQ2xh" +
           "c3NpZmljYXRpb24BAB1NAC4ARB1NAAABABJN/////wEB/////wAAAAAVYIkKAgAAAAAAEAAAAERpYWdu" +
           "b3N0aWNzTGV2ZWwBAB5NAC4ARB5NAAABAAtN/////wEB/////wAAAAAEYYIKBAAAAAAABQAAAFJlc2V0" +
           "AQAgTQAvAQDpTCBNAAABAf////8AAAAAFWCJCgIAAAAAAAgAAABTdWJFcnJvcgEAIU0ALwA/IU0AAAAB" +
           "/////wEB/////wAAAAAEYIAKAQAAAAAACAAAAENvdW50ZXJzAQAiTQAvADoiTQAA/////wYAAAAVYIkK" +
           "AgAAAAAACgAAAFN0YXRlRXJyb3IBACNNAC8BAA1NI00AAAAH/////wEB/////wMAAAAVYIkKAgAAAAAA" +
           "BgAAAEFjdGl2ZQEAJE0ALgBEJE0AAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZp" +
           "Y2F0aW9uAQAlTQAuAEQlTQAABgEAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdu" +
           "b3N0aWNzTGV2ZWwBACZNAC4ARCZNAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAYAAAA" +
           "U3RhdGVPcGVyYXRpb25hbEJ5TWV0aG9kAQAoTQAvAQANTShNAAAAB/////8BAf////8DAAAAFWCJCgIA" +
           "AAAAAAYAAABBY3RpdmUBAClNAC4ARClNAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABDbGFz" +
           "c2lmaWNhdGlvbgEAKk0ALgBEKk0AAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAAAABE" +
           "aWFnbm9zdGljc0xldmVsAQArTQAuAEQrTQAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "GAAAAFN0YXRlT3BlcmF0aW9uYWxCeVBhcmVudAEALU0ALwEADU0tTQAAAAf/////AQH/////AwAAABVg" +
           "iQoCAAAAAAAGAAAAQWN0aXZlAQAuTQAuAEQuTQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAOAAAA" +
           "Q2xhc3NpZmljYXRpb24BAC9NAC4ARC9NAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAAAAAQ" +
           "AAAARGlhZ25vc3RpY3NMZXZlbAEAME0ALgBEME0AAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAABkAAABTdGF0ZU9wZXJhdGlvbmFsRnJvbUVycm9yAQAyTQAvAQANTTJNAAAAB/////8BAf////8D" +
           "AAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBADNNAC4ARDNNAAAAAf////8BAf////8AAAAAFWCpCgIAAAAA" +
           "AA4AAABDbGFzc2lmaWNhdGlvbgEANE0ALgBENE0AAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIA" +
           "AAAAABAAAABEaWFnbm9zdGljc0xldmVsAQA1TQAuAEQ1TQAABgAAAAABAAtN/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAAEwAAAFN0YXRlUGF1c2VkQnlQYXJlbnQBADdNAC8BAA1NN00AAAAH/////wEB/////wMA" +
           "AAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAOE0ALgBEOE0AAAAB/////wEB/////wAAAAAVYKkKAgAAAAAA" +
           "DgAAAENsYXNzaWZpY2F0aW9uAQA5TQAuAEQ5TQAABgAAAAABABJN/////wEB/////wAAAAAVYKkKAgAA" +
           "AAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBADpNAC4ARDpNAAAGAAAAAAEAC03/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAVAAAAU3RhdGVEaXNhYmxlZEJ5TWV0aG9kAQA8TQAvAQANTTxNAAAAB/////8BAf////8D" +
           "AAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAD1NAC4ARD1NAAAAAf////8BAf////8AAAAAFWCpCgIAAAAA" +
           "AA4AAABDbGFzc2lmaWNhdGlvbgEAPk0ALgBEPk0AAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIA" +
           "AAAAABAAAABEaWFnbm9zdGljc0xldmVsAQA/TQAuAEQ/TQAABgAAAAABAAtN/////wEB/////wAAAAAE" +
           "YIAKAQAAAAAACgAAAExpdmVWYWx1ZXMBAEFNAC8AOkFNAAD/////BAAAABVgiQoCAAAAAAAYAAAAQ29u" +
           "ZmlndXJlZERhdGFTZXRXcml0ZXJzAQBCTQAvAD9CTQAAAAX/////AQH/////AQAAABVgqQoCAAAAAAAQ" +
           "AAAARGlhZ25vc3RpY3NMZXZlbAEAQ00ALgBEQ00AAAYAAAAAAQALTf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAABgAAABDb25maWd1cmVkRGF0YVNldFJlYWRlcnMBAERNAC8AP0RNAAAABf////8BAf////8BAAAA" +
           "FWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBFTQAuAERFTQAABgAAAAABAAtN/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAAGQAAAE9wZXJhdGlvbmFsRGF0YVNldFdyaXRlcnMBAEZNAC8AP0ZNAAAABf//" +
           "//8BAf////8BAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBHTQAuAERHTQAABgAAAAAB" +
           "AAtN/////wEB/////wAAAAAVYIkKAgAAAAAAGQAAAE9wZXJhdGlvbmFsRGF0YVNldFJlYWRlcnMBAEhN" +
           "AC8AP0hNAAAABf////8BAf////8BAAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBJTQAu" +
           "AERJTQAABgAAAAABAAtN/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region PubSubDiagnosticsConnectionState Class
    #if (!OPCUA_EXCLUDE_PubSubDiagnosticsConnectionState)
    /// <summary>
    /// Stores an instance of the PubSubDiagnosticsConnectionType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubDiagnosticsConnectionState : PubSubDiagnosticsState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubDiagnosticsConnectionState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PubSubDiagnosticsConnectionType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJwAAAFB1YlN1YkRpYWdub3N0aWNzQ29ubmVjdGlvblR5cGVJbnN0YW5j" +
           "ZQEASk0BAEpNSk0AAP////8HAAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBLTQAvAD9L" +
           "TQAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABUb3RhbEluZm9ybWF0aW9uAQBMTQAvAQAN" +
           "TUxNAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAE1NAC4ARE1NAAAAAf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEATk0ALgBETk0AAAEAEk3/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAT00ALgBET00AAAEAC03/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAKAAAAVG90YWxFcnJvcgEAUU0ALwEADU1RTQAAAAf/////AQH/////AwAA" +
           "ABVgiQoCAAAAAAAGAAAAQWN0aXZlAQBSTQAuAERSTQAAAAH/////AQH/////AAAAABVgiQoCAAAAAAAO" +
           "AAAAQ2xhc3NpZmljYXRpb24BAFNNAC4ARFNNAAABABJN/////wEB/////wAAAAAVYIkKAgAAAAAAEAAA" +
           "AERpYWdub3N0aWNzTGV2ZWwBAFRNAC4ARFRNAAABAAtN/////wEB/////wAAAAAEYYIKBAAAAAAABQAA" +
           "AFJlc2V0AQBWTQAvAQDpTFZNAAABAf////8AAAAAFWCJCgIAAAAAAAgAAABTdWJFcnJvcgEAV00ALwA/" +
           "V00AAAAB/////wEB/////wAAAAAEYIAKAQAAAAAACAAAAENvdW50ZXJzAQBYTQAvADpYTQAA/////wYA" +
           "AAAVYIkKAgAAAAAACgAAAFN0YXRlRXJyb3IBAFlNAC8BAA1NWU0AAAAH/////wEB/////wMAAAAVYIkK" +
           "AgAAAAAABgAAAEFjdGl2ZQEAWk0ALgBEWk0AAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAAAENs" +
           "YXNzaWZpY2F0aW9uAQBbTQAuAERbTQAABgEAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAAEAAA" +
           "AERpYWdub3N0aWNzTGV2ZWwBAFxNAC4ARFxNAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAYAAAAU3RhdGVPcGVyYXRpb25hbEJ5TWV0aG9kAQBeTQAvAQANTV5NAAAAB/////8BAf////8DAAAA" +
           "FWCJCgIAAAAAAAYAAABBY3RpdmUBAF9NAC4ARF9NAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4A" +
           "AABDbGFzc2lmaWNhdGlvbgEAYE0ALgBEYE0AAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAA" +
           "ABAAAABEaWFnbm9zdGljc0xldmVsAQBhTQAuAERhTQAABgAAAAABAAtN/////wEB/////wAAAAAVYIkK" +
           "AgAAAAAAGAAAAFN0YXRlT3BlcmF0aW9uYWxCeVBhcmVudAEAY00ALwEADU1jTQAAAAf/////AQH/////" +
           "AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQBkTQAuAERkTQAAAAH/////AQH/////AAAAABVgqQoCAAAA" +
           "AAAOAAAAQ2xhc3NpZmljYXRpb24BAGVNAC4ARGVNAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoC" +
           "AAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAZk0ALgBEZk0AAAYAAAAAAQALTf////8BAf////8AAAAA" +
           "FWCJCgIAAAAAABkAAABTdGF0ZU9wZXJhdGlvbmFsRnJvbUVycm9yAQBoTQAvAQANTWhNAAAAB/////8B" +
           "Af////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAGlNAC4ARGlNAAAAAf////8BAf////8AAAAAFWCp" +
           "CgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAak0ALgBEak0AAAYAAAAAAQASTf////8BAf////8AAAAA" +
           "FWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBrTQAuAERrTQAABgAAAAABAAtN/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAAEwAAAFN0YXRlUGF1c2VkQnlQYXJlbnQBAG1NAC8BAA1NbU0AAAAH/////wEB" +
           "/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAbk0ALgBEbk0AAAAB/////wEB/////wAAAAAVYKkK" +
           "AgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQBvTQAuAERvTQAABgAAAAABABJN/////wEB/////wAAAAAV" +
           "YKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAHBNAC4ARHBNAAAGAAAAAAEAC03/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAVAAAAU3RhdGVEaXNhYmxlZEJ5TWV0aG9kAQByTQAvAQANTXJNAAAAB/////8B" +
           "Af////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAHNNAC4ARHNNAAAAAf////8BAf////8AAAAAFWCp" +
           "CgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAdE0ALgBEdE0AAAYAAAAAAQASTf////8BAf////8AAAAA" +
           "FWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQB1TQAuAER1TQAABgAAAAABAAtN/////wEB////" +
           "/wAAAAAEYIAKAQAAAAAACgAAAExpdmVWYWx1ZXMBAHdNAC8AOndNAAD/////AQAAABVgiQoCAAAAAAAP" +
           "AAAAUmVzb2x2ZWRBZGRyZXNzAQB4TQAvAD94TQAAAAz/////AQH/////AQAAABVgqQoCAAAAAAAQAAAA" +
           "RGlhZ25vc3RpY3NMZXZlbAEAeU0ALgBEeU0AAAYAAAAAAQALTf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region PubSubDiagnosticsWriterGroupState Class
    #if (!OPCUA_EXCLUDE_PubSubDiagnosticsWriterGroupState)
    /// <summary>
    /// Stores an instance of the PubSubDiagnosticsWriterGroupType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubDiagnosticsWriterGroupState : PubSubDiagnosticsState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubDiagnosticsWriterGroupState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PubSubDiagnosticsWriterGroupType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKAAAAFB1YlN1YkRpYWdub3N0aWNzV3JpdGVyR3JvdXBUeXBlSW5zdGFu" +
           "Y2UBAHpNAQB6TXpNAAD/////BwAAABVgiQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAe00ALwA/" +
           "e00AAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAQAAAAVG90YWxJbmZvcm1hdGlvbgEAfE0ALwEA" +
           "DU18TQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQB9TQAuAER9TQAAAAH/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAH5NAC4ARH5NAAABABJN/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAH9NAC4ARH9NAAABAAtN/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAACgAAAFRvdGFsRXJyb3IBAIFNAC8BAA1NgU0AAAAH/////wEB/////wMA" +
           "AAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAgk0ALgBEgk0AAAAB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "DgAAAENsYXNzaWZpY2F0aW9uAQCDTQAuAESDTQAAAQASTf////8BAf////8AAAAAFWCJCgIAAAAAABAA" +
           "AABEaWFnbm9zdGljc0xldmVsAQCETQAuAESETQAAAQALTf////8BAf////8AAAAABGGCCgQAAAAAAAUA" +
           "AABSZXNldAEAhk0ALwEA6UyGTQAAAQH/////AAAAABVgiQoCAAAAAAAIAAAAU3ViRXJyb3IBAIdNAC8A" +
           "P4dNAAAAAf////8BAf////8AAAAABGCACgEAAAAAAAgAAABDb3VudGVycwEAiE0ALwA6iE0AAP////8J" +
           "AAAAFWCJCgIAAAAAAAoAAABTdGF0ZUVycm9yAQCJTQAvAQANTYlNAAAAB/////8BAf////8DAAAAFWCJ" +
           "CgIAAAAAAAYAAABBY3RpdmUBAIpNAC4ARIpNAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABD" +
           "bGFzc2lmaWNhdGlvbgEAi00ALgBEi00AAAYBAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAA" +
           "AABEaWFnbm9zdGljc0xldmVsAQCMTQAuAESMTQAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAAGAAAAFN0YXRlT3BlcmF0aW9uYWxCeU1ldGhvZAEAjk0ALwEADU2OTQAAAAf/////AQH/////AwAA" +
           "ABVgiQoCAAAAAAAGAAAAQWN0aXZlAQCPTQAuAESPTQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAO" +
           "AAAAQ2xhc3NpZmljYXRpb24BAJBNAC4ARJBNAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAA" +
           "AAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAkU0ALgBEkU0AAAYAAAAAAQALTf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAABgAAABTdGF0ZU9wZXJhdGlvbmFsQnlQYXJlbnQBAJNNAC8BAA1Nk00AAAAH/////wEB////" +
           "/wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAlE0ALgBElE0AAAAB/////wEB/////wAAAAAVYKkKAgAA" +
           "AAAADgAAAENsYXNzaWZpY2F0aW9uAQCVTQAuAESVTQAABgAAAAABABJN/////wEB/////wAAAAAVYKkK" +
           "AgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAJZNAC4ARJZNAAAGAAAAAAEAC03/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAZAAAAU3RhdGVPcGVyYXRpb25hbEZyb21FcnJvcgEAmE0ALwEADU2YTQAAAAf/////" +
           "AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQCZTQAuAESZTQAAAAH/////AQH/////AAAAABVg" +
           "qQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAJpNAC4ARJpNAAAGAAAAAAEAEk3/////AQH/////AAAA" +
           "ABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAm00ALgBEm00AAAYAAAAAAQALTf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABMAAABTdGF0ZVBhdXNlZEJ5UGFyZW50AQCdTQAvAQANTZ1NAAAAB/////8B" +
           "Af////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAJ5NAC4ARJ5NAAAAAf////8BAf////8AAAAAFWCp" +
           "CgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAn00ALgBEn00AAAYAAAAAAQASTf////8BAf////8AAAAA" +
           "FWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQCgTQAuAESgTQAABgAAAAABAAtN/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAAFQAAAFN0YXRlRGlzYWJsZWRCeU1ldGhvZAEAok0ALwEADU2iTQAAAAf/////" +
           "AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQCjTQAuAESjTQAAAAH/////AQH/////AAAAABVg" +
           "qQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAKRNAC4ARKRNAAAGAAAAAAEAEk3/////AQH/////AAAA" +
           "ABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEApU0ALgBEpU0AAAYAAAAAAQALTf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABMAAABTZW50TmV0d29ya01lc3NhZ2VzAQCoTQAvAQANTahNAAAAB/////8B" +
           "Af////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAKlNAC4ARKlNAAAAAf////8BAf////8AAAAAFWCp" +
           "CgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAqk0ALgBEqk0AAAYAAAAAAQASTf////8BAf////8AAAAA" +
           "FWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQCrTQAuAESrTQAABgAAAAABAAtN/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAAEwAAAEZhaWxlZFRyYW5zbWlzc2lvbnMBAK1NAC8BAA1NrU0AAAAH/////wEB" +
           "/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEArk0ALgBErk0AAAAB/////wEB/////wAAAAAVYKkK" +
           "AgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQCvTQAuAESvTQAABgEAAAABABJN/////wEB/////wAAAAAV" +
           "YKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBALBNAC4ARLBNAAAGAAAAAAEAC03/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAQAAAARW5jcnlwdGlvbkVycm9ycwEAsk0ALwEADU2yTQAAAAf/////AQH/////" +
           "AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQCzTQAuAESzTQAAAAH/////AQH/////AAAAABVgqQoCAAAA" +
           "AAAOAAAAQ2xhc3NpZmljYXRpb24BALRNAC4ARLRNAAAGAQAAAAEAEk3/////AQH/////AAAAABVgqQoC" +
           "AAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAtU0ALgBEtU0AAAYBAAAAAQALTf////8BAf////8AAAAA" +
           "BGCACgEAAAAAAAoAAABMaXZlVmFsdWVzAQCnTQAvADqnTQAA/////wQAAAAVYIkKAgAAAAAAGAAAAENv" +
           "bmZpZ3VyZWREYXRhU2V0V3JpdGVycwEAt00ALwA/t00AAAAF/////wEB/////wEAAAAVYKkKAgAAAAAA" +
           "EAAAAERpYWdub3N0aWNzTGV2ZWwBALhNAC4ARLhNAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAZAAAAT3BlcmF0aW9uYWxEYXRhU2V0V3JpdGVycwEAuU0ALwA/uU0AAAAF/////wEB/////wEA" +
           "AAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBALpNAC4ARLpNAAAGAAAAAAEAC03/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAPAAAAU2VjdXJpdHlUb2tlbklEAQC7TQAvAD+7TQAAAAf/////AQH/////" +
           "AQAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAvE0ALgBEvE0AAAYCAAAAAQALTf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAABEAAABUaW1lVG9OZXh0VG9rZW5JRAEAvU0ALwA/vU0AAAEAIgH/////" +
           "AQH/////AQAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAvk0ALgBEvk0AAAYCAAAAAQAL" +
           "Tf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region PubSubDiagnosticsReaderGroupState Class
    #if (!OPCUA_EXCLUDE_PubSubDiagnosticsReaderGroupState)
    /// <summary>
    /// Stores an instance of the PubSubDiagnosticsReaderGroupType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubDiagnosticsReaderGroupState : PubSubDiagnosticsState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubDiagnosticsReaderGroupState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PubSubDiagnosticsReaderGroupType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKAAAAFB1YlN1YkRpYWdub3N0aWNzUmVhZGVyR3JvdXBUeXBlSW5zdGFu" +
           "Y2UBAL9NAQC/Tb9NAAD/////BwAAABVgiQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAwE0ALwA/" +
           "wE0AAAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAQAAAAVG90YWxJbmZvcm1hdGlvbgEAwU0ALwEA" +
           "DU3BTQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQDCTQAuAETCTQAAAAH/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAMNNAC4ARMNNAAABABJN/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAMRNAC4ARMRNAAABAAtN/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAACgAAAFRvdGFsRXJyb3IBAMZNAC8BAA1Nxk0AAAAH/////wEB/////wMA" +
           "AAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAx00ALgBEx00AAAAB/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "DgAAAENsYXNzaWZpY2F0aW9uAQDITQAuAETITQAAAQASTf////8BAf////8AAAAAFWCJCgIAAAAAABAA" +
           "AABEaWFnbm9zdGljc0xldmVsAQDJTQAuAETJTQAAAQALTf////8BAf////8AAAAABGGCCgQAAAAAAAUA" +
           "AABSZXNldAEAy00ALwEA6UzLTQAAAQH/////AAAAABVgiQoCAAAAAAAIAAAAU3ViRXJyb3IBAMxNAC8A" +
           "P8xNAAAAAf////8BAf////8AAAAABGCACgEAAAAAAAgAAABDb3VudGVycwEAzU0ALwA6zU0AAP////8J" +
           "AAAAFWCJCgIAAAAAAAoAAABTdGF0ZUVycm9yAQDOTQAvAQANTc5NAAAAB/////8BAf////8DAAAAFWCJ" +
           "CgIAAAAAAAYAAABBY3RpdmUBAM9NAC4ARM9NAAAAAf////8BAf////8AAAAAFWCpCgIAAAAAAA4AAABD" +
           "bGFzc2lmaWNhdGlvbgEA0E0ALgBE0E0AAAYBAAAAAQASTf////8BAf////8AAAAAFWCpCgIAAAAAABAA" +
           "AABEaWFnbm9zdGljc0xldmVsAQDRTQAuAETRTQAABgAAAAABAAtN/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAAGAAAAFN0YXRlT3BlcmF0aW9uYWxCeU1ldGhvZAEA000ALwEADU3TTQAAAAf/////AQH/////AwAA" +
           "ABVgiQoCAAAAAAAGAAAAQWN0aXZlAQDUTQAuAETUTQAAAAH/////AQH/////AAAAABVgqQoCAAAAAAAO" +
           "AAAAQ2xhc3NpZmljYXRpb24BANVNAC4ARNVNAAAGAAAAAAEAEk3/////AQH/////AAAAABVgqQoCAAAA" +
           "AAAQAAAARGlhZ25vc3RpY3NMZXZlbAEA1k0ALgBE1k0AAAYAAAAAAQALTf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAABgAAABTdGF0ZU9wZXJhdGlvbmFsQnlQYXJlbnQBANhNAC8BAA1N2E0AAAAH/////wEB////" +
           "/wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEA2U0ALgBE2U0AAAAB/////wEB/////wAAAAAVYKkKAgAA" +
           "AAAADgAAAENsYXNzaWZpY2F0aW9uAQDaTQAuAETaTQAABgAAAAABABJN/////wEB/////wAAAAAVYKkK" +
           "AgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBANtNAC4ARNtNAAAGAAAAAAEAC03/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAZAAAAU3RhdGVPcGVyYXRpb25hbEZyb21FcnJvcgEA3U0ALwEADU3dTQAAAAf/////" +
           "AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQDeTQAuAETeTQAAAAH/////AQH/////AAAAABVg" +
           "qQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAN9NAC4ARN9NAAAGAAAAAAEAEk3/////AQH/////AAAA" +
           "ABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEA4E0ALgBE4E0AAAYAAAAAAQALTf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABMAAABTdGF0ZVBhdXNlZEJ5UGFyZW50AQDiTQAvAQANTeJNAAAAB/////8B" +
           "Af////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAONNAC4ARONNAAAAAf////8BAf////8AAAAAFWCp" +
           "CgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEA5E0ALgBE5E0AAAYAAAAAAQASTf////8BAf////8AAAAA" +
           "FWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQDlTQAuAETlTQAABgAAAAABAAtN/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAAFQAAAFN0YXRlRGlzYWJsZWRCeU1ldGhvZAEA500ALwEADU3nTQAAAAf/////" +
           "AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQDoTQAuAEToTQAAAAH/////AQH/////AAAAABVg" +
           "qQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAOlNAC4AROlNAAAGAAAAAAEAEk3/////AQH/////AAAA" +
           "ABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEA6k0ALgBE6k0AAAYAAAAAAQALTf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABcAAABSZWNlaXZlZE5ldHdvcmtNZXNzYWdlcwEA7U0ALwEADU3tTQAAAAf/" +
           "////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQDuTQAuAETuTQAAAAH/////AQH/////AAAA" +
           "ABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAO9NAC4ARO9NAAAGAAAAAAEAEk3/////AQH/////" +
           "AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEA8E0ALgBE8E0AAAYAAAAAAQALTf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAAB4AAABSZWNlaXZlZEludmFsaWROZXR3b3JrTWVzc2FnZXMBAPJNAC8B" +
           "AA1N8k0AAAAH/////wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEA800ALgBE800AAAAB////" +
           "/wEB/////wAAAAAVYKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQD0TQAuAET0TQAABgEAAAABABJN" +
           "/////wEB/////wAAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAPVNAC4ARPVNAAAGAQAA" +
           "AAEAC03/////AQH/////AAAAABVgiQoCAAAAAAAQAAAARGVjcnlwdGlvbkVycm9ycwEA900ALwEADU33" +
           "TQAAAAf/////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQD4TQAuAET4TQAAAAH/////AQH/" +
           "////AAAAABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAPlNAC4ARPlNAAAGAQAAAAEAEk3/////" +
           "AQH/////AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEA+k0ALgBE+k0AAAYBAAAAAQAL" +
           "Tf////8BAf////8AAAAABGCACgEAAAAAAAoAAABMaXZlVmFsdWVzAQDsTQAvADrsTQAA/////wIAAAAV" +
           "YIkKAgAAAAAAGAAAAENvbmZpZ3VyZWREYXRhU2V0UmVhZGVycwEA/E0ALwA//E0AAAAF/////wEB////" +
           "/wEAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAP1NAC4ARP1NAAAGAAAAAAEAC03/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAZAAAAT3BlcmF0aW9uYWxEYXRhU2V0UmVhZGVycwEA/k0ALwA//k0A" +
           "AAAF/////wEB/////wEAAAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAP9NAC4ARP9NAAAG" +
           "AAAAAAEAC03/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region PubSubDiagnosticsDataSetWriterState Class
    #if (!OPCUA_EXCLUDE_PubSubDiagnosticsDataSetWriterState)
    /// <summary>
    /// Stores an instance of the PubSubDiagnosticsDataSetWriterType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubDiagnosticsDataSetWriterState : PubSubDiagnosticsState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubDiagnosticsDataSetWriterState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PubSubDiagnosticsDataSetWriterType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKgAAAFB1YlN1YkRpYWdub3N0aWNzRGF0YVNldFdyaXRlclR5cGVJbnN0" +
           "YW5jZQEAAE4BAABOAE4AAP////8HAAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQABTgAv" +
           "AD8BTgAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABUb3RhbEluZm9ybWF0aW9uAQACTgAv" +
           "AQANTQJOAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAANOAC4ARANOAAAAAf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEABE4ALgBEBE4AAAEAEk3/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEABU4ALgBEBU4AAAEAC03/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAKAAAAVG90YWxFcnJvcgEAB04ALwEADU0HTgAAAAf/////AQH/////" +
           "AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQAITgAuAEQITgAAAAH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAOAAAAQ2xhc3NpZmljYXRpb24BAAlOAC4ARAlOAAABABJN/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "EAAAAERpYWdub3N0aWNzTGV2ZWwBAApOAC4ARApOAAABAAtN/////wEB/////wAAAAAEYYIKBAAAAAAA" +
           "BQAAAFJlc2V0AQAMTgAvAQDpTAxOAAABAf////8AAAAAFWCJCgIAAAAAAAgAAABTdWJFcnJvcgEADU4A" +
           "LwA/DU4AAAAB/////wEB/////wAAAAAEYIAKAQAAAAAACAAAAENvdW50ZXJzAQAOTgAvADoOTgAA////" +
           "/wcAAAAVYIkKAgAAAAAACgAAAFN0YXRlRXJyb3IBAA9OAC8BAA1ND04AAAAH/////wEB/////wMAAAAV" +
           "YIkKAgAAAAAABgAAAEFjdGl2ZQEAEE4ALgBEEE4AAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAA" +
           "AENsYXNzaWZpY2F0aW9uAQARTgAuAEQRTgAABgEAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAA" +
           "EAAAAERpYWdub3N0aWNzTGV2ZWwBABJOAC4ARBJOAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAYAAAAU3RhdGVPcGVyYXRpb25hbEJ5TWV0aG9kAQAUTgAvAQANTRROAAAAB/////8BAf////8D" +
           "AAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBABVOAC4ARBVOAAAAAf////8BAf////8AAAAAFWCpCgIAAAAA" +
           "AA4AAABDbGFzc2lmaWNhdGlvbgEAFk4ALgBEFk4AAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIA" +
           "AAAAABAAAABEaWFnbm9zdGljc0xldmVsAQAXTgAuAEQXTgAABgAAAAABAAtN/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAAGAAAAFN0YXRlT3BlcmF0aW9uYWxCeVBhcmVudAEAGU4ALwEADU0ZTgAAAAf/////AQH/" +
           "////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQAaTgAuAEQaTgAAAAH/////AQH/////AAAAABVgqQoC" +
           "AAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BABtOAC4ARBtOAAAGAAAAAAEAEk3/////AQH/////AAAAABVg" +
           "qQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAHE4ALgBEHE4AAAYAAAAAAQALTf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAABkAAABTdGF0ZU9wZXJhdGlvbmFsRnJvbUVycm9yAQAeTgAvAQANTR5OAAAAB///" +
           "//8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAB9OAC4ARB9OAAAAAf////8BAf////8AAAAA" +
           "FWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAIE4ALgBEIE4AAAYAAAAAAQASTf////8BAf////8A" +
           "AAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQAhTgAuAEQhTgAABgAAAAABAAtN/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAAEwAAAFN0YXRlUGF1c2VkQnlQYXJlbnQBACNOAC8BAA1NI04AAAAH////" +
           "/wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAJE4ALgBEJE4AAAAB/////wEB/////wAAAAAV" +
           "YKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQAlTgAuAEQlTgAABgAAAAABABJN/////wEB/////wAA" +
           "AAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBACZOAC4ARCZOAAAGAAAAAAEAC03/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAVAAAAU3RhdGVEaXNhYmxlZEJ5TWV0aG9kAQAoTgAvAQANTShOAAAAB///" +
           "//8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAClOAC4ARClOAAAAAf////8BAf////8AAAAA" +
           "FWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAKk4ALgBEKk4AAAYAAAAAAQASTf////8BAf////8A" +
           "AAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQArTgAuAEQrTgAABgAAAAABAAtN/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAAFQAAAEZhaWxlZERhdGFTZXRNZXNzYWdlcwEALk4ALwEADU0uTgAAAAf/" +
           "////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQAvTgAuAEQvTgAAAAH/////AQH/////AAAA" +
           "ABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BADBOAC4ARDBOAAAGAQAAAAEAEk3/////AQH/////" +
           "AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAMU4ALgBEMU4AAAYAAAAAAQALTf////8B" +
           "Af////8AAAAABGCACgEAAAAAAAoAAABMaXZlVmFsdWVzAQAtTgAvADotTgAA/////wQAAAAVYIkKAgAA" +
           "AAAAFQAAAE1lc3NhZ2VTZXF1ZW5jZU51bWJlcgEAM04ALwA/M04AAAAF/////wEB/////wEAAAAVYKkK" +
           "AgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBADROAC4ARDROAAAGAgAAAAEAC03/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAKAAAAU3RhdHVzQ29kZQEANU4ALwA/NU4AAAAT/////wEB/////wEAAAAVYKkKAgAA" +
           "AAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBADZOAC4ARDZOAAAGAgAAAAEAC03/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAMAAAATWFqb3JWZXJzaW9uAQA3TgAvAD83TgAAAAf/////AQH/////AQAAABVgqQoCAAAA" +
           "AAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAOE4ALgBEOE4AAAYCAAAAAQALTf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAwAAABNaW5vclZlcnNpb24BADlOAC8APzlOAAAAB/////8BAf////8BAAAAFWCpCgIAAAAA" +
           "ABAAAABEaWFnbm9zdGljc0xldmVsAQA6TgAuAEQ6TgAABgIAAAABAAtN/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region PubSubDiagnosticsDataSetReaderState Class
    #if (!OPCUA_EXCLUDE_PubSubDiagnosticsDataSetReaderState)
    /// <summary>
    /// Stores an instance of the PubSubDiagnosticsDataSetReaderType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubDiagnosticsDataSetReaderState : PubSubDiagnosticsState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubDiagnosticsDataSetReaderState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PubSubDiagnosticsDataSetReaderType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKgAAAFB1YlN1YkRpYWdub3N0aWNzRGF0YVNldFJlYWRlclR5cGVJbnN0" +
           "YW5jZQEAO04BADtOO04AAP////8HAAAAFWCJCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQA8TgAv" +
           "AD88TgAAAQALTf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABUb3RhbEluZm9ybWF0aW9uAQA9TgAv" +
           "AQANTT1OAAAAB/////8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAD5OAC4ARD5OAAAAAf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAP04ALgBEP04AAAEAEk3/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAQE4ALgBEQE4AAAEAC03/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAKAAAAVG90YWxFcnJvcgEAQk4ALwEADU1CTgAAAAf/////AQH/////" +
           "AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQBDTgAuAERDTgAAAAH/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAOAAAAQ2xhc3NpZmljYXRpb24BAEROAC4AREROAAABABJN/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "EAAAAERpYWdub3N0aWNzTGV2ZWwBAEVOAC4AREVOAAABAAtN/////wEB/////wAAAAAEYYIKBAAAAAAA" +
           "BQAAAFJlc2V0AQBHTgAvAQDpTEdOAAABAf////8AAAAAFWCJCgIAAAAAAAgAAABTdWJFcnJvcgEASE4A" +
           "LwA/SE4AAAAB/////wEB/////wAAAAAEYIAKAQAAAAAACAAAAENvdW50ZXJzAQBJTgAvADpJTgAA////" +
           "/wgAAAAVYIkKAgAAAAAACgAAAFN0YXRlRXJyb3IBAEpOAC8BAA1NSk4AAAAH/////wEB/////wMAAAAV" +
           "YIkKAgAAAAAABgAAAEFjdGl2ZQEAS04ALgBES04AAAAB/////wEB/////wAAAAAVYKkKAgAAAAAADgAA" +
           "AENsYXNzaWZpY2F0aW9uAQBMTgAuAERMTgAABgEAAAABABJN/////wEB/////wAAAAAVYKkKAgAAAAAA" +
           "EAAAAERpYWdub3N0aWNzTGV2ZWwBAE1OAC4ARE1OAAAGAAAAAAEAC03/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAYAAAAU3RhdGVPcGVyYXRpb25hbEJ5TWV0aG9kAQBPTgAvAQANTU9OAAAAB/////8BAf////8D" +
           "AAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAFBOAC4ARFBOAAAAAf////8BAf////8AAAAAFWCpCgIAAAAA" +
           "AA4AAABDbGFzc2lmaWNhdGlvbgEAUU4ALgBEUU4AAAYAAAAAAQASTf////8BAf////8AAAAAFWCpCgIA" +
           "AAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBSTgAuAERSTgAABgAAAAABAAtN/////wEB/////wAAAAAV" +
           "YIkKAgAAAAAAGAAAAFN0YXRlT3BlcmF0aW9uYWxCeVBhcmVudAEAVE4ALwEADU1UTgAAAAf/////AQH/" +
           "////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQBVTgAuAERVTgAAAAH/////AQH/////AAAAABVgqQoC" +
           "AAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAFZOAC4ARFZOAAAGAAAAAAEAEk3/////AQH/////AAAAABVg" +
           "qQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAV04ALgBEV04AAAYAAAAAAQALTf////8BAf////8A" +
           "AAAAFWCJCgIAAAAAABkAAABTdGF0ZU9wZXJhdGlvbmFsRnJvbUVycm9yAQBZTgAvAQANTVlOAAAAB///" +
           "//8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAFpOAC4ARFpOAAAAAf////8BAf////8AAAAA" +
           "FWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAW04ALgBEW04AAAYAAAAAAQASTf////8BAf////8A" +
           "AAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBcTgAuAERcTgAABgAAAAABAAtN/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAAEwAAAFN0YXRlUGF1c2VkQnlQYXJlbnQBAF5OAC8BAA1NXk4AAAAH////" +
           "/wEB/////wMAAAAVYIkKAgAAAAAABgAAAEFjdGl2ZQEAX04ALgBEX04AAAAB/////wEB/////wAAAAAV" +
           "YKkKAgAAAAAADgAAAENsYXNzaWZpY2F0aW9uAQBgTgAuAERgTgAABgAAAAABABJN/////wEB/////wAA" +
           "AAAVYKkKAgAAAAAAEAAAAERpYWdub3N0aWNzTGV2ZWwBAGFOAC4ARGFOAAAGAAAAAAEAC03/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAVAAAAU3RhdGVEaXNhYmxlZEJ5TWV0aG9kAQBjTgAvAQANTWNOAAAAB///" +
           "//8BAf////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAGROAC4ARGROAAAAAf////8BAf////8AAAAA" +
           "FWCpCgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAZU4ALgBEZU4AAAYAAAAAAQASTf////8BAf////8A" +
           "AAAAFWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBmTgAuAERmTgAABgAAAAABAAtN/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAAFQAAAEZhaWxlZERhdGFTZXRNZXNzYWdlcwEAaU4ALwEADU1pTgAAAAf/" +
           "////AQH/////AwAAABVgiQoCAAAAAAAGAAAAQWN0aXZlAQBqTgAuAERqTgAAAAH/////AQH/////AAAA" +
           "ABVgqQoCAAAAAAAOAAAAQ2xhc3NpZmljYXRpb24BAGtOAC4ARGtOAAAGAQAAAAEAEk3/////AQH/////" +
           "AAAAABVgqQoCAAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAbE4ALgBEbE4AAAYAAAAAAQALTf////8B" +
           "Af////8AAAAAFWCJCgIAAAAAABAAAABEZWNyeXB0aW9uRXJyb3JzAQBuTgAvAQANTW5OAAAAB/////8B" +
           "Af////8DAAAAFWCJCgIAAAAAAAYAAABBY3RpdmUBAG9OAC4ARG9OAAAAAf////8BAf////8AAAAAFWCp" +
           "CgIAAAAAAA4AAABDbGFzc2lmaWNhdGlvbgEAcE4ALgBEcE4AAAYBAAAAAQASTf////8BAf////8AAAAA" +
           "FWCpCgIAAAAAABAAAABEaWFnbm9zdGljc0xldmVsAQBxTgAuAERxTgAABgEAAAABAAtN/////wEB////" +
           "/wAAAAAEYIAKAQAAAAAACgAAAExpdmVWYWx1ZXMBAGhOAC8AOmhOAAD/////BgAAABVgiQoCAAAAAAAV" +
           "AAAATWVzc2FnZVNlcXVlbmNlTnVtYmVyAQBzTgAvAD9zTgAAAAX/////AQH/////AQAAABVgqQoCAAAA" +
           "AAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAdE4ALgBEdE4AAAYCAAAAAQALTf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABTdGF0dXNDb2RlAQB1TgAvAD91TgAAABP/////AQH/////AQAAABVgqQoCAAAAAAAQ" +
           "AAAARGlhZ25vc3RpY3NMZXZlbAEAdk4ALgBEdk4AAAYCAAAAAQALTf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAwAAABNYWpvclZlcnNpb24BAHdOAC8AP3dOAAAAB/////8BAf////8BAAAAFWCpCgIAAAAAABAA" +
           "AABEaWFnbm9zdGljc0xldmVsAQB4TgAuAER4TgAABgIAAAABAAtN/////wEB/////wAAAAAVYIkKAgAA" +
           "AAAADAAAAE1pbm9yVmVyc2lvbgEAeU4ALwA/eU4AAAAH/////wEB/////wEAAAAVYKkKAgAAAAAAEAAA" +
           "AERpYWdub3N0aWNzTGV2ZWwBAHpOAC4ARHpOAAAGAgAAAAEAC03/////AQH/////AAAAABVgiQoCAAAA" +
           "AAAPAAAAU2VjdXJpdHlUb2tlbklEAQB7TgAvAD97TgAAAAf/////AQH/////AQAAABVgqQoCAAAAAAAQ" +
           "AAAARGlhZ25vc3RpY3NMZXZlbAEAfE4ALgBEfE4AAAYCAAAAAQALTf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAABEAAABUaW1lVG9OZXh0VG9rZW5JRAEAfU4ALwA/fU4AAAEAIgH/////AQH/////AQAAABVgqQoC" +
           "AAAAAAAQAAAARGlhZ25vc3RpY3NMZXZlbAEAfk4ALgBEfk4AAAYCAAAAAQALTf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region PubSubStatusEventState Class
    #if (!OPCUA_EXCLUDE_PubSubStatusEventState)
    /// <summary>
    /// Stores an instance of the PubSubStatusEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubStatusEventState : SystemEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubStatusEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PubSubStatusEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHQAAAFB1YlN1YlN0YXR1c0V2ZW50VHlwZUluc3RhbmNlAQCvPAEArzyv" +
           "PAAA/////wsAAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBALA8AC4ARLA8AAAAD/////8BAf////8AAAAA" +
           "FWCJCgIAAAAAAAkAAABFdmVudFR5cGUBALE8AC4ARLE8AAAAEf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAoAAABTb3VyY2VOb2RlAQCyPAAuAESyPAAAABH/////AQH/////AAAAABVgiQoCAAAAAAAKAAAAU291" +
           "cmNlTmFtZQEAszwALgBEszwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAABAAAAFRpbWUBALQ8AC4A" +
           "RLQ8AAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVUaW1lAQC1PAAuAES1PAAA" +
           "AQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQC3PAAuAES3PAAAABX/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBALg8AC4ARLg8AAAABf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAwAAABDb25uZWN0aW9uSWQBALk8AC4ARLk8AAAAEf////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAcAAABHcm91cElkAQC6PAAuAES6PAAAABH/////AQH/////AAAAABVgiQoCAAAAAAAFAAAAU3RhdGUB" +
           "ALs8AC4ARLs8AAABADc5/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> ConnectionId
        {
            get
            {
                return m_connectionId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_connectionId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_connectionId = value;
            }
        }

        /// <remarks />
        public PropertyState<NodeId> GroupId
        {
            get
            {
                return m_groupId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_groupId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_groupId = value;
            }
        }

        /// <remarks />
        public PropertyState<PubSubState> State
        {
            get
            {
                return m_state;
            }

            set
            {
                if (!Object.ReferenceEquals(m_state, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_state = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_connectionId != null)
            {
                children.Add(m_connectionId);
            }

            if (m_groupId != null)
            {
                children.Add(m_groupId);
            }

            if (m_state != null)
            {
                children.Add(m_state);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ConnectionId:
                {
                    if (createOrReplace)
                    {
                        if (ConnectionId == null)
                        {
                            if (replacement == null)
                            {
                                ConnectionId = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                ConnectionId = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = ConnectionId;
                    break;
                }

                case Opc.Ua.BrowseNames.GroupId:
                {
                    if (createOrReplace)
                    {
                        if (GroupId == null)
                        {
                            if (replacement == null)
                            {
                                GroupId = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                GroupId = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = GroupId;
                    break;
                }

                case Opc.Ua.BrowseNames.State:
                {
                    if (createOrReplace)
                    {
                        if (State == null)
                        {
                            if (replacement == null)
                            {
                                State = new PropertyState<PubSubState>(this);
                            }
                            else
                            {
                                State = (PropertyState<PubSubState>)replacement;
                            }
                        }
                    }

                    instance = State;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_connectionId;
        private PropertyState<NodeId> m_groupId;
        private PropertyState<PubSubState> m_state;
        #endregion
    }
    #endif
    #endregion

    #region PubSubTransportLimitsExceedEventState Class
    #if (!OPCUA_EXCLUDE_PubSubTransportLimitsExceedEventState)
    /// <summary>
    /// Stores an instance of the PubSubTransportLimitsExceedEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubTransportLimitsExceedEventState : PubSubStatusEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubTransportLimitsExceedEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PubSubTransportLimitsExceedEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAALAAAAFB1YlN1YlRyYW5zcG9ydExpbWl0c0V4Y2VlZEV2ZW50VHlwZUlu" +
           "c3RhbmNlAQC8PAEAvDy8PAAA/////w0AAAAVYIkKAgAAAAAABwAAAEV2ZW50SWQBAL08AC4ARL08AAAA" +
           "D/////8BAf////8AAAAAFWCJCgIAAAAAAAkAAABFdmVudFR5cGUBAL48AC4ARL48AAAAEf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAoAAABTb3VyY2VOb2RlAQC/PAAuAES/PAAAABH/////AQH/////AAAAABVg" +
           "iQoCAAAAAAAKAAAAU291cmNlTmFtZQEAwDwALgBEwDwAAAAM/////wEB/////wAAAAAVYIkKAgAAAAAA" +
           "BAAAAFRpbWUBAME8AC4ARME8AAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlY2VpdmVU" +
           "aW1lAQDCPAAuAETCPAAAAQAmAf////8BAf////8AAAAAFWCJCgIAAAAAAAcAAABNZXNzYWdlAQDEPAAu" +
           "AETEPAAAABX/////AQH/////AAAAABVgiQoCAAAAAAAIAAAAU2V2ZXJpdHkBAMU8AC4ARMU8AAAABf//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAwAAABDb25uZWN0aW9uSWQBAMY8AC4ARMY8AAAAEf////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAAAcAAABHcm91cElkAQDHPAAuAETHPAAAABH/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAFAAAAU3RhdGUBAMg8AC4ARMg8AAABADc5/////wEB/////wAAAAAVYIkKAgAAAAAABgAAAEFj" +
           "dHVhbAEAyTwALgBEyTwAAAAH/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1heGltdW0BAMo8AC4A" +
           "RMo8AAAAB/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<uint> Actual
        {
            get
            {
                return m_actual;
            }

            set
            {
                if (!Object.ReferenceEquals(m_actual, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_actual = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> Maximum
        {
            get
            {
                return m_maximum;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maximum, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maximum = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_actual != null)
            {
                children.Add(m_actual);
            }

            if (m_maximum != null)
            {
                children.Add(m_maximum);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Actual:
                {
                    if (createOrReplace)
                    {
                        if (Actual == null)
                        {
                            if (replacement == null)
                            {
                                Actual = new PropertyState<uint>(this);
                            }
                            else
                            {
                                Actual = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = Actual;
                    break;
                }

                case Opc.Ua.BrowseNames.Maximum:
                {
                    if (createOrReplace)
                    {
                        if (Maximum == null)
                        {
                            if (replacement == null)
                            {
                                Maximum = new PropertyState<uint>(this);
                            }
                            else
                            {
                                Maximum = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = Maximum;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<uint> m_actual;
        private PropertyState<uint> m_maximum;
        #endregion
    }
    #endif
    #endregion

    #region PubSubCommunicationFailureEventState Class
    #if (!OPCUA_EXCLUDE_PubSubCommunicationFailureEventState)
    /// <summary>
    /// Stores an instance of the PubSubCommunicationFailureEventType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class PubSubCommunicationFailureEventState : PubSubStatusEventState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public PubSubCommunicationFailureEventState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.PubSubCommunicationFailureEventType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKwAAAFB1YlN1YkNvbW11bmljYXRpb25GYWlsdXJlRXZlbnRUeXBlSW5z" +
           "dGFuY2UBAMs8AQDLPMs8AAD/////DAAAABVgiQoCAAAAAAAHAAAARXZlbnRJZAEAzDwALgBEzDwAAAAP" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAACQAAAEV2ZW50VHlwZQEAzTwALgBEzTwAAAAR/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAACgAAAFNvdXJjZU5vZGUBAM48AC4ARM48AAAAEf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAAAoAAABTb3VyY2VOYW1lAQDPPAAuAETPPAAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAE" +
           "AAAAVGltZQEA0DwALgBE0DwAAAEAJgH/////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVjZWl2ZVRp" +
           "bWUBANE8AC4ARNE8AAABACYB/////wEB/////wAAAAAVYIkKAgAAAAAABwAAAE1lc3NhZ2UBANM8AC4A" +
           "RNM8AAAAFf////8BAf////8AAAAAFWCJCgIAAAAAAAgAAABTZXZlcml0eQEA1DwALgBE1DwAAAAF////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAADAAAAENvbm5lY3Rpb25JZAEA1TwALgBE1TwAAAAR/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAABwAAAEdyb3VwSWQBANY8AC4ARNY8AAAAEf////8BAf////8AAAAAFWCJCgIA" +
           "AAAAAAUAAABTdGF0ZQEA1zwALgBE1zwAAAEANzn/////AQH/////AAAAABVgiQoCAAAAAAAFAAAARXJy" +
           "b3IBANg8AC4ARNg8AAAAE/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<StatusCode> Error
        {
            get
            {
                return m_error;
            }

            set
            {
                if (!Object.ReferenceEquals(m_error, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_error = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_error != null)
            {
                children.Add(m_error);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Error:
                {
                    if (createOrReplace)
                    {
                        if (Error == null)
                        {
                            if (replacement == null)
                            {
                                Error = new PropertyState<StatusCode>(this);
                            }
                            else
                            {
                                Error = (PropertyState<StatusCode>)replacement;
                            }
                        }
                    }

                    instance = Error;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<StatusCode> m_error;
        #endregion
    }
    #endif
    #endregion

    #region UadpWriterGroupMessageState Class
    #if (!OPCUA_EXCLUDE_UadpWriterGroupMessageState)
    /// <summary>
    /// Stores an instance of the UadpWriterGroupMessageType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class UadpWriterGroupMessageState : WriterGroupMessageState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public UadpWriterGroupMessageState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.UadpWriterGroupMessageType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (SamplingOffset != null)
            {
                SamplingOffset.Initialize(context, SamplingOffset_InitializationString);
            }
        }

        #region Initialization String
        private const string SamplingOffset_InitializationString =
           "//////////8VYIkKAgAAAAAADgAAAFNhbXBsaW5nT2Zmc2V0AQB1UgAuAER1UgAAAQAiAf////8BAf//" +
           "//8AAAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIgAAAFVhZHBXcml0ZXJHcm91cE1lc3NhZ2VUeXBlSW5zdGFuY2UBAHFS" +
           "AQBxUnFSAAD/////BQAAABVgiQoCAAAAAAAMAAAAR3JvdXBWZXJzaW9uAQByUgAuAERyUgAAAQAGUv//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAA8AAABEYXRhU2V0T3JkZXJpbmcBAHNSAC4ARHNSAAABALhP////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAAGQAAAE5ldHdvcmtNZXNzYWdlQ29udGVudE1hc2sBAHRSAC4ARHRS" +
           "AAABABo9/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAFNhbXBsaW5nT2Zmc2V0AQB1UgAuAER1UgAA" +
           "AQAiAf////8BAf////8AAAAAF2CJCgIAAAAAABAAAABQdWJsaXNoaW5nT2Zmc2V0AQB2UgAuAER2UgAA" +
           "AQAiAQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<uint> GroupVersion
        {
            get
            {
                return m_groupVersion;
            }

            set
            {
                if (!Object.ReferenceEquals(m_groupVersion, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_groupVersion = value;
            }
        }

        /// <remarks />
        public PropertyState<DataSetOrderingType> DataSetOrdering
        {
            get
            {
                return m_dataSetOrdering;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetOrdering, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetOrdering = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> NetworkMessageContentMask
        {
            get
            {
                return m_networkMessageContentMask;
            }

            set
            {
                if (!Object.ReferenceEquals(m_networkMessageContentMask, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_networkMessageContentMask = value;
            }
        }

        /// <remarks />
        public PropertyState<double> SamplingOffset
        {
            get
            {
                return m_samplingOffset;
            }

            set
            {
                if (!Object.ReferenceEquals(m_samplingOffset, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_samplingOffset = value;
            }
        }

        /// <remarks />
        public PropertyState<double[]> PublishingOffset
        {
            get
            {
                return m_publishingOffset;
            }

            set
            {
                if (!Object.ReferenceEquals(m_publishingOffset, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_publishingOffset = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_groupVersion != null)
            {
                children.Add(m_groupVersion);
            }

            if (m_dataSetOrdering != null)
            {
                children.Add(m_dataSetOrdering);
            }

            if (m_networkMessageContentMask != null)
            {
                children.Add(m_networkMessageContentMask);
            }

            if (m_samplingOffset != null)
            {
                children.Add(m_samplingOffset);
            }

            if (m_publishingOffset != null)
            {
                children.Add(m_publishingOffset);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.GroupVersion:
                {
                    if (createOrReplace)
                    {
                        if (GroupVersion == null)
                        {
                            if (replacement == null)
                            {
                                GroupVersion = new PropertyState<uint>(this);
                            }
                            else
                            {
                                GroupVersion = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = GroupVersion;
                    break;
                }

                case Opc.Ua.BrowseNames.DataSetOrdering:
                {
                    if (createOrReplace)
                    {
                        if (DataSetOrdering == null)
                        {
                            if (replacement == null)
                            {
                                DataSetOrdering = new PropertyState<DataSetOrderingType>(this);
                            }
                            else
                            {
                                DataSetOrdering = (PropertyState<DataSetOrderingType>)replacement;
                            }
                        }
                    }

                    instance = DataSetOrdering;
                    break;
                }

                case Opc.Ua.BrowseNames.NetworkMessageContentMask:
                {
                    if (createOrReplace)
                    {
                        if (NetworkMessageContentMask == null)
                        {
                            if (replacement == null)
                            {
                                NetworkMessageContentMask = new PropertyState<uint>(this);
                            }
                            else
                            {
                                NetworkMessageContentMask = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = NetworkMessageContentMask;
                    break;
                }

                case Opc.Ua.BrowseNames.SamplingOffset:
                {
                    if (createOrReplace)
                    {
                        if (SamplingOffset == null)
                        {
                            if (replacement == null)
                            {
                                SamplingOffset = new PropertyState<double>(this);
                            }
                            else
                            {
                                SamplingOffset = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = SamplingOffset;
                    break;
                }

                case Opc.Ua.BrowseNames.PublishingOffset:
                {
                    if (createOrReplace)
                    {
                        if (PublishingOffset == null)
                        {
                            if (replacement == null)
                            {
                                PublishingOffset = new PropertyState<double[]>(this);
                            }
                            else
                            {
                                PublishingOffset = (PropertyState<double[]>)replacement;
                            }
                        }
                    }

                    instance = PublishingOffset;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<uint> m_groupVersion;
        private PropertyState<DataSetOrderingType> m_dataSetOrdering;
        private PropertyState<uint> m_networkMessageContentMask;
        private PropertyState<double> m_samplingOffset;
        private PropertyState<double[]> m_publishingOffset;
        #endregion
    }
    #endif
    #endregion

    #region UadpDataSetWriterMessageState Class
    #if (!OPCUA_EXCLUDE_UadpDataSetWriterMessageState)
    /// <summary>
    /// Stores an instance of the UadpDataSetWriterMessageType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class UadpDataSetWriterMessageState : DataSetWriterMessageState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public UadpDataSetWriterMessageState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.UadpDataSetWriterMessageType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJAAAAFVhZHBEYXRhU2V0V3JpdGVyTWVzc2FnZVR5cGVJbnN0YW5jZQEA" +
           "d1IBAHdSd1IAAP////8EAAAAFWCJCgIAAAAAABkAAABEYXRhU2V0TWVzc2FnZUNvbnRlbnRNYXNrAQB4" +
           "UgAuAER4UgAAAQAePf////8BAf////8AAAAAFWCJCgIAAAAAAA4AAABDb25maWd1cmVkU2l6ZQEAeVIA" +
           "LgBEeVIAAAAF/////wEB/////wAAAAAVYIkKAgAAAAAAFAAAAE5ldHdvcmtNZXNzYWdlTnVtYmVyAQB6" +
           "UgAuAER6UgAAAAX/////AQH/////AAAAABVgiQoCAAAAAAANAAAARGF0YVNldE9mZnNldAEAe1IALgBE" +
           "e1IAAAAF/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<uint> DataSetMessageContentMask
        {
            get
            {
                return m_dataSetMessageContentMask;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetMessageContentMask, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetMessageContentMask = value;
            }
        }

        /// <remarks />
        public PropertyState<ushort> ConfiguredSize
        {
            get
            {
                return m_configuredSize;
            }

            set
            {
                if (!Object.ReferenceEquals(m_configuredSize, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_configuredSize = value;
            }
        }

        /// <remarks />
        public PropertyState<ushort> NetworkMessageNumber
        {
            get
            {
                return m_networkMessageNumber;
            }

            set
            {
                if (!Object.ReferenceEquals(m_networkMessageNumber, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_networkMessageNumber = value;
            }
        }

        /// <remarks />
        public PropertyState<ushort> DataSetOffset
        {
            get
            {
                return m_dataSetOffset;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetOffset, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetOffset = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_dataSetMessageContentMask != null)
            {
                children.Add(m_dataSetMessageContentMask);
            }

            if (m_configuredSize != null)
            {
                children.Add(m_configuredSize);
            }

            if (m_networkMessageNumber != null)
            {
                children.Add(m_networkMessageNumber);
            }

            if (m_dataSetOffset != null)
            {
                children.Add(m_dataSetOffset);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.DataSetMessageContentMask:
                {
                    if (createOrReplace)
                    {
                        if (DataSetMessageContentMask == null)
                        {
                            if (replacement == null)
                            {
                                DataSetMessageContentMask = new PropertyState<uint>(this);
                            }
                            else
                            {
                                DataSetMessageContentMask = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = DataSetMessageContentMask;
                    break;
                }

                case Opc.Ua.BrowseNames.ConfiguredSize:
                {
                    if (createOrReplace)
                    {
                        if (ConfiguredSize == null)
                        {
                            if (replacement == null)
                            {
                                ConfiguredSize = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                ConfiguredSize = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = ConfiguredSize;
                    break;
                }

                case Opc.Ua.BrowseNames.NetworkMessageNumber:
                {
                    if (createOrReplace)
                    {
                        if (NetworkMessageNumber == null)
                        {
                            if (replacement == null)
                            {
                                NetworkMessageNumber = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                NetworkMessageNumber = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = NetworkMessageNumber;
                    break;
                }

                case Opc.Ua.BrowseNames.DataSetOffset:
                {
                    if (createOrReplace)
                    {
                        if (DataSetOffset == null)
                        {
                            if (replacement == null)
                            {
                                DataSetOffset = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                DataSetOffset = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = DataSetOffset;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<uint> m_dataSetMessageContentMask;
        private PropertyState<ushort> m_configuredSize;
        private PropertyState<ushort> m_networkMessageNumber;
        private PropertyState<ushort> m_dataSetOffset;
        #endregion
    }
    #endif
    #endregion

    #region UadpDataSetReaderMessageState Class
    #if (!OPCUA_EXCLUDE_UadpDataSetReaderMessageState)
    /// <summary>
    /// Stores an instance of the UadpDataSetReaderMessageType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class UadpDataSetReaderMessageState : DataSetReaderMessageState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public UadpDataSetReaderMessageState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.UadpDataSetReaderMessageType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJAAAAFVhZHBEYXRhU2V0UmVhZGVyTWVzc2FnZVR5cGVJbnN0YW5jZQEA" +
           "fFIBAHxSfFIAAP////8JAAAAFWCJCgIAAAAAAAwAAABHcm91cFZlcnNpb24BAH1SAC4ARH1SAAABAAZS" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAAFAAAAE5ldHdvcmtNZXNzYWdlTnVtYmVyAQB/UgAuAER/UgAA" +
           "AAX/////AQH/////AAAAABVgiQoCAAAAAAANAAAARGF0YVNldE9mZnNldAEARUQALgBERUQAAAAF////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAADgAAAERhdGFTZXRDbGFzc0lkAQCAUgAuAESAUgAAAA7/////AQH/" +
           "////AAAAABVgiQoCAAAAAAAZAAAATmV0d29ya01lc3NhZ2VDb250ZW50TWFzawEAgVIALgBEgVIAAAEA" +
           "Gj3/////AQH/////AAAAABVgiQoCAAAAAAAZAAAARGF0YVNldE1lc3NhZ2VDb250ZW50TWFzawEAglIA" +
           "LgBEglIAAAEAHj3/////AQH/////AAAAABVgiQoCAAAAAAASAAAAUHVibGlzaGluZ0ludGVydmFsAQCD" +
           "UgAuAESDUgAAAQAiAf////8BAf////8AAAAAFWCJCgIAAAAAABAAAABQcm9jZXNzaW5nT2Zmc2V0AQCE" +
           "UgAuAESEUgAAAQAiAf////8BAf////8AAAAAFWCJCgIAAAAAAA0AAABSZWNlaXZlT2Zmc2V0AQCFUgAu" +
           "AESFUgAAAQAiAf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<uint> GroupVersion
        {
            get
            {
                return m_groupVersion;
            }

            set
            {
                if (!Object.ReferenceEquals(m_groupVersion, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_groupVersion = value;
            }
        }

        /// <remarks />
        public PropertyState<ushort> NetworkMessageNumber
        {
            get
            {
                return m_networkMessageNumber;
            }

            set
            {
                if (!Object.ReferenceEquals(m_networkMessageNumber, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_networkMessageNumber = value;
            }
        }

        /// <remarks />
        public PropertyState<ushort> DataSetOffset
        {
            get
            {
                return m_dataSetOffset;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetOffset, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetOffset = value;
            }
        }

        /// <remarks />
        public PropertyState<Guid> DataSetClassId
        {
            get
            {
                return m_dataSetClassId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetClassId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetClassId = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> NetworkMessageContentMask
        {
            get
            {
                return m_networkMessageContentMask;
            }

            set
            {
                if (!Object.ReferenceEquals(m_networkMessageContentMask, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_networkMessageContentMask = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> DataSetMessageContentMask
        {
            get
            {
                return m_dataSetMessageContentMask;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetMessageContentMask, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetMessageContentMask = value;
            }
        }

        /// <remarks />
        public PropertyState<double> PublishingInterval
        {
            get
            {
                return m_publishingInterval;
            }

            set
            {
                if (!Object.ReferenceEquals(m_publishingInterval, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_publishingInterval = value;
            }
        }

        /// <remarks />
        public PropertyState<double> ProcessingOffset
        {
            get
            {
                return m_processingOffset;
            }

            set
            {
                if (!Object.ReferenceEquals(m_processingOffset, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_processingOffset = value;
            }
        }

        /// <remarks />
        public PropertyState<double> ReceiveOffset
        {
            get
            {
                return m_receiveOffset;
            }

            set
            {
                if (!Object.ReferenceEquals(m_receiveOffset, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_receiveOffset = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_groupVersion != null)
            {
                children.Add(m_groupVersion);
            }

            if (m_networkMessageNumber != null)
            {
                children.Add(m_networkMessageNumber);
            }

            if (m_dataSetOffset != null)
            {
                children.Add(m_dataSetOffset);
            }

            if (m_dataSetClassId != null)
            {
                children.Add(m_dataSetClassId);
            }

            if (m_networkMessageContentMask != null)
            {
                children.Add(m_networkMessageContentMask);
            }

            if (m_dataSetMessageContentMask != null)
            {
                children.Add(m_dataSetMessageContentMask);
            }

            if (m_publishingInterval != null)
            {
                children.Add(m_publishingInterval);
            }

            if (m_processingOffset != null)
            {
                children.Add(m_processingOffset);
            }

            if (m_receiveOffset != null)
            {
                children.Add(m_receiveOffset);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.GroupVersion:
                {
                    if (createOrReplace)
                    {
                        if (GroupVersion == null)
                        {
                            if (replacement == null)
                            {
                                GroupVersion = new PropertyState<uint>(this);
                            }
                            else
                            {
                                GroupVersion = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = GroupVersion;
                    break;
                }

                case Opc.Ua.BrowseNames.NetworkMessageNumber:
                {
                    if (createOrReplace)
                    {
                        if (NetworkMessageNumber == null)
                        {
                            if (replacement == null)
                            {
                                NetworkMessageNumber = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                NetworkMessageNumber = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = NetworkMessageNumber;
                    break;
                }

                case Opc.Ua.BrowseNames.DataSetOffset:
                {
                    if (createOrReplace)
                    {
                        if (DataSetOffset == null)
                        {
                            if (replacement == null)
                            {
                                DataSetOffset = new PropertyState<ushort>(this);
                            }
                            else
                            {
                                DataSetOffset = (PropertyState<ushort>)replacement;
                            }
                        }
                    }

                    instance = DataSetOffset;
                    break;
                }

                case Opc.Ua.BrowseNames.DataSetClassId:
                {
                    if (createOrReplace)
                    {
                        if (DataSetClassId == null)
                        {
                            if (replacement == null)
                            {
                                DataSetClassId = new PropertyState<Guid>(this);
                            }
                            else
                            {
                                DataSetClassId = (PropertyState<Guid>)replacement;
                            }
                        }
                    }

                    instance = DataSetClassId;
                    break;
                }

                case Opc.Ua.BrowseNames.NetworkMessageContentMask:
                {
                    if (createOrReplace)
                    {
                        if (NetworkMessageContentMask == null)
                        {
                            if (replacement == null)
                            {
                                NetworkMessageContentMask = new PropertyState<uint>(this);
                            }
                            else
                            {
                                NetworkMessageContentMask = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = NetworkMessageContentMask;
                    break;
                }

                case Opc.Ua.BrowseNames.DataSetMessageContentMask:
                {
                    if (createOrReplace)
                    {
                        if (DataSetMessageContentMask == null)
                        {
                            if (replacement == null)
                            {
                                DataSetMessageContentMask = new PropertyState<uint>(this);
                            }
                            else
                            {
                                DataSetMessageContentMask = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = DataSetMessageContentMask;
                    break;
                }

                case Opc.Ua.BrowseNames.PublishingInterval:
                {
                    if (createOrReplace)
                    {
                        if (PublishingInterval == null)
                        {
                            if (replacement == null)
                            {
                                PublishingInterval = new PropertyState<double>(this);
                            }
                            else
                            {
                                PublishingInterval = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = PublishingInterval;
                    break;
                }

                case Opc.Ua.BrowseNames.ProcessingOffset:
                {
                    if (createOrReplace)
                    {
                        if (ProcessingOffset == null)
                        {
                            if (replacement == null)
                            {
                                ProcessingOffset = new PropertyState<double>(this);
                            }
                            else
                            {
                                ProcessingOffset = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = ProcessingOffset;
                    break;
                }

                case Opc.Ua.BrowseNames.ReceiveOffset:
                {
                    if (createOrReplace)
                    {
                        if (ReceiveOffset == null)
                        {
                            if (replacement == null)
                            {
                                ReceiveOffset = new PropertyState<double>(this);
                            }
                            else
                            {
                                ReceiveOffset = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = ReceiveOffset;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<uint> m_groupVersion;
        private PropertyState<ushort> m_networkMessageNumber;
        private PropertyState<ushort> m_dataSetOffset;
        private PropertyState<Guid> m_dataSetClassId;
        private PropertyState<uint> m_networkMessageContentMask;
        private PropertyState<uint> m_dataSetMessageContentMask;
        private PropertyState<double> m_publishingInterval;
        private PropertyState<double> m_processingOffset;
        private PropertyState<double> m_receiveOffset;
        #endregion
    }
    #endif
    #endregion

    #region JsonWriterGroupMessageState Class
    #if (!OPCUA_EXCLUDE_JsonWriterGroupMessageState)
    /// <summary>
    /// Stores an instance of the JsonWriterGroupMessageType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class JsonWriterGroupMessageState : WriterGroupMessageState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public JsonWriterGroupMessageState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.JsonWriterGroupMessageType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIgAAAEpzb25Xcml0ZXJHcm91cE1lc3NhZ2VUeXBlSW5zdGFuY2UBAIZS" +
           "AQCGUoZSAAD/////AQAAABVgiQoCAAAAAAAZAAAATmV0d29ya01lc3NhZ2VDb250ZW50TWFzawEAh1IA" +
           "LgBEh1IAAAEAJj3/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<uint> NetworkMessageContentMask
        {
            get
            {
                return m_networkMessageContentMask;
            }

            set
            {
                if (!Object.ReferenceEquals(m_networkMessageContentMask, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_networkMessageContentMask = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_networkMessageContentMask != null)
            {
                children.Add(m_networkMessageContentMask);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.NetworkMessageContentMask:
                {
                    if (createOrReplace)
                    {
                        if (NetworkMessageContentMask == null)
                        {
                            if (replacement == null)
                            {
                                NetworkMessageContentMask = new PropertyState<uint>(this);
                            }
                            else
                            {
                                NetworkMessageContentMask = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = NetworkMessageContentMask;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<uint> m_networkMessageContentMask;
        #endregion
    }
    #endif
    #endregion

    #region JsonDataSetWriterMessageState Class
    #if (!OPCUA_EXCLUDE_JsonDataSetWriterMessageState)
    /// <summary>
    /// Stores an instance of the JsonDataSetWriterMessageType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class JsonDataSetWriterMessageState : DataSetWriterMessageState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public JsonDataSetWriterMessageState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.JsonDataSetWriterMessageType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJAAAAEpzb25EYXRhU2V0V3JpdGVyTWVzc2FnZVR5cGVJbnN0YW5jZQEA" +
           "iFIBAIhSiFIAAP////8BAAAAFWCJCgIAAAAAABkAAABEYXRhU2V0TWVzc2FnZUNvbnRlbnRNYXNrAQCJ" +
           "UgAuAESJUgAAAQAqPf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<uint> DataSetMessageContentMask
        {
            get
            {
                return m_dataSetMessageContentMask;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetMessageContentMask, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetMessageContentMask = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_dataSetMessageContentMask != null)
            {
                children.Add(m_dataSetMessageContentMask);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.DataSetMessageContentMask:
                {
                    if (createOrReplace)
                    {
                        if (DataSetMessageContentMask == null)
                        {
                            if (replacement == null)
                            {
                                DataSetMessageContentMask = new PropertyState<uint>(this);
                            }
                            else
                            {
                                DataSetMessageContentMask = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = DataSetMessageContentMask;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<uint> m_dataSetMessageContentMask;
        #endregion
    }
    #endif
    #endregion

    #region JsonDataSetReaderMessageState Class
    #if (!OPCUA_EXCLUDE_JsonDataSetReaderMessageState)
    /// <summary>
    /// Stores an instance of the JsonDataSetReaderMessageType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class JsonDataSetReaderMessageState : DataSetReaderMessageState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public JsonDataSetReaderMessageState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.JsonDataSetReaderMessageType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJAAAAEpzb25EYXRhU2V0UmVhZGVyTWVzc2FnZVR5cGVJbnN0YW5jZQEA" +
           "ilIBAIpSilIAAP////8CAAAAFWCJCgIAAAAAABkAAABOZXR3b3JrTWVzc2FnZUNvbnRlbnRNYXNrAQCL" +
           "UgAuAESLUgAAAQAmPf////8BAf////8AAAAAFWCJCgIAAAAAABkAAABEYXRhU2V0TWVzc2FnZUNvbnRl" +
           "bnRNYXNrAQCMUgAuAESMUgAAAQAqPf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<uint> NetworkMessageContentMask
        {
            get
            {
                return m_networkMessageContentMask;
            }

            set
            {
                if (!Object.ReferenceEquals(m_networkMessageContentMask, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_networkMessageContentMask = value;
            }
        }

        /// <remarks />
        public PropertyState<uint> DataSetMessageContentMask
        {
            get
            {
                return m_dataSetMessageContentMask;
            }

            set
            {
                if (!Object.ReferenceEquals(m_dataSetMessageContentMask, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_dataSetMessageContentMask = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_networkMessageContentMask != null)
            {
                children.Add(m_networkMessageContentMask);
            }

            if (m_dataSetMessageContentMask != null)
            {
                children.Add(m_dataSetMessageContentMask);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.NetworkMessageContentMask:
                {
                    if (createOrReplace)
                    {
                        if (NetworkMessageContentMask == null)
                        {
                            if (replacement == null)
                            {
                                NetworkMessageContentMask = new PropertyState<uint>(this);
                            }
                            else
                            {
                                NetworkMessageContentMask = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = NetworkMessageContentMask;
                    break;
                }

                case Opc.Ua.BrowseNames.DataSetMessageContentMask:
                {
                    if (createOrReplace)
                    {
                        if (DataSetMessageContentMask == null)
                        {
                            if (replacement == null)
                            {
                                DataSetMessageContentMask = new PropertyState<uint>(this);
                            }
                            else
                            {
                                DataSetMessageContentMask = (PropertyState<uint>)replacement;
                            }
                        }
                    }

                    instance = DataSetMessageContentMask;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<uint> m_networkMessageContentMask;
        private PropertyState<uint> m_dataSetMessageContentMask;
        #endregion
    }
    #endif
    #endregion

    #region DatagramConnectionTransportState Class
    #if (!OPCUA_EXCLUDE_DatagramConnectionTransportState)
    /// <summary>
    /// Stores an instance of the DatagramConnectionTransportType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DatagramConnectionTransportState : ConnectionTransportState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DatagramConnectionTransportState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.DatagramConnectionTransportType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJwAAAERhdGFncmFtQ29ubmVjdGlvblRyYW5zcG9ydFR5cGVJbnN0YW5j" +
           "ZQEA2DoBANg62DoAAP////8BAAAABGCACgEAAAAAABAAAABEaXNjb3ZlcnlBZGRyZXNzAQDgOgAvAQCZ" +
           "UuA6AAD/////AQAAABVgiQoCAAAAAAAQAAAATmV0d29ya0ludGVyZmFjZQEAMjsALwEAtT8yOwAAAAz/" +
           "////AQH/////AQAAABdgiQoCAAAAAAAKAAAAU2VsZWN0aW9ucwEAq0QALgBEq0QAAAAYAQAAAAEAAAAA" +
           "AAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public NetworkAddressState DiscoveryAddress
        {
            get
            {
                return m_discoveryAddress;
            }

            set
            {
                if (!Object.ReferenceEquals(m_discoveryAddress, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_discoveryAddress = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_discoveryAddress != null)
            {
                children.Add(m_discoveryAddress);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.DiscoveryAddress:
                {
                    if (createOrReplace)
                    {
                        if (DiscoveryAddress == null)
                        {
                            if (replacement == null)
                            {
                                DiscoveryAddress = new NetworkAddressState(this);
                            }
                            else
                            {
                                DiscoveryAddress = (NetworkAddressState)replacement;
                            }
                        }
                    }

                    instance = DiscoveryAddress;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private NetworkAddressState m_discoveryAddress;
        #endregion
    }
    #endif
    #endregion

    #region DatagramWriterGroupTransportState Class
    #if (!OPCUA_EXCLUDE_DatagramWriterGroupTransportState)
    /// <summary>
    /// Stores an instance of the DatagramWriterGroupTransportType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class DatagramWriterGroupTransportState : WriterGroupTransportState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public DatagramWriterGroupTransportState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.DatagramWriterGroupTransportType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (MessageRepeatCount != null)
            {
                MessageRepeatCount.Initialize(context, MessageRepeatCount_InitializationString);
            }

            if (MessageRepeatDelay != null)
            {
                MessageRepeatDelay.Initialize(context, MessageRepeatDelay_InitializationString);
            }
        }

        #region Initialization String
        private const string MessageRepeatCount_InitializationString =
           "//////////8VYIkKAgAAAAAAEgAAAE1lc3NhZ2VSZXBlYXRDb3VudAEAjlIALgBEjlIAAAAD/////wEB" +
           "/////wAAAAA=";

        private const string MessageRepeatDelay_InitializationString =
           "//////////8VYIkKAgAAAAAAEgAAAE1lc3NhZ2VSZXBlYXREZWxheQEAj1IALgBEj1IAAAEAIgH/////" +
           "AQH/////AAAAAA==";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKAAAAERhdGFncmFtV3JpdGVyR3JvdXBUcmFuc3BvcnRUeXBlSW5zdGFu" +
           "Y2UBAI1SAQCNUo1SAAD/////AgAAABVgiQoCAAAAAAASAAAATWVzc2FnZVJlcGVhdENvdW50AQCOUgAu" +
           "AESOUgAAAAP/////AQH/////AAAAABVgiQoCAAAAAAASAAAATWVzc2FnZVJlcGVhdERlbGF5AQCPUgAu" +
           "AESPUgAAAQAiAf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<byte> MessageRepeatCount
        {
            get
            {
                return m_messageRepeatCount;
            }

            set
            {
                if (!Object.ReferenceEquals(m_messageRepeatCount, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_messageRepeatCount = value;
            }
        }

        /// <remarks />
        public PropertyState<double> MessageRepeatDelay
        {
            get
            {
                return m_messageRepeatDelay;
            }

            set
            {
                if (!Object.ReferenceEquals(m_messageRepeatDelay, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_messageRepeatDelay = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_messageRepeatCount != null)
            {
                children.Add(m_messageRepeatCount);
            }

            if (m_messageRepeatDelay != null)
            {
                children.Add(m_messageRepeatDelay);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.MessageRepeatCount:
                {
                    if (createOrReplace)
                    {
                        if (MessageRepeatCount == null)
                        {
                            if (replacement == null)
                            {
                                MessageRepeatCount = new PropertyState<byte>(this);
                            }
                            else
                            {
                                MessageRepeatCount = (PropertyState<byte>)replacement;
                            }
                        }
                    }

                    instance = MessageRepeatCount;
                    break;
                }

                case Opc.Ua.BrowseNames.MessageRepeatDelay:
                {
                    if (createOrReplace)
                    {
                        if (MessageRepeatDelay == null)
                        {
                            if (replacement == null)
                            {
                                MessageRepeatDelay = new PropertyState<double>(this);
                            }
                            else
                            {
                                MessageRepeatDelay = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = MessageRepeatDelay;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<byte> m_messageRepeatCount;
        private PropertyState<double> m_messageRepeatDelay;
        #endregion
    }
    #endif
    #endregion

    #region BrokerConnectionTransportState Class
    #if (!OPCUA_EXCLUDE_BrokerConnectionTransportState)
    /// <summary>
    /// Stores an instance of the BrokerConnectionTransportType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class BrokerConnectionTransportState : ConnectionTransportState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public BrokerConnectionTransportState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.BrokerConnectionTransportType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJQAAAEJyb2tlckNvbm5lY3Rpb25UcmFuc3BvcnRUeXBlSW5zdGFuY2UB" +
           "ADM7AQAzOzM7AAD/////AgAAABVgiQoCAAAAAAALAAAAUmVzb3VyY2VVcmkBADQ7AC4ARDQ7AAAADP//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAABgAAABBdXRoZW50aWNhdGlvblByb2ZpbGVVcmkBAEo7AC4AREo7" +
           "AAAADP////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> ResourceUri
        {
            get
            {
                return m_resourceUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_resourceUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_resourceUri = value;
            }
        }

        /// <remarks />
        public PropertyState<string> AuthenticationProfileUri
        {
            get
            {
                return m_authenticationProfileUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_authenticationProfileUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_authenticationProfileUri = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_resourceUri != null)
            {
                children.Add(m_resourceUri);
            }

            if (m_authenticationProfileUri != null)
            {
                children.Add(m_authenticationProfileUri);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ResourceUri:
                {
                    if (createOrReplace)
                    {
                        if (ResourceUri == null)
                        {
                            if (replacement == null)
                            {
                                ResourceUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                ResourceUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ResourceUri;
                    break;
                }

                case Opc.Ua.BrowseNames.AuthenticationProfileUri:
                {
                    if (createOrReplace)
                    {
                        if (AuthenticationProfileUri == null)
                        {
                            if (replacement == null)
                            {
                                AuthenticationProfileUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                AuthenticationProfileUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = AuthenticationProfileUri;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_resourceUri;
        private PropertyState<string> m_authenticationProfileUri;
        #endregion
    }
    #endif
    #endregion

    #region BrokerWriterGroupTransportState Class
    #if (!OPCUA_EXCLUDE_BrokerWriterGroupTransportState)
    /// <summary>
    /// Stores an instance of the BrokerWriterGroupTransportType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class BrokerWriterGroupTransportState : WriterGroupTransportState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public BrokerWriterGroupTransportState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.BrokerWriterGroupTransportType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJgAAAEJyb2tlcldyaXRlckdyb3VwVHJhbnNwb3J0VHlwZUluc3RhbmNl" +
           "AQCQUgEAkFKQUgAA/////wQAAAAVYIkKAgAAAAAACQAAAFF1ZXVlTmFtZQEAkVIALgBEkVIAAAAM////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAACwAAAFJlc291cmNlVXJpAQCOOwAuAESOOwAAAAz/////AQH/////" +
           "AAAAABVgiQoCAAAAAAAYAAAAQXV0aGVudGljYXRpb25Qcm9maWxlVXJpAQCPOwAuAESPOwAAAAz/////" +
           "AQH/////AAAAABVgiQoCAAAAAAAaAAAAUmVxdWVzdGVkRGVsaXZlcnlHdWFyYW50ZWUBAJE7AC4ARJE7" +
           "AAABAKA6/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> QueueName
        {
            get
            {
                return m_queueName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_queueName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_queueName = value;
            }
        }

        /// <remarks />
        public PropertyState<string> ResourceUri
        {
            get
            {
                return m_resourceUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_resourceUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_resourceUri = value;
            }
        }

        /// <remarks />
        public PropertyState<string> AuthenticationProfileUri
        {
            get
            {
                return m_authenticationProfileUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_authenticationProfileUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_authenticationProfileUri = value;
            }
        }

        /// <remarks />
        public PropertyState<BrokerTransportQualityOfService> RequestedDeliveryGuarantee
        {
            get
            {
                return m_requestedDeliveryGuarantee;
            }

            set
            {
                if (!Object.ReferenceEquals(m_requestedDeliveryGuarantee, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_requestedDeliveryGuarantee = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_queueName != null)
            {
                children.Add(m_queueName);
            }

            if (m_resourceUri != null)
            {
                children.Add(m_resourceUri);
            }

            if (m_authenticationProfileUri != null)
            {
                children.Add(m_authenticationProfileUri);
            }

            if (m_requestedDeliveryGuarantee != null)
            {
                children.Add(m_requestedDeliveryGuarantee);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.QueueName:
                {
                    if (createOrReplace)
                    {
                        if (QueueName == null)
                        {
                            if (replacement == null)
                            {
                                QueueName = new PropertyState<string>(this);
                            }
                            else
                            {
                                QueueName = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = QueueName;
                    break;
                }

                case Opc.Ua.BrowseNames.ResourceUri:
                {
                    if (createOrReplace)
                    {
                        if (ResourceUri == null)
                        {
                            if (replacement == null)
                            {
                                ResourceUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                ResourceUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ResourceUri;
                    break;
                }

                case Opc.Ua.BrowseNames.AuthenticationProfileUri:
                {
                    if (createOrReplace)
                    {
                        if (AuthenticationProfileUri == null)
                        {
                            if (replacement == null)
                            {
                                AuthenticationProfileUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                AuthenticationProfileUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = AuthenticationProfileUri;
                    break;
                }

                case Opc.Ua.BrowseNames.RequestedDeliveryGuarantee:
                {
                    if (createOrReplace)
                    {
                        if (RequestedDeliveryGuarantee == null)
                        {
                            if (replacement == null)
                            {
                                RequestedDeliveryGuarantee = new PropertyState<BrokerTransportQualityOfService>(this);
                            }
                            else
                            {
                                RequestedDeliveryGuarantee = (PropertyState<BrokerTransportQualityOfService>)replacement;
                            }
                        }
                    }

                    instance = RequestedDeliveryGuarantee;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_queueName;
        private PropertyState<string> m_resourceUri;
        private PropertyState<string> m_authenticationProfileUri;
        private PropertyState<BrokerTransportQualityOfService> m_requestedDeliveryGuarantee;
        #endregion
    }
    #endif
    #endregion

    #region BrokerDataSetWriterTransportState Class
    #if (!OPCUA_EXCLUDE_BrokerDataSetWriterTransportState)
    /// <summary>
    /// Stores an instance of the BrokerDataSetWriterTransportType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class BrokerDataSetWriterTransportState : DataSetWriterTransportState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public BrokerDataSetWriterTransportState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.BrokerDataSetWriterTransportType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKAAAAEJyb2tlckRhdGFTZXRXcml0ZXJUcmFuc3BvcnRUeXBlSW5zdGFu" +
           "Y2UBAJJSAQCSUpJSAAD/////BgAAABVgiQoCAAAAAAAJAAAAUXVldWVOYW1lAQCTUgAuAESTUgAAAAz/" +
           "////AQH/////AAAAABVgiQoCAAAAAAARAAAATWV0YURhdGFRdWV1ZU5hbWUBAJRSAC4ARJRSAAAADP//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAsAAABSZXNvdXJjZVVyaQEAkjsALgBEkjsAAAAM/////wEB////" +
           "/wAAAAAVYIkKAgAAAAAAGAAAAEF1dGhlbnRpY2F0aW9uUHJvZmlsZVVyaQEAkzsALgBEkzsAAAAM////" +
           "/wEB/////wAAAAAVYIkKAgAAAAAAGgAAAFJlcXVlc3RlZERlbGl2ZXJ5R3VhcmFudGVlAQDiOwAuAETi" +
           "OwAAAQCgOv////8BAf////8AAAAAFWCJCgIAAAAAABIAAABNZXRhRGF0YVVwZGF0ZVRpbWUBAJVSAC4A" +
           "RJVSAAABACIB/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> QueueName
        {
            get
            {
                return m_queueName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_queueName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_queueName = value;
            }
        }

        /// <remarks />
        public PropertyState<string> MetaDataQueueName
        {
            get
            {
                return m_metaDataQueueName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_metaDataQueueName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_metaDataQueueName = value;
            }
        }

        /// <remarks />
        public PropertyState<string> ResourceUri
        {
            get
            {
                return m_resourceUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_resourceUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_resourceUri = value;
            }
        }

        /// <remarks />
        public PropertyState<string> AuthenticationProfileUri
        {
            get
            {
                return m_authenticationProfileUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_authenticationProfileUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_authenticationProfileUri = value;
            }
        }

        /// <remarks />
        public PropertyState<BrokerTransportQualityOfService> RequestedDeliveryGuarantee
        {
            get
            {
                return m_requestedDeliveryGuarantee;
            }

            set
            {
                if (!Object.ReferenceEquals(m_requestedDeliveryGuarantee, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_requestedDeliveryGuarantee = value;
            }
        }

        /// <remarks />
        public PropertyState<double> MetaDataUpdateTime
        {
            get
            {
                return m_metaDataUpdateTime;
            }

            set
            {
                if (!Object.ReferenceEquals(m_metaDataUpdateTime, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_metaDataUpdateTime = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_queueName != null)
            {
                children.Add(m_queueName);
            }

            if (m_metaDataQueueName != null)
            {
                children.Add(m_metaDataQueueName);
            }

            if (m_resourceUri != null)
            {
                children.Add(m_resourceUri);
            }

            if (m_authenticationProfileUri != null)
            {
                children.Add(m_authenticationProfileUri);
            }

            if (m_requestedDeliveryGuarantee != null)
            {
                children.Add(m_requestedDeliveryGuarantee);
            }

            if (m_metaDataUpdateTime != null)
            {
                children.Add(m_metaDataUpdateTime);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.QueueName:
                {
                    if (createOrReplace)
                    {
                        if (QueueName == null)
                        {
                            if (replacement == null)
                            {
                                QueueName = new PropertyState<string>(this);
                            }
                            else
                            {
                                QueueName = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = QueueName;
                    break;
                }

                case Opc.Ua.BrowseNames.MetaDataQueueName:
                {
                    if (createOrReplace)
                    {
                        if (MetaDataQueueName == null)
                        {
                            if (replacement == null)
                            {
                                MetaDataQueueName = new PropertyState<string>(this);
                            }
                            else
                            {
                                MetaDataQueueName = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = MetaDataQueueName;
                    break;
                }

                case Opc.Ua.BrowseNames.ResourceUri:
                {
                    if (createOrReplace)
                    {
                        if (ResourceUri == null)
                        {
                            if (replacement == null)
                            {
                                ResourceUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                ResourceUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ResourceUri;
                    break;
                }

                case Opc.Ua.BrowseNames.AuthenticationProfileUri:
                {
                    if (createOrReplace)
                    {
                        if (AuthenticationProfileUri == null)
                        {
                            if (replacement == null)
                            {
                                AuthenticationProfileUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                AuthenticationProfileUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = AuthenticationProfileUri;
                    break;
                }

                case Opc.Ua.BrowseNames.RequestedDeliveryGuarantee:
                {
                    if (createOrReplace)
                    {
                        if (RequestedDeliveryGuarantee == null)
                        {
                            if (replacement == null)
                            {
                                RequestedDeliveryGuarantee = new PropertyState<BrokerTransportQualityOfService>(this);
                            }
                            else
                            {
                                RequestedDeliveryGuarantee = (PropertyState<BrokerTransportQualityOfService>)replacement;
                            }
                        }
                    }

                    instance = RequestedDeliveryGuarantee;
                    break;
                }

                case Opc.Ua.BrowseNames.MetaDataUpdateTime:
                {
                    if (createOrReplace)
                    {
                        if (MetaDataUpdateTime == null)
                        {
                            if (replacement == null)
                            {
                                MetaDataUpdateTime = new PropertyState<double>(this);
                            }
                            else
                            {
                                MetaDataUpdateTime = (PropertyState<double>)replacement;
                            }
                        }
                    }

                    instance = MetaDataUpdateTime;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_queueName;
        private PropertyState<string> m_metaDataQueueName;
        private PropertyState<string> m_resourceUri;
        private PropertyState<string> m_authenticationProfileUri;
        private PropertyState<BrokerTransportQualityOfService> m_requestedDeliveryGuarantee;
        private PropertyState<double> m_metaDataUpdateTime;
        #endregion
    }
    #endif
    #endregion

    #region BrokerDataSetReaderTransportState Class
    #if (!OPCUA_EXCLUDE_BrokerDataSetReaderTransportState)
    /// <summary>
    /// Stores an instance of the BrokerDataSetReaderTransportType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class BrokerDataSetReaderTransportState : DataSetReaderTransportState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public BrokerDataSetReaderTransportState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.BrokerDataSetReaderTransportType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKAAAAEJyb2tlckRhdGFTZXRSZWFkZXJUcmFuc3BvcnRUeXBlSW5zdGFu" +
           "Y2UBAJZSAQCWUpZSAAD/////BQAAABVgiQoCAAAAAAAJAAAAUXVldWVOYW1lAQCXUgAuAESXUgAAAAz/" +
           "////AQH/////AAAAABVgiQoCAAAAAAALAAAAUmVzb3VyY2VVcmkBAOY7AC4AROY7AAAADP////8BAf//" +
           "//8AAAAAFWCJCgIAAAAAABgAAABBdXRoZW50aWNhdGlvblByb2ZpbGVVcmkBADs8AC4ARDs8AAAADP//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAABoAAABSZXF1ZXN0ZWREZWxpdmVyeUd1YXJhbnRlZQEAPDwALgBE" +
           "PDwAAAEAoDr/////AQH/////AAAAABVgiQoCAAAAAAARAAAATWV0YURhdGFRdWV1ZU5hbWUBAJhSAC4A" +
           "RJhSAAAADP////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<string> QueueName
        {
            get
            {
                return m_queueName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_queueName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_queueName = value;
            }
        }

        /// <remarks />
        public PropertyState<string> ResourceUri
        {
            get
            {
                return m_resourceUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_resourceUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_resourceUri = value;
            }
        }

        /// <remarks />
        public PropertyState<string> AuthenticationProfileUri
        {
            get
            {
                return m_authenticationProfileUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_authenticationProfileUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_authenticationProfileUri = value;
            }
        }

        /// <remarks />
        public PropertyState<BrokerTransportQualityOfService> RequestedDeliveryGuarantee
        {
            get
            {
                return m_requestedDeliveryGuarantee;
            }

            set
            {
                if (!Object.ReferenceEquals(m_requestedDeliveryGuarantee, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_requestedDeliveryGuarantee = value;
            }
        }

        /// <remarks />
        public PropertyState<string> MetaDataQueueName
        {
            get
            {
                return m_metaDataQueueName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_metaDataQueueName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_metaDataQueueName = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_queueName != null)
            {
                children.Add(m_queueName);
            }

            if (m_resourceUri != null)
            {
                children.Add(m_resourceUri);
            }

            if (m_authenticationProfileUri != null)
            {
                children.Add(m_authenticationProfileUri);
            }

            if (m_requestedDeliveryGuarantee != null)
            {
                children.Add(m_requestedDeliveryGuarantee);
            }

            if (m_metaDataQueueName != null)
            {
                children.Add(m_metaDataQueueName);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.QueueName:
                {
                    if (createOrReplace)
                    {
                        if (QueueName == null)
                        {
                            if (replacement == null)
                            {
                                QueueName = new PropertyState<string>(this);
                            }
                            else
                            {
                                QueueName = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = QueueName;
                    break;
                }

                case Opc.Ua.BrowseNames.ResourceUri:
                {
                    if (createOrReplace)
                    {
                        if (ResourceUri == null)
                        {
                            if (replacement == null)
                            {
                                ResourceUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                ResourceUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = ResourceUri;
                    break;
                }

                case Opc.Ua.BrowseNames.AuthenticationProfileUri:
                {
                    if (createOrReplace)
                    {
                        if (AuthenticationProfileUri == null)
                        {
                            if (replacement == null)
                            {
                                AuthenticationProfileUri = new PropertyState<string>(this);
                            }
                            else
                            {
                                AuthenticationProfileUri = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = AuthenticationProfileUri;
                    break;
                }

                case Opc.Ua.BrowseNames.RequestedDeliveryGuarantee:
                {
                    if (createOrReplace)
                    {
                        if (RequestedDeliveryGuarantee == null)
                        {
                            if (replacement == null)
                            {
                                RequestedDeliveryGuarantee = new PropertyState<BrokerTransportQualityOfService>(this);
                            }
                            else
                            {
                                RequestedDeliveryGuarantee = (PropertyState<BrokerTransportQualityOfService>)replacement;
                            }
                        }
                    }

                    instance = RequestedDeliveryGuarantee;
                    break;
                }

                case Opc.Ua.BrowseNames.MetaDataQueueName:
                {
                    if (createOrReplace)
                    {
                        if (MetaDataQueueName == null)
                        {
                            if (replacement == null)
                            {
                                MetaDataQueueName = new PropertyState<string>(this);
                            }
                            else
                            {
                                MetaDataQueueName = (PropertyState<string>)replacement;
                            }
                        }
                    }

                    instance = MetaDataQueueName;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<string> m_queueName;
        private PropertyState<string> m_resourceUri;
        private PropertyState<string> m_authenticationProfileUri;
        private PropertyState<BrokerTransportQualityOfService> m_requestedDeliveryGuarantee;
        private PropertyState<string> m_metaDataQueueName;
        #endregion
    }
    #endif
    #endregion

    #region NetworkAddressState Class
    #if (!OPCUA_EXCLUDE_NetworkAddressState)
    /// <summary>
    /// Stores an instance of the NetworkAddressType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class NetworkAddressState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public NetworkAddressState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.NetworkAddressType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGgAAAE5ldHdvcmtBZGRyZXNzVHlwZUluc3RhbmNlAQCZUgEAmVKZUgAA" +
           "/////wEAAAAVYIkKAgAAAAAAEAAAAE5ldHdvcmtJbnRlcmZhY2UBAJpSAC8BALU/mlIAAAAM/////wEB" +
           "/////wEAAAAXYIkKAgAAAAAACgAAAFNlbGVjdGlvbnMBAK5EAC4ARK5EAAAAGAEAAAABAAAAAAAAAAEB" +
           "/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public SelectionListState<string> NetworkInterface
        {
            get
            {
                return m_networkInterface;
            }

            set
            {
                if (!Object.ReferenceEquals(m_networkInterface, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_networkInterface = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_networkInterface != null)
            {
                children.Add(m_networkInterface);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.NetworkInterface:
                {
                    if (createOrReplace)
                    {
                        if (NetworkInterface == null)
                        {
                            if (replacement == null)
                            {
                                NetworkInterface = new SelectionListState<string>(this);
                            }
                            else
                            {
                                NetworkInterface = (SelectionListState<string>)replacement;
                            }
                        }
                    }

                    instance = NetworkInterface;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private SelectionListState<string> m_networkInterface;
        #endregion
    }
    #endif
    #endregion

    #region NetworkAddressUrlState Class
    #if (!OPCUA_EXCLUDE_NetworkAddressUrlState)
    /// <summary>
    /// Stores an instance of the NetworkAddressUrlType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class NetworkAddressUrlState : NetworkAddressState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public NetworkAddressUrlState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.NetworkAddressUrlType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHQAAAE5ldHdvcmtBZGRyZXNzVXJsVHlwZUluc3RhbmNlAQCbUgEAm1Kb" +
           "UgAA/////wIAAAAVYIkKAgAAAAAAEAAAAE5ldHdvcmtJbnRlcmZhY2UBAJxSAC8BALU/nFIAAAAM////" +
           "/wEB/////wEAAAAXYIkKAgAAAAAACgAAAFNlbGVjdGlvbnMBALFEAC4ARLFEAAAAGAEAAAABAAAAAAAA" +
           "AAEB/////wAAAAAVYIkKAgAAAAAAAwAAAFVybAEAnVIALwA/nVIAAAAM/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<string> Url
        {
            get
            {
                return m_url;
            }

            set
            {
                if (!Object.ReferenceEquals(m_url, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_url = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_url != null)
            {
                children.Add(m_url);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Url:
                {
                    if (createOrReplace)
                    {
                        if (Url == null)
                        {
                            if (replacement == null)
                            {
                                Url = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                Url = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = Url;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<string> m_url;
        #endregion
    }
    #endif
    #endregion

    #region AliasNameState Class
    #if (!OPCUA_EXCLUDE_AliasNameState)
    /// <summary>
    /// Stores an instance of the AliasNameType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AliasNameState : BaseObjectState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AliasNameState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AliasNameType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFQAAAEFsaWFzTmFtZVR5cGVJbnN0YW5jZQEAn1sBAJ9bn1sAAP////8A" +
           "AAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }
    #endif
    #endregion

    #region AliasNameCategoryState Class
    #if (!OPCUA_EXCLUDE_AliasNameCategoryState)
    /// <summary>
    /// Stores an instance of the AliasNameCategoryType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class AliasNameCategoryState : FolderState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public AliasNameCategoryState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.AliasNameCategoryType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHQAAAEFsaWFzTmFtZUNhdGVnb3J5VHlwZUluc3RhbmNlAQCgWwEAoFug" +
           "WwAA/////wEAAAAEYYIKBAAAAAAACQAAAEZpbmRBbGlhcwEAplsALwEAplumWwAAAQH/////AgAAABdg" +
           "qQoCAAAAAAAOAAAASW5wdXRBcmd1bWVudHMBAKdbAC4ARKdbAACWAgAAAAEAKgEBJQAAABYAAABBbGlh" +
           "c05hbWVTZWFyY2hQYXR0ZXJuAAz/////AAAAAAABACoBASIAAAATAAAAUmVmZXJlbmNlVHlwZUZpbHRl" +
           "cgAR/////wAAAAAAAQAoAQEAAAABAAAAAAAAAAEB/////wAAAAAXYKkKAgAAAAAADwAAAE91dHB1dEFy" +
           "Z3VtZW50cwEAqFsALgBEqFsAAJYBAAAAAQAqAQEiAAAADQAAAEFsaWFzTm9kZUxpc3QBAKxbAQAAAAEA" +
           "AAAAAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public FindAliasMethodState FindAlias
        {
            get
            {
                return m_findAliasMethod;
            }

            set
            {
                if (!Object.ReferenceEquals(m_findAliasMethod, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_findAliasMethod = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_findAliasMethod != null)
            {
                children.Add(m_findAliasMethod);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.FindAlias:
                {
                    if (createOrReplace)
                    {
                        if (FindAlias == null)
                        {
                            if (replacement == null)
                            {
                                FindAlias = new FindAliasMethodState(this);
                            }
                            else
                            {
                                FindAlias = (FindAliasMethodState)replacement;
                            }
                        }
                    }

                    instance = FindAlias;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private FindAliasMethodState m_findAliasMethod;
        #endregion
    }
    #endif
    #endregion

    #region FindAliasMethodState Class
    #if (!OPCUA_EXCLUDE_FindAliasMethodState)
    /// <summary>
    /// Stores an instance of the FindAliasMethodType Method.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class FindAliasMethodState : MethodState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public FindAliasMethodState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Constructs an instance of a node.
        /// </summary>
        /// <param name="parent">The parent.</param>
        /// <returns>The new node.</returns>
        public new static NodeState Construct(NodeState parent)
        {
            return new FindAliasMethodState(parent);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYYIKBAAAAAAAEwAAAEZpbmRBbGlhc01ldGhvZFR5cGUBAKlbAC8BAKlbqVsAAAEB////" +
           "/wIAAAAXYKkKAgAAAAAADgAAAElucHV0QXJndW1lbnRzAQCqWwAuAESqWwAAlgIAAAABACoBASUAAAAW" +
           "AAAAQWxpYXNOYW1lU2VhcmNoUGF0dGVybgAM/////wAAAAAAAQAqAQEiAAAAEwAAAFJlZmVyZW5jZVR5" +
           "cGVGaWx0ZXIAEf////8AAAAAAAEAKAEBAAAAAQAAAAAAAAABAf////8AAAAAF2CpCgIAAAAAAA8AAABP" +
           "dXRwdXRBcmd1bWVudHMBAKtbAC4ARKtbAACWAQAAAAEAKgEBIgAAAA0AAABBbGlhc05vZGVMaXN0AQCs" +
           "WwEAAAABAAAAAAAAAAABACgBAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Event Callbacks
        /// <summary>
        /// Raised when the the method is called.
        /// </summary>
        public FindAliasMethodStateMethodCallHandler OnCall;
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Invokes the method, returns the result and output argument.
        /// </summary>
        protected override ServiceResult Call(
            ISystemContext _context,
            NodeId _objectId,
            IList<object> _inputArguments,
            IList<object> _outputArguments)
        {
            if (OnCall == null)
            {
                return base.Call(_context, _objectId, _inputArguments, _outputArguments);
            }

            ServiceResult result = null;

            string aliasNameSearchPattern = (string)_inputArguments[0];
            NodeId referenceTypeFilter = (NodeId)_inputArguments[1];

            AliasNameDataType[] aliasNodeList = (AliasNameDataType[])_outputArguments[0];

            if (OnCall != null)
            {
                result = OnCall(
                    _context,
                    this,
                    _objectId,
                    aliasNameSearchPattern,
                    referenceTypeFilter,
                    ref aliasNodeList);
            }

            _outputArguments[0] = aliasNodeList;

            return result;
        }
        #endregion

        #region Private Fields
        #endregion
    }

    /// <summary>
    /// Used to receive notifications when the method is called.
    /// </summary>
    /// <exclude />
    public delegate ServiceResult FindAliasMethodStateMethodCallHandler(
        ISystemContext _context,
        MethodState _method,
        NodeId _objectId,
        string aliasNameSearchPattern,
        NodeId referenceTypeFilter,
        ref AliasNameDataType[] aliasNodeList);
    #endif
    #endregion

    #region MultiStateDictionaryEntryDiscreteBaseState Class
    #if (!OPCUA_EXCLUDE_MultiStateDictionaryEntryDiscreteBaseState)
    /// <summary>
    /// Stores an instance of the MultiStateDictionaryEntryDiscreteBaseType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class MultiStateDictionaryEntryDiscreteBaseState : MultiStateValueDiscreteState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public MultiStateDictionaryEntryDiscreteBaseState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.MultiStateDictionaryEntryDiscreteBaseType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.Number, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Any;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (ValueAsDictionaryEntries != null)
            {
                ValueAsDictionaryEntries.Initialize(context, ValueAsDictionaryEntries_InitializationString);
            }
        }

        #region Initialization String
        private const string ValueAsDictionaryEntries_InitializationString =
           "//////////8XYIkKAgAAAAAAGAAAAFZhbHVlQXNEaWN0aW9uYXJ5RW50cmllcwEAi0oALgBEi0oAAAAR" +
           "AQAAAAEAAAAAAAAAAQH/////AAAAAA==";

        private const string InitializationString =
           "//////////8VYIECAgAAAAAAMQAAAE11bHRpU3RhdGVEaWN0aW9uYXJ5RW50cnlEaXNjcmV0ZUJhc2VU" +
           "eXBlSW5zdGFuY2UBAIVKAQCFSoVKAAAAGgEB/////wQAAAAXYIkKAgAAAAAACgAAAEVudW1WYWx1ZXMB" +
           "AIhKAC4ARIhKAAABAKodAQAAAAEAAAAAAAAAAQH/////AAAAABVgiQoCAAAAAAALAAAAVmFsdWVBc1Rl" +
           "eHQBAIlKAC4ARIlKAAAAFf////8BAf////8AAAAAF2CJCgIAAAAAABUAAABFbnVtRGljdGlvbmFyeUVu" +
           "dHJpZXMBAIpKAC4ARIpKAAAAEQIAAAACAAAAAAAAAAAAAAABAf////8AAAAAF2CJCgIAAAAAABgAAABW" +
           "YWx1ZUFzRGljdGlvbmFyeUVudHJpZXMBAItKAC4ARItKAAAAEQEAAAABAAAAAAAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public PropertyState<NodeId> EnumDictionaryEntries
        {
            get
            {
                return m_enumDictionaryEntries;
            }

            set
            {
                if (!Object.ReferenceEquals(m_enumDictionaryEntries, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_enumDictionaryEntries = value;
            }
        }

        /// <remarks />
        public PropertyState<NodeId[]> ValueAsDictionaryEntries
        {
            get
            {
                return m_valueAsDictionaryEntries;
            }

            set
            {
                if (!Object.ReferenceEquals(m_valueAsDictionaryEntries, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_valueAsDictionaryEntries = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_enumDictionaryEntries != null)
            {
                children.Add(m_enumDictionaryEntries);
            }

            if (m_valueAsDictionaryEntries != null)
            {
                children.Add(m_valueAsDictionaryEntries);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.EnumDictionaryEntries:
                {
                    if (createOrReplace)
                    {
                        if (EnumDictionaryEntries == null)
                        {
                            if (replacement == null)
                            {
                                EnumDictionaryEntries = new PropertyState<NodeId>(this);
                            }
                            else
                            {
                                EnumDictionaryEntries = (PropertyState<NodeId>)replacement;
                            }
                        }
                    }

                    instance = EnumDictionaryEntries;
                    break;
                }

                case Opc.Ua.BrowseNames.ValueAsDictionaryEntries:
                {
                    if (createOrReplace)
                    {
                        if (ValueAsDictionaryEntries == null)
                        {
                            if (replacement == null)
                            {
                                ValueAsDictionaryEntries = new PropertyState<NodeId[]>(this);
                            }
                            else
                            {
                                ValueAsDictionaryEntries = (PropertyState<NodeId[]>)replacement;
                            }
                        }
                    }

                    instance = ValueAsDictionaryEntries;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private PropertyState<NodeId> m_enumDictionaryEntries;
        private PropertyState<NodeId[]> m_valueAsDictionaryEntries;
        #endregion
    }

    #region MultiStateDictionaryEntryDiscreteBaseState<T> Class
    /// <summary>
    /// A typed version of the MultiStateDictionaryEntryDiscreteBaseType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class MultiStateDictionaryEntryDiscreteBaseState<T> : MultiStateDictionaryEntryDiscreteBaseState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public MultiStateDictionaryEntryDiscreteBaseState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region MultiStateDictionaryEntryDiscreteState Class
    #if (!OPCUA_EXCLUDE_MultiStateDictionaryEntryDiscreteState)
    /// <summary>
    /// Stores an instance of the MultiStateDictionaryEntryDiscreteType VariableType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class MultiStateDictionaryEntryDiscreteState : MultiStateDictionaryEntryDiscreteBaseState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public MultiStateDictionaryEntryDiscreteState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.VariableTypes.MultiStateDictionaryEntryDiscreteType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default data type node for the instance.
        /// </summary>
        protected override NodeId GetDefaultDataTypeId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.DataTypes.Number, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        /// <summary>
        /// Returns the id of the default value rank for the instance.
        /// </summary>
        protected override int GetDefaultValueRank()
        {
            return ValueRanks.Any;
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8VYIECAgAAAAAALQAAAE11bHRpU3RhdGVEaWN0aW9uYXJ5RW50cnlEaXNjcmV0ZVR5cGVJ" +
           "bnN0YW5jZQEAjEoBAIxKjEoAAAAaAQH/////BAAAABdgiQoCAAAAAAAKAAAARW51bVZhbHVlcwEAj0oA" +
           "LgBEj0oAAAEAqh0BAAAAAQAAAAAAAAABAf////8AAAAAFWCJCgIAAAAAAAsAAABWYWx1ZUFzVGV4dAEA" +
           "kEoALgBEkEoAAAAV/////wEB/////wAAAAAXYIkKAgAAAAAAFQAAAEVudW1EaWN0aW9uYXJ5RW50cmll" +
           "cwEAkUoALgBEkUoAAAARAgAAAAIAAAAAAAAAAAAAAAEB/////wAAAAAXYIkKAgAAAAAAGAAAAFZhbHVl" +
           "QXNEaWN0aW9uYXJ5RW50cmllcwEAkkoALgBEkkoAAAARAQAAAAEAAAAAAAAAAQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        #endregion

        #region Overridden Methods
        #endregion

        #region Private Fields
        #endregion
    }

    #region MultiStateDictionaryEntryDiscreteState<T> Class
    /// <summary>
    /// A typed version of the MultiStateDictionaryEntryDiscreteType variable.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public class MultiStateDictionaryEntryDiscreteState<T> : MultiStateDictionaryEntryDiscreteState
    {
        #region Constructors
        /// <summary>
        /// Initializes the instance with its defalt attribute values.
        /// </summary>
        public MultiStateDictionaryEntryDiscreteState(NodeState parent) : base(parent)
        {
            Value = default(T);
        }

        /// <summary>
        /// Initializes the instance with the default values.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);

            Value = default(T);
            DataType = TypeInfo.GetDataTypeId(typeof(T));
            ValueRank = TypeInfo.GetValueRank(typeof(T));
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }
        #endregion

        #region Public Members
        /// <summary>
        /// The value of the variable.
        /// </summary>
        public new T Value
        {
            get
            {
                return CheckTypeBeforeCast<T>(base.Value, true);
            }

            set
            {
                base.Value = value;
            }
        }
        #endregion
    }
    #endregion
    #endif
    #endregion

    #region IIetfBaseNetworkInterfaceState Class
    #if (!OPCUA_EXCLUDE_IIetfBaseNetworkInterfaceState)
    /// <summary>
    /// Stores an instance of the IIetfBaseNetworkInterfaceType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class IIetfBaseNetworkInterfaceState : BaseInterfaceState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public IIetfBaseNetworkInterfaceState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.IIetfBaseNetworkInterfaceType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (PhysAddress != null)
            {
                PhysAddress.Initialize(context, PhysAddress_InitializationString);
            }
        }

        #region Initialization String
        private const string PhysAddress_InitializationString =
           "//////////8VYIkKAgAAAAAACwAAAFBoeXNBZGRyZXNzAQBXXgAvAD9XXgAAAAz/////AQH/////AAAA" +
           "AA==";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJQAAAElJZXRmQmFzZU5ldHdvcmtJbnRlcmZhY2VUeXBlSW5zdGFuY2UB" +
           "AFReAQBUXlReAAD/////BAAAABVgiQoCAAAAAAALAAAAQWRtaW5TdGF0dXMBAFVeAC8AP1VeAAABAJRe" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAACgAAAE9wZXJTdGF0dXMBAFZeAC8AP1ZeAAABAJZe/////wEB" +
           "/////wAAAAAVYIkKAgAAAAAACwAAAFBoeXNBZGRyZXNzAQBXXgAvAD9XXgAAAAz/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAAFAAAAU3BlZWQBAFheAC8BAFlEWF4AAAAJ/////wEB/////wEAAAAVYKkKAgAAAAAA" +
           "EAAAAEVuZ2luZWVyaW5nVW5pdHMBAF1eAC4ARF1eAAAWAQB5AwFgAAAALwAAAGh0dHA6Ly93d3cub3Bj" +
           "Zm91bmRhdGlvbi5vcmcvVUEvdW5pdHMvdW4vY2VmYWN0MDFCAAMCAAAAZW4FAAAAYml0L3MDAgAAAGVu" +
           "DgAAAGJpdCBwZXIgc2Vjb25kAQB3A/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<InterfaceAdminStatus> AdminStatus
        {
            get
            {
                return m_adminStatus;
            }

            set
            {
                if (!Object.ReferenceEquals(m_adminStatus, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_adminStatus = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<InterfaceOperStatus> OperStatus
        {
            get
            {
                return m_operStatus;
            }

            set
            {
                if (!Object.ReferenceEquals(m_operStatus, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_operStatus = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> PhysAddress
        {
            get
            {
                return m_physAddress;
            }

            set
            {
                if (!Object.ReferenceEquals(m_physAddress, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_physAddress = value;
            }
        }

        /// <remarks />
        public AnalogUnitState<ulong> Speed
        {
            get
            {
                return m_speed;
            }

            set
            {
                if (!Object.ReferenceEquals(m_speed, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_speed = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_adminStatus != null)
            {
                children.Add(m_adminStatus);
            }

            if (m_operStatus != null)
            {
                children.Add(m_operStatus);
            }

            if (m_physAddress != null)
            {
                children.Add(m_physAddress);
            }

            if (m_speed != null)
            {
                children.Add(m_speed);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.AdminStatus:
                {
                    if (createOrReplace)
                    {
                        if (AdminStatus == null)
                        {
                            if (replacement == null)
                            {
                                AdminStatus = new BaseDataVariableState<InterfaceAdminStatus>(this);
                            }
                            else
                            {
                                AdminStatus = (BaseDataVariableState<InterfaceAdminStatus>)replacement;
                            }
                        }
                    }

                    instance = AdminStatus;
                    break;
                }

                case Opc.Ua.BrowseNames.OperStatus:
                {
                    if (createOrReplace)
                    {
                        if (OperStatus == null)
                        {
                            if (replacement == null)
                            {
                                OperStatus = new BaseDataVariableState<InterfaceOperStatus>(this);
                            }
                            else
                            {
                                OperStatus = (BaseDataVariableState<InterfaceOperStatus>)replacement;
                            }
                        }
                    }

                    instance = OperStatus;
                    break;
                }

                case Opc.Ua.BrowseNames.PhysAddress:
                {
                    if (createOrReplace)
                    {
                        if (PhysAddress == null)
                        {
                            if (replacement == null)
                            {
                                PhysAddress = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                PhysAddress = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = PhysAddress;
                    break;
                }

                case Opc.Ua.BrowseNames.Speed:
                {
                    if (createOrReplace)
                    {
                        if (Speed == null)
                        {
                            if (replacement == null)
                            {
                                Speed = new AnalogUnitState<ulong>(this);
                            }
                            else
                            {
                                Speed = (AnalogUnitState<ulong>)replacement;
                            }
                        }
                    }

                    instance = Speed;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<InterfaceAdminStatus> m_adminStatus;
        private BaseDataVariableState<InterfaceOperStatus> m_operStatus;
        private BaseDataVariableState<string> m_physAddress;
        private AnalogUnitState<ulong> m_speed;
        #endregion
    }
    #endif
    #endregion

    #region IIeeeBaseEthernetPortState Class
    #if (!OPCUA_EXCLUDE_IIeeeBaseEthernetPortState)
    /// <summary>
    /// Stores an instance of the IIeeeBaseEthernetPortType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class IIeeeBaseEthernetPortState : BaseInterfaceState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public IIeeeBaseEthernetPortState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.IIeeeBaseEthernetPortType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIQAAAElJZWVlQmFzZUV0aGVybmV0UG9ydFR5cGVJbnN0YW5jZQEAXl4B" +
           "AF5eXl4AAP////8DAAAAFWCJCgIAAAAAAAUAAABTcGVlZAEAX14ALwEAWURfXgAAAAn/////AQH/////" +
           "AQAAABVgqQoCAAAAAAAQAAAARW5naW5lZXJpbmdVbml0cwEAZF4ALgBEZF4AABYBAHkDAWUAAAAvAAAA" +
           "aHR0cDovL3d3dy5vcGNmb3VuZGF0aW9uLm9yZy9VQS91bml0cy91bi9jZWZhY3QwMkUAAwIAAABlbgYA" +
           "AABNYml0L3MDAgAAAGVuEgAAAG1lZ2FiaXQgcGVyIHNlY29uZAEAdwP/////AQH/////AAAAABVgiQoC" +
           "AAAAAAAGAAAARHVwbGV4AQBlXgAvAD9lXgAAAQCSXv////8BAf////8AAAAAFWCJCgIAAAAAAA4AAABN" +
           "YXhGcmFtZUxlbmd0aAEAZl4ALwA/Zl4AAAAF/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public AnalogUnitState<ulong> Speed
        {
            get
            {
                return m_speed;
            }

            set
            {
                if (!Object.ReferenceEquals(m_speed, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_speed = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<Duplex> Duplex
        {
            get
            {
                return m_duplex;
            }

            set
            {
                if (!Object.ReferenceEquals(m_duplex, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_duplex = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ushort> MaxFrameLength
        {
            get
            {
                return m_maxFrameLength;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxFrameLength, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxFrameLength = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_speed != null)
            {
                children.Add(m_speed);
            }

            if (m_duplex != null)
            {
                children.Add(m_duplex);
            }

            if (m_maxFrameLength != null)
            {
                children.Add(m_maxFrameLength);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Speed:
                {
                    if (createOrReplace)
                    {
                        if (Speed == null)
                        {
                            if (replacement == null)
                            {
                                Speed = new AnalogUnitState<ulong>(this);
                            }
                            else
                            {
                                Speed = (AnalogUnitState<ulong>)replacement;
                            }
                        }
                    }

                    instance = Speed;
                    break;
                }

                case Opc.Ua.BrowseNames.Duplex:
                {
                    if (createOrReplace)
                    {
                        if (Duplex == null)
                        {
                            if (replacement == null)
                            {
                                Duplex = new BaseDataVariableState<Duplex>(this);
                            }
                            else
                            {
                                Duplex = (BaseDataVariableState<Duplex>)replacement;
                            }
                        }
                    }

                    instance = Duplex;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxFrameLength:
                {
                    if (createOrReplace)
                    {
                        if (MaxFrameLength == null)
                        {
                            if (replacement == null)
                            {
                                MaxFrameLength = new BaseDataVariableState<ushort>(this);
                            }
                            else
                            {
                                MaxFrameLength = (BaseDataVariableState<ushort>)replacement;
                            }
                        }
                    }

                    instance = MaxFrameLength;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private AnalogUnitState<ulong> m_speed;
        private BaseDataVariableState<Duplex> m_duplex;
        private BaseDataVariableState<ushort> m_maxFrameLength;
        #endregion
    }
    #endif
    #endregion

    #region IIeeeAutoNegotiationStatusState Class
    #if (!OPCUA_EXCLUDE_IIeeeAutoNegotiationStatusState)
    /// <summary>
    /// Stores an instance of the IIeeeAutoNegotiationStatusType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class IIeeeAutoNegotiationStatusState : BaseInterfaceState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public IIeeeAutoNegotiationStatusState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.IIeeeAutoNegotiationStatusType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJgAAAElJZWVlQXV0b05lZ290aWF0aW9uU3RhdHVzVHlwZUluc3RhbmNl" +
           "AQCpXgEAqV6pXgAA/////wEAAAAVYIkKAgAAAAAAEQAAAE5lZ290aWF0aW9uU3RhdHVzAQCqXgAvAD+q" +
           "XgAAAQCYXv////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<NegotiationStatus> NegotiationStatus
        {
            get
            {
                return m_negotiationStatus;
            }

            set
            {
                if (!Object.ReferenceEquals(m_negotiationStatus, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_negotiationStatus = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_negotiationStatus != null)
            {
                children.Add(m_negotiationStatus);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.NegotiationStatus:
                {
                    if (createOrReplace)
                    {
                        if (NegotiationStatus == null)
                        {
                            if (replacement == null)
                            {
                                NegotiationStatus = new BaseDataVariableState<NegotiationStatus>(this);
                            }
                            else
                            {
                                NegotiationStatus = (BaseDataVariableState<NegotiationStatus>)replacement;
                            }
                        }
                    }

                    instance = NegotiationStatus;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<NegotiationStatus> m_negotiationStatus;
        #endregion
    }
    #endif
    #endregion

    #region IBaseEthernetCapabilitiesState Class
    #if (!OPCUA_EXCLUDE_IBaseEthernetCapabilitiesState)
    /// <summary>
    /// Stores an instance of the IBaseEthernetCapabilitiesType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class IBaseEthernetCapabilitiesState : BaseInterfaceState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public IBaseEthernetCapabilitiesState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.IBaseEthernetCapabilitiesType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJQAAAElCYXNlRXRoZXJuZXRDYXBhYmlsaXRpZXNUeXBlSW5zdGFuY2UB" +
           "AGdeAQBnXmdeAAD/////AQAAABVgiQoCAAAAAAAOAAAAVmxhblRhZ0NhcGFibGUBAGheAC8AP2heAAAA" +
           "Af////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<bool> VlanTagCapable
        {
            get
            {
                return m_vlanTagCapable;
            }

            set
            {
                if (!Object.ReferenceEquals(m_vlanTagCapable, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_vlanTagCapable = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_vlanTagCapable != null)
            {
                children.Add(m_vlanTagCapable);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.VlanTagCapable:
                {
                    if (createOrReplace)
                    {
                        if (VlanTagCapable == null)
                        {
                            if (replacement == null)
                            {
                                VlanTagCapable = new BaseDataVariableState<bool>(this);
                            }
                            else
                            {
                                VlanTagCapable = (BaseDataVariableState<bool>)replacement;
                            }
                        }
                    }

                    instance = VlanTagCapable;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<bool> m_vlanTagCapable;
        #endregion
    }
    #endif
    #endregion

    #region ISrClassState Class
    #if (!OPCUA_EXCLUDE_ISrClassState)
    /// <summary>
    /// Stores an instance of the ISrClassType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class ISrClassState : BaseInterfaceState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public ISrClassState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.ISrClassType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAFAAAAElTckNsYXNzVHlwZUluc3RhbmNlAQBpXgEAaV5pXgAA/////wMA" +
           "AAAVYIkKAgAAAAAAAgAAAElkAQBqXgAvAD9qXgAAAAP/////AQH/////AAAAABVgiQoCAAAAAAAIAAAA" +
           "UHJpb3JpdHkBAGteAC8AP2teAAAAA/////8BAf////8AAAAAFWCJCgIAAAAAAAMAAABWaWQBAGxeAC8A" +
           "P2xeAAAABf////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<byte> Id
        {
            get
            {
                return m_id;
            }

            set
            {
                if (!Object.ReferenceEquals(m_id, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_id = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<byte> Priority
        {
            get
            {
                return m_priority;
            }

            set
            {
                if (!Object.ReferenceEquals(m_priority, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_priority = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<ushort> Vid
        {
            get
            {
                return m_vid;
            }

            set
            {
                if (!Object.ReferenceEquals(m_vid, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_vid = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_id != null)
            {
                children.Add(m_id);
            }

            if (m_priority != null)
            {
                children.Add(m_priority);
            }

            if (m_vid != null)
            {
                children.Add(m_vid);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.Id:
                {
                    if (createOrReplace)
                    {
                        if (Id == null)
                        {
                            if (replacement == null)
                            {
                                Id = new BaseDataVariableState<byte>(this);
                            }
                            else
                            {
                                Id = (BaseDataVariableState<byte>)replacement;
                            }
                        }
                    }

                    instance = Id;
                    break;
                }

                case Opc.Ua.BrowseNames.Priority:
                {
                    if (createOrReplace)
                    {
                        if (Priority == null)
                        {
                            if (replacement == null)
                            {
                                Priority = new BaseDataVariableState<byte>(this);
                            }
                            else
                            {
                                Priority = (BaseDataVariableState<byte>)replacement;
                            }
                        }
                    }

                    instance = Priority;
                    break;
                }

                case Opc.Ua.BrowseNames.Vid:
                {
                    if (createOrReplace)
                    {
                        if (Vid == null)
                        {
                            if (replacement == null)
                            {
                                Vid = new BaseDataVariableState<ushort>(this);
                            }
                            else
                            {
                                Vid = (BaseDataVariableState<ushort>)replacement;
                            }
                        }
                    }

                    instance = Vid;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<byte> m_id;
        private BaseDataVariableState<byte> m_priority;
        private BaseDataVariableState<ushort> m_vid;
        #endregion
    }
    #endif
    #endregion

    #region IIeeeBaseTsnStreamState Class
    #if (!OPCUA_EXCLUDE_IIeeeBaseTsnStreamState)
    /// <summary>
    /// Stores an instance of the IIeeeBaseTsnStreamType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class IIeeeBaseTsnStreamState : BaseInterfaceState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public IIeeeBaseTsnStreamState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.IIeeeBaseTsnStreamType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (AccumulatedLatency != null)
            {
                AccumulatedLatency.Initialize(context, AccumulatedLatency_InitializationString);
            }

            if (SrClassId != null)
            {
                SrClassId.Initialize(context, SrClassId_InitializationString);
            }
        }

        #region Initialization String
        private const string AccumulatedLatency_InitializationString =
           "//////////8VYIkKAgAAAAAAEgAAAEFjY3VtdWxhdGVkTGF0ZW5jeQEAcV4ALwA/cV4AAAAH/////wEB" +
           "/////wAAAAA=";

        private const string SrClassId_InitializationString =
           "//////////8VYIkKAgAAAAAACQAAAFNyQ2xhc3NJZAEAcl4ALwA/cl4AAAAD/////wEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHgAAAElJZWVlQmFzZVRzblN0cmVhbVR5cGVJbnN0YW5jZQEAbV4BAG1e" +
           "bV4AAP////8FAAAAF2CJCgIAAAAAAAgAAABTdHJlYW1JZAEAbl4ALwA/bl4AAAADAQAAAAEAAAAIAAAA" +
           "AQH/////AAAAABVgiQoCAAAAAAAKAAAAU3RyZWFtTmFtZQEAb14ALwA/b14AAAAM/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAABQAAAFN0YXRlAQBwXgAvAD9wXgAAAQCcXv////8BAf////8AAAAAFWCJCgIAAAAA" +
           "ABIAAABBY2N1bXVsYXRlZExhdGVuY3kBAHFeAC8AP3FeAAAAB/////8BAf////8AAAAAFWCJCgIAAAAA" +
           "AAkAAABTckNsYXNzSWQBAHJeAC8AP3JeAAAAA/////8BAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<byte[]> StreamId
        {
            get
            {
                return m_streamId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_streamId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_streamId = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> StreamName
        {
            get
            {
                return m_streamName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_streamName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_streamName = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<TsnStreamState> State
        {
            get
            {
                return m_state;
            }

            set
            {
                if (!Object.ReferenceEquals(m_state, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_state = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> AccumulatedLatency
        {
            get
            {
                return m_accumulatedLatency;
            }

            set
            {
                if (!Object.ReferenceEquals(m_accumulatedLatency, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_accumulatedLatency = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<byte> SrClassId
        {
            get
            {
                return m_srClassId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_srClassId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_srClassId = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_streamId != null)
            {
                children.Add(m_streamId);
            }

            if (m_streamName != null)
            {
                children.Add(m_streamName);
            }

            if (m_state != null)
            {
                children.Add(m_state);
            }

            if (m_accumulatedLatency != null)
            {
                children.Add(m_accumulatedLatency);
            }

            if (m_srClassId != null)
            {
                children.Add(m_srClassId);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.StreamId:
                {
                    if (createOrReplace)
                    {
                        if (StreamId == null)
                        {
                            if (replacement == null)
                            {
                                StreamId = new BaseDataVariableState<byte[]>(this);
                            }
                            else
                            {
                                StreamId = (BaseDataVariableState<byte[]>)replacement;
                            }
                        }
                    }

                    instance = StreamId;
                    break;
                }

                case Opc.Ua.BrowseNames.StreamName:
                {
                    if (createOrReplace)
                    {
                        if (StreamName == null)
                        {
                            if (replacement == null)
                            {
                                StreamName = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                StreamName = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = StreamName;
                    break;
                }

                case Opc.Ua.BrowseNames.State:
                {
                    if (createOrReplace)
                    {
                        if (State == null)
                        {
                            if (replacement == null)
                            {
                                State = new BaseDataVariableState<TsnStreamState>(this);
                            }
                            else
                            {
                                State = (BaseDataVariableState<TsnStreamState>)replacement;
                            }
                        }
                    }

                    instance = State;
                    break;
                }

                case Opc.Ua.BrowseNames.AccumulatedLatency:
                {
                    if (createOrReplace)
                    {
                        if (AccumulatedLatency == null)
                        {
                            if (replacement == null)
                            {
                                AccumulatedLatency = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                AccumulatedLatency = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = AccumulatedLatency;
                    break;
                }

                case Opc.Ua.BrowseNames.SrClassId:
                {
                    if (createOrReplace)
                    {
                        if (SrClassId == null)
                        {
                            if (replacement == null)
                            {
                                SrClassId = new BaseDataVariableState<byte>(this);
                            }
                            else
                            {
                                SrClassId = (BaseDataVariableState<byte>)replacement;
                            }
                        }
                    }

                    instance = SrClassId;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<byte[]> m_streamId;
        private BaseDataVariableState<string> m_streamName;
        private BaseDataVariableState<TsnStreamState> m_state;
        private BaseDataVariableState<uint> m_accumulatedLatency;
        private BaseDataVariableState<byte> m_srClassId;
        #endregion
    }
    #endif
    #endregion

    #region IIeeeBaseTsnTrafficSpecificationState Class
    #if (!OPCUA_EXCLUDE_IIeeeBaseTsnTrafficSpecificationState)
    /// <summary>
    /// Stores an instance of the IIeeeBaseTsnTrafficSpecificationType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class IIeeeBaseTsnTrafficSpecificationState : BaseInterfaceState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public IIeeeBaseTsnTrafficSpecificationState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.IIeeeBaseTsnTrafficSpecificationType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAALAAAAElJZWVlQmFzZVRzblRyYWZmaWNTcGVjaWZpY2F0aW9uVHlwZUlu" +
           "c3RhbmNlAQBzXgEAc15zXgAA/////wMAAAAVYIkKAgAAAAAAEQAAAE1heEludGVydmFsRnJhbWVzAQB0" +
           "XgAvAD90XgAAAAX/////AQH/////AAAAABVgiQoCAAAAAAAMAAAATWF4RnJhbWVTaXplAQB1XgAvAD91" +
           "XgAAAAf/////AQH/////AAAAABVgiQoCAAAAAAAIAAAASW50ZXJ2YWwBAHZeAC8AP3ZeAAABACte////" +
           "/wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<ushort> MaxIntervalFrames
        {
            get
            {
                return m_maxIntervalFrames;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxIntervalFrames, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxIntervalFrames = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> MaxFrameSize
        {
            get
            {
                return m_maxFrameSize;
            }

            set
            {
                if (!Object.ReferenceEquals(m_maxFrameSize, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_maxFrameSize = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<UnsignedRationalNumber> Interval
        {
            get
            {
                return m_interval;
            }

            set
            {
                if (!Object.ReferenceEquals(m_interval, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_interval = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_maxIntervalFrames != null)
            {
                children.Add(m_maxIntervalFrames);
            }

            if (m_maxFrameSize != null)
            {
                children.Add(m_maxFrameSize);
            }

            if (m_interval != null)
            {
                children.Add(m_interval);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.MaxIntervalFrames:
                {
                    if (createOrReplace)
                    {
                        if (MaxIntervalFrames == null)
                        {
                            if (replacement == null)
                            {
                                MaxIntervalFrames = new BaseDataVariableState<ushort>(this);
                            }
                            else
                            {
                                MaxIntervalFrames = (BaseDataVariableState<ushort>)replacement;
                            }
                        }
                    }

                    instance = MaxIntervalFrames;
                    break;
                }

                case Opc.Ua.BrowseNames.MaxFrameSize:
                {
                    if (createOrReplace)
                    {
                        if (MaxFrameSize == null)
                        {
                            if (replacement == null)
                            {
                                MaxFrameSize = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                MaxFrameSize = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = MaxFrameSize;
                    break;
                }

                case Opc.Ua.BrowseNames.Interval:
                {
                    if (createOrReplace)
                    {
                        if (Interval == null)
                        {
                            if (replacement == null)
                            {
                                Interval = new BaseDataVariableState<UnsignedRationalNumber>(this);
                            }
                            else
                            {
                                Interval = (BaseDataVariableState<UnsignedRationalNumber>)replacement;
                            }
                        }
                    }

                    instance = Interval;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<ushort> m_maxIntervalFrames;
        private BaseDataVariableState<uint> m_maxFrameSize;
        private BaseDataVariableState<UnsignedRationalNumber> m_interval;
        #endregion
    }
    #endif
    #endregion

    #region IIeeeBaseTsnStatusStreamState Class
    #if (!OPCUA_EXCLUDE_IIeeeBaseTsnStatusStreamState)
    /// <summary>
    /// Stores an instance of the IIeeeBaseTsnStatusStreamType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class IIeeeBaseTsnStatusStreamState : BaseInterfaceState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public IIeeeBaseTsnStatusStreamState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.IIeeeBaseTsnStatusStreamType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (TalkerStatus != null)
            {
                TalkerStatus.Initialize(context, TalkerStatus_InitializationString);
            }

            if (ListenerStatus != null)
            {
                ListenerStatus.Initialize(context, ListenerStatus_InitializationString);
            }
        }

        #region Initialization String
        private const string TalkerStatus_InitializationString =
           "//////////8VYIkKAgAAAAAADAAAAFRhbGtlclN0YXR1cwEAeF4ALwA/eF4AAAEAnl7/////AQH/////" +
           "AAAAAA==";

        private const string ListenerStatus_InitializationString =
           "//////////8VYIkKAgAAAAAADgAAAExpc3RlbmVyU3RhdHVzAQB5XgAvAD95XgAAAQCgXv////8BAf//" +
           "//8AAAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAJAAAAElJZWVlQmFzZVRzblN0YXR1c1N0cmVhbVR5cGVJbnN0YW5jZQEA" +
           "d14BAHded14AAP////8EAAAAFWCJCgIAAAAAAAwAAABUYWxrZXJTdGF0dXMBAHheAC8AP3heAAABAJ5e" +
           "/////wEB/////wAAAAAVYIkKAgAAAAAADgAAAExpc3RlbmVyU3RhdHVzAQB5XgAvAD95XgAAAQCgXv//" +
           "//8BAf////8AAAAAFWCJCgIAAAAAAAsAAABGYWlsdXJlQ29kZQEAel4ALwA/el4AAAEAml7/////AQH/" +
           "////AAAAABdgiQoCAAAAAAAXAAAARmFpbHVyZVN5c3RlbUlkZW50aWZpZXIBAHteAC8AP3teAAAAAwIA" +
           "AAACAAAAAAAAAAgAAAABAf////8AAAAA";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<TsnTalkerStatus> TalkerStatus
        {
            get
            {
                return m_talkerStatus;
            }

            set
            {
                if (!Object.ReferenceEquals(m_talkerStatus, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_talkerStatus = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<TsnListenerStatus> ListenerStatus
        {
            get
            {
                return m_listenerStatus;
            }

            set
            {
                if (!Object.ReferenceEquals(m_listenerStatus, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_listenerStatus = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<TsnFailureCode> FailureCode
        {
            get
            {
                return m_failureCode;
            }

            set
            {
                if (!Object.ReferenceEquals(m_failureCode, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_failureCode = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<byte> FailureSystemIdentifier
        {
            get
            {
                return m_failureSystemIdentifier;
            }

            set
            {
                if (!Object.ReferenceEquals(m_failureSystemIdentifier, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_failureSystemIdentifier = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_talkerStatus != null)
            {
                children.Add(m_talkerStatus);
            }

            if (m_listenerStatus != null)
            {
                children.Add(m_listenerStatus);
            }

            if (m_failureCode != null)
            {
                children.Add(m_failureCode);
            }

            if (m_failureSystemIdentifier != null)
            {
                children.Add(m_failureSystemIdentifier);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.TalkerStatus:
                {
                    if (createOrReplace)
                    {
                        if (TalkerStatus == null)
                        {
                            if (replacement == null)
                            {
                                TalkerStatus = new BaseDataVariableState<TsnTalkerStatus>(this);
                            }
                            else
                            {
                                TalkerStatus = (BaseDataVariableState<TsnTalkerStatus>)replacement;
                            }
                        }
                    }

                    instance = TalkerStatus;
                    break;
                }

                case Opc.Ua.BrowseNames.ListenerStatus:
                {
                    if (createOrReplace)
                    {
                        if (ListenerStatus == null)
                        {
                            if (replacement == null)
                            {
                                ListenerStatus = new BaseDataVariableState<TsnListenerStatus>(this);
                            }
                            else
                            {
                                ListenerStatus = (BaseDataVariableState<TsnListenerStatus>)replacement;
                            }
                        }
                    }

                    instance = ListenerStatus;
                    break;
                }

                case Opc.Ua.BrowseNames.FailureCode:
                {
                    if (createOrReplace)
                    {
                        if (FailureCode == null)
                        {
                            if (replacement == null)
                            {
                                FailureCode = new BaseDataVariableState<TsnFailureCode>(this);
                            }
                            else
                            {
                                FailureCode = (BaseDataVariableState<TsnFailureCode>)replacement;
                            }
                        }
                    }

                    instance = FailureCode;
                    break;
                }

                case Opc.Ua.BrowseNames.FailureSystemIdentifier:
                {
                    if (createOrReplace)
                    {
                        if (FailureSystemIdentifier == null)
                        {
                            if (replacement == null)
                            {
                                FailureSystemIdentifier = new BaseDataVariableState<byte>(this);
                            }
                            else
                            {
                                FailureSystemIdentifier = (BaseDataVariableState<byte>)replacement;
                            }
                        }
                    }

                    instance = FailureSystemIdentifier;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<TsnTalkerStatus> m_talkerStatus;
        private BaseDataVariableState<TsnListenerStatus> m_listenerStatus;
        private BaseDataVariableState<TsnFailureCode> m_failureCode;
        private BaseDataVariableState<byte> m_failureSystemIdentifier;
        #endregion
    }
    #endif
    #endregion

    #region IIeeeTsnInterfaceConfigurationState Class
    #if (!OPCUA_EXCLUDE_IIeeeTsnInterfaceConfigurationState)
    /// <summary>
    /// Stores an instance of the IIeeeTsnInterfaceConfigurationType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class IIeeeTsnInterfaceConfigurationState : BaseInterfaceState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public IIeeeTsnInterfaceConfigurationState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.IIeeeTsnInterfaceConfigurationType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (InterfaceName != null)
            {
                InterfaceName.Initialize(context, InterfaceName_InitializationString);
            }
        }

        #region Initialization String
        private const string InterfaceName_InitializationString =
           "//////////8VYIkKAgAAAAAADQAAAEludGVyZmFjZU5hbWUBAH5eAC8AP35eAAAADP////8BAf////8A" +
           "AAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAKgAAAElJZWVlVHNuSW50ZXJmYWNlQ29uZmlndXJhdGlvblR5cGVJbnN0" +
           "YW5jZQEAfF4BAHxefF4AAP////8CAAAAFWCJCgIAAAAAAAoAAABNYWNBZGRyZXNzAQB9XgAvAD99XgAA" +
           "AAz/////AQH/////AAAAABVgiQoCAAAAAAANAAAASW50ZXJmYWNlTmFtZQEAfl4ALwA/fl4AAAAM////" +
           "/wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<string> MacAddress
        {
            get
            {
                return m_macAddress;
            }

            set
            {
                if (!Object.ReferenceEquals(m_macAddress, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_macAddress = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> InterfaceName
        {
            get
            {
                return m_interfaceName;
            }

            set
            {
                if (!Object.ReferenceEquals(m_interfaceName, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_interfaceName = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_macAddress != null)
            {
                children.Add(m_macAddress);
            }

            if (m_interfaceName != null)
            {
                children.Add(m_interfaceName);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.MacAddress:
                {
                    if (createOrReplace)
                    {
                        if (MacAddress == null)
                        {
                            if (replacement == null)
                            {
                                MacAddress = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                MacAddress = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = MacAddress;
                    break;
                }

                case Opc.Ua.BrowseNames.InterfaceName:
                {
                    if (createOrReplace)
                    {
                        if (InterfaceName == null)
                        {
                            if (replacement == null)
                            {
                                InterfaceName = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                InterfaceName = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = InterfaceName;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<string> m_macAddress;
        private BaseDataVariableState<string> m_interfaceName;
        #endregion
    }
    #endif
    #endregion

    #region IIeeeTsnInterfaceConfigurationTalkerState Class
    #if (!OPCUA_EXCLUDE_IIeeeTsnInterfaceConfigurationTalkerState)
    /// <summary>
    /// Stores an instance of the IIeeeTsnInterfaceConfigurationTalkerType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class IIeeeTsnInterfaceConfigurationTalkerState : IIeeeTsnInterfaceConfigurationState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public IIeeeTsnInterfaceConfigurationTalkerState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.IIeeeTsnInterfaceConfigurationTalkerType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (TimeAwareOffset != null)
            {
                TimeAwareOffset.Initialize(context, TimeAwareOffset_InitializationString);
            }
        }

        #region Initialization String
        private const string TimeAwareOffset_InitializationString =
           "//////////8VYIkKAgAAAAAADwAAAFRpbWVBd2FyZU9mZnNldAEAgl4ALwA/gl4AAAAH/////wEB////" +
           "/wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAMAAAAElJZWVlVHNuSW50ZXJmYWNlQ29uZmlndXJhdGlvblRhbGtlclR5" +
           "cGVJbnN0YW5jZQEAf14BAH9ef14AAP////8CAAAAFWCJCgIAAAAAAAoAAABNYWNBZGRyZXNzAQCAXgAv" +
           "AD+AXgAAAAz/////AQH/////AAAAABVgiQoCAAAAAAAPAAAAVGltZUF3YXJlT2Zmc2V0AQCCXgAvAD+C" +
           "XgAAAAf/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<uint> TimeAwareOffset
        {
            get
            {
                return m_timeAwareOffset;
            }

            set
            {
                if (!Object.ReferenceEquals(m_timeAwareOffset, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_timeAwareOffset = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_timeAwareOffset != null)
            {
                children.Add(m_timeAwareOffset);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.TimeAwareOffset:
                {
                    if (createOrReplace)
                    {
                        if (TimeAwareOffset == null)
                        {
                            if (replacement == null)
                            {
                                TimeAwareOffset = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                TimeAwareOffset = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = TimeAwareOffset;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<uint> m_timeAwareOffset;
        #endregion
    }
    #endif
    #endregion

    #region IIeeeTsnInterfaceConfigurationListenerState Class
    #if (!OPCUA_EXCLUDE_IIeeeTsnInterfaceConfigurationListenerState)
    /// <summary>
    /// Stores an instance of the IIeeeTsnInterfaceConfigurationListenerType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class IIeeeTsnInterfaceConfigurationListenerState : IIeeeTsnInterfaceConfigurationState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public IIeeeTsnInterfaceConfigurationListenerState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.IIeeeTsnInterfaceConfigurationListenerType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (ReceiveOffset != null)
            {
                ReceiveOffset.Initialize(context, ReceiveOffset_InitializationString);
            }
        }

        #region Initialization String
        private const string ReceiveOffset_InitializationString =
           "//////////8VYIkKAgAAAAAADQAAAFJlY2VpdmVPZmZzZXQBAIZeAC8AP4ZeAAAAB/////8BAf////8A" +
           "AAAA";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAMgAAAElJZWVlVHNuSW50ZXJmYWNlQ29uZmlndXJhdGlvbkxpc3RlbmVy" +
           "VHlwZUluc3RhbmNlAQCDXgEAg16DXgAA/////wIAAAAVYIkKAgAAAAAACgAAAE1hY0FkZHJlc3MBAIRe" +
           "AC8AP4ReAAAADP////8BAf////8AAAAAFWCJCgIAAAAAAA0AAABSZWNlaXZlT2Zmc2V0AQCGXgAvAD+G" +
           "XgAAAAf/////AQH/////AAAAAA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<uint> ReceiveOffset
        {
            get
            {
                return m_receiveOffset;
            }

            set
            {
                if (!Object.ReferenceEquals(m_receiveOffset, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_receiveOffset = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_receiveOffset != null)
            {
                children.Add(m_receiveOffset);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.ReceiveOffset:
                {
                    if (createOrReplace)
                    {
                        if (ReceiveOffset == null)
                        {
                            if (replacement == null)
                            {
                                ReceiveOffset = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                ReceiveOffset = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = ReceiveOffset;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<uint> m_receiveOffset;
        #endregion
    }
    #endif
    #endregion

    #region IIeeeTsnMacAddressState Class
    #if (!OPCUA_EXCLUDE_IIeeeTsnMacAddressState)
    /// <summary>
    /// Stores an instance of the IIeeeTsnMacAddressType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class IIeeeTsnMacAddressState : BaseInterfaceState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public IIeeeTsnMacAddressState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.IIeeeTsnMacAddressType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (SourceAddress != null)
            {
                SourceAddress.Initialize(context, SourceAddress_InitializationString);
            }
        }

        #region Initialization String
        private const string SourceAddress_InitializationString =
           "//////////8XYIkKAgAAAAAADQAAAFNvdXJjZUFkZHJlc3MBAIleAC8AP4leAAAAAwEAAAABAAAABgAA" +
           "AAEB/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAHgAAAElJZWVlVHNuTWFjQWRkcmVzc1R5cGVJbnN0YW5jZQEAh14BAIde" +
           "h14AAP////8CAAAAF2CJCgIAAAAAABIAAABEZXN0aW5hdGlvbkFkZHJlc3MBAIheAC8AP4heAAAAAwEA" +
           "AAABAAAABgAAAAEB/////wAAAAAXYIkKAgAAAAAADQAAAFNvdXJjZUFkZHJlc3MBAIleAC8AP4leAAAA" +
           "AwEAAAABAAAABgAAAAEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<byte[]> DestinationAddress
        {
            get
            {
                return m_destinationAddress;
            }

            set
            {
                if (!Object.ReferenceEquals(m_destinationAddress, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_destinationAddress = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<byte[]> SourceAddress
        {
            get
            {
                return m_sourceAddress;
            }

            set
            {
                if (!Object.ReferenceEquals(m_sourceAddress, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_sourceAddress = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_destinationAddress != null)
            {
                children.Add(m_destinationAddress);
            }

            if (m_sourceAddress != null)
            {
                children.Add(m_sourceAddress);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.DestinationAddress:
                {
                    if (createOrReplace)
                    {
                        if (DestinationAddress == null)
                        {
                            if (replacement == null)
                            {
                                DestinationAddress = new BaseDataVariableState<byte[]>(this);
                            }
                            else
                            {
                                DestinationAddress = (BaseDataVariableState<byte[]>)replacement;
                            }
                        }
                    }

                    instance = DestinationAddress;
                    break;
                }

                case Opc.Ua.BrowseNames.SourceAddress:
                {
                    if (createOrReplace)
                    {
                        if (SourceAddress == null)
                        {
                            if (replacement == null)
                            {
                                SourceAddress = new BaseDataVariableState<byte[]>(this);
                            }
                            else
                            {
                                SourceAddress = (BaseDataVariableState<byte[]>)replacement;
                            }
                        }
                    }

                    instance = SourceAddress;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<byte[]> m_destinationAddress;
        private BaseDataVariableState<byte[]> m_sourceAddress;
        #endregion
    }
    #endif
    #endregion

    #region IIeeeTsnVlanTagState Class
    #if (!OPCUA_EXCLUDE_IIeeeTsnVlanTagState)
    /// <summary>
    /// Stores an instance of the IIeeeTsnVlanTagType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class IIeeeTsnVlanTagState : BaseInterfaceState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public IIeeeTsnVlanTagState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.IIeeeTsnVlanTagType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);
        }

        #region Initialization String
        private const string InitializationString =
           "//////////8EYIACAQAAAAAAGwAAAElJZWVlVHNuVmxhblRhZ1R5cGVJbnN0YW5jZQEAil4BAIpeil4A" +
           "AP////8CAAAAFWCJCgIAAAAAAAYAAABWbGFuSWQBAIteAC8AP4teAAAABf////8BAf////8AAAAAFWCJ" +
           "CgIAAAAAABEAAABQcmlvcml0eUNvZGVQb2ludAEAjF4ALwA/jF4AAAAD/////wEB/////wAAAAA=";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<ushort> VlanId
        {
            get
            {
                return m_vlanId;
            }

            set
            {
                if (!Object.ReferenceEquals(m_vlanId, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_vlanId = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<byte> PriorityCodePoint
        {
            get
            {
                return m_priorityCodePoint;
            }

            set
            {
                if (!Object.ReferenceEquals(m_priorityCodePoint, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_priorityCodePoint = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_vlanId != null)
            {
                children.Add(m_vlanId);
            }

            if (m_priorityCodePoint != null)
            {
                children.Add(m_priorityCodePoint);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.VlanId:
                {
                    if (createOrReplace)
                    {
                        if (VlanId == null)
                        {
                            if (replacement == null)
                            {
                                VlanId = new BaseDataVariableState<ushort>(this);
                            }
                            else
                            {
                                VlanId = (BaseDataVariableState<ushort>)replacement;
                            }
                        }
                    }

                    instance = VlanId;
                    break;
                }

                case Opc.Ua.BrowseNames.PriorityCodePoint:
                {
                    if (createOrReplace)
                    {
                        if (PriorityCodePoint == null)
                        {
                            if (replacement == null)
                            {
                                PriorityCodePoint = new BaseDataVariableState<byte>(this);
                            }
                            else
                            {
                                PriorityCodePoint = (BaseDataVariableState<byte>)replacement;
                            }
                        }
                    }

                    instance = PriorityCodePoint;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<ushort> m_vlanId;
        private BaseDataVariableState<byte> m_priorityCodePoint;
        #endregion
    }
    #endif
    #endregion

    #region IPriorityMappingEntryState Class
    #if (!OPCUA_EXCLUDE_IPriorityMappingEntryState)
    /// <summary>
    /// Stores an instance of the IPriorityMappingEntryType ObjectType.
    /// </summary>
    /// <exclude />
    [System.CodeDom.Compiler.GeneratedCodeAttribute("Opc.Ua.ModelCompiler", "1.0.0.0")]
    public partial class IPriorityMappingEntryState : BaseInterfaceState
    {
        #region Constructors
        /// <summary>
        /// Initializes the type with its default attribute values.
        /// </summary>
        public IPriorityMappingEntryState(NodeState parent) : base(parent)
        {
        }

        /// <summary>
        /// Returns the id of the default type definition node for the instance.
        /// </summary>
        protected override NodeId GetDefaultTypeDefinitionId(NamespaceTable namespaceUris)
        {
            return Opc.Ua.NodeId.Create(Opc.Ua.ObjectTypes.IPriorityMappingEntryType, Opc.Ua.Namespaces.OpcUa, namespaceUris);
        }

        #if (!OPCUA_EXCLUDE_InitializationStrings)
        /// <summary>
        /// Initializes the instance.
        /// </summary>
        protected override void Initialize(ISystemContext context)
        {
            base.Initialize(context);
            Initialize(context, InitializationString);
            InitializeOptionalChildren(context);
        }

        /// <summary>
        /// Initializes the instance with a node.
        /// </summary>
        protected override void Initialize(ISystemContext context, NodeState source)
        {
            InitializeOptionalChildren(context);
            base.Initialize(context, source);
        }

        /// <summary>
        /// Initializes the any option children defined for the instance.
        /// </summary>
        protected override void InitializeOptionalChildren(ISystemContext context)
        {
            base.InitializeOptionalChildren(context);

            if (PriorityValue_PCP != null)
            {
                PriorityValue_PCP.Initialize(context, PriorityValue_PCP_InitializationString);
            }

            if (PriorityValue_DSCP != null)
            {
                PriorityValue_DSCP.Initialize(context, PriorityValue_DSCP_InitializationString);
            }
        }

        #region Initialization String
        private const string PriorityValue_PCP_InitializationString =
           "//////////8VYIkKAgAAAAAAEQAAAFByaW9yaXR5VmFsdWVfUENQAQCQXgAvAD+QXgAAAAP/////AQH/" +
           "////AAAAAA==";

        private const string PriorityValue_DSCP_InitializationString =
           "//////////8VYIkKAgAAAAAAEgAAAFByaW9yaXR5VmFsdWVfRFNDUAEAkV4ALwA/kV4AAAAH/////wEB" +
           "/////wAAAAA=";

        private const string InitializationString =
           "//////////8EYIACAQAAAAAAIQAAAElQcmlvcml0eU1hcHBpbmdFbnRyeVR5cGVJbnN0YW5jZQEAjV4B" +
           "AI1ejV4AAP////8EAAAAFWCJCgIAAAAAAAoAAABNYXBwaW5nVXJpAQCOXgAvAD+OXgAAAAz/////AQH/" +
           "////AAAAABVgiQoCAAAAAAANAAAAUHJpb3JpdHlMYWJlbAEAj14ALwA/j14AAAAM/////wEB/////wAA" +
           "AAAVYIkKAgAAAAAAEQAAAFByaW9yaXR5VmFsdWVfUENQAQCQXgAvAD+QXgAAAAP/////AQH/////AAAA" +
           "ABVgiQoCAAAAAAASAAAAUHJpb3JpdHlWYWx1ZV9EU0NQAQCRXgAvAD+RXgAAAAf/////AQH/////AAAA" +
           "AA==";
        #endregion
        #endif
        #endregion

        #region Public Properties
        /// <remarks />
        public BaseDataVariableState<string> MappingUri
        {
            get
            {
                return m_mappingUri;
            }

            set
            {
                if (!Object.ReferenceEquals(m_mappingUri, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_mappingUri = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<string> PriorityLabel
        {
            get
            {
                return m_priorityLabel;
            }

            set
            {
                if (!Object.ReferenceEquals(m_priorityLabel, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_priorityLabel = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<byte> PriorityValue_PCP
        {
            get
            {
                return m_priorityValue_PCP;
            }

            set
            {
                if (!Object.ReferenceEquals(m_priorityValue_PCP, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_priorityValue_PCP = value;
            }
        }

        /// <remarks />
        public BaseDataVariableState<uint> PriorityValue_DSCP
        {
            get
            {
                return m_priorityValue_DSCP;
            }

            set
            {
                if (!Object.ReferenceEquals(m_priorityValue_DSCP, value))
                {
                    ChangeMasks |= NodeStateChangeMasks.Children;
                }

                m_priorityValue_DSCP = value;
            }
        }
        #endregion

        #region Overridden Methods
        /// <summary>
        /// Populates a list with the children that belong to the node.
        /// </summary>
        /// <param name="context">The context for the system being accessed.</param>
        /// <param name="children">The list of children to populate.</param>
        public override void GetChildren(
            ISystemContext context,
            IList<BaseInstanceState> children)
        {
            if (m_mappingUri != null)
            {
                children.Add(m_mappingUri);
            }

            if (m_priorityLabel != null)
            {
                children.Add(m_priorityLabel);
            }

            if (m_priorityValue_PCP != null)
            {
                children.Add(m_priorityValue_PCP);
            }

            if (m_priorityValue_DSCP != null)
            {
                children.Add(m_priorityValue_DSCP);
            }

            base.GetChildren(context, children);
        }

        /// <summary>
        /// Finds the child with the specified browse name.
        /// </summary>
        protected override BaseInstanceState FindChild(
            ISystemContext context,
            QualifiedName browseName,
            bool createOrReplace,
            BaseInstanceState replacement)
        {
            if (QualifiedName.IsNull(browseName))
            {
                return null;
            }

            BaseInstanceState instance = null;

            switch (browseName.Name)
            {
                case Opc.Ua.BrowseNames.MappingUri:
                {
                    if (createOrReplace)
                    {
                        if (MappingUri == null)
                        {
                            if (replacement == null)
                            {
                                MappingUri = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                MappingUri = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = MappingUri;
                    break;
                }

                case Opc.Ua.BrowseNames.PriorityLabel:
                {
                    if (createOrReplace)
                    {
                        if (PriorityLabel == null)
                        {
                            if (replacement == null)
                            {
                                PriorityLabel = new BaseDataVariableState<string>(this);
                            }
                            else
                            {
                                PriorityLabel = (BaseDataVariableState<string>)replacement;
                            }
                        }
                    }

                    instance = PriorityLabel;
                    break;
                }

                case Opc.Ua.BrowseNames.PriorityValue_PCP:
                {
                    if (createOrReplace)
                    {
                        if (PriorityValue_PCP == null)
                        {
                            if (replacement == null)
                            {
                                PriorityValue_PCP = new BaseDataVariableState<byte>(this);
                            }
                            else
                            {
                                PriorityValue_PCP = (BaseDataVariableState<byte>)replacement;
                            }
                        }
                    }

                    instance = PriorityValue_PCP;
                    break;
                }

                case Opc.Ua.BrowseNames.PriorityValue_DSCP:
                {
                    if (createOrReplace)
                    {
                        if (PriorityValue_DSCP == null)
                        {
                            if (replacement == null)
                            {
                                PriorityValue_DSCP = new BaseDataVariableState<uint>(this);
                            }
                            else
                            {
                                PriorityValue_DSCP = (BaseDataVariableState<uint>)replacement;
                            }
                        }
                    }

                    instance = PriorityValue_DSCP;
                    break;
                }
            }

            if (instance != null)
            {
                return instance;
            }

            return base.FindChild(context, browseName, createOrReplace, replacement);
        }
        #endregion

        #region Private Fields
        private BaseDataVariableState<string> m_mappingUri;
        private BaseDataVariableState<string> m_priorityLabel;
        private BaseDataVariableState<byte> m_priorityValue_PCP;
        private BaseDataVariableState<uint> m_priorityValue_DSCP;
        #endregion
    }
    #endif
    #endregion
}
