context: 
  //
  // This file was generated by the BinaryNotes compiler.
  // See http://bnotes.sourceforge.net 
  // Any modifications to this file will be lost upon recompilation of the source ASN.1. 
  //
  
  using System;
  using org.bn.attributes;
  using org.bn.attributes.constraints;
  using org.bn.coders;
  using org.bn.types;
  using org.bn;
  
  namespace MMS_ASN1_Model
  {
  
  
      [ASN1PreparedElement]
      [ASN1Sequence(Name = "Initiate_ResponsePDU", IsSet = false)]
      public class Initiate_ResponsePDU : IASN1PreparedElement
      {
  
          private Integer32 localDetailCalled_;
  
          private bool localDetailCalled_present = false;
  
          [ASN1Element(Name = "localDetailCalled", IsOptional = true, HasTag = true, Tag = 0, HasDefaultValue = false)]
  
          public Integer32 LocalDetailCalled
          {
              get { return localDetailCalled_; }
              set { localDetailCalled_ = value; localDetailCalled_present = true; }
          }
  
  
  
          private Integer16 negotiatedMaxServOutstandingCalling_;
  
          [ASN1Element(Name = "negotiatedMaxServOutstandingCalling", IsOptional = false, HasTag = true, Tag = 1, HasDefaultValue = false)]
  
          public Integer16 NegotiatedMaxServOutstandingCalling
          {
              get { return negotiatedMaxServOutstandingCalling_; }
              set { negotiatedMaxServOutstandingCalling_ = value; }
          }
  
  
  
          private Integer16 negotiatedMaxServOutstandingCalled_;
  
          [ASN1Element(Name = "negotiatedMaxServOutstandingCalled", IsOptional = false, HasTag = true, Tag = 2, HasDefaultValue = false)]
  
          public Integer16 NegotiatedMaxServOutstandingCalled
          {
              get { return negotiatedMaxServOutstandingCalled_; }
              set { negotiatedMaxServOutstandingCalled_ = value; }
          }
  
  
  
          private Integer8 negotiatedDataStructureNestingLevel_;
  
          private bool negotiatedDataStructureNestingLevel_present = false;
  
          [ASN1Element(Name = "negotiatedDataStructureNestingLevel", IsOptional = true, HasTag = true, Tag = 3, HasDefaultValue = false)]
  
          public Integer8 NegotiatedDataStructureNestingLevel
          {
              get { return negotiatedDataStructureNestingLevel_; }
              set { negotiatedDataStructureNestingLevel_ = value; negotiatedDataStructureNestingLevel_present = true; }
          }
  
  
  
          private InitResponseDetailSequenceType initResponseDetail_;
  
          [ASN1PreparedElement]
          [ASN1Sequence(Name = "initResponseDetail", IsSet = false)]
          public class InitResponseDetailSequenceType : IASN1PreparedElement
          {
  
              private Integer16 negotiatedVersionNumber_;
  
              [ASN1Element(Name = "negotiatedVersionNumber", IsOptional = false, HasTag = true, Tag = 0, HasDefaultValue = false)]
  
              public Integer16 NegotiatedVersionNumber
              {
                  get { return negotiatedVersionNumber_; }
                  set { negotiatedVersionNumber_ = value; }
              }
  
  
  
              private ParameterSupportOptions negotiatedParameterCBB_;
  
              [ASN1Element(Name = "negotiatedParameterCBB", IsOptional = false, HasTag = true, Tag = 1, HasDefaultValue = false)]
  
              public ParameterSupportOptions NegotiatedParameterCBB
              {
                  get { return negotiatedParameterCBB_; }
                  set { negotiatedParameterCBB_ = value; }
              }
  
  
  
              private ServiceSupportOptions servicesSupportedCalled_;
  
              [ASN1Element(Name = "servicesSupportedCalled", IsOptional = false, HasTag = true, Tag = 2, HasDefaultValue = false)]
  
              public ServiceSupportOptions ServicesSupportedCalled
              {
                  get { return servicesSupportedCalled_; }
                  set { servicesSupportedCalled_ = value; }
              }
  
  
  
              private AdditionalSupportOptions additionalSupportedCalled_;
  
              [ASN1Element(Name = "additionalSupportedCalled", IsOptional = true, HasTag = true, Tag = 3, HasDefaultValue = false)]
  
              public AdditionalSupportOptions AdditionalSupportedCalled
              {
                  get { return additionalSupportedCalled_; }
                  set { additionalSupportedCalled_ = value; }
              }
  
  
  
              private AdditionalCBBOptions additionalCbbSupportedCalled_;
  
              [ASN1Element(Name = "additionalCbbSupportedCalled", IsOptional = true, HasTag = true, Tag = 4, HasDefaultValue = false)]
  
              public AdditionalCBBOptions AdditionalCbbSupportedCalled
              {
                  get { return additionalCbbSupportedCalled_; }
                  set { additionalCbbSupportedCalled_ = value; }
              }
  
  
  
              private string privilegeClassIdentityCalled_;
              [ASN1String(Name = "",
                  StringType = UniversalTags.VisibleString, IsUCS = false)]
              [ASN1Element(Name = "privilegeClassIdentityCalled", IsOptional = true, HasTag = true, Tag = 5, HasDefaultValue = false)]
  
              public string PrivilegeClassIdentityCalled
              {
                  get { return privilegeClassIdentityCalled_; }
                  set { privilegeClassIdentityCalled_ = value; }
              }
  
  
  
  
              public void initWithDefaults()
              {
  
              }
  
              private static IASN1PreparedElementData preparedData = CoderFactory.getInstance().newPreparedElementData(typeof(InitResponseDetailSequenceType));
              public IASN1PreparedElementData PreparedData
              {
                  get { return preparedData; }
              }
  
  
          }
  
          [ASN1Element(Name = "initResponseDetail", IsOptional = false, HasTag = true, Tag = 4, HasDefaultValue = false)]
  
          public InitResponseDetailSequenceType InitResponseDetail
          {
              get { return initResponseDetail_; }
              set { initResponseDetail_ = value; }
          }
  
  
  
          public bool isLocalDetailCalledPresent()
          {
              return this.localDetailCalled_present == true;
          }
  
          public bool isNegotiatedDataStructureNestingLevelPresent()
          {
              return this.negotiatedDataStructureNestingLevel_present == true;
          }
  
  
          public void initWithDefaults()
          {
  
          }
  
  
          private static IASN1PreparedElementData preparedData = CoderFactory.getInstance().newPreparedElementData(typeof(Initiate_ResponsePDU));
          public IASN1PreparedElementData PreparedData
          {
  
gt:             get { return preparedData; }