/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM ../../../dist/idl/nsIMimeStreamConverter.idl
 */

#ifndef __gen_nsIMimeStreamConverter_h__
#define __gen_nsIMimeStreamConverter_h__


#ifndef __gen_nsISupports_h__
#include "nsISupports.h"
#endif

#ifndef __gen_nsrootidl_h__
#include "nsrootidl.h"
#endif

#ifndef __gen_nsIMimeHeaders_h__
#include "nsIMimeHeaders.h"
#endif

#ifndef __gen_nsIMsgIdentity_h__
#include "nsIMsgIdentity.h"
#endif

#ifndef __gen_nsIMsgHdr_h__
#include "nsIMsgHdr.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif
class nsIURI; /* forward declaration */

typedef int32_t  nsMimeOutputType;


/* starting interface:    nsMimeOutput */
#define NS_MIMEOUTPUT_IID_STR "fdc2956e-d558-43fb-bfdd-fb9511229aa5"

#define NS_MIMEOUTPUT_IID \
  {0xfdc2956e, 0xd558, 0x43fb, \
    { 0xbf, 0xdd, 0xfb, 0x95, 0x11, 0x22, 0x9a, 0xa5 }}

class NS_NO_VTABLE nsMimeOutput {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_MIMEOUTPUT_IID)

  enum {
    nsMimeMessageSplitDisplay = 0,
    nsMimeMessageHeaderDisplay = 1,
    nsMimeMessageBodyDisplay = 2,
    nsMimeMessageQuoting = 3,
    nsMimeMessageBodyQuoting = 4,
    nsMimeMessageRaw = 5,
    nsMimeMessageDraftOrTemplate = 6,
    nsMimeMessageEditorTemplate = 7,
    nsMimeMessagePrintOutput = 9,
    nsMimeMessageSaveAs = 10,
    nsMimeMessageSource = 11,
    nsMimeMessageFilterSniffer = 12,
    nsMimeMessageDecrypt = 13,
    nsMimeMessageAttach = 14,
    nsMimeUnknown = 15
  };

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsMimeOutput, NS_MIMEOUTPUT_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSMIMEOUTPUT \

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSMIMEOUTPUT(_to) \

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSMIMEOUTPUT(_to) \

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class _MYCLASS_ : public nsMimeOutput
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSMIMEOUTPUT

  _MYCLASS_();

private:
  ~_MYCLASS_();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(_MYCLASS_, nsMimeOutput)

_MYCLASS_::_MYCLASS_()
{
  /* member initializers and constructor code */
}

_MYCLASS_::~_MYCLASS_()
{
  /* destructor code */
}

/* End of implementation class template. */
#endif


/* starting interface:    nsIMimeStreamConverterListener */
#define NS_IMIMESTREAMCONVERTERLISTENER_IID_STR "fa81caa0-6261-11d3-8311-00805f2a0107"

#define NS_IMIMESTREAMCONVERTERLISTENER_IID \
  {0xfa81caa0, 0x6261, 0x11d3, \
    { 0x83, 0x11, 0x00, 0x80, 0x5f, 0x2a, 0x01, 0x07 }}

class NS_NO_VTABLE nsIMimeStreamConverterListener : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMIMESTREAMCONVERTERLISTENER_IID)

  /* void onHeadersReady (in nsIMimeHeaders headers); */
  NS_IMETHOD OnHeadersReady(nsIMimeHeaders *headers) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMimeStreamConverterListener, NS_IMIMESTREAMCONVERTERLISTENER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMIMESTREAMCONVERTERLISTENER \
  NS_IMETHOD OnHeadersReady(nsIMimeHeaders *headers) MOZ_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMIMESTREAMCONVERTERLISTENER(_to) \
  NS_IMETHOD OnHeadersReady(nsIMimeHeaders *headers) MOZ_OVERRIDE { return _to OnHeadersReady(headers); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMIMESTREAMCONVERTERLISTENER(_to) \
  NS_IMETHOD OnHeadersReady(nsIMimeHeaders *headers) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->OnHeadersReady(headers); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsMimeStreamConverterListener : public nsIMimeStreamConverterListener
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMIMESTREAMCONVERTERLISTENER

  nsMimeStreamConverterListener();

private:
  ~nsMimeStreamConverterListener();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsMimeStreamConverterListener, nsIMimeStreamConverterListener)

nsMimeStreamConverterListener::nsMimeStreamConverterListener()
{
  /* member initializers and constructor code */
}

nsMimeStreamConverterListener::~nsMimeStreamConverterListener()
{
  /* destructor code */
}

/* void onHeadersReady (in nsIMimeHeaders headers); */
NS_IMETHODIMP nsMimeStreamConverterListener::OnHeadersReady(nsIMimeHeaders *headers)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


/* starting interface:    nsIMimeStreamConverter */
#define NS_IMIMESTREAMCONVERTER_IID_STR "d894c833-29c5-495b-880c-9a9f847bfdc9"

#define NS_IMIMESTREAMCONVERTER_IID \
  {0xd894c833, 0x29c5, 0x495b, \
    { 0x88, 0x0c, 0x9a, 0x9f, 0x84, 0x7b, 0xfd, 0xc9 }}

class NS_NO_VTABLE nsIMimeStreamConverter : public nsISupports {
 public: 

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IMIMESTREAMCONVERTER_IID)

  /* void SetMimeOutputType (in nsMimeOutputType aType); */
  NS_IMETHOD SetMimeOutputType(nsMimeOutputType aType) = 0;

  /* void GetMimeOutputType (out nsMimeOutputType aOutFormat); */
  NS_IMETHOD GetMimeOutputType(nsMimeOutputType *aOutFormat) = 0;

  /* void SetStreamURI (in nsIURI aURI); */
  NS_IMETHOD SetStreamURI(nsIURI *aURI) = 0;

  /* void SetMimeHeadersListener (in nsIMimeStreamConverterListener listener, in nsMimeOutputType aType); */
  NS_IMETHOD SetMimeHeadersListener(nsIMimeStreamConverterListener *listener, nsMimeOutputType aType) = 0;

  /* attribute boolean forwardInline; */
  NS_IMETHOD GetForwardInline(bool *aForwardInline) = 0;
  NS_IMETHOD SetForwardInline(bool aForwardInline) = 0;

  /* attribute boolean forwardInlineFilter; */
  NS_IMETHOD GetForwardInlineFilter(bool *aForwardInlineFilter) = 0;
  NS_IMETHOD SetForwardInlineFilter(bool aForwardInlineFilter) = 0;

  /* attribute AString forwardToAddress; */
  NS_IMETHOD GetForwardToAddress(nsAString & aForwardToAddress) = 0;
  NS_IMETHOD SetForwardToAddress(const nsAString & aForwardToAddress) = 0;

  /* attribute boolean overrideComposeFormat; */
  NS_IMETHOD GetOverrideComposeFormat(bool *aOverrideComposeFormat) = 0;
  NS_IMETHOD SetOverrideComposeFormat(bool aOverrideComposeFormat) = 0;

  /* attribute nsIMsgIdentity identity; */
  NS_IMETHOD GetIdentity(nsIMsgIdentity * *aIdentity) = 0;
  NS_IMETHOD SetIdentity(nsIMsgIdentity *aIdentity) = 0;

  /* attribute string originalMsgURI; */
  NS_IMETHOD GetOriginalMsgURI(char * *aOriginalMsgURI) = 0;
  NS_IMETHOD SetOriginalMsgURI(const char * aOriginalMsgURI) = 0;

  /* attribute nsIMsgDBHdr origMsgHdr; */
  NS_IMETHOD GetOrigMsgHdr(nsIMsgDBHdr * *aOrigMsgHdr) = 0;
  NS_IMETHOD SetOrigMsgHdr(nsIMsgDBHdr *aOrigMsgHdr) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIMimeStreamConverter, NS_IMIMESTREAMCONVERTER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIMIMESTREAMCONVERTER \
  NS_IMETHOD SetMimeOutputType(nsMimeOutputType aType) MOZ_OVERRIDE; \
  NS_IMETHOD GetMimeOutputType(nsMimeOutputType *aOutFormat) MOZ_OVERRIDE; \
  NS_IMETHOD SetStreamURI(nsIURI *aURI) MOZ_OVERRIDE; \
  NS_IMETHOD SetMimeHeadersListener(nsIMimeStreamConverterListener *listener, nsMimeOutputType aType) MOZ_OVERRIDE; \
  NS_IMETHOD GetForwardInline(bool *aForwardInline) MOZ_OVERRIDE; \
  NS_IMETHOD SetForwardInline(bool aForwardInline) MOZ_OVERRIDE; \
  NS_IMETHOD GetForwardInlineFilter(bool *aForwardInlineFilter) MOZ_OVERRIDE; \
  NS_IMETHOD SetForwardInlineFilter(bool aForwardInlineFilter) MOZ_OVERRIDE; \
  NS_IMETHOD GetForwardToAddress(nsAString & aForwardToAddress) MOZ_OVERRIDE; \
  NS_IMETHOD SetForwardToAddress(const nsAString & aForwardToAddress) MOZ_OVERRIDE; \
  NS_IMETHOD GetOverrideComposeFormat(bool *aOverrideComposeFormat) MOZ_OVERRIDE; \
  NS_IMETHOD SetOverrideComposeFormat(bool aOverrideComposeFormat) MOZ_OVERRIDE; \
  NS_IMETHOD GetIdentity(nsIMsgIdentity * *aIdentity) MOZ_OVERRIDE; \
  NS_IMETHOD SetIdentity(nsIMsgIdentity *aIdentity) MOZ_OVERRIDE; \
  NS_IMETHOD GetOriginalMsgURI(char * *aOriginalMsgURI) MOZ_OVERRIDE; \
  NS_IMETHOD SetOriginalMsgURI(const char * aOriginalMsgURI) MOZ_OVERRIDE; \
  NS_IMETHOD GetOrigMsgHdr(nsIMsgDBHdr * *aOrigMsgHdr) MOZ_OVERRIDE; \
  NS_IMETHOD SetOrigMsgHdr(nsIMsgDBHdr *aOrigMsgHdr) MOZ_OVERRIDE; 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIMIMESTREAMCONVERTER(_to) \
  NS_IMETHOD SetMimeOutputType(nsMimeOutputType aType) MOZ_OVERRIDE { return _to SetMimeOutputType(aType); } \
  NS_IMETHOD GetMimeOutputType(nsMimeOutputType *aOutFormat) MOZ_OVERRIDE { return _to GetMimeOutputType(aOutFormat); } \
  NS_IMETHOD SetStreamURI(nsIURI *aURI) MOZ_OVERRIDE { return _to SetStreamURI(aURI); } \
  NS_IMETHOD SetMimeHeadersListener(nsIMimeStreamConverterListener *listener, nsMimeOutputType aType) MOZ_OVERRIDE { return _to SetMimeHeadersListener(listener, aType); } \
  NS_IMETHOD GetForwardInline(bool *aForwardInline) MOZ_OVERRIDE { return _to GetForwardInline(aForwardInline); } \
  NS_IMETHOD SetForwardInline(bool aForwardInline) MOZ_OVERRIDE { return _to SetForwardInline(aForwardInline); } \
  NS_IMETHOD GetForwardInlineFilter(bool *aForwardInlineFilter) MOZ_OVERRIDE { return _to GetForwardInlineFilter(aForwardInlineFilter); } \
  NS_IMETHOD SetForwardInlineFilter(bool aForwardInlineFilter) MOZ_OVERRIDE { return _to SetForwardInlineFilter(aForwardInlineFilter); } \
  NS_IMETHOD GetForwardToAddress(nsAString & aForwardToAddress) MOZ_OVERRIDE { return _to GetForwardToAddress(aForwardToAddress); } \
  NS_IMETHOD SetForwardToAddress(const nsAString & aForwardToAddress) MOZ_OVERRIDE { return _to SetForwardToAddress(aForwardToAddress); } \
  NS_IMETHOD GetOverrideComposeFormat(bool *aOverrideComposeFormat) MOZ_OVERRIDE { return _to GetOverrideComposeFormat(aOverrideComposeFormat); } \
  NS_IMETHOD SetOverrideComposeFormat(bool aOverrideComposeFormat) MOZ_OVERRIDE { return _to SetOverrideComposeFormat(aOverrideComposeFormat); } \
  NS_IMETHOD GetIdentity(nsIMsgIdentity * *aIdentity) MOZ_OVERRIDE { return _to GetIdentity(aIdentity); } \
  NS_IMETHOD SetIdentity(nsIMsgIdentity *aIdentity) MOZ_OVERRIDE { return _to SetIdentity(aIdentity); } \
  NS_IMETHOD GetOriginalMsgURI(char * *aOriginalMsgURI) MOZ_OVERRIDE { return _to GetOriginalMsgURI(aOriginalMsgURI); } \
  NS_IMETHOD SetOriginalMsgURI(const char * aOriginalMsgURI) MOZ_OVERRIDE { return _to SetOriginalMsgURI(aOriginalMsgURI); } \
  NS_IMETHOD GetOrigMsgHdr(nsIMsgDBHdr * *aOrigMsgHdr) MOZ_OVERRIDE { return _to GetOrigMsgHdr(aOrigMsgHdr); } \
  NS_IMETHOD SetOrigMsgHdr(nsIMsgDBHdr *aOrigMsgHdr) MOZ_OVERRIDE { return _to SetOrigMsgHdr(aOrigMsgHdr); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIMIMESTREAMCONVERTER(_to) \
  NS_IMETHOD SetMimeOutputType(nsMimeOutputType aType) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMimeOutputType(aType); } \
  NS_IMETHOD GetMimeOutputType(nsMimeOutputType *aOutFormat) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMimeOutputType(aOutFormat); } \
  NS_IMETHOD SetStreamURI(nsIURI *aURI) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetStreamURI(aURI); } \
  NS_IMETHOD SetMimeHeadersListener(nsIMimeStreamConverterListener *listener, nsMimeOutputType aType) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetMimeHeadersListener(listener, aType); } \
  NS_IMETHOD GetForwardInline(bool *aForwardInline) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetForwardInline(aForwardInline); } \
  NS_IMETHOD SetForwardInline(bool aForwardInline) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetForwardInline(aForwardInline); } \
  NS_IMETHOD GetForwardInlineFilter(bool *aForwardInlineFilter) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetForwardInlineFilter(aForwardInlineFilter); } \
  NS_IMETHOD SetForwardInlineFilter(bool aForwardInlineFilter) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetForwardInlineFilter(aForwardInlineFilter); } \
  NS_IMETHOD GetForwardToAddress(nsAString & aForwardToAddress) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetForwardToAddress(aForwardToAddress); } \
  NS_IMETHOD SetForwardToAddress(const nsAString & aForwardToAddress) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetForwardToAddress(aForwardToAddress); } \
  NS_IMETHOD GetOverrideComposeFormat(bool *aOverrideComposeFormat) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOverrideComposeFormat(aOverrideComposeFormat); } \
  NS_IMETHOD SetOverrideComposeFormat(bool aOverrideComposeFormat) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOverrideComposeFormat(aOverrideComposeFormat); } \
  NS_IMETHOD GetIdentity(nsIMsgIdentity * *aIdentity) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetIdentity(aIdentity); } \
  NS_IMETHOD SetIdentity(nsIMsgIdentity *aIdentity) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetIdentity(aIdentity); } \
  NS_IMETHOD GetOriginalMsgURI(char * *aOriginalMsgURI) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOriginalMsgURI(aOriginalMsgURI); } \
  NS_IMETHOD SetOriginalMsgURI(const char * aOriginalMsgURI) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOriginalMsgURI(aOriginalMsgURI); } \
  NS_IMETHOD GetOrigMsgHdr(nsIMsgDBHdr * *aOrigMsgHdr) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOrigMsgHdr(aOrigMsgHdr); } \
  NS_IMETHOD SetOrigMsgHdr(nsIMsgDBHdr *aOrigMsgHdr) MOZ_OVERRIDE { return !_to ? NS_ERROR_NULL_POINTER : _to->SetOrigMsgHdr(aOrigMsgHdr); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsMimeStreamConverter : public nsIMimeStreamConverter
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMIMESTREAMCONVERTER

  nsMimeStreamConverter();

private:
  ~nsMimeStreamConverter();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsMimeStreamConverter, nsIMimeStreamConverter)

nsMimeStreamConverter::nsMimeStreamConverter()
{
  /* member initializers and constructor code */
}

nsMimeStreamConverter::~nsMimeStreamConverter()
{
  /* destructor code */
}

/* void SetMimeOutputType (in nsMimeOutputType aType); */
NS_IMETHODIMP nsMimeStreamConverter::SetMimeOutputType(nsMimeOutputType aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void GetMimeOutputType (out nsMimeOutputType aOutFormat); */
NS_IMETHODIMP nsMimeStreamConverter::GetMimeOutputType(nsMimeOutputType *aOutFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetStreamURI (in nsIURI aURI); */
NS_IMETHODIMP nsMimeStreamConverter::SetStreamURI(nsIURI *aURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* void SetMimeHeadersListener (in nsIMimeStreamConverterListener listener, in nsMimeOutputType aType); */
NS_IMETHODIMP nsMimeStreamConverter::SetMimeHeadersListener(nsIMimeStreamConverterListener *listener, nsMimeOutputType aType)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean forwardInline; */
NS_IMETHODIMP nsMimeStreamConverter::GetForwardInline(bool *aForwardInline)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMimeStreamConverter::SetForwardInline(bool aForwardInline)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean forwardInlineFilter; */
NS_IMETHODIMP nsMimeStreamConverter::GetForwardInlineFilter(bool *aForwardInlineFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMimeStreamConverter::SetForwardInlineFilter(bool aForwardInlineFilter)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute AString forwardToAddress; */
NS_IMETHODIMP nsMimeStreamConverter::GetForwardToAddress(nsAString & aForwardToAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMimeStreamConverter::SetForwardToAddress(const nsAString & aForwardToAddress)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute boolean overrideComposeFormat; */
NS_IMETHODIMP nsMimeStreamConverter::GetOverrideComposeFormat(bool *aOverrideComposeFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMimeStreamConverter::SetOverrideComposeFormat(bool aOverrideComposeFormat)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIMsgIdentity identity; */
NS_IMETHODIMP nsMimeStreamConverter::GetIdentity(nsIMsgIdentity * *aIdentity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMimeStreamConverter::SetIdentity(nsIMsgIdentity *aIdentity)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute string originalMsgURI; */
NS_IMETHODIMP nsMimeStreamConverter::GetOriginalMsgURI(char * *aOriginalMsgURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMimeStreamConverter::SetOriginalMsgURI(const char * aOriginalMsgURI)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* attribute nsIMsgDBHdr origMsgHdr; */
NS_IMETHODIMP nsMimeStreamConverter::GetOrigMsgHdr(nsIMsgDBHdr * *aOrigMsgHdr)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}
NS_IMETHODIMP nsMimeStreamConverter::SetOrigMsgHdr(nsIMsgDBHdr *aOrigMsgHdr)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif


#endif /* __gen_nsIMimeStreamConverter_h__ */
