You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@olingo.apache.org by Wendy Tamm <we...@gmail.com> on 2014/07/03 19:38:55 UTC
EntityProvider.readEntry failing to parse Atom for unknown reasons
Hi all,
I'm trying to read the payload of a POST message (Atom format) and am
running into two confusing parsing errors.
I'm creating an EDM from the metadata document of the odata.org example
service for v2.0 (http://services.odata.org/v2/odata/odata.svc/$metadata),
and using the EntityProvider to read the payload. This is the basic code,
simplified and with some self-explanatory variable names:
Edm exampleEdm = EntityProvider.readMetadata(metadataInputStream, false);
UriParser uriParser = new UriParserImpl(exampleEdm);
EntityProviderReadProperties properties =
EntityProviderReadProperties.init().mergeSemantic(false).build();
ODataEntry newEntry = EntityProvider.readEntry("application/atom+xml",
uriInfo.getStartEntitySet(), payloadInputStream, properties);
This is the example new entry message I tried first, copied verbatim from
section 2.4 of this page:
http://www.odata.org/documentation/odata-version-2-0/operations
<?xml version="1.0" encoding="utf-8"?>
<Entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
xmlns="http://www.w3.org/2005/Atom">
<title type="text"></title>
<updated>2010-02-27T21:36:47Z</updated>
<author>
<name />
</author>
<category term="DataServiceProviderDemo.Category"
scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<content type="application/xml">
<m:properties>
<d:ID>10</d:ID>
<d:Name>Clothing</d:Name>
</m:properties>
</content>
</Entry>
When attempting to read this message, an EntityProviderException is thrown:
org.apache.olingo.odata2.api.ep.EntityProviderException: An exception of
type 'WstxParsingException' occurred.
at
org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryConsumer.java:91)
at
org.apache.olingo.odata2.core.ep.consumer.XmlEntityConsumer.readEntry(XmlEntityConsumer.java:90)
at
org.apache.olingo.odata2.core.ep.AtomEntityProvider.readEntry(AtomEntityProvider.java:376)
at
org.apache.olingo.odata2.core.ep.ProviderFacadeImpl.readEntry(ProviderFacadeImpl.java:173)
at
org.apache.olingo.odata2.api.ep.EntityProvider.readEntry(EntityProvider.java:688)
...
Caused by: com.ctc.wstx.exc.WstxParsingException: Received event
END_DOCUMENT, instead of START_ELEMENT or END_ELEMENT.
at [row,col {unknown-source}]: [18,8]
at
com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:606)
at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:479)
at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:464)
at
com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1175)
at
org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryConsumer.java:83)
...
I thought it might be being caused by the capitalization of the 'e' in the
"<Entry>" tags, which might be a typo on the website. So, I changed those
capitals to lowercase, and that just caused a different exception:
org.apache.olingo.odata2.api.ep.EntityProviderException: An exception of
type 'WstxEOFException' occurred.
at
org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryConsumer.java:91)
at
org.apache.olingo.odata2.core.ep.consumer.XmlEntityConsumer.readEntry(XmlEntityConsumer.java:90)
at
org.apache.olingo.odata2.core.ep.AtomEntityProvider.readEntry(AtomEntityProvider.java:376)
at
org.apache.olingo.odata2.core.ep.ProviderFacadeImpl.readEntry(ProviderFacadeImpl.java:173)
at
org.apache.olingo.odata2.api.ep.EntityProvider.readEntry(EntityProvider.java:688)
...
Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
at [row,col {unknown-source}]: [1,0]
at
com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:677)
at
com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2139)
at
com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2045)
at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1134)
at
com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1157)
at
org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryConsumer.java:83)
...
I haven't been able to find any relevant, useful information about these
two parsing exceptions, and I really can't figure out what could be wrong
with the messages or with my code. Any ideas?
Thanks in advance,
--
- WT
Re: EntityProvider.readEntry failing to parse Atom for unknown reasons
Posted by Wendy Tamm <we...@gmail.com>.
Hi Michael,
The EOF was being caused by another issue unrelated to the library. The
WstxParsingException when using "Entry" is the remaining question - you
answered it completely. Thanks!
On 3 July 2014 23:07, Bolz, Michael <mi...@sap.com> wrote:
> Hello Wendy,
>
> Do I understand you correctly that your EOF is caused by the upper case
> "<Entry>" Tag?
>
> In general XML is case sensitive and the "<entry>" tag from the Atom
> specification is lower case (see:
> http://tools.ietf.org/html/rfc4287#section-4.1.2).
> So IMHO in the example the tag should be "<entry>" (instead of "<Entry>").
>
> Kind regards,
> Michael
>
>
> From: Wendy Tamm <we...@gmail.com>
> Reply-To: "user@olingo.apache.org" <us...@olingo.apache.org>
> Date: Donnerstag, 3. Juli 2014 21:26
> To: "user@olingo.apache.org" <us...@olingo.apache.org>
> Subject: Re: EntityProvider.readEntry failing to parse Atom for unknown
> reasons
>
> Ok I found the problem with my EOF exception and that's solved. So the
> remaining question: is the odata.org website incorrect in using capital
> letters for the entry tags? Or does Olingo/Woodstox not recognize that as
> valid?
>
> Thanks,
>
> On 3 July 2014 10:38, Wendy Tamm <we...@gmail.com> wrote:
>
>> Hi all,
>>
>> I'm trying to read the payload of a POST message (Atom format) and am
>> running into two confusing parsing errors.
>>
>> I'm creating an EDM from the metadata document of the odata.org example
>> service for v2.0 (http://services.odata.org/v2/odata/odata.svc/$metadata),
>> and using the EntityProvider to read the payload. This is the basic code,
>> simplified and with some self-explanatory variable names:
>>
>> Edm exampleEdm = EntityProvider.readMetadata(metadataInputStream, false);
>> UriParser uriParser = new UriParserImpl(exampleEdm);
>>
>> EntityProviderReadProperties properties = EntityProviderReadProperties.init().mergeSemantic(false).build();
>>
>>
>> ODataEntry newEntry = EntityProvider.readEntry("application/atom+xml", uriInfo.getStartEntitySet(), payloadInputStream, properties);
>>
>>
>> This is the example new entry message I tried first, copied verbatim from
>> section 2.4 of this page:
>> http://www.odata.org/documentation/odata-version-2-0/operations
>>
>> <?xml version="1.0" encoding="utf-8"?>
>> <Entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
>> xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
>> xmlns="http://www.w3.org/2005/Atom">
>> <title type="text"></title>
>> <updated>2010-02-27T21:36:47Z</updated>
>> <author>
>> <name />
>> </author>
>> <category term="DataServiceProviderDemo.Category"
>> scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
>> <content type="application/xml">
>> <m:properties>
>> <d:ID>10</d:ID>
>> <d:Name>Clothing</d:Name>
>> </m:properties>
>> </content>
>> </Entry>
>>
>>
>> When attempting to read this message, an EntityProviderException is
>> thrown:
>>
>> org.apache.olingo.odata2.api.ep.EntityProviderException: An exception of
>> type 'WstxParsingException' occurred.
>> at
>> org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryConsumer.java:91)
>> at
>> org.apache.olingo.odata2.core.ep.consumer.XmlEntityConsumer.readEntry(XmlEntityConsumer.java:90)
>> at
>> org.apache.olingo.odata2.core.ep.AtomEntityProvider.readEntry(AtomEntityProvider.java:376)
>> at
>> org.apache.olingo.odata2.core.ep.ProviderFacadeImpl.readEntry(ProviderFacadeImpl.java:173)
>> at
>> org.apache.olingo.odata2.api.ep.EntityProvider.readEntry(EntityProvider.java:688)
>> ...
>> Caused by: com.ctc.wstx.exc.WstxParsingException: Received event
>> END_DOCUMENT, instead of START_ELEMENT or END_ELEMENT.
>> at [row,col {unknown-source}]: [18,8]
>> at
>> com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:606)
>> at
>> com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:479)
>> at
>> com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:464)
>> at
>> com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1175)
>> at
>> org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryConsumer.java:83)
>> ...
>>
>> I thought it might be being caused by the capitalization of the 'e' in
>> the "<Entry>" tags, which might be a typo on the website. So, I changed
>> those capitals to lowercase, and that just caused a different exception:
>>
>> org.apache.olingo.odata2.api.ep.EntityProviderException: An exception of
>> type 'WstxEOFException' occurred.
>> at
>> org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryConsumer.java:91)
>> at
>> org.apache.olingo.odata2.core.ep.consumer.XmlEntityConsumer.readEntry(XmlEntityConsumer.java:90)
>> at
>> org.apache.olingo.odata2.core.ep.AtomEntityProvider.readEntry(AtomEntityProvider.java:376)
>> at
>> org.apache.olingo.odata2.core.ep.ProviderFacadeImpl.readEntry(ProviderFacadeImpl.java:173)
>> at
>> org.apache.olingo.odata2.api.ep.EntityProvider.readEntry(EntityProvider.java:688)
>> ...
>> Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
>> at [row,col {unknown-source}]: [1,0]
>> at
>> com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:677)
>> at
>> com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2139)
>> at
>> com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2045)
>> at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1134)
>> at
>> com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1157)
>> at
>> org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryConsumer.java:83)
>> ...
>>
>>
>> I haven't been able to find any relevant, useful information about these
>> two parsing exceptions, and I really can't figure out what could be wrong
>> with the messages or with my code. Any ideas?
>>
>>
>> Thanks in advance,
>>
>> --
>> - WT
>>
>
>
>
> --
> - WT
>
--
- WT
Re: EntityProvider.readEntry failing to parse Atom for unknown
reasons
Posted by "Bolz, Michael" <mi...@sap.com>.
Hello Wendy,
Do I understand you correctly that your EOF is caused by the upper case
"<Entry>" Tag?
In general XML is case sensitive and the "<entry>" tag from the Atom
specification is lower case (see:
http://tools.ietf.org/html/rfc4287#section-4.1.2).
So IMHO in the example the tag should be "<entry>" (instead of "<Entry>").
Kind regards,
Michael
From: Wendy Tamm <we...@gmail.com>
Reply-To: "user@olingo.apache.org" <us...@olingo.apache.org>
Date: Donnerstag, 3. Juli 2014 21:26
To: "user@olingo.apache.org" <us...@olingo.apache.org>
Subject: Re: EntityProvider.readEntry failing to parse Atom for unknown
reasons
Ok I found the problem with my EOF exception and that's solved. So the
remaining question: is the odata.org <http://odata.org> website incorrect
in using capital letters for the entry tags? Or does Olingo/Woodstox not
recognize that as valid?
Thanks,
On 3 July 2014 10:38, Wendy Tamm <we...@gmail.com> wrote:
> Hi all,
>
> I'm trying to read the payload of a POST message (Atom format) and am running
> into two confusing parsing errors.
>
> I'm creating an EDM from the metadata document of the odata.org
> <http://odata.org> example service for v2.0
> (http://services.odata.org/v2/odata/odata.svc/$metadata), and using the
> EntityProvider to read the payload. This is the basic code, simplified and
> with some self-explanatory variable names:
>
> Edm exampleEdm = EntityProvider.readMetadata(metadataInputStream, false);
> UriParser uriParser = new UriParserImpl(exampleEdm);
> EntityProviderReadProperties properties =
> EntityProviderReadProperties.init().mergeSemantic(false).build();
>
>
> ODataEntry newEntry = EntityProvider.readEntry("application/atom+xml",
> uriInfo.getStartEntitySet(), payloadInputStream, properties);
>
> This is the example new entry message I tried first, copied verbatim from
> section 2.4 of this page:
> http://www.odata.org/documentation/odata-version-2-0/operations
>
> <?xml version="1.0" encoding="utf-8"?>
> <Entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
> xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
> xmlns="http://www.w3.org/2005/Atom">
> <title type="text"></title>
> <updated>2010-02-27T21:36:47Z</updated>
> <author>
> <name />
> </author>
> <category term="DataServiceProviderDemo.Category"
> scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
> <content type="application/xml">
> <m:properties>
> <d:ID>10</d:ID>
> <d:Name>Clothing</d:Name>
> </m:properties>
> </content>
> </Entry>
>
> When attempting to read this message, an EntityProviderException is thrown:
>
> org.apache.olingo.odata2.api.ep.EntityProviderException: An exception of type
> 'WstxParsingException' occurred.
> at
> org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryC
> onsumer.java:91)
> at
> org.apache.olingo.odata2.core.ep.consumer.XmlEntityConsumer.readEntry(XmlEntit
> yConsumer.java:90)
> at
> org.apache.olingo.odata2.core.ep.AtomEntityProvider.readEntry(AtomEntityProvid
> er.java:376)
> at
> org.apache.olingo.odata2.core.ep.ProviderFacadeImpl.readEntry(ProviderFacadeIm
> pl.java:173)
> at
> org.apache.olingo.odata2.api.ep.EntityProvider.readEntry(EntityProvider.java:6
> 88)
> ...
> Caused by: com.ctc.wstx.exc.WstxParsingException: Received event END_DOCUMENT,
> instead of START_ELEMENT or END_ELEMENT.
> at [row,col {unknown-source}]: [18,8]
> at
> com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:606)
> at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:479)
> at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:464)
> at com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1175)
> at
> org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryC
> onsumer.java:83)
> ...
>
> I thought it might be being caused by the capitalization of the 'e' in the
> "<Entry>" tags, which might be a typo on the website. So, I changed those
> capitals to lowercase, and that just caused a different exception:
>
> org.apache.olingo.odata2.api.ep.EntityProviderException: An exception of type
> 'WstxEOFException' occurred.
> at
> org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryC
> onsumer.java:91)
> at
> org.apache.olingo.odata2.core.ep.consumer.XmlEntityConsumer.readEntry(XmlEntit
> yConsumer.java:90)
> at
> org.apache.olingo.odata2.core.ep.AtomEntityProvider.readEntry(AtomEntityProvid
> er.java:376)
> at
> org.apache.olingo.odata2.core.ep.ProviderFacadeImpl.readEntry(ProviderFacadeIm
> pl.java:173)
> at
> org.apache.olingo.odata2.api.ep.EntityProvider.readEntry(EntityProvider.java:6
> 88)
> ...
> Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
> at [row,col {unknown-source}]: [1,0]
> at
> com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:677)
> at
> com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2139)
> at
> com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2045)
> at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1134)
> at com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1157)
> at
> org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryC
> onsumer.java:83)
> ...
>
>
> I haven't been able to find any relevant, useful information about these two
> parsing exceptions, and I really can't figure out what could be wrong with the
> messages or with my code. Any ideas?
>
>
> Thanks in advance,
>
> --
> - WT
--
- WT
Re: EntityProvider.readEntry failing to parse Atom for unknown reasons
Posted by Wendy Tamm <we...@gmail.com>.
Ok I found the problem with my EOF exception and that's solved. So the
remaining question: is the odata.org website incorrect in using capital
letters for the entry tags? Or does Olingo/Woodstox not recognize that as
valid?
Thanks,
On 3 July 2014 10:38, Wendy Tamm <we...@gmail.com> wrote:
> Hi all,
>
> I'm trying to read the payload of a POST message (Atom format) and am
> running into two confusing parsing errors.
>
> I'm creating an EDM from the metadata document of the odata.org example
> service for v2.0 (http://services.odata.org/v2/odata/odata.svc/$metadata),
> and using the EntityProvider to read the payload. This is the basic code,
> simplified and with some self-explanatory variable names:
>
> Edm exampleEdm = EntityProvider.readMetadata(metadataInputStream, false);
> UriParser uriParser = new UriParserImpl(exampleEdm);
>
> EntityProviderReadProperties properties = EntityProviderReadProperties.init().mergeSemantic(false).build();
>
> ODataEntry newEntry = EntityProvider.readEntry("application/atom+xml", uriInfo.getStartEntitySet(), payloadInputStream, properties);
>
>
> This is the example new entry message I tried first, copied verbatim from
> section 2.4 of this page:
> http://www.odata.org/documentation/odata-version-2-0/operations
>
> <?xml version="1.0" encoding="utf-8"?>
> <Entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
> xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
> xmlns="http://www.w3.org/2005/Atom">
> <title type="text"></title>
> <updated>2010-02-27T21:36:47Z</updated>
> <author>
> <name />
> </author>
> <category term="DataServiceProviderDemo.Category"
> scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
> <content type="application/xml">
> <m:properties>
> <d:ID>10</d:ID>
> <d:Name>Clothing</d:Name>
> </m:properties>
> </content>
> </Entry>
>
>
> When attempting to read this message, an EntityProviderException is thrown:
>
> org.apache.olingo.odata2.api.ep.EntityProviderException: An exception of
> type 'WstxParsingException' occurred.
> at
> org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryConsumer.java:91)
> at
> org.apache.olingo.odata2.core.ep.consumer.XmlEntityConsumer.readEntry(XmlEntityConsumer.java:90)
> at
> org.apache.olingo.odata2.core.ep.AtomEntityProvider.readEntry(AtomEntityProvider.java:376)
> at
> org.apache.olingo.odata2.core.ep.ProviderFacadeImpl.readEntry(ProviderFacadeImpl.java:173)
> at
> org.apache.olingo.odata2.api.ep.EntityProvider.readEntry(EntityProvider.java:688)
> ...
> Caused by: com.ctc.wstx.exc.WstxParsingException: Received event
> END_DOCUMENT, instead of START_ELEMENT or END_ELEMENT.
> at [row,col {unknown-source}]: [18,8]
> at
> com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:606)
> at
> com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:479)
> at
> com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:464)
> at
> com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1175)
> at
> org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryConsumer.java:83)
> ...
>
> I thought it might be being caused by the capitalization of the 'e' in the
> "<Entry>" tags, which might be a typo on the website. So, I changed those
> capitals to lowercase, and that just caused a different exception:
>
> org.apache.olingo.odata2.api.ep.EntityProviderException: An exception of
> type 'WstxEOFException' occurred.
> at
> org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryConsumer.java:91)
> at
> org.apache.olingo.odata2.core.ep.consumer.XmlEntityConsumer.readEntry(XmlEntityConsumer.java:90)
> at
> org.apache.olingo.odata2.core.ep.AtomEntityProvider.readEntry(AtomEntityProvider.java:376)
> at
> org.apache.olingo.odata2.core.ep.ProviderFacadeImpl.readEntry(ProviderFacadeImpl.java:173)
> at
> org.apache.olingo.odata2.api.ep.EntityProvider.readEntry(EntityProvider.java:688)
> ...
> Caused by: com.ctc.wstx.exc.WstxEOFException: Unexpected EOF in prolog
> at [row,col {unknown-source}]: [1,0]
> at
> com.ctc.wstx.sr.StreamScanner.throwUnexpectedEOF(StreamScanner.java:677)
> at
> com.ctc.wstx.sr.BasicStreamReader.handleEOF(BasicStreamReader.java:2139)
> at
> com.ctc.wstx.sr.BasicStreamReader.nextFromProlog(BasicStreamReader.java:2045)
> at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1134)
> at
> com.ctc.wstx.sr.BasicStreamReader.nextTag(BasicStreamReader.java:1157)
> at
> org.apache.olingo.odata2.core.ep.consumer.XmlEntryConsumer.readEntry(XmlEntryConsumer.java:83)
> ...
>
>
> I haven't been able to find any relevant, useful information about these
> two parsing exceptions, and I really can't figure out what could be wrong
> with the messages or with my code. Any ideas?
>
>
> Thanks in advance,
>
> --
> - WT
>
--
- WT