@Override
 public boolean equals(Object obj) {
   if (this == obj) return true;
   if (obj == null) return false;
   if (getClass() != obj.getClass()) return false;
   OpenSecureChannelRequest other = (OpenSecureChannelRequest) obj;
   if (RequestHeader == null) {
     if (other.RequestHeader != null) return false;
   } else if (!RequestHeader.equals(other.RequestHeader)) return false;
   if (ClientProtocolVersion == null) {
     if (other.ClientProtocolVersion != null) return false;
   } else if (!ClientProtocolVersion.equals(other.ClientProtocolVersion)) return false;
   if (RequestType == null) {
     if (other.RequestType != null) return false;
   } else if (!RequestType.equals(other.RequestType)) return false;
   if (SecurityMode == null) {
     if (other.SecurityMode != null) return false;
   } else if (!SecurityMode.equals(other.SecurityMode)) return false;
   if (ClientNonce == null) {
     if (other.ClientNonce != null) return false;
   } else if (!ClientNonce.equals(other.ClientNonce)) return false;
   if (RequestedLifetime == null) {
     if (other.RequestedLifetime != null) return false;
   } else if (!RequestedLifetime.equals(other.RequestedLifetime)) return false;
   return true;
 }
 @Override
 public boolean equals(Object obj) {
   if (this == obj) return true;
   if (obj == null) return false;
   if (getClass() != obj.getClass()) return false;
   ModifySubscriptionRequest other = (ModifySubscriptionRequest) obj;
   if (RequestHeader == null) {
     if (other.RequestHeader != null) return false;
   } else if (!RequestHeader.equals(other.RequestHeader)) return false;
   if (SubscriptionId == null) {
     if (other.SubscriptionId != null) return false;
   } else if (!SubscriptionId.equals(other.SubscriptionId)) return false;
   if (RequestedPublishingInterval == null) {
     if (other.RequestedPublishingInterval != null) return false;
   } else if (!RequestedPublishingInterval.equals(other.RequestedPublishingInterval)) return false;
   if (RequestedLifetimeCount == null) {
     if (other.RequestedLifetimeCount != null) return false;
   } else if (!RequestedLifetimeCount.equals(other.RequestedLifetimeCount)) return false;
   if (RequestedMaxKeepAliveCount == null) {
     if (other.RequestedMaxKeepAliveCount != null) return false;
   } else if (!RequestedMaxKeepAliveCount.equals(other.RequestedMaxKeepAliveCount)) return false;
   if (MaxNotificationsPerPublish == null) {
     if (other.MaxNotificationsPerPublish != null) return false;
   } else if (!MaxNotificationsPerPublish.equals(other.MaxNotificationsPerPublish)) return false;
   if (Priority == null) {
     if (other.Priority != null) return false;
   } else if (!Priority.equals(other.Priority)) return false;
   return true;
 }
 @Override
 public boolean equals(Object obj) {
   if (this == obj) return true;
   if (obj == null) return false;
   if (getClass() != obj.getClass()) return false;
   CreateSessionResponse other = (CreateSessionResponse) obj;
   if (ResponseHeader == null) {
     if (other.ResponseHeader != null) return false;
   } else if (!ResponseHeader.equals(other.ResponseHeader)) return false;
   if (SessionId == null) {
     if (other.SessionId != null) return false;
   } else if (!SessionId.equals(other.SessionId)) return false;
   if (AuthenticationToken == null) {
     if (other.AuthenticationToken != null) return false;
   } else if (!AuthenticationToken.equals(other.AuthenticationToken)) return false;
   if (RevisedSessionTimeout == null) {
     if (other.RevisedSessionTimeout != null) return false;
   } else if (!RevisedSessionTimeout.equals(other.RevisedSessionTimeout)) return false;
   if (ServerNonce == null) {
     if (other.ServerNonce != null) return false;
   } else if (!ServerNonce.equals(other.ServerNonce)) return false;
   if (ServerCertificate == null) {
     if (other.ServerCertificate != null) return false;
   } else if (!ServerCertificate.equals(other.ServerCertificate)) return false;
   if (ServerEndpoints == null) {
     if (other.ServerEndpoints != null) return false;
   } else if (!Arrays.equals(ServerEndpoints, other.ServerEndpoints)) return false;
   if (ServerSoftwareCertificates == null) {
     if (other.ServerSoftwareCertificates != null) return false;
   } else if (!Arrays.equals(ServerSoftwareCertificates, other.ServerSoftwareCertificates))
     return false;
   if (ServerSignature == null) {
     if (other.ServerSignature != null) return false;
   } else if (!ServerSignature.equals(other.ServerSignature)) return false;
   if (MaxRequestMessageSize == null) {
     if (other.MaxRequestMessageSize != null) return false;
   } else if (!MaxRequestMessageSize.equals(other.MaxRequestMessageSize)) return false;
   return true;
 }